Добрый день, столкнулся с задачей обрабатывать выведенные данные в табличный документ, для того чтобы после перебирать их и записать в файл XML.
Как я получаю данные? Создал Функцию, в которую передаю табличный документ(Результат), который находиться на форме. Он то и получает данные с СКД.
Функция ПолучениеДанныхСКД(ТаблДок)
//ТаблДок = Табличное поле, в нашем случае "Результат".
ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
ОСКД = ОбъектОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
НастройкиОСКД = ОСКД.НастройкиПоУмолчанию;
ПараметрыДанныхОСКД = НастройкиОСКД.ПараметрыДанных.Элементы;
//Элемент формы начало
ЭлементНачалоПериода = ПараметрыДанныхОСКД.Найти("Начало");
ЭлементНачалоПериода.Использование = Истина;
//ЭлементНачалоПериода.Значение = НачалоМесяца(ТекущаяДата());
ЭлементНачалоПериода.Значение = ЭтаФорма.Начало; // = значение Начала периода
//Элемент формы конец
ЭлементКонецПериода = ПараметрыДанныхОСКД.Найти("Конец");
ЭлементКонецПериода.Использование = Истина;
//ЭлементКонецПериода.Значение = КонецМесяца(ТекущаяДата());
ЭлементКонецПериода.Значение = ЭтаФорма.Конец;
КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных;
//Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, КомпоновщикНастроекДанных.ПолучитьНастройкиОСКД());
Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, НастройкиОСКД);
ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиОСКД.Инициализировать(Макет);
ТаблДок.Очистить();
ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВыводаОСКД.УстановитьДокумент(ТаблДок);
ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);
Возврат ТаблДок;
КонецФункции
ДанныеСКД = ПолучениеДанныхСКД(ЭтаФорма.Результат);
, а после через цикл делаю перебор черезДля Каждого ТУТМНЕНЕПОНЯТНОКАКОЙОПЕРАНДУСТАНОВИТЬ ИЗ ДанныеСКД Цикл
//Тут делаю обработку данных с записью в ХМЛ
КонецЦикла
Для Каждого ТУТМНЕНЕПОНЯТНОКАКОЙОПЕРАНДУСТАНОВИТЬ ИЗ ДанныеСКД Цикл
//Тут делаю обработку данных с записью в ХМЛ
КонецЦикла
Vofka @ Вчера, 17:59
,
Мне нужно создать отчет в 1с на основе реализаций по алкоголю по этому , а после вытянуть его в xml файл, а тот уже и затягивается в так званую программу медок. Может есть вариант как вывести скд и потом его записать в xml файл? Спасибо большое за помощь!
oduvan @ Сегодня, 17:36
,
правильный подход заключается в том, что бы выполнить СКД, получить набор данных (в сыром, так сказать, виде) и работать с данными, а не с табличным документом. Результат СКД можно вывести, например, в таблицу значений. В Гугле есть много примеров.
Vofka @ 06.08.21, 19:14
,
Да, видел их, хотел уточнить по поводу такого, что у меня не выводит данные при нажатии на кнопку "Сформировать". Заполняю я вроде как правильно, могу предоставить код для понимания. Минусы то что я не могу найти информацию о том, какой элемент должен быть на форме " Таблица значений , табличный документ, Дерево...." ????
oduvan @ Сегодня, 10:54
,
если нажимается на кнопку значит есть форма. Надо пройти отладчиком
что не получается?
на форме таб.док
по кнопке выгрузить - считываете настройки компоновщика, формируете ТЗ или Дерево (через СКД), обрабатывете его, сохраняете в файл
А Вам точно нужен табличный документ?
При нажатии кнопки выгрузки в ХМЛ использовать тот же код, только
ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua