Вход | Регистрация


1С:Предприятие ::

Метки:

Ошибка при выгрузке по самописным правилам. "Поле объекта не обнаружено"

Я
   Alex87r
 
18.07.17 - 00:17
Привет всем, кто не спит)

Делаю правила обмена. При выгрузке документа отчет о продажах столкнулся с такой ошибкой:

Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8014)}: Поле объекта не обнаружено (РасшифровкаПлатежа)

в ПВД для данного объекта прописал:

СтруктураДляВыгрузки.Вставить("Дата",Объект.Дата);
СтруктураДляВыгрузки.Вставить("ВалютаДокумента",Объект.ВалютаДокумента);
СтруктураДляВыгрузки.Вставить("ВидОперации","РозничнаяВыручка");
СтруктураДляВыгрузки.Вставить("ВыручкаСНТТ",истина);
СтруктураДляВыгрузки.Вставить("Номер",Объект.Номер);
СтруктураДляВыгрузки.Вставить("Организация",Объект.Фирма);
СтруктураДляВыгрузки.Вставить("Контрагент",Объект.Склад);
СтруктураДляВыгрузки.Вставить("СуммаДокумента",КоллекцияОбъектов.Итог("СуммаПлатежа"));
СтруктураДляВыгрузки.Вставить("РасшифровкаПлатежа",КоллекцияОбъектов);
    

    ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКасс

В ПКО, в приемнике для этого правила в свойствах есть реквизит "РасшифровкаПлатежа".
https://yadi.sk/i/VTGOwNZF3L9DXn
Куда еще смотреть?)
 
  Рекламное место пустует
   Alex87r
 
1 - 18.07.17 - 00:18
ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКассовыйОрдер");
   Альбатрос
 
2 - 18.07.17 - 05:55
Ты полностью код обработчика показывай
   Альбатрос
 
3 - 18.07.17 - 05:55
и ошибку полностью, так указывается, где ошибка возникает.
   assasu
 
4 - 18.07.17 - 05:57
(0) я бы в отладчик пошел.
   Alex87r
 
5 - 18.07.17 - 10:45
Эта ошибка полностью. :
Начало выгрузки:   18.07.2017 10:43:10
2

Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8014)}: Поле объекта не обнаружено (РасшифровкаПлатежа)


Вот весь текст пвд, но я так понимаю, что ошибка не в нем возникает.

Отказ = Объект.ПометкаУдаления;
Если Не Объект.Проведен Тогда//и Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить Тогда

    Отказ = Истина;
КонецЕсли;

ТаблицаДляСвертки = Объект.Товары.Выгрузить();

ТаблицаДляСвертки.Свернуть("СтавкаНДС","Сумма, СуммаНДС");
Сообщить(ТаблицаДляСвертки.Количество());    
КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("СуммаПлатежа");
КоллекцияОбъектов.Колонки.Добавить("СтавкаНДС");
КоллекцияОбъектов.Колонки.Добавить("СуммаНДС");

СтруктураДляВыгрузки = Новый Структура;

Для Каждого Строка Из ТаблицаДляСвертки Цикл
    НСТр = КоллекцияОбъектов.Добавить();
    НСТр.СуммаПлатежа =  Строка.Сумма;
    НСТр.СтавкаНДС       =  Строка.СтавкаНДС;
    НСТр.СуммаНДС       =  Строка.СуммаНДС;    
КонецЦикла;    

СтруктураДляВыгрузки.Очистить();
        
СтруктураДляВыгрузки.Вставить("Дата",Объект.Дата);
СтруктураДляВыгрузки.Вставить("ВалютаДокумента",Объект.ВалютаДокумента);
СтруктураДляВыгрузки.Вставить("ВидОперации","РозничнаяВыручка");
СтруктураДляВыгрузки.Вставить("ВыручкаСНТТ",истина);
СтруктураДляВыгрузки.Вставить("Номер",Объект.Номер);
СтруктураДляВыгрузки.Вставить("Организация",Объект.Фирма);
СтруктураДляВыгрузки.Вставить("Контрагент",Объект.Склад);
СтруктураДляВыгрузки.Вставить("СуммаДокумента",КоллекцияОбъектов.Итог("СуммаПлатежа"));
СтруктураДляВыгрузки.Вставить("РасшифровкаПлатежа",КоллекцияОбъектов);
    

    ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКассовыйОрдер");
   h-sp
 
6 - 18.07.17 - 10:48
(5) а зачем здесь вообще пвд? через задницу делаете. В пко ПередВыгрузкой сформируйте Коллекция.Объектов, вот и всё. А пвд стандартное.
   Alex87r
 
7 - 18.07.17 - 10:59
(6) А как потом прочитать эту коллекцию? Скинь пример
   Ёпрст
 
8 - 18.07.17 - 11:04
(7) галка получить из входящих данных.
   Alex87r
 
9 - 18.07.17 - 11:07
(8) А пример создания такой коллекции?) Просто я так не делал. Я эти правила сделал по аналогии, как УТ 10 - БП 2.
   h-sp
 
10 - 18.07.17 - 11:09
(7) пишешь запрос в перед выгрузкой

потом КоллекцияОбъектов = Запрос.Выполнить().Выгрузить();
 
  Рекламное место пустует
   Ёпрст
 
11 - 18.07.17 - 11:18
(9)
в ПКГС напиши в ПередОбработкой()

.....

КоллекцияОбъектов = ТаблицаДляСвёртки;
   h-sp
 
12 - 18.07.17 - 11:24
(7) да, немного перепутал. в ПГКС надо. Это на таб части щелкаешь изменить. и там типа

КоллекцияОбъектов = Источник.Товары.Выгрузить();

Для каждого СтрокаТовары Из КоллекцияОбъектов Цикл
    СтрокаТовары.Коэффициент = СтрокаТовары.ЕдиницаИзмерения.Коэффициент;
    СтрокаТовары.Количество = СтрокаТовары.Количество * СтрокаТовары.ЕдиницаИзмерения.Коэффициент;
    //СтрокаТовары.Цена = ?(СтрокаТовары.Количество <> 0, СтрокаТовары.Сумма / СтрокаТовары.Количество, 0);

    СтрокаТовары.Содержание = "";
КонецЦикла;
// Добавим услуги

Для Каждого СтрокаУслуги Из Источник.Услуги Цикл
    СтрокаТовары = КоллекцияОбъектов.Добавить();
    ЗаполнитьЗначенияСвойств(СтрокаТовары, СтрокаУслуги);
КонецЦикла;
   Alex87r
 
13 - 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 и там творишь
   Alex87r
 
16 - 18.07.17 - 12:15
(15) Понятно) Попробую
   Alex87r
 
17 - 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) А чего хоть в ПКГС то хоть написал ?
   Alex87r
 
19 - 18.07.17 - 15:08
(18)

ТаблицаДляСвертки = Источник.Товары.Выгрузить();

ТаблицаДляСвертки.Свернуть("СтавкаНДС","Сумма, СуммаНДС");
Сообщить(ТаблицаДляСвертки.Количество());    
КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("СуммаПлатежа");
КоллекцияОбъектов.Колонки.Добавить("СтавкаНДС");
КоллекцияОбъектов.Колонки.Добавить("СуммаНДС");

ИсходящиеДанные = Новый Структура;

Для Каждого Строка Из ТаблицаДляСвертки Цикл
    НСТр = КоллекцияОбъектов.Добавить();
    НСТр.СуммаПлатежа =  Строка.Сумма;
    НСТр.СтавкаНДС       =  Строка.СтавкаНДС;
    НСТр.СуммаНДС       =  Строка.СуммаНДС;    
КонецЦикла;    

ИсходящиеДанные.Очистить();
        
ИсходящиеДанные.Вставить("Дата",Источник.Дата);
ИсходящиеДанные.Вставить("ВалютаДокумента",Источник.ВалютаДокумента);
ИсходящиеДанные.Вставить("ВидОперации","РозничнаяВыручка");
ИсходящиеДанные.Вставить("ВыручкаСНТТ",истина);
ИсходящиеДанные.Вставить("Номер",Источник.Номер);
ИсходящиеДанные.Вставить("Организация",Источник.Фирма);
ИсходящиеДанные.Вставить("Контрагент",Источник.Склад);
ИсходящиеДанные.Вставить("СуммаДокумента",КоллекцияОбъектов.Итог("СуммаПлатежа"));
ИсходящиеДанные.Вставить("РасшифровкаПлатежа",КоллекцияОбъектов);
   Alex87r
 
20 - 18.07.17 - 16:16
ап)
   Alex87r
 
21 - 18.07.17 - 17:34
В общем я вернулся к тому, с чего начиналось. Т.е. к (5)
В отладчике нашел, что сначала выгружается моя заданная структура, а ошибка вылетает на ссылке документа Отчет кассовой смены. Там нету ТЧ "РасшифровкаПлатежа".
Добавил строчку в конце ПВД, после

 ВыгрузитьПоПравилу(СтруктураДляВыгрузки,,,, "ПриходныйКассовыйОрдер");
 

Отказ = Истина;

Сейчас работает, если гружу 1 документ.
Если выбираю 2 документа, то грузится все равно один) Как это побороть?)



Список тем форума
Рекламное место пустует   Рекламное место пустует
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует