Добрый день!
Делаю отчет на СКД с 2мя схемами компоновки данных. Отличаются тем, что в одной можно сделать отбор по номенклатуре,а в другой нет, т.к. группируется по контрагенту и номенклатура не выводится. На форме есть флажок, по которому определяю какую схему использовать. Соответственно, в одной схеме есть поле номенклатура,а в другой нет. И когда флаг=ложь, выдает ошибку, что поле номенклатура не найдена. Проблема, как я поняла, в том что не обновляется сама структура отчета. Не знаю как исправить данную ошибку.
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Стр = ТЗ.Добавить();
ЗаполнитьЗначенияСвойств(Стр,Выборка);
КонецЦикла;
Если ТЗ.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
Если Отчет.ПоНоменклатуре=Ложь Тогда
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
Иначе
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Конецесли;
Период_1="С "+Строка(Формат( Отчет.Период1.ДатаНачала,"ДФ=dd.MM.yy"))+ " по "+Строка(Формат(Отчет.Период1.ДатаОкончания,"ДФ=dd.MM.yy"));
Период_2="С "+Строка(Формат( Отчет.Период2.ДатаНачала,"ДФ=dd.MM.yy"))+ " по "+Строка(Формат(Отчет.Период2.ДатаОкончания,"ДФ=dd.MM.yy"));
Поле1=СхемаКомпоновкиДанных.НаборыДанных.ТЗ.Поля.найти("Период1");
Поле1.Заголовок=Период_1;
Поле2=СхемаКомпоновкиДанных.НаборыДанных.ТЗ.Поля.найти("Период2");
Поле2.Заголовок=Период_2;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки);
ВнешниеНаборы = Новый Структура;
ВнешниеНаборы.Вставить("ТЗ",ТЗ);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборы);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
СкомпоноватьРезультат();
Показать
В ОсновнаяСхемаКомпоновкиДанных1 в наборе данных нет поля номенклатура, а в ОсновнаяСхемаКомпоновкиДанных есть.