проблема с исполнением код обработчика "Перед выгрузкой"
Может кто подскажет.
Столкнулся с такой проблемой - взял в ЗУП 3.1.4 из правил обмена текст обработчика "Перед выгрузкой" для
ПВД документа "Отражение зарплаты...". В нем переопределяется объект на структуру:
ОписаниеОбъекта = Новый Структура;
...
Объект = ОписаниеОбъекта; === Вот на этой строке вылетает ошибка!
Так вот при выгрузке данных через встроенную в ЗУП обработку "Универсальный обмен данными" выдает ошибку:
Объект = Отражение зарплаты
Обработка = ПередВыгрузкойОбъектаВыборки
Поле объекта недоступно для записи (Ссылка)
Код ошибки = 33
Подскажите, пожалуйста - где копать? В типовом обмене ЗУП - БУХ это все работает. А тут не хочет!
Столкнулся с такой проблемой - взял в ЗУП 3.1.4 из правил обмена текст обработчика "Перед выгрузкой" для
ПВД документа "Отражение зарплаты...". В нем переопределяется объект на структуру:
ОписаниеОбъекта = Новый Структура;
...
Объект = ОписаниеОбъекта; === Вот на этой строке вылетает ошибка!
Так вот при выгрузке данных через встроенную в ЗУП обработку "Универсальный обмен данными" выдает ошибку:
Объект = Отражение зарплаты
Обработка = ПередВыгрузкойОбъектаВыборки
Поле объекта недоступно для записи (Ссылка)
Код ошибки = 33
Подскажите, пожалуйста - где копать? В типовом обмене ЗУП - БУХ это все работает. А тут не хочет!
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Потому что типовой обмен идет не с помощью обработки "УниверсальныйОбменДаннымиXML", там несколько иной механизм, с использованием планов обмена.
чтобы типовой обработчик перед выгрузкой заработал - нужно определить обработчик перед обработкой, и в этом обработчике, в переменную ВыборкаДанных поместить не ссылки а объекты.
я сделал так:
чтобы типовой обработчик перед выгрузкой заработал - нужно определить обработчик перед обработкой, и в этом обработчике, в переменную ВыборкаДанных поместить не ссылки а объекты.
я сделал так:
ВыборкаДанных = Новый Массив;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОтражениеЗарплатыВБухучете.Ссылка КАК Ссылка
|ИЗ
| Документ.ОтражениеЗарплатыВБухучете КАК ОтражениеЗарплатыВБухучете
|ГДЕ
| ОтражениеЗарплатыВБухучете.Организация = &Организация
| И ОтражениеЗарплатыВБухучете.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
Запрос.УстановитьПараметр("Организация", Параметры.Организация);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ВыборкаДанных.Добавить(Выборка.Ссылка.ПолучитьОбъект());
КонецЦикла;
Показать
Приветствую. Подскажите пожалуйста, все равно ошибка выходит в модуле перед выгрузкой. Добавил перед обработкой, но все равно такая же ошибка...
Необходимо выгрузить посредством "УниверсальныйОбменДаннымиXML", т.к. типовой обмен нет возможности использовать.
Ошибка в обработчике события ПередВыгрузкойОбъекта
ПВД = ОтражениеЗарплатыВБухучете
Объект = Отражение зарплаты в бухучете 0000-000001 от 31.03.2019 (Отражение зарплаты в бухучете)
Обработчик = ПередВыгрузкойОбъектаВыборки
ОписаниеОшибки = Поле объекта недоступно для записи (Ссылка)
ПозицияМодуля = (157)
КодСообщения = 33
Необходимо выгрузить посредством "УниверсальныйОбменДаннымиXML", т.к. типовой обмен нет возможности использовать.
Ошибка в обработчике события ПередВыгрузкойОбъекта
ПВД = ОтражениеЗарплатыВБухучете
Объект = Отражение зарплаты в бухучете 0000-000001 от 31.03.2019 (Отражение зарплаты в бухучете)
Обработчик = ПередВыгрузкойОбъектаВыборки
ОписаниеОшибки = Поле объекта недоступно для записи (Ссылка)
ПозицияМодуля = (157)
КодСообщения = 33
Заранее извиняюсь за некропостинг. Столкнулся с аналогичной проблемой. При обмене с выборкой по узлам плана обменов всё работает, если простая выгрузка без планов обмена - выдает эту ошибку.
Решил данную проблему с использованием функции ВыгрузитьПоПравилу():
Теперь работает и с планами обмена, и без них.
Может, кому пригодится.
Пока Выборка.Следующий() Цикл
//ругалось на эту строку
Объект = Выборка.Номенклатура;
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Родитель",Выборка.Родитель);
КонецЦикла;
ПоказатьРешил данную проблему с использованием функции ВыгрузитьПоПравилу():
Пока Выборка.Следующий() Цикл
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Родитель",Выборка.Родитель);
ВыгрузитьПоПравилу(Выборка.Номенклатура,,,ИсходящиеДанные,ИмяПКО);
Отказ = Истина;
КонецЦикла;
ПоказатьТеперь работает и с планами обмена, и без них.
Может, кому пригодится.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот