При настройке обмена между Управление торговлей 10.3 и Бухгалтерия предприятия 3.0 часто возникают ситуации, когда после обновления конфигураций штатные механизмы обмена начинают выдавать ошибки. Одной из самых частых является ошибка Метод объекта не обнаружен (КонтрагентРезидентТаможенногоСоюза). Давайте разберемся, почему это происходит и как устранить данную неисправность.
Основная причина кроется в рефакторинге кода фирмы 1С. В процессе развития конфигурации Бухгалтерия предприятия 3.0 разработчики периодически переносят экспортные функции из одного общего модуля в другой (например, из модуля УчетНДС в другие места). Если ваши правила обмена остались «старыми», они продолжают обращаться к модулю по устаревшему пути, где функция больше не доступна.
Также часто выясняется, что правила обмена не были обновлены после перехода на новый релиз, либо в них были внесены ручные правки, которые теперь конфликтуют с актуальной структурой метаданных.
Первым делом мы должны исключить использование устаревших правил. Рассмотрим порядок действий:
Бухгалтерия предприятия 3.0 на вашем сервере или локальном компьютере..xml).БП 3.0 в настройках обмена данными загрузите этот актуальный файл вместо того, который используется сейчас.Если вы использовали нетиповые правила (вносили изменения ранее), убедитесь, что вы перенесли свои доработки в новый файл правил, используя инструмент Конвертация данных 2.0.
Если обновление файлов правил не решило проблему, или у вас есть критические доработки, которые нельзя заменять типовыми, нам потребуется скорректировать программный код в правилах конвертации. Рассмотрим, как это сделать для правила ДоговорыКонтрагентов.
Откройте файл правил в текстовом редакторе или через конфигурацию Конвертация данных. Найдите событие ПослеЗагрузкиОбъекта для ПКО ДоговорыКонтрагентов. Вы можете заметить там примерно такой код:
// Пример проблемного кода
Объект.СпособЗаполненияСтавкиНДС = ?(НЕ УчетНДС.КонтрагентРезидентТаможенногоСоюза(Объект.Владелец),
Перечисления.СпособыЗаполненияСтавкиНДС.Автоматически,
Перечисления.СпособыЗаполненияСтавкиНДС.БезНДС);
Если этот функционал (учет контрагентов-резидентов ТС) для вашей компании не является приоритетным или вы не используете его в текущем учете, мы можем упростить логику, чтобы избежать ошибки при вызове отсутствующего метода. Рассмотрим вариант исправления:
// Исправленный вариант кода
Если СпособЗаполненияСтавкиНДСАвтоматически Тогда
// Здесь можно выполнить проверку или просто присвоить значение по умолчанию
Объект.СпособЗаполненияСтавкиНДС = Перечисления.СпособыЗаполненияСтавкиНДС.Автоматически;
Иначе
Объект.СпособЗаполненияСтавкиНДС = Перечисления.СпособыЗаполненияСтавкиНДС.БезНДС;
КонецЕсли;
После внесения изменений в правила, обязательно выполните следующие действия:
Бухгалтерии предприятия.Важное замечание: если ваша организация ведет внешнеэкономическую деятельность с контрагентами из стран Таможенного союза, простое «закомментирование» кода может привести к некорректному заполнению ставок НДС в документах. В этом случае необходимо найти актуальное местоположение функции КонтрагентРезидентТаможенногоСоюза в конфигурации БП 3.0 (используя поиск по конфигурации) и указать новый путь к модулю в правилах обмена, например, Справочники.Контрагенты.КонтрагентРезидентТаможенногоСоюза(Объект.Владелец).
Проанализировав данную ситуацию, мы видим, что большинство проблем с обменом решается поддержанием правил в актуальном состоянии и внимательным отслеживанием изменений в модулях типовых конфигураций при каждом обновлении.