Быстрая корректировка правил обмена при добавлении реквизита.
Доброго времени суток, уважаемые.
Буквально вчера заказчик обновил конфигурацию БП 3.
И тут же в налаженном обмене из КА 1.1. начались проблемы.
Появилось сообщение при записи в целевую базу БП 3.0:
Ошибка в обработчике события ПослеЗагрузкиОбъекта
ИмяПКО = РеализацияТоваровУслуг
ТипОбъекта = Реализация (акт, накладная, УПД)
Объект = Реализация (акт, накладная, УПД) XXXXXXX от 05.11.2020 14:00:00
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПриЗаписи': {ОбщийМодуль.ЭлектронныйДокументооборотСКонтролирующимиОрганами.Модуль(2390)}: Ошибка при вызове метода контекста (ПолучитьОбработкуЭДО): Попытка передачи мутабельного значения результата метода ПолучитьОбработкуЭДО ().
Предварительный анализ показал, что возможным источником является добавление нового поля (реквизита), для обеспечения работы системы ЭДО в БП 3.0.
Вопрос заключаетcя в следующем: Существует ли возможность, не обновляя метаданные одной из баз, добавить в правила обмена новый реквизит, содержимое которого несущественно для функционала целевой базы.
Буквально вчера заказчик обновил конфигурацию БП 3.
И тут же в налаженном обмене из КА 1.1. начались проблемы.
Появилось сообщение при записи в целевую базу БП 3.0:
Ошибка в обработчике события ПослеЗагрузкиОбъекта
ИмяПКО = РеализацияТоваровУслуг
ТипОбъекта = Реализация (акт, накладная, УПД)
Объект = Реализация (акт, накладная, УПД) XXXXXXX от 05.11.2020 14:00:00
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПриЗаписи': {ОбщийМодуль.ЭлектронныйДокументооборотСКонтролирующимиОрганами.Модуль(2390)}: Ошибка при вызове метода контекста (ПолучитьОбработкуЭДО): Попытка передачи мутабельного значения результата метода ПолучитьОбработкуЭДО ().
Предварительный анализ показал, что возможным источником является добавление нового поля (реквизита), для обеспечения работы системы ЭДО в БП 3.0.
Вопрос заключаетcя в следующем: Существует ли возможность, не обновляя метаданные одной из баз, добавить в правила обмена новый реквизит, содержимое которого несущественно для функционала целевой базы.
По теме из базы знаний
- Универсальный редактор реквизитов объектов. Мультиобработчик
- Сравнение 1С8 и Navision
- 1С Характеристики номенклатуры. Переход на учёт по характеристикам для УТ, УНФ, Розница, КА
- Налоговый мониторинг: предыстория вопроса, законодательство, функциональность решений 1С
- Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Судя по ошибке, дело не в реквизитах, а в том, что вы с сервера на клиент мутабельный объект пытаетесь передать.
Обычно вся загрузка происходит на сервере, и таких ошибок быть не может. Почему у вас код на киента попал?
Вы случайно не через COM-соединение обмен осуществляете из обычного приложения, коим является КА1 ?
Если так - как быстрое решение попробуйте вместо "Прямого соединения" поставить в параметрах соединения обмен через "сетевой/локальный каталог". Если поможет - значит оно самое.
Обычно вся загрузка происходит на сервере, и таких ошибок быть не может. Почему у вас код на киента попал?
Вы случайно не через COM-соединение обмен осуществляете из обычного приложения, коим является КА1 ?
Если так - как быстрое решение попробуйте вместо "Прямого соединения" поставить в параметрах соединения обмен через "сетевой/локальный каталог". Если поможет - значит оно самое.
Та же проблема, только через комконнектор.
В процессе создается обработка, и много чего еще, мягко говоря....
Решил через расширение модуля ЭлектронныйДокументооборотСКонтролирующимиОрганами.
То есть все то же, но без создания обработки.
В процессе создается обработка, и много чего еще, мягко говоря....
Решил через расширение модуля ЭлектронныйДокументооборотСКонтролирующимиОрганами.
То есть все то же, но без создания обработки.
&Вместо("СоответствиеВидовДокументовФНС")
Функция ОЭ_СоответствиеВидовДокументовФНС()
Макет = Обработки.ДокументооборотСКонтролирующимиОрганами.ПолучитьМакет("ВидыПредставляемыхДокументов");
ОбластьЯчеек = Макет.Область(1, 1, Макет.ВысотаТаблицы, Макет.ШиринаТаблицы);
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
ПостроительЗапроса.Выполнить();
Виды = ПостроительЗапроса.Результат.Выгрузить();
Виды.Колонки.Добавить("Значение");
ПредобработкаВидовПредставляемыхДокументов(Виды);
Для каждого Вид Из Виды Цикл
Вид.Значение = Перечисления.ВидыПредставляемыхДокументов[Вид.Имя];
ОбработкаВидовПредставляемыхДокументов(Виды, Вид);
КонецЦикла;
ПостобработкаВидовПредставляемыхДокументов(Виды);
СоответствиеРезультат = Новый Соответствие;
Для каждого Вид Из Виды Цикл
СоответствиеРезультат.Вставить(Вид.Имя, Вид.Значение);
КонецЦикла;
Возврат СоответствиеРезультат;
КонецФункции
Функция КолонкиДляПреобразованияВБулево() Экспорт
КолонкиБулево = Новый Массив;
КолонкиБулево.Добавить("ЭтоНДС");
КолонкиБулево.Добавить("ЕстьЭД");
КолонкиБулево.Добавить("ОбязательноПодтверждение");
Возврат КолонкиБулево;
КонецФункции
Процедура ПредобработкаВидовПредставляемыхДокументов(Виды)
КолонкиБулево = КолонкиДляПреобразованияВБулево();
Для каждого Имя Из КолонкиБулево Цикл
Виды.Колонки.Добавить(Имя + "_Булево");
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаВидовПредставляемыхДокументов(Виды, Вид)
КолонкиБулево = КолонкиДляПреобразованияВБулево();
Для каждого Имя Из КолонкиБулево Цикл
Вид[Имя + "_Булево"] = Булево(Вид[Имя]);
КонецЦикла;
КонецПроцедуры
Процедура ПостобработкаВидовПредставляемыхДокументов(Виды)
КолонкиБулево = КолонкиДляПреобразованияВБулево();
Для каждого Имя Из КолонкиБулево Цикл
Виды.Колонки.Удалить(Имя);
Виды.Колонки[Имя + "_Булево"].Имя = Имя;
КонецЦикла;
КонецПроцедуры
Показать
Проблема из-за обработчика ЗаписатьИсточникВРегистрДокументыПоТребованиюФНС. Некоторые объекты теперь регистрируются в регистре сведений ДокументыПоТребованиюФНС.
Обойти это можно через установку записываемому объекту "ОбменДанными.Загрузка = Истина", но так отключаются все внутренние обработчики, которые часто полезны, например, установка вспомогательных/служебных реквизитов объектов.
В обработчике есть дополнительный обход: для записываемого объекта добавить ДополнительныеСвойства.Вставить("ГрупповоеПерепроведение", Истина). Это конечно не комильфо, но эффект такой же как и у предыдущих советов .
Обойти это можно через установку записываемому объекту "ОбменДанными.Загрузка = Истина", но так отключаются все внутренние обработчики, которые часто полезны, например, установка вспомогательных/служебных реквизитов объектов.
В обработчике есть дополнительный обход: для записываемого объекта добавить ДополнительныеСвойства.Вставить("ГрупповоеПерепроведение", Истина). Это конечно не комильфо, но эффект такой же как и у предыдущих советов .
Чтобы не трогать саму бухгалтерию в модуле экспорта пишем так
//ДокОбъект.ДополнительныеСвойства.Вставить("ЗаполнитьСчетаУчетаПередЗаписью", Истина);
// предыдущее не отрабатывает, т.к. пришлось установить ОбменДанными.Загрузка = Истина. См. ниже
Соединение.СчетаУчетаВДокументах.ЗаполнитьПередОтображениемПользователю(ДокОбъект);
// после обновления бухгалтерии
// {ОбщийМодуль.ЭлектронныйДокументооборотСКонтролирующимиОрганами.Модуль(2390)}: Ошибка при вызове метода контекста (ПолучитьОбработкуЭДО)
//Попытка передачи мутабельного значения результата метода ПолучитьОбработкуЭДО ().
ДокОбъект.ОбменДанными.Загрузка = Истина;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот