Конвертация данных 2.1 несколько документов в один, помогите!
Не могу передать данные из УТ 10.3 в БП 3.0, надо из нескольких документов по условию сделать один, то есть из первого (последнего) взять шапку, из остальных документов заполнить табличную часть, в ПКО я оставляю пустой источник, в ПВД добавляю способ произвольный алгоритм и в процедуре перед обработкой его добавляю, в результате по этим правилам в журнале не пишет никаких ошибок и выдает сообщение "не транзакции" вроде все уже проверил, не знаю даже куда копать, помогите!!!
Вот запрос, который я делаю:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.ВерсияДанных,
| РеализацияТоваровУслуг.ПометкаУдаления,
| РеализацияТоваровУслуг.Номер,
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Проведен,
| РеализацияТоваровУслуг.ВидОперации,
| РеализацияТоваровУслуг.Организация,
| РеализацияТоваровУслуг.БанковскийСчетОрганизации,
| РеализацияТоваровУслуг.ОтражатьВУправленческомУчете,
| РеализацияТоваровУслуг.ОтражатьВБухгалтерскомУчете,
| РеализацияТоваровУслуг.ОтражатьВНалоговомУчете,
| РеализацияТоваровУслуг.Подразделение,
| РеализацияТоваровУслуг.Комментарий,
| РеализацияТоваровУслуг.Сделка,
| РеализацияТоваровУслуг.Склад,
| РеализацияТоваровУслуг.ДоговорКонтрагента,
| РеализацияТоваровУслуг.Контрагент,
| РеализацияТоваровУслуг.ТипЦен,
| РеализацияТоваровУслуг.ВалютаДокумента,
| РеализацияТоваровУслуг.УчитыватьНДС КАК ДокументБезНДС,
| РеализацияТоваровУслуг.СуммаВключаетНДС,
| РеализацияТоваровУслуг.КурсВзаиморасчетов,
| РеализацияТоваровУслуг.СуммаДокумента,
| РеализацияТоваровУслуг.КратностьВзаиморасчетов,
| РеализацияТоваровУслуг.Ответственный,
| РеализацияТоваровУслуг.ВидПередачи,
| РеализацияТоваровУслуг.АдресДоставки,
| РеализацияТоваровУслуг.Грузополучатель,
| РеализацияТоваровУслуг.Грузоотправитель,
| РеализацияТоваровУслуг.Проект,
| РеализацияТоваровУслуг.ДисконтнаяКарта,
| РеализацияТоваровУслуг.УсловиеПродаж,
| РеализацияТоваровУслуг.ОтключитьКонтрольВзаиморасчетов,
| РеализацияТоваровУслуг.ОтпускРазрешил,
| РеализацияТоваровУслуг.ОтпускПроизвел,
| РеализацияТоваровУслуг.ДоверенностьНомер,
| РеализацияТоваровУслуг.ДоверенностьДата,
| РеализацияТоваровУслуг.ДоверенностьВыдана,
| РеализацияТоваровУслуг.ДоверенностьЧерезКого,
| РеализацияТоваровУслуг.ДополнениеКАдресуДоставки,
| РеализацияТоваровУслуг.НомерЧекаККМ,
| РеализацияТоваровУслуг.ККМ,
| РеализацияТоваровУслуг.НомерЗаказаЭкзист,
| РеализацияТоваровУслуг.АдресЭП,
| РеализацияТоваровУслуг.ТекстЭлектронногоЧека,
| РеализацияТоваровУслуг.Товары.(
| Ссылка,
| НомерСтроки,
| ЕдиницаИзмерения,
| ЕдиницаИзмеренияМест,
| Качество,
| Количество,
| КоличествоМест,
| Коэффициент,
| Номенклатура,
| ПроцентСкидкиНаценки,
| СерияНоменклатуры КАК СерияНоменклатуры,
| СпособСписанияОстаткаТоваров,
| СтавкаНДС,
| Сумма,
| СуммаНДС,
| ХарактеристикаНоменклатуры,
| Цена,
| Склад,
| ПроцентАвтоматическихСкидок,
| УсловиеАвтоматическойСкидки,
| ЗначениеУсловияАвтоматическойСкидки,
| КлючСтроки,
| КлючСвязи,
| ЗаказПокупателя,
| КодТНВЭД
| ),
| РеализацияТоваровУслуг.ВозвратнаяТара.(
| Ссылка,
| НомерСтроки,
| Номенклатура,
| Количество,
| Цена,
| Сумма,
| СпособСписанияОстаткаТоваров,
| Склад,
| ЗаказПокупателя
| ),
| РеализацияТоваровУслуг.Услуги.(
| Ссылка,
| НомерСтроки,
| Содержание,
| Количество,
| Цена,
| Сумма,
| СтавкаНДС,
| СуммаНДС,
| Номенклатура,
| ПроцентСкидкиНаценки,
| ЗначениеУсловияАвтоматическойСкидки,
| ПроцентАвтоматическихСкидок,
| УсловиеАвтоматическойСкидки,
| ЗаказПокупателя
| )
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
| И РеализацияТоваровУслуг.Контрагент.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
| И НЕ РеализацияТоваровУслуг.Контрагент.Наименование ПОДОБНО ""% ИП""
| И НЕ РеализацияТоваровУслуг.Контрагент.Наименование ПОДОБНО ""%ИП ""
|
|УПОРЯДОЧИТЬ ПО
| Дата";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДанных = Новый ТаблицаЗначений;
ВыборкаДанныхТовары = новый ТаблицаЗначений;
ВыборкаДанныхТоварывр = новый ТаблицаЗначений;
СсылкаНаПервую = неопределено;
ВыборкаДетальныеЗаписи = РезультатЗапроса.выбрать ();
ВыборкаДанных = РезультатЗапроса.Выгрузить();
ВыборкаДанных.Очистить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если СсылкаНаПервую = неопределено и ВыборкаДетальныеЗаписи.Ссылка <> неопределено тогда
ВыборкаДанныхТовары = ВыборкаДетальныеЗаписи.Товары.выгрузить();
ВыборкаДанныхТовары.Очистить();
ДобавитьЗначение = ВыборкаДанных.Добавить();
ЗаполнитьЗначенияСвойств (ДобавитьЗначение,ВыборкаДетальныеЗаписи);
ВыборкаДанных[0].Товары = ВыборкаДанныхТовары.Скопировать();
ВыборкаДанных[0].Товары.очистить();
КонецЕсли;
Если ВыборкаДетальныеЗаписи.Ссылка <> неопределено и СсылкаНаПервую = неопределено тогда
СсылкаНаПервую = ВыборкаДетальныеЗаписи.Ссылка;
КонецЕсли;
Если ЗначениеЗаполнено (ВыборкаДетальныеЗаписи.ссылка) тогда
ВыборкаДанныхТоварывр = ВыборкаДетальныеЗаписи.Товары.выгрузить ();
ДЛя каждого строка из ВыборкаДанныхТоварывр цикл
ДобавитьТовары = ВыборкаДанныхТовары.Добавить();
ЗаполнитьЗначенияСвойств (ДобавитьТовары,строка);
КонецЦикла;
КонецЕсли;
КонецЦикла;
Для каждого строка из ВыборкаДанныхТовары цикл
ДобавитьСтрокуТовары = ВыборкаДанных[0].Товары.Добавить();
ЗаполнитьЗначенияСвойств (ДобавитьСтрокуТовары,строка);
КонецЦикла;
Вот запрос, который я делаю:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.ВерсияДанных,
| РеализацияТоваровУслуг.ПометкаУдаления,
| РеализацияТоваровУслуг.Номер,
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Проведен,
| РеализацияТоваровУслуг.ВидОперации,
| РеализацияТоваровУслуг.Организация,
| РеализацияТоваровУслуг.БанковскийСчетОрганизации,
| РеализацияТоваровУслуг.ОтражатьВУправленческомУчете,
| РеализацияТоваровУслуг.ОтражатьВБухгалтерскомУчете,
| РеализацияТоваровУслуг.ОтражатьВНалоговомУчете,
| РеализацияТоваровУслуг.Подразделение,
| РеализацияТоваровУслуг.Комментарий,
| РеализацияТоваровУслуг.Сделка,
| РеализацияТоваровУслуг.Склад,
| РеализацияТоваровУслуг.ДоговорКонтрагента,
| РеализацияТоваровУслуг.Контрагент,
| РеализацияТоваровУслуг.ТипЦен,
| РеализацияТоваровУслуг.ВалютаДокумента,
| РеализацияТоваровУслуг.УчитыватьНДС КАК ДокументБезНДС,
| РеализацияТоваровУслуг.СуммаВключаетНДС,
| РеализацияТоваровУслуг.КурсВзаиморасчетов,
| РеализацияТоваровУслуг.СуммаДокумента,
| РеализацияТоваровУслуг.КратностьВзаиморасчетов,
| РеализацияТоваровУслуг.Ответственный,
| РеализацияТоваровУслуг.ВидПередачи,
| РеализацияТоваровУслуг.АдресДоставки,
| РеализацияТоваровУслуг.Грузополучатель,
| РеализацияТоваровУслуг.Грузоотправитель,
| РеализацияТоваровУслуг.Проект,
| РеализацияТоваровУслуг.ДисконтнаяКарта,
| РеализацияТоваровУслуг.УсловиеПродаж,
| РеализацияТоваровУслуг.ОтключитьКонтрольВзаиморасчетов,
| РеализацияТоваровУслуг.ОтпускРазрешил,
| РеализацияТоваровУслуг.ОтпускПроизвел,
| РеализацияТоваровУслуг.ДоверенностьНомер,
| РеализацияТоваровУслуг.ДоверенностьДата,
| РеализацияТоваровУслуг.ДоверенностьВыдана,
| РеализацияТоваровУслуг.ДоверенностьЧерезКого,
| РеализацияТоваровУслуг.ДополнениеКАдресуДоставки,
| РеализацияТоваровУслуг.НомерЧекаККМ,
| РеализацияТоваровУслуг.ККМ,
| РеализацияТоваровУслуг.НомерЗаказаЭкзист,
| РеализацияТоваровУслуг.АдресЭП,
| РеализацияТоваровУслуг.ТекстЭлектронногоЧека,
| РеализацияТоваровУслуг.Товары.(
| Ссылка,
| НомерСтроки,
| ЕдиницаИзмерения,
| ЕдиницаИзмеренияМест,
| Качество,
| Количество,
| КоличествоМест,
| Коэффициент,
| Номенклатура,
| ПроцентСкидкиНаценки,
| СерияНоменклатуры КАК СерияНоменклатуры,
| СпособСписанияОстаткаТоваров,
| СтавкаНДС,
| Сумма,
| СуммаНДС,
| ХарактеристикаНоменклатуры,
| Цена,
| Склад,
| ПроцентАвтоматическихСкидок,
| УсловиеАвтоматическойСкидки,
| ЗначениеУсловияАвтоматическойСкидки,
| КлючСтроки,
| КлючСвязи,
| ЗаказПокупателя,
| КодТНВЭД
| ),
| РеализацияТоваровУслуг.ВозвратнаяТара.(
| Ссылка,
| НомерСтроки,
| Номенклатура,
| Количество,
| Цена,
| Сумма,
| СпособСписанияОстаткаТоваров,
| Склад,
| ЗаказПокупателя
| ),
| РеализацияТоваровУслуг.Услуги.(
| Ссылка,
| НомерСтроки,
| Содержание,
| Количество,
| Цена,
| Сумма,
| СтавкаНДС,
| СуммаНДС,
| Номенклатура,
| ПроцентСкидкиНаценки,
| ЗначениеУсловияАвтоматическойСкидки,
| ПроцентАвтоматическихСкидок,
| УсловиеАвтоматическойСкидки,
| ЗаказПокупателя
| )
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
| И РеализацияТоваровУслуг.Контрагент.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
| И НЕ РеализацияТоваровУслуг.Контрагент.Наименование ПОДОБНО ""% ИП""
| И НЕ РеализацияТоваровУслуг.Контрагент.Наименование ПОДОБНО ""%ИП ""
|
|УПОРЯДОЧИТЬ ПО
| Дата";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДанных = Новый ТаблицаЗначений;
ВыборкаДанныхТовары = новый ТаблицаЗначений;
ВыборкаДанныхТоварывр = новый ТаблицаЗначений;
СсылкаНаПервую = неопределено;
ВыборкаДетальныеЗаписи = РезультатЗапроса.выбрать ();
ВыборкаДанных = РезультатЗапроса.Выгрузить();
ВыборкаДанных.Очистить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если СсылкаНаПервую = неопределено и ВыборкаДетальныеЗаписи.Ссылка <> неопределено тогда
ВыборкаДанныхТовары = ВыборкаДетальныеЗаписи.Товары.выгрузить();
ВыборкаДанныхТовары.Очистить();
ДобавитьЗначение = ВыборкаДанных.Добавить();
ЗаполнитьЗначенияСвойств (ДобавитьЗначение,ВыборкаДетальныеЗаписи);
ВыборкаДанных[0].Товары = ВыборкаДанныхТовары.Скопировать();
ВыборкаДанных[0].Товары.очистить();
КонецЕсли;
Если ВыборкаДетальныеЗаписи.Ссылка <> неопределено и СсылкаНаПервую = неопределено тогда
СсылкаНаПервую = ВыборкаДетальныеЗаписи.Ссылка;
КонецЕсли;
Если ЗначениеЗаполнено (ВыборкаДетальныеЗаписи.ссылка) тогда
ВыборкаДанныхТоварывр = ВыборкаДетальныеЗаписи.Товары.выгрузить ();
ДЛя каждого строка из ВыборкаДанныхТоварывр цикл
ДобавитьТовары = ВыборкаДанныхТовары.Добавить();
ЗаполнитьЗначенияСвойств (ДобавитьТовары,строка);
КонецЦикла;
КонецЕсли;
КонецЦикла;
Для каждого строка из ВыборкаДанныхТовары цикл
ДобавитьСтрокуТовары = ВыборкаДанных[0].Товары.Добавить();
ЗаполнитьЗначенияСвойств (ДобавитьСтрокуТовары,строка);
КонецЦикла;
Прикрепленные файлы:


По теме из базы знаний
- RabbitMQ + Конвертация Данных 3.0
- Обработка обмена из Комплексной автоматизации 1.1 (2012г.) в Бухгалтерию 3.0 (для сотен организаций с плохими данными)
- Подсистема "Обмен данными. Конвертация 2.1". Автоматический обмен измененными данными. Управляемые и обычные формы. Включает отдельные подсистемы "Журнал событий", "Регламентные задания"
- RabbitMQ+КД 3. История повторения чужого опыта. Наступаем на одни и те же грабли дважды
- Database Compression Tool: Инструмент для свертки и сжатия баз данных 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически
Важно:
Если для выборки данных ПВД используется произвольный алгоритм и в обработчике ПВД "Перед обработкой" инициируется параметр ВыборкаДанных, то для ПКО следует установить признак "Не запоминать выгруженные объекты".
Это вопрос к тому:
- все флаги проставлены в КД?
- может попробовать передать результат запроса?
Важно:
Если для выборки данных ПВД используется произвольный алгоритм и в обработчике ПВД "Перед обработкой" инициируется параметр ВыборкаДанных, то для ПКО следует установить признак "Не запоминать выгруженные объекты".
Это вопрос к тому:
- все флаги проставлены в КД?
- может попробовать передать результат запроса?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот