|
Как обработать результат отчета СКД выведенный в табличный документ 1с БУ 8.3 | ☑ | ||
---|---|---|---|---|
0
oduvanchikyan
05.08.21
✎
17:09
|
Добрый день, столкнулся с задачей обрабатывать выведенные данные в табличный документ, для того чтобы после перебирать их и записать в файл XML.
Как я получаю данные? Создал Функцию, в которую передаю табличный документ(Результат), который находиться на форме. Он то и получает данные с СКД. Функция ПолучениеДанныхСКД(ТаблДок) //ТаблДок = Табличное поле, в нашем случае "Результат". ОбъектОтчет = РеквизитФормыВЗначение("Отчет"); ОСКД = ОбъектОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); НастройкиОСКД = ОСКД.НастройкиПоУмолчанию; ПараметрыДанныхОСКД = НастройкиОСКД.ПараметрыДанных.Элементы; //Элемент формы начало ЭлементНачалоПериода = ПараметрыДанныхОСКД.Найти("Начало"); ЭлементНачалоПериода.Использование = Истина; //ЭлементНачалоПериода.Значение = НачалоМесяца(ТекущаяДата()); ЭлементНачалоПериода.Значение = ЭтаФорма.Начало; // = значение Начала периода //Элемент формы конец ЭлементКонецПериода = ПараметрыДанныхОСКД.Найти("Конец"); ЭлементКонецПериода.Использование = Истина; //ЭлементКонецПериода.Значение = КонецМесяца(ТекущаяДата()); ЭлементКонецПериода.Значение = ЭтаФорма.Конец; КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных; //Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, КомпоновщикНастроекДанных.ПолучитьНастройкиОСКД()); Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, НастройкиОСКД); ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиОСКД.Инициализировать(Макет); ТаблДок.Очистить(); ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВыводаОСКД.УстановитьДокумент(ТаблДок); ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД); Возврат ТаблДок; КонецФункции Дело в том что, я не могу никак обработать результат, то есть я пробую его как ДанныеСКД = ПолучениеДанныхСКД(ЭтаФорма.Результат); а после через цикл делаю перебор через Для Каждого ТУТМНЕНЕПОНЯТНОКАКОЙОПЕРАНДУСТАНОВИТЬ ИЗ ДанныеСКД Цикл //Тут делаю обработку данных с записью в ХМЛ КонецЦикла Пожалуйста, подскажите, уже переделываю отчет 5 раз. Просто устал морально работать с ним, крышу сносит. Спасибо за вашу помощь! |
|||
1
ДенисЧ
05.08.21
✎
17:10
|
ДанныеСКД - у тебя табличный документ. Открываешь справку по табличному документу и изучаешь его свойства и методы.
|
|||
2
Kassern
05.08.21
✎
17:11
|
(0) результат СКД можно сохранить в таблицу значений вместо табдока, а дальше эту таблицу и обходишь в цикле заполняя свой xml файл.
|
|||
3
Kassern
05.08.21
✎
17:12
|
(0) можно и табдок прочитать в цикле по строкам.
|
|||
4
oduvanchikyan
05.08.21
✎
17:17
|
(2) Но ведь тогда результат отчета не выводиться?! Например, если брать функцию ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений, то результат пустой, может я не правильно, вывожу?! Могу предоставить код.
|
|||
5
oduvanchikyan
05.08.21
✎
17:17
|
(3) Через выбранные области или каким образом это можно организовать ? Можете пожалуйста, дать пример?
|
|||
6
Kassern
05.08.21
✎
17:18
|
||||
7
Kassern
05.08.21
✎
17:21
|
(4) Кусок кода, где в ТаблицаЗначений результат СКД выводится:
ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить( СКД, Настройки, ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаЗначений = Новый ТаблицаЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
|||
8
mistеr
05.08.21
✎
18:53
|
(4) Так тебе посмотреть или в файл записать? Если в файл, то выводи в коллекцию, с ней удобнее работать.
А можно и туда, и сюда. |
|||
9
ДенисЧ
05.08.21
✎
19:03
|
(8)
- Вы формируете отчётов на СКД? - Нет, просто показываю. - Красивое... |
|||
10
oduvanchikyan
06.08.21
✎
17:27
|
(9) Я формирую отчет с помощью СКД и хочу его записать в файл XML, но перед этим отчет должен быть выведен на экран
Может знаете как лучше сделать ? |
|||
11
Kassern
06.08.21
✎
17:30
|
(10) ну так у вас есть табличный документ с результатом запрос, берите да обходите его.
|
|||
12
VladZ
06.08.21
✎
17:31
|
(9) О! Прикол докатился и до мисты...
|
|||
13
VladZ
06.08.21
✎
17:33
|
(0) СКД -> Таблица значений -> файл XML
|
|||
14
mistеr
07.08.21
✎
08:56
|
(10) Еще раз вывести отчет в ТЗ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |