|
Конвертация 2.0 | ☑ | ||
---|---|---|---|---|
0
bebibo
26.09.23
✎
13:25
|
Конвертация данных 2.0. Запросом получаю сгруппированные данные таблицы, которая в документе из ЗУП. Нужно данные из этого запроса подставить в таблицу в УНФ. Как можно это сделать. Знаю что можно как-то параметром передать результат запроса, подскажите как это сделать?
|
|||
1
mikecool
26.09.23
✎
15:04
|
читай справку в каждом разделе, надо объявить коллекцию - предопределенное ее имя есть в справке, на память - не приходит
|
|||
2
MrBen
26.09.23
✎
16:13
|
Давно я делал что-то подобное. Как пример могу дать ссылку на публикацию в инфостарте. Там сворачивал реализации из источника и создавал документ для приемника. Не помню точно но вроде в ПВД это делается
|
|||
3
boozin
26.09.23
✎
17:10
|
Не знаю твой ли случай, но:
1. В ПКО таблицы пишем в обработчике ПередОбработкой что-то вроде Запрос = Новый Запрос( "ВЫБРАТЬ | ВыпускПродукцииТовары.Номенклатура КАК Номенклатура, | ВыпускПродукцииТовары.Количество КАК Количество, | Истина КАК ЭтоТовар |ИЗ | Документ.ВыпускПродукции.Товары КАК ВыпускПродукцииТовары |ГДЕ | ВыпускПродукцииТовары.Ссылка = &Источник | И ВыпускПродукцииТовары.Номенклатура.ТоварнаяГруппа <> ЗНАЧЕНИЕ(Справочник.ТоварныеГруппы.СобственнаяПродукция) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВыпускПродукцииПроизводство.Ингредиент, | СУММА(ВыпускПродукцииПроизводство.КоличествоИнгредиента), | МАКСИМУМ(ЛОЖЬ) КАК ЭтоТовар |ИЗ | Документ.ВыпускПродукции.Производство КАК ВыпускПродукцииПроизводство |ГДЕ | ВыпускПродукцииПроизводство.Ссылка = &Источник | И ВыпускПродукцииПроизводство.Ингредиент.ТоварнаяГруппа <> ЗНАЧЕНИЕ(Справочник.ТоварныеГруппы.СобственнаяПродукция) | |СГРУППИРОВАТЬ ПО | ВыпускПродукцииПроизводство.Ингредиент | |ИМЕЮЩИЕ | СУММА(ВыпускПродукцииПроизводство.КоличествоИнгредиента) > 0"); Запрос.УстановитьПараметр("Источник", Источник.Ссылка); КоллекцияОбъектов = Запрос.Выполнить().Выгрузить(); 2. В табличную часть добавляем реквизит с признаком "Передавать данные в параметр". Присвоиваем ему нужное имя. Это надо для того, чтобы ТЧ попала в параметры объекта 3. В обработчике ПослеЗагрузки находим ее так: ТабЧ = ""; Если ПараметрыОбъекта <> Неопределено И ПараметрыОбъекта["ТоварыТабличнаяЧасть"] <> Неопределено Тогда ТабЧ = ПараметрыОбъекта["ТоварыТабличнаяЧасть"]; КонецЕсли; В моем случае таблица называется "Товары", а "ТабличнаяЧасть" - шаманская добавка... :) Должно работать |
|||
4
MrBen
27.09.23
✎
13:18
|
(3) У меня другой вариант работал, пишется в ПВД:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента, | РеализацияТоваровУслугТовары.Ссылка.ВидОперации, | РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента, | РеализацияТоваровУслугТовары.Ссылка.Контрагент, | МАКСИМУМ(1) КАК КратностьВзаиморасчетов, | МАКСИМУМ(1) КАК КурсВзаиморасчетов, | РеализацияТоваровУслугТовары.Ссылка.Организация, | РеализацияТоваровУслугТовары.Ссылка.Склад, | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС, | РеализацияТоваровУслугТовары.Ссылка.ТипЦен, | РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС, | РеализацияТоваровУслугТовары.Номенклатура, | СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество, | МАКСИМУМ(1) КАК КоличествоМест, | РеализацияТоваровУслугТовары.ЕдиницаИзмерения, | МАКСИМУМ(1) КАК Коэффициент, | РеализацияТоваровУслугТовары.Цена, | СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма, | РеализацияТоваровУслугТовары.СтавкаНДС, | СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И РеализацияТоваровУслугТовары.Ссылка.Проведен | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслугТовары.СтавкаНДС, | РеализацияТоваровУслугТовары.Ссылка.Контрагент, | РеализацияТоваровУслугТовары.Ссылка.ВидОперации, | РеализацияТоваровУслугТовары.Ссылка.Организация, | РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС, | РеализацияТоваровУслугТовары.ЕдиницаИзмерения, | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС, | РеализацияТоваровУслугТовары.Ссылка.Склад, | РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Ссылка.ТипЦен, | РеализацияТоваровУслугТовары.Цена, | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента | |УПОРЯДОЧИТЬ ПО | РеализацияТоваровУслугТовары.Ссылка.Контрагент, | РеализацияТоваровУслугТовары.Ссылка.Склад"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); ТЗ = РезультатЗапроса.Выгрузить(); ТЧ = ТЗ.СкопироватьКолонки(); ТЗРез = ТЗ.СкопироватьКолонки(); ТЗРез.Колонки.Добавить("Товары"); ПозТЗ = 0; Пока Выборка.СледующийПоЗначениюПоля("Контрагент") Цикл НоваяСтрока = ТЗРез.Добавить(); //Создали шапку документа ЗаполнитьЗначенияСвойств(НоваяСтрока, ТЗ[ПозТЗ]); ТекущийСклад = Выборка.Склад; Пока Выборка.Следующий() Цикл Если ТекущийСклад = Выборка.Склад Тогда //Пока все товары с одного склада ЗаполнитьЗначенияСвойств(ТЧ.Добавить(), ТЗ[ПозТЗ]); //заполняем ТЧ документа ПозТЗ = ПозТЗ+1; Иначе //Сменился склад, ТекущийСклад = Выборка.Склад; НоваяСтрока.Товары = ТЧ.Скопировать(); //Фиксируем докупент по предыдущему складу ТЧ.Очистить(); НоваяСтрока = ТЗРез.Добавить(); //и начинаем заполнять для следующего. ЗаполнитьЗначенияСвойств(НоваяСтрока, ТЗ[ПозТЗ]); ЗаполнитьЗначенияСвойств(ТЧ.Добавить(), ТЗ[ПозТЗ]); ПозТЗ = ПозТЗ+1; КонецЕсли; КонецЦикла; НоваяСтрока.Товары = ТЧ.Скопировать(); ТЧ.Очистить(); КонецЦикла; ВыборкаДанных = ТЗРез; |
|||
5
boozin
27.09.23
✎
15:07
|
Не понятно, что автор хочет сделать. Если он хочет загрузить ТЧ документа из некоей таблицы, тогда это "Получать из входящих данных" и тогда в ПВД эти данные заполняются. а потом ВыгрузитьПоПравилу
Примерно так: ВыборкаПоДокументам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоДокументам.Следующий() Цикл ОписаниеЗарплатаКВыплате = Новый Структура(СтрокаЗарплатаКВыплате); ОписаниеЗарплатаКВыплате.Организация = ВыборкаПоДокументам.Ссылка.Организация; ОписаниеЗарплатаКВыплате.Банк = ВыборкаПоДокументам.Ссылка.ЗарплатныйПроект; ОписаниеЗарплатаКВыплате.ВидДоходаИсполнительногоПроизводства = ВыборкаПоДокументам.Ссылка.ВидДоходаИсполнительногоПроизводства; ОписаниеЗарплатаКВыплате.ХарактерВыплаты = ВыборкаПоДокументам.Ссылка.СпособВыплаты; ОписаниеЗарплатаКВыплате.Дата = ВыборкаПоДокументам.Ссылка.Дата; ОписаниеЗарплатаКВыплате.Номер = ВыборкаПоДокументам.Ссылка.Номер; ОписаниеЗарплатаКВыплате.Комментарий = "Выгрузка из ЗУП 3.1 " + Строка(ВыборкаПоДокументам.Ссылка.СпособВыплаты) + " за " + Строка(Формат(ВыборкаПоДокументам.Ссылка.ПериодРегистрации, "ДФ=""ММММ гггг""")) + " №" + ВыборкаПоДокументам.Ссылка.Номер + " от " + Строка(Формат(ВыборкаПоДокументам.Ссылка.Дата, "ДЛФ=Д")); ОписаниеЗарплатаКВыплате.КраткийСоставДокумента = ВыборкаПоДокументам.Ссылка.КраткийСоставДокумента; ОписаниеЗарплатаКВыплате.Ответственный = ВыборкаПоДокументам.Ссылка.Ответственный; ОписаниеЗарплатаКВыплате.ПериодРегистрации = ВыборкаПоДокументам.Ссылка.ПериодРегистрации; ОписаниеЗарплатаКВыплате.ПодразделениеОрганизации = ВыборкаПоДокументам.Ссылка.Подразделение; Зарплата.Очистить(); ВыборкаПоСтрокам = ВыборкаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоСтрокам.Следующий() Цикл СтрокаЗарплата = Зарплата.Добавить(); Если Параметры.ВыгружатьВРазрезеФизическихЛиц Тогда СтрокаЗарплата.ФизическоеЛицо = ВыборкаПоСтрокам.ФизическоеЛицо; Иначе СтрокаЗарплата.ФизическоеЛицо = Справочники.ФизическиеЛица.ПустаяСсылка(); КонецЕсли; СтрокаЗарплата.КВыплате = ВыборкаПоСтрокам.КВыплате; СтрокаЗарплата.КомпенсацияЗаЗадержкуЗарплаты = ВыборкаПоСтрокам.КомпенсацияЗаЗадержкуЗарплаты; КонецЦикла; Зарплата.Свернуть("ФизическоеЛицо", "КВыплате, КомпенсацияЗаЗадержкуЗарплаты"); ОписаниеЗарплатаКВыплате.Зарплата = Зарплата; ВыгрузитьПоПравилу(, , ОписаниеЗарплатаКВыплате, , "ЗарплатаКВыплатеВБанк"); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |