Всем привет. СКД знаю прям чуть чуть)) Надо реализовать выгрузку результата сформированного отчета в документ.
Отчет простого вида
Номенклатура(с Иерархией)
Номенклатура Количество.
Есть форма отчета, на форме есть ТабличноеПоле с результатом.
Пытаюсь обойти этот результат
КоличествоСтрок = ЭлементыФормы.Результат.ВысотаТаблицы;
КоличествоКолонок = ЭлементыФормы.Результат.ШиринаТаблицы;
ТабличныйДокумент = ЭлементыФормы.Результат;
Для й=1 по КоличествоСтрок Цикл
Для м=1 По КоличествоКолонок Цикл
Область = ТабличныйДокумент.ПолучитьОбласть(й,м,й,м);
ТекущаяОбласть = Область.ТекущаяОбласть;
Попытка
Значение = ТекущаяОбласть.Значение;
Исключение
Значение = ТекущаяОбласть.Текст;
КонецПопытки;
КонецЦикла;
КонецЦикла;
Могу получить текст, но не могу получить саму ссылку на номенклатуру, а в базе с одинаковым названием может быть несколько номенклатур(бывает что и код задвоен). Как получить ссылку на номенклатуру при обходе табличного документа, или как правильно обойти результат отчета?
Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
Компоновщик.ЗагрузитьНастройки(КомпоновщикНастроек.Настройки);//Настрой получим из настоящего отчета
Компоновщик.Восстановить();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ТаблицаЗначений = Новый ТаблицаЗначений;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший