10.08.15 — 15:29
Здравствуйте, подскажите пожалуйста, как реализовать расшифровку в расшифровке?
Т.е. я имею в виду, формируется отчет СКД, затем происходит своя расшифровка, выполняется новая СКД, я еще вывожу в табличный документ на новой форме и стандартные расшифровки нового отчета не работают, подскажите, как сформировать этот отчет, чтобы расшифровки работали? Спасибо.
1 — 10.08.15 — 16:36
Получается у меня формировать отчет в той же самой форме, расшифровка работает, но не правильно.
Единственное, при повторной расшифровке вылазит ошибка:
«Ошибка информации расшифровки: не найден элемент расшифровки»
Вот код:
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
Если Не ЭтоРасшифровка Тогда
СтандартнаяОбработка = Ложь;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
ДоступныеДействия = Новый Массив;
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);
ДопДоступныеДействия = Новый СписокЗначений;
ДопДоступныеДействия.Добавить(«Регистратор», «Регистратор»);
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, ДопДоступныеДействия);
Если Настройки <> Неопределено Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ЭлементыФормы.Результат.Очистить();
СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);
ИначеЕсли ВыполненноеДействие = «Регистратор» Тогда
СКДРасшифровка = ПолучитьМакет(«РасшифровкаОтчета»);
Настройки = СКДРасшифровка.НастройкиПоУмолчанию;
НастройкиВОтчете = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;
Параметры = Настройки.ПараметрыДанных.Элементы;
Параметры[0].Значение = НастройкиВОтчете[2].Значение.ДатаНачала;
Параметры[0].Использование = Истина;
Параметры[1].Значение = НастройкиВОтчете[2].Значение.ДатаОкончания;
Параметры[1].Использование = Истина;
Параметры[2].Значение = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение;
Параметры[2].Использование = Истина;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКДРасшифровка, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Отчет = Новый (ТипЗнч(ОтчетОбъект));
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Отчет.ЭтоРасшифровка = Истина;
Форма = Отчет.ПолучитьФорму(,,Новый УникальныйИдентификатор);
Форма.ЭлементыФормы.Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Форма.ЭлементыФормы.Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Форма.Открыть();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
2 — 10.08.15 — 16:37
Смысл в том, что расшифровка — это другая СКД.
KazSever
3 — 12.08.15 — 09:27
Такая же проблема была, решил схитрить. Попробуй не формировать сам отчет из первого, а просто передай в него параметры и открывай, а второй формируй при открытии.
Вот код которым я передавал параметры
Процедура ВыполнитьДействие1(Расшифровка, Настройки)
Отчет = Новый (ТипЗнч(ОтчетОбъект));
//Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
//Отчет.ЭтоРасшифровка = Истина;
Отчет = Отчеты.СИ_ТоварыНаСкладахПоРегистратору.Создать();
Форма = Отчет.ПолучитьФорму(,,Новый УникальныйИдентификатор);
Форма.ЭлементыФормы.Результат.Очистить();
//Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат,ДанныеРасшифровки);
ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«Номенклатура»));
ЗнчНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение);
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = ЗнчНоменклатура;
ЗначениеПараметра.Использование = Истина;
КонецЕсли;
ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«НачалоПериода»));
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = Дата(КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«НачалоПериода»)).Значение);
ЗначениеПараметра.Использование = Истина;
КонецЕсли;
ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«КонецПериода»));
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = Дата(КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«КонецПериода»)).Значение);;
ЗначениеПараметра.Использование = Истина;
КонецЕсли;
//Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы[«Результат»], ДанныеРасшифровки);
Форма.Открыть();
КонецПроцедуры
Вот код который я использовал во втором отчете
Процедура ПриОткрытии()
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить(«СИ_ТоварыНаСкладахПоРегистратору», Отчеты.СИ_ТоварыНаСкладахПоРегистратору);
СхемаКомпоновкиДанных = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
//расшифровка
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, ЭтотОбъект.КомпоновщикНастроек.Настройки,ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,ДанныеРасшифровки);
ДокументРезультат = ЭлементыФормы.Результат;
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.НачатьВывод();
Пока Истина Цикл
ЭлементРезультатаКомпоновкиДанных=ПроцессорКомпоновкиДанных.Следующий();
Если ЭлементРезультатаКомпоновкиДанных=Неопределено Тогда
Прервать;
Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультатаКомпоновкиДанных);
КонецЕсли;
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод()
КонецПроцедуры
Получается во втором отчете сразу работает стандартная расшифровка, а там уже как сам хочешь так и действуй.
Может это и не правильно, но информации очень мало именно по этой теме, но все работает
qwasqu
10.08.15 — 15:29
Здравствуйте, подскажите пожалуйста, как реализовать расшифровку в расшифровке?
Т.е. я имею в виду, формируется отчет СКД, затем происходит своя расшифровка, выполняется новая СКД, я еще вывожу в табличный документ на новой форме и стандартные расшифровки нового отчета не работают, подскажите, как сформировать этот отчет, чтобы расшифровки работали? Спасибо.
qwasqu
1 — 10.08.15 — 16:36
Получается у меня формировать отчет в той же самой форме, расшифровка работает, но не правильно.
Единственное, при повторной расшифровке вылазит ошибка:
«Ошибка информации расшифровки: не найден элемент расшифровки»
Вот код:
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
Если Не ЭтоРасшифровка Тогда
СтандартнаяОбработка = Ложь;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
ДоступныеДействия = Новый Массив;
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);
ДопДоступныеДействия = Новый СписокЗначений;
ДопДоступныеДействия.Добавить(«Регистратор», «Регистратор»);
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, ДопДоступныеДействия);
Если Настройки <> Неопределено Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ЭлементыФормы.Результат.Очистить();
СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);
ИначеЕсли ВыполненноеДействие = «Регистратор» Тогда
СКДРасшифровка = ПолучитьМакет(«РасшифровкаОтчета»);
Настройки = СКДРасшифровка.НастройкиПоУмолчанию;
НастройкиВОтчете = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;
Параметры = Настройки.ПараметрыДанных.Элементы;
Параметры[0].Значение = НастройкиВОтчете[2].Значение.ДатаНачала;
Параметры[0].Использование = Истина;
Параметры[1].Значение = НастройкиВОтчете[2].Значение.ДатаОкончания;
Параметры[1].Использование = Истина;
Параметры[2].Значение = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение;
Параметры[2].Использование = Истина;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКДРасшифровка, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Отчет = Новый (ТипЗнч(ОтчетОбъект));
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Отчет.ЭтоРасшифровка = Истина;
Форма = Отчет.ПолучитьФорму(,,Новый УникальныйИдентификатор);
Форма.ЭлементыФормы.Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Форма.ЭлементыФормы.Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Форма.Открыть();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
qwasqu
2 — 10.08.15 — 16:37
Смысл в том, что расшифровка — это другая СКД.
KazSever
3 — 12.08.15 — 09:27
Такая же проблема была, решил схитрить. Попробуй не формировать сам отчет из первого, а просто передай в него параметры и открывай, а второй формируй при открытии.
Вот код которым я передавал параметры
Процедура ВыполнитьДействие1(Расшифровка, Настройки)
Отчет = Новый (ТипЗнч(ОтчетОбъект));
//Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
//Отчет.ЭтоРасшифровка = Истина;
Отчет = Отчеты.СИ_ТоварыНаСкладахПоРегистратору.Создать();
Форма = Отчет.ПолучитьФорму(,,Новый УникальныйИдентификатор);
Форма.ЭлементыФормы.Результат.Очистить();
//Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат,ДанныеРасшифровки);
ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«Номенклатура»));
ЗнчНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение);
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = ЗнчНоменклатура;
ЗначениеПараметра.Использование = Истина;
КонецЕсли;
ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«НачалоПериода»));
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = Дата(КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«НачалоПериода»)).Значение);
ЗначениеПараметра.Использование = Истина;
КонецЕсли;
ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«КонецПериода»));
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = Дата(КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«КонецПериода»)).Значение);;
ЗначениеПараметра.Использование = Истина;
КонецЕсли;
//Отчет.СкомпоноватьРезультат(Форма.ЭлементыФормы[«Результат»], ДанныеРасшифровки);
Форма.Открыть();
КонецПроцедуры
Вот код который я использовал во втором отчете
Процедура ПриОткрытии()
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить(«СИ_ТоварыНаСкладахПоРегистратору», Отчеты.СИ_ТоварыНаСкладахПоРегистратору);
СхемаКомпоновкиДанных = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
//расшифровка
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, ЭтотОбъект.КомпоновщикНастроек.Настройки,ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,ДанныеРасшифровки);
ДокументРезультат = ЭлементыФормы.Результат;
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.НачатьВывод();
Пока Истина Цикл
ЭлементРезультатаКомпоновкиДанных=ПроцессорКомпоновкиДанных.Следующий();
Если ЭлементРезультатаКомпоновкиДанных=Неопределено Тогда
Прервать;
Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультатаКомпоновкиДанных);
КонецЕсли;
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод()
КонецПроцедуры
Получается во втором отчете сразу работает стандартная расшифровка, а там уже как сам хочешь так и действуй.
Может это и не правильно, но информации очень мало именно по этой теме, но все работает
Здравствуйте! Затертая до дыр тема: расшифровка скд. Но все же, может кто глянет, я чего-то не догоняю, укажите чего.
На произвольной форме есть табличный документ в который вывожу отчет. Отчет формируется на основе СКД, которую предварительно настроил в макете.
По сути что делаю:
1. При создании формы сразу все подготовил.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СхемаКомпоновки = Документы.ВнутреннийЗаказ.ПолучитьМакет("АнализРабочийСтол");
ХранилищеСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновки, ЭтаФорма.УникальныйИдентификатор);
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
ХранилищеДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
КомпоновщикНастроек — реквизит формы с соответствующим типом.
2. Формируем сам отчет
&НаСервере
Процедура ОбновитьНоменклатуруЗаказа(ВнутреннийЗаказ)
//Установим параметр
ПараметрВнутреннийЗаказ = Новый ПараметрКомпоновкиДанных("ВнутреннийЗаказ");
ЗначениеПараметраВнутреннийЗаказ = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрВнутреннийЗаказ);
ЗначениеПараметраВнутреннийЗаказ.Значение = ВнутреннийЗаказ;
ЗначениеПараметраВнутреннийЗаказ.Использование = Истина;
Настройки = КомпоновщикНастроек.Настройки;
//Вытащим из хранилища Схему и ДанныеРасшифровки
СхемаКомпановки = ПолучитьИзВременногоХранилища(ХранилищеСхемы);
ДанныеРасшифровки = ПолучитьИзВременногоХранилища(ХранилищеДанныхРасшифровки);
//Дальше все стандартно (вроде)
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпановки, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки);
АнализЗаказа.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(АнализЗаказа);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
3. Отчет работает, всё нормально, но вот когда пытаюсь получить расшифровку
&НаКлиенте
Процедура АнализЗаказаОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыбранноеДействие, ПараметрыВыбранногоДействия;
СтандартнаяОбработка = Ложь;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ХранилищеДанныхРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(ХранилищеСхемы));
ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыбранноеДействие, ПараметрыВыбранногоДействия);
ДоступныеДействия=Новый СписокЗначений;
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение, "Открыть");
ОбработкаРасшифровки.Выполнить(Расшифровка, ВыбранноеДействие, ПараметрыВыбранногоДействия, ДоступныеДействия);
ОткрытьЗначение(ПараметрыВыбранногоДействия);
КонецПроцедуры
Проблема: Ошибка информации расшифровки: не найден элемент расшифровки.
В отладчике вижу, что ЭлементыРасшифровкиКомпановкиДанных пустые, ничего нет. Подозреваю, что в этом причина ошибки. От чего зависит содержание элементов расшифровки. Настройки расшифровки кстати содержат адекватные данные. а вот элементов нет. Что делаю не так?
Не работает расшифровка в макете 1С
Расшифровка в концепции 1С — это событие возникающее в момент клика по ячейке табличного поля (элемента формы с табличным документом) в 1С.
Для чего это используется
- для развертывания значения по составляющим или по документам, сформировавшим данное значение
- для открытия объекта: справочника или документа
- для старта других действий
Причин отсутствия реакции на событие расшифровки может быть несколько:
- табличный документ находится в режиме редактирования
-
отсутствует значение расшифровки
-
отсутствует обработка события расшифровки и отключена стандартная обработка
А теперь подробнее по каждому из выделенных вариантов.
Как выглядит ячейка, где, есть значение расшифровки?
- в режиме предприятия при наведении на ячейку меняется курсор — появляется «лупа»
- в конфигураторе должно быть заполнено свойство «ПараметрРасшифровки»
Если обработчик не задан система используется свои обработчики.
- Примитивные типы просто отображает.
- Сложные — сообщает их тип.
- СКД вызывает выбор обработчика
Обработчик события с отключенной стандартной обработкой
&НаКлиенте
Процедура ТабПолеОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Единственные настоящие поэты нашего времени служат в рекламных агентствах.
bless18 |
|
||
---|---|---|---|
Здравствуйте! Впервые столкнулась с расшифровкой. Подскажите, пожалуйста, как это реализуется расшифровкой в СКД? |
Yandex |
|
||
---|---|---|---|
bless18 |
|
||
---|---|---|---|
|
ad82117 |
|
||
---|---|---|---|
http://www.1c-pro.ru/topic33295.html |
bless18 |
|
||
---|---|---|---|
Спасибо!
На строчке Настройки = Ошибка при вызове метода контекста (Выполнить) Если я правильно поняла выполненное действие — действие, которое я хочу сделать при расшифровке.. Мне нужно открыть форму списка регистра сведений.. |
bless18 |
|
||
---|---|---|---|
Доброе утро! |
bless18 |
|
||
---|---|---|---|
Спасибо за помощь, получилось вывести дополнительные действия в расшифровке |
bless18 |
|
||
---|---|---|---|
Вопрос закрыт! |
Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе. |
Курс Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД) очень востребован у слушателей проекта. Владение механизмами СКД – основополагающие знания, без которых работать с современными типовыми конфигурациями просто невозможно.
Настоятельно рекомендуем досконально изучить тему Работа с системой компоновки данных средствами встроенного язык, это однозначно повысит эффективность и скорость вашей работы с решениями 1С.
Вопрос
Сделал отчет на СКД с использованием набора данных типа Объект (таблицы значений). В наборе есть поля типа ссылки на справочники и документы, но в отчете нет ни одной расшифровки.
Попробовал установить расшифровки с помощью макета СКД: оформление макета воспринимается, а расшифровка – нет.
В сети прочитал, что для наборов типа объект расшифровки нужно устанавливать в обработчике “ПриКомпоновкеРезультата“. Подскажите, пожалуйста, как это можно сделать?
Ответ
Для этого в процедуре ПриКомпоновкеРезультата нужно использовать объект ДанныеРасшифровки при создании макета компоновки и при инициализации процессора компоновки, например:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки, ДанныеРасшифровки); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварныеЗапасыОстатки.Товар, | ТоварныеЗапасыОстатки.Склад, | ТоварныеЗапасыОстатки.КоличествоОстаток КАК Остаток |ИЗ | РегистрНакопления.ТоварныеЗапасы.Остатки КАК ТоварныеЗапасыОстатки"; ТЗ = Запрос.Выполнить().Выгрузить(); ВнешниеНаборы = Новый Структура("ТЗ", ТЗ); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы, ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры
Не удалось расшифровать файл в 1С
Многие организации используют в программе дополнительный сервис 1С-Отчетность. С помощью него они обмениваются отчетами и прочим электронным документооборотом с контролирующими органами непосредственно из 1С без использования сторонних программ, что очень удобно. Но усложнение программы, как всегда бывает, приводит к новым ошибкам, с которыми нужно уметь справляться.
Прочитав статью, вы:
- Получите важную информацию на 2019 год от оператора 1С-Отчетность Калуга Астрал.
- Узнаете, какие ошибки возникают при обмене электронного документооборота.
- Изучите рекомендации по исправлению ошибок, полученных при попытке расшифровать файл. Это самая распространенная ошибка в 1С-Отчетности.
Ошибка расшифровки файла
При обмене электронной отчетностью с ПФР через 1С-Отчетность, пришел протокол контроля отчетности:
- Не расшифровано.
Сообщение при открытии сообщения:
- Не найден сертификат. Ошибка расшифровки файла документа при распаковке пакета.
Новости по смене сертификата ПФР Москвы и Московской области
22 ноября 2018 года оператор 1С-Отчетности распространил следующую информацию для партнеров 1С и пользователей, сдающих отчетность в ПФР Москвы и Московской области.
Если вы сдаете отчетность в ПФР Москвы и Московской области, то вы гарантированно получите указанную ошибку.
Возникновение ошибок
Использование криптопровайдеров ниже версий VipNet 4.2 или КриптоПро CSP 4.0 повлечет возникновение ошибок при обработке документов на стороне ПФР.
Обновление криптопровайдеров
Для исключения технических проблем при работе с ПФР, необходимо обновить криптопровайдеры до версий: VipNet 4.2 или КриптоПро CSP 4.0 и выше.
Пошаговая инструкция по обновления криптопровайдера
Шаг 1. Откройте криптопровайдер, щелкнув мышкой по иконке VipNet СSP.
Шаг 2. Проверьте версию криптопровайдера VipNet в нижнем левом углу открывшейся формы.
Шаг 3. Обновите версию криптопровайдера по инструкции оператора Калуга Астрал, если:
- сдаете отчетность в ПФР Москвы и Московской области;
- версия вашего криптопровайдера VipNet ниже 4.2.
Другие причины возникновения ошибок
Проверка версии криптопровайдера
Самое первое, что должен сделать пользователь при возникновении ошибки — проверить актуальность версии установленного криптопровайдера. Узнать актуальную версию можно на сайте https://infotecs.ru/product/vipnet-csp.html
Полный список рекомендаций 1С
Полный список рекомендаций 1С для устранения ошибки в операционной системе:
- Повторно выполнить настройку криптографии на компьютере.
- Переустановить личный сертификат.
- Провести тестирование контейнера закрытого ключа, связанного с сертификатом.
- Сбросить пароль на контейнер закрытого ключа.
- Повторно перенести контейнер закрытого ключа в реестр при необходимости.
Действия по исправлению ошибки в 1С:
- Пометить на удаление имя сертификата ЭЦП, и поставив префикс Не использовать, чтобы не спутать с новым элементом справочника.
- Добавить сертификат из хранилища сертификатов, для которого была проведена повторная установка.
- Провести Тест настроек сертификата.
- Указать новый элемент справочника Сертификаты ЭЦП в Соглашении.
- Провести Тест настроек соглашения.
Заказать консультацию
По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.
Здравствуйте, подскажите пожалуйста, как реализовать расшифровку в расшифровке? Т.е. я имею в виду, формируется отчет СКД, затем происходит своя расшифровка, выполняется новая СКД, я еще вывожу в табличный документ на новой форме и стандартные расшифровки нового отчета не работают, подскажите, как сформировать этот отчет, чтобы расшифровки работали? Спасибо.
Получается у меня формировать отчет в той же самой форме, расшифровка работает, но не правильно. Единственное, при повторной расшифровке вылазит ошибка: «Ошибка информации расшифровки: не найден элемент расшифровки» Вот код:
Смысл в том, что расшифровка — это другая СКД.
Такая же проблема была, решил схитрить. Попробуй не формировать сам отчет из первого, а просто передай в него параметры и открывай, а второй формируй при открытии. Вот код которым я передавал параметры Процедура ВыполнитьДействие1(Расшифровка, Настройки) Вот код который я использовал во втором отчете Получается во втором отчете сразу работает стандартная расшифровка, а там уже как сам хочешь так и действуй. Может это и не правильно, но информации очень мало именно по этой теме, но все работает
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
bless18 |
|
||
---|---|---|---|
Здравствуйте! Впервые столкнулась с расшифровкой.
Нужно для колонки отчета вызвать форму списка регистра сведений с отбором по ФИО сотрудника, Событию и Дате Подскажите, пожалуйста, как это реализуется расшифровкой в СКД? |
Yandex |
|
||
---|---|---|---|
bless18 |
|
||
---|---|---|---|
ad82117 |
|
||
---|---|---|---|
http://www.1c-pro.ru/topic33295.html |
bless18 |
|
||
---|---|---|---|
Спасибо!
Пытаюсь сделать подобно коду в ссылках: Код 1C v 8.2 УП
На строчке Настройки = Ошибка при вызове метода контекста (Выполнить) Если я правильно поняла выполненное действие — действие, которое я хочу сделать при расшифровке.. Мне нужно открыть форму списка регистра сведений.. |
bless18 |
|
||
---|---|---|---|
Доброе утро! |
bless18 |
|
||
---|---|---|---|
Спасибо за помощь, получилось вывести дополнительные действия в расшифровке |
bless18 |
|
||
---|---|---|---|
Вопрос закрыт! |
Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы! |
Не работает расшифровка в макете 1С
Расшифровка в концепции 1С — это событие возникающее в момент клика по ячейке табличного поля (элемента формы с табличным документом) в 1С.
Для чего это используется
- для развертывания значения по составляющим или по документам, сформировавшим данное значение
- для открытия объекта: справочника или документа
- для старта других действий
Причин отсутствия реакции на событие расшифровки может быть несколько:
- табличный документ находится в режиме редактирования
-
отсутствует значение расшифровки
-
отсутствует обработка события расшифровки и отключена стандартная обработка
А теперь подробнее по каждому из выделенных вариантов.
Как выглядит ячейка, где, есть значение расшифровки?
- в режиме предприятия при наведении на ячейку меняется курсор — появляется «лупа»
- в конфигураторе должно быть заполнено свойство «ПараметрРасшифровки»
Если обработчик не задан система используется свои обработчики.
- Примитивные типы просто отображает.
- Сложные — сообщает их тип.
- СКД вызывает выбор обработчика
Обработчик события с отключенной стандартной обработкой
&НаКлиенте
Процедура ТабПолеОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Люди глупо доверчивы… Вся реклама мира основана на трех принципах: «Хорошо, много и даром». Поэтому можно давать скверно, мало и дорого.
Здравствуйте, подскажите пожалуйста, как реализовать расшифровку в расшифровке? Т.е. я имею в виду, формируется отчет СКД, затем происходит своя расшифровка, выполняется новая СКД, я еще вывожу в табличный документ на новой форме и стандартные расшифровки нового отчета не работают, подскажите, как сформировать этот отчет, чтобы расшифровки работали? Спасибо.
Получается у меня формировать отчет в той же самой форме, расшифровка работает, но не правильно. Единственное, при повторной расшифровке вылазит ошибка: «Ошибка информации расшифровки: не найден элемент расшифровки» Вот код:
Смысл в том, что расшифровка — это другая СКД.
Такая же проблема была, решил схитрить. Попробуй не формировать сам отчет из первого, а просто передай в него параметры и открывай, а второй формируй при открытии. Вот код которым я передавал параметры Процедура ВыполнитьДействие1(Расшифровка, Настройки) Вот код который я использовал во втором отчете Получается во втором отчете сразу работает стандартная расшифровка, а там уже как сам хочешь так и действуй. Может это и не правильно, но информации очень мало именно по этой теме, но все работает
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям