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