В данной статье рассмотрим некоторые
аспекты конвертации предопределенных значений, прежде всего справочников, и
какие встречаются связанные с этим ошибки переноса..
Возможно, не
только для пользователей но и для некоторых специалистов будет новым тот
факт, что наличие предопределенных значений в конфигурации еще не
означает, что такие же предопределенные значения есть в информационной
базе.
Для наглядности начнем сразу с примера.
Рассмотрим справочник Прочие доходы и расходы программного продукта
Бухгалтерия предприятия КОРП, редакция 3.0 (далее БП 3.0).
Начиная с версии 3.0.178 конфигурация БП 3.0 содержит два новых
предопределенных значения этого справочника: ПроцентыКПолучению
(Проценты к получению (депозиты, займы выданные)) и ПроцентыКУплате
(Проценты к уплате (кредиты, займы полученные)). Эти значения введены как бы
на замену существовавшему ранее ПроцентыКПолучениюУплате (Проценты к
получению, уплате (до 2025 г.)). Прежнее наименование значения
ПроцентыКПолучениюУплате - Проценты к получению (уплате), почему
это важно, будет понятно далее.
Здесь важно понимать, что в
информационной базе БП 3.0 версии старше 3.0.178 значение
ПроцентыКПолучениюУплате может быть, а может и не быть. Все зависит от
того, как база создавалась, какова ее история. Подчеркнем еще раз: речь идет
сейчас о наличии предопределенного значения в базе данных, а не в
конфигурации. В конфигурации это значение есть всегда, а вот в
информационной базе - нет. Если создать пустую базу из шаблона конфигурации
БП 3.0.178 и старше, то указанного значения не будет. Если же создать базу
из шаблона версии ранее 3.0.178, а затем обновить до 3.0.178 или старше, то
значение ПроцентыКПолучениюУплате будет в наличии. Из сказанного
понятно, что и в рабочих базах будет наблюдаться такая же пестрая картина.
Еще раз, наличие того или иного
предопределенного значения в информационной базе зависит от того, как база
создавалась, из какой версии, и как в дальнейшем обновлялась, а не от того,
какая версия конфигурации сейчас. Попутно заметим, что предопределенные
значения в базе могут появляться и в зависимости от того, как ведется учет,
какие направления учета задействованы. Т.е. предопределенные значения
справочников могут появляться не только в результате обновления
конфигурации, но и в пользовательском режиме.
Отметим еще один важный момент на этом
примере. Если предопределенное значение ПроцентыКПолучениюУплате в
базе уже есть, т.е. база была создана в версии ранее 3.0.178, то при
обновлении до 3.0.178 и выше указанное значение изменит свое
наименование (см. описание выше) на Проценты к получению, уплате (до 2025
г.).
Теперь перейдем собственно к конвертации
данных, в чем же здесь проблемы. Описание
конфигурации в технологии конвертации данных создается специальной
обработкой в пользовательском режиме, и результат будет зависеть тот того, в
какой базе обработка запущена. В описание конфигурации попадут только те
предопределенные значения, которые есть в информационной базе, а не все
предопределенные значения конфигурации. Для примера на рис.1 показаны
значения справочника Прочие доходы и расходы в конвертации для БП
3.0, созданной на версии старше 3.0.178. Значения
ПроцентыКПолучениюУплате там нет.

Рис.1. Предопределенные значения справочника Прочие
доходы и расходы
Что же произойдет при использовании таких правил обмена
на практике. Возможны дубли. Важно понимать, что синхронизация по УИД для
предопределенных значений не возможна. Синхронизация по УИД хорошо
работает для всех прочих элементов справочника при загрузке в пустую базу.
Предопределенные значения в разных базах будут иметь разные УИД. Возможно,
кто-то из читателей сейчас воскликнет: "Что за проблема? Ведь можно
синхронизировать справочник по реквизитам". В том то и дело, что это не
решает проблему. Если вы посмотрите внимательно на рис.1, то увидите, что
там уже так и сделано: включен поиск по полям поиска дополнительно к УИД. Но
наименование предопределенных значений, как было сказано выше, может
изменяться (спасибо разработчикам типовых конфигураций за заботу). В нашем
случае, если переносить значение ПроцентыКПолучениюУплате из базы
младше 3.0.178 в базу старше 3.0.178, то поиск по наименованию не возможен,
а другие реквизиты, такие как ИмяПредопределенныхДанных, в поиске не
участвуют.
В результате получим то, что показано на рис.2: появился
еще один элемент справочника, совершенно нам не нужный, он не помечен как
предопределенный, что понятно.

Рис.2 Список элементов справочника Прочие доходы и расходы
после переноса данных
Для продвинутых пользователей еще один рис.3: фрагмент
запроса справочника Прочие доходы и расходы,
показывающий служебные реквизиты.

Рис.3 Фрагмент результата запроса справочника Прочие доходы и расходы
На наш взгляд, самым простым и надежным
способом решения описанной проблемы является включение в конвертацию данных
всех без исключения предопределенных значений, существующих в конфигурации,
а не только тех, которые присутствуют в информационной базе. И
соответственно, нужно выставлять соответствия значений в ПКО справочника. Сделать
это можно разными способами: редактировать описание конфигурации в
конвертации или добавлять все значения в базу, а затем создавать описание
конфигурации стандартными средствами.
© Группа компаний Профи-центр, сентябрь 2025г., последние изменения сентябрь 2025г.