Как исправить ошибку «Поле объекта не обнаружено (СтавкаНДС)» при обмене между УПП 1.3 и БП 3.0?

Программист 1С v8.3 (Обычные формы) Налоговый учет
← На главную

При обновлении конфигурации «1С:Бухгалтерия предприятия 3.0» до версии 3.0.67 и выше многие технические специалисты столкнулись с серьезной проблемой в работе нетиповых обменов с «1С:Управление производственным предприятием 1.3». Ошибка проявляется сообщением: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(9726)}: Поле объекта не обнаружено (СтавкаНДС). В этой статье мы подробно разберем, почему это происходит и как восстановить работоспособность синхронизации, учитывая изменения в архитектуре метаданных 1С.

Выясняем причину: изменения в учете НДС

Проанализируем ситуацию с точки зрения обновлений БП 3.0. Начиная с релиза 3.0.67, разработчики 1С провели масштабную реорганизацию механизмов учета НДС. Главное изменение коснулось справочников и документов: старое перечисление СтавкиНДС (с элементами НДС18, НДС10 и т.д.) было практически выведено из эксплуатации. Вместо него был внедрен новый объект — ВидыСтавокНДС.

Важные отличия новых метаданных:

В документах «Поступление товаров и услуг», «Реализация товаров и услуг», а также в справочнике «Номенклатура», реквизит СтавкаНДС был заменен на ВидСтавкиНДС. Именно это несоответствие вызывает падение стандартной обработки обмена, которая пытается программно обратиться к полю по старому имени.

Шаг 1: Поиск проблемного объекта

Прежде чем вносить изменения в правила конвертации, нам необходимо точно определить, какой именно объект вызывает ошибку. Рассмотрим методику отладки:

  1. Запустим базу «Бухгалтерия предприятия» в режиме Толстый клиент (обычное приложение). Это позволит увидеть более детальный лог выполнения обработки КонвертацияОбъектовИнформационныхБаз.
  2. Включим вывод диагностических сообщений в настройках синхронизации.
  3. Если ошибка возникает в момент загрузки, проанализируем стек вызовов. Ошибка часто происходит в процедуре СоздатьНовыйОбъект или при попытке записи реквизитов в табличные части.

Чаще всего проблема кроется в ПКО (Правилах Конвертации Объектов) для справочника Номенклатура или в ПКС (Правилах Конвертации Свойств) табличных частей Товары и Услуги популярных документов.

Шаг 2: Редактирование правил в конфигурации «Конвертация данных 2.0»

Разберем, как правильно скорректировать правила. Простая замена имен в XML-файле, как заметил автор темы, не всегда помогает, так как существуют зависимости в обработчиках и настройках поиска.

Последовательность действий в КД 2.0:


// Пример логики сопоставления значений:
УПП.НДС18 -> БП.Общая
УПП.НДС20 -> БП.Общая
УПП.НДС10 -> БП.Пониженная
УПП.БезНДС -> БП.Освобождена

Шаг 3: Обработка программных обращений в событиях

Проанализируем события «Перед загрузкой» и «При загрузке». Часто программисты пишут произвольный код для заполнения ставок НДС. Рассмотрим пример исправления кода в обработчике:

Было:

Объект.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;

Стало:


// В новых релизах БП 3.0 используем ВидыСтавокНДС
Объект.ВидСтавкиНДС = Перечисления.ВидыСтавокНДС.Общая;

Если код должен быть универсальным для разных версий БП, рекомендуется использовать проверку наличия реквизита через метаданные, чтобы избежать исключений.

Шаг 4: Обновление правил в узле синхронизации

Выясним причину, почему изменения в XML-файле могут не «подхватываться» системой. В современных конфигурациях на базе БСП (Библиотеки Стандартных Подсистем), к которым относится БП 3.0, правила обмена часто хранятся внутри информационной базы в регистре сведений или привязаны к макету.

Чтобы принудительно обновить правила:

  1. Перейдем в раздел Администрирование — Синхронизация данных.
  2. Откроем Настройки синхронизации и выберем нужный узел обмена.
  3. Нажмем кнопку Параметры синхронизации данных, далее — Загрузить правила.
  4. Выберем вариант «Из файла на компьютере» и укажем наш исправленный XML-файл.
  5. Нажмем «Записать и закрыть». После этого система обновит кэш правил в оперативной памяти.

Дополнительные нюансы с кэшированием

Рассмотрим ситуацию, когда даже после загрузки новых правил ошибка сохраняется. Это может быть связано с тем, что 1С кэширует структуру правил обмена. В некоторых случаях помогает временное отключение и включение синхронизации или очистка серверного кэша. Также стоит убедиться, что изменения внесены в правила обоих баз, если обмен является двусторонним, так как структура сообщения обмена должна соответствовать ожиданиям принимающей стороны.

Резюме

Для решения проблемы «Поле объекта не обнаружено (СтавкаНДС)» мы выполнили следующие действия: проанализировали изменения метаданных в БП 3.0, обновили ПКС в «Конвертации данных 2.0», заменив СтавкаНДС на ВидСтавкиНДС, настроили ПКО для перечислений и перегрузили правила в узле синхронизации. Такой комплексный подход позволяет не только устранить текущую ошибку, но и подготовить обмен к корректной работе с новыми ставками НДС (например, 20%).

← На главную