|
Ошибка при выгрузке по самописным правилам. "Поле объекта не обнаружено" | ☑ | ||
---|---|---|---|---|
0
Alex87r
18.07.17
✎
00:17
|
Привет всем, кто не спит)
Делаю правила обмена. При выгрузке документа отчет о продажах столкнулся с такой ошибкой: Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8014)}: Поле объекта не обнаружено (РасшифровкаПлатежа) в ПВД для данного объекта прописал: СтруктураДляВыгрузки.Вставить("Дата",Объект.Дата); СтруктураДляВыгрузки.Вставить("ВалютаДокумента",Объект.ВалютаДокумента); СтруктураДляВыгрузки.Вставить("ВидОперации","РозничнаяВыручка"); СтруктураДляВыгрузки.Вставить("ВыручкаСНТТ",истина); СтруктураДляВыгрузки.Вставить("Номер",Объект.Номер); СтруктураДляВыгрузки.Вставить("Организация",Объект.Фирма); СтруктураДляВыгрузки.Вставить("Контрагент",Объект.Склад); СтруктураДляВыгрузки.Вставить("СуммаДокумента",КоллекцияОбъектов.Итог("СуммаПлатежа")); СтруктураДляВыгрузки.Вставить("РасшифровкаПлатежа",КоллекцияОбъектов); ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКасс В ПКО, в приемнике для этого правила в свойствах есть реквизит "РасшифровкаПлатежа". https://yadi.sk/i/VTGOwNZF3L9DXn Куда еще смотреть?) |
|||
1
Alex87r
18.07.17
✎
00:18
|
ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКассовыйОрдер");
|
|||
2
Альбатрос
18.07.17
✎
05:55
|
Ты полностью код обработчика показывай
|
|||
3
Альбатрос
18.07.17
✎
05:55
|
и ошибку полностью, так указывается, где ошибка возникает.
|
|||
4
assasu
18.07.17
✎
05:57
|
(0) я бы в отладчик пошел.
|
|||
5
Alex87r
18.07.17
✎
10:45
|
Эта ошибка полностью. :
Начало выгрузки: 18.07.2017 10:43:10 2 Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8014)}: Поле объекта не обнаружено (РасшифровкаПлатежа) Вот весь текст пвд, но я так понимаю, что ошибка не в нем возникает. Отказ = Объект.ПометкаУдаления; Если Не Объект.Проведен Тогда //и Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить Тогда Отказ = Истина; КонецЕсли; ТаблицаДляСвертки = Объект.Товары.Выгрузить(); ТаблицаДляСвертки.Свернуть("СтавкаНДС","Сумма, СуммаНДС"); Сообщить(ТаблицаДляСвертки.Количество()); КоллекцияОбъектов = Новый ТаблицаЗначений; КоллекцияОбъектов.Колонки.Добавить("СуммаПлатежа"); КоллекцияОбъектов.Колонки.Добавить("СтавкаНДС"); КоллекцияОбъектов.Колонки.Добавить("СуммаНДС"); СтруктураДляВыгрузки = Новый Структура; Для Каждого Строка Из ТаблицаДляСвертки Цикл НСТр = КоллекцияОбъектов.Добавить(); НСТр.СуммаПлатежа = Строка.Сумма; НСТр.СтавкаНДС = Строка.СтавкаНДС; НСТр.СуммаНДС = Строка.СуммаНДС; КонецЦикла; СтруктураДляВыгрузки.Очистить(); СтруктураДляВыгрузки.Вставить("Дата",Объект.Дата); СтруктураДляВыгрузки.Вставить("ВалютаДокумента",Объект.ВалютаДокумента); СтруктураДляВыгрузки.Вставить("ВидОперации","РозничнаяВыручка"); СтруктураДляВыгрузки.Вставить("ВыручкаСНТТ",истина); СтруктураДляВыгрузки.Вставить("Номер",Объект.Номер); СтруктураДляВыгрузки.Вставить("Организация",Объект.Фирма); СтруктураДляВыгрузки.Вставить("Контрагент",Объект.Склад); СтруктураДляВыгрузки.Вставить("СуммаДокумента",КоллекцияОбъектов.Итог("СуммаПлатежа")); СтруктураДляВыгрузки.Вставить("РасшифровкаПлатежа",КоллекцияОбъектов); ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКассовыйОрдер"); |
|||
6
h-sp
18.07.17
✎
10:48
|
(5) а зачем здесь вообще пвд? через задницу делаете. В пко ПередВыгрузкой сформируйте Коллекция.Объектов, вот и всё. А пвд стандартное.
|
|||
7
Alex87r
18.07.17
✎
10:59
|
(6) А как потом прочитать эту коллекцию? Скинь пример
|
|||
8
Ёпрст
18.07.17
✎
11:04
|
(7) галка получить из входящих данных.
|
|||
9
Alex87r
18.07.17
✎
11:07
|
(8) А пример создания такой коллекции?) Просто я так не делал. Я эти правила сделал по аналогии, как УТ 10 - БП 2.
|
|||
10
h-sp
18.07.17
✎
11:09
|
(7) пишешь запрос в перед выгрузкой
потом КоллекцияОбъектов = Запрос.Выполнить().Выгрузить(); |
|||
11
Ёпрст
18.07.17
✎
11:18
|
(9)
в ПКГС напиши в ПередОбработкой() ..... КоллекцияОбъектов = ТаблицаДляСвёртки; |
|||
12
h-sp
18.07.17
✎
11:24
|
(7) да, немного перепутал. в ПГКС надо. Это на таб части щелкаешь изменить. и там типа
КоллекцияОбъектов = Источник.Товары.Выгрузить(); Для каждого СтрокаТовары Из КоллекцияОбъектов Цикл СтрокаТовары.Коэффициент = СтрокаТовары.ЕдиницаИзмерения.Коэффициент; СтрокаТовары.Количество = СтрокаТовары.Количество * СтрокаТовары.ЕдиницаИзмерения.Коэффициент; //СтрокаТовары.Цена = ?(СтрокаТовары.Количество <> 0, СтрокаТовары.Сумма / СтрокаТовары.Количество, 0); СтрокаТовары.Содержание = ""; КонецЦикла; // Добавим услуги Для Каждого СтрокаУслуги Из Источник.Услуги Цикл СтрокаТовары = КоллекцияОбъектов.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТовары, СтрокаУслуги); КонецЦикла; |
|||
13
Alex87r
18.07.17
✎
12:10
|
Засунул в ПКО, "Перед выгрузкой":
ТаблицаДляСвертки = Источник.Товары.Выгрузить(); ТаблицаДляСвертки.Свернуть("СтавкаНДС","Сумма, СуммаНДС"); Сообщить(ТаблицаДляСвертки.Количество()); КоллекцияОбъектов = Новый ТаблицаЗначений; КоллекцияОбъектов.Колонки.Добавить("СуммаПлатежа"); КоллекцияОбъектов.Колонки.Добавить("СтавкаНДС"); КоллекцияОбъектов.Колонки.Добавить("СуммаНДС"); ИсходящиеДанные = Новый Структура; Для Каждого Строка Из ТаблицаДляСвертки Цикл НСТр = КоллекцияОбъектов.Добавить(); НСТр.СуммаПлатежа = Строка.Сумма; НСТр.СтавкаНДС = Строка.СтавкаНДС; НСТр.СуммаНДС = Строка.СуммаНДС; КонецЦикла; ИсходящиеДанные.Очистить(); ИсходящиеДанные.Вставить("Дата",Источник.Дата); ИсходящиеДанные.Вставить("ВалютаДокумента",Источник.ВалютаДокумента); ИсходящиеДанные.Вставить("ВидОперации","РозничнаяВыручка"); ИсходящиеДанные.Вставить("ВыручкаСНТТ",истина); ИсходящиеДанные.Вставить("Номер",Источник.Номер); ИсходящиеДанные.Вставить("Организация",Источник.Фирма); ИсходящиеДанные.Вставить("Контрагент",Источник.Склад); ИсходящиеДанные.Вставить("СуммаДокумента",КоллекцияОбъектов.Итог("СуммаПлатежа")); ИсходящиеДанные.Вставить("РасшифровкаПлатежа",КоллекцияОбъектов); Выдает ошибку: Ошибка в обработчике события ПередВыгрузкойОбъекта ПКО = ПриходныйКассовыйОрдер (ДокументСсылка.ZОтчет --> ДокументСсылка.ПриходныйКассовыйОрдер) Объект = Структура (Структура) Обработчик = ПередВыгрузкойОбъекта ОписаниеОшибки = Поле объекта не обнаружено (Товары) ПозицияМодуля = (6) КодСообщения = 41 Ошибка в обработчике события ПередВыгрузкойОбъекта ПВД = ZОтчет Объект = Отчет кассовой смены #030717_006 от 03.07.2017 23:59:59 (Отчет кассовой смены) Обработчик = ПередВыгрузкойОбъектаВыборки ОписаниеОшибки = Ошибка в обработчике события ПередВыгрузкойОбъекта ПКО = ПриходныйКассовыйОрдер (ДокументСсылка.ZОтчет --> ДокументСсылка.ПриходныйКассовыйОрдер) Объект = Структура (Структура) Обработчик = ПередВыгрузкойОбъекта ОписаниеОшибки = Поле объекта не обнаружено (Товары) ПозицияМодуля = (6) КодСообщения = 41 ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1641) КодСообщения = 33 Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1695)}: Ошибка в обработчике события ПередВыгрузкойОбъекта ПВД = ZОтчет Объект = Отчет кассовой смены #030717_006 от 03.07.2017 23:59:59 (Отчет кассовой смены) Обработчик = ПередВыгрузкойОбъектаВыборки ОписаниеОшибки = Ошибка в обработчике события ПередВыгрузкойОбъекта ПКО = ПриходныйКассовыйОрдер (ДокументСсылка.ZОтчет --> ДокументСсылка.ПриходныйКассовыйОрдер) Объект = Структура (Структура) Обработчик = ПередВыгрузкойОбъекта ОписаниеОшибки = Поле объекта не обнаружено (Товары) ПозицияМодуля = (6) КодСообщения = 41 ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1641) КодСообщения = 33 |
|||
14
Ёпрст
18.07.17
✎
12:12
|
(13) не туда засунул. Нужно в ПГКС в ПередОбработкой пихать
|
|||
15
Ёпрст
18.07.17
✎
12:13
|
грубо, в ПКС у группы Расшифровка платежа жмешь F2 и там творишь
|
|||
16
Alex87r
18.07.17
✎
12:15
|
(15) Понятно) Попробую
|
|||
17
Alex87r
18.07.17
✎
14:01
|
Ребят, подскажите в чем дело. Ошибка:
Ошибка получения коллекции подчиненных объектов из входящих данных ПКО = ПриходныйКассовыйОрдер (ДокументСсылка.ZОтчет --> ДокументСсылка.ПриходныйКассовыйОрдер) ПКГС = 21 ( --> РасшифровкаПлатежа) Объект = Отчет кассовой смены #030717_008 от 03.07.2017 23:59:59 (Отчет кассовой смены) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7967) КодСообщения = 66 Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7990)}: Ошибка получения коллекции подчиненных объектов из входящих данных ПКО = ПриходныйКассовыйОрдер (ДокументСсылка.ZОтчет --> ДокументСсылка.ПриходныйКассовыйОрдер) ПКГС = 21 ( --> РасшифровкаПлатежа) Объект = Отчет кассовой смены #030717_008 от 03.07.2017 23:59:59 (Отчет кассовой смены) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7967) КодСообщения = 66 В отладчике появляется после. ВходящиеДанные = неопределено: Попытка КоллекцияОбъектов = ВходящиеДанные[ПКГС.Приемник]; |
|||
18
Ёпрст
18.07.17
✎
14:10
|
(17) А чего хоть в ПКГС то хоть написал ?
|
|||
19
Alex87r
18.07.17
✎
15:08
|
(18)
ТаблицаДляСвертки = Источник.Товары.Выгрузить(); ТаблицаДляСвертки.Свернуть("СтавкаНДС","Сумма, СуммаНДС"); Сообщить(ТаблицаДляСвертки.Количество()); КоллекцияОбъектов = Новый ТаблицаЗначений; КоллекцияОбъектов.Колонки.Добавить("СуммаПлатежа"); КоллекцияОбъектов.Колонки.Добавить("СтавкаНДС"); КоллекцияОбъектов.Колонки.Добавить("СуммаНДС"); ИсходящиеДанные = Новый Структура; Для Каждого Строка Из ТаблицаДляСвертки Цикл НСТр = КоллекцияОбъектов.Добавить(); НСТр.СуммаПлатежа = Строка.Сумма; НСТр.СтавкаНДС = Строка.СтавкаНДС; НСТр.СуммаНДС = Строка.СуммаНДС; КонецЦикла; ИсходящиеДанные.Очистить(); ИсходящиеДанные.Вставить("Дата",Источник.Дата); ИсходящиеДанные.Вставить("ВалютаДокумента",Источник.ВалютаДокумента); ИсходящиеДанные.Вставить("ВидОперации","РозничнаяВыручка"); ИсходящиеДанные.Вставить("ВыручкаСНТТ",истина); ИсходящиеДанные.Вставить("Номер",Источник.Номер); ИсходящиеДанные.Вставить("Организация",Источник.Фирма); ИсходящиеДанные.Вставить("Контрагент",Источник.Склад); ИсходящиеДанные.Вставить("СуммаДокумента",КоллекцияОбъектов.Итог("СуммаПлатежа")); ИсходящиеДанные.Вставить("РасшифровкаПлатежа",КоллекцияОбъектов); |
|||
20
Alex87r
18.07.17
✎
16:16
|
ап)
|
|||
21
Alex87r
18.07.17
✎
17:34
|
В общем я вернулся к тому, с чего начиналось. Т.е. к (5)
В отладчике нашел, что сначала выгружается моя заданная структура, а ошибка вылетает на ссылке документа Отчет кассовой смены. Там нету ТЧ "РасшифровкаПлатежа". Добавил строчку в конце ПВД, после ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКассовыйОрдер"); Отказ = Истина; Сейчас работает, если гружу 1 документ. Если выбираю 2 документа, то грузится все равно один) Как это побороть?) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |