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


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 документа, то грузится все равно один) Как это побороть?)



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