Как сохранить данные в собственных реквизитах при переходе с 1С:УТ на 1С:ERP?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

Переход с конфигурации 1С:Управление торговлей (УТ) на 1С:ERP Управление предприятием (ERP) — это не просто обновление версии, а полноценная смена прикладного решения. Одной из наиболее острых проблем, с которыми сталкиваются технические специалисты, является потеря данных в реквизитах, добавленных в основную конфигурацию пользователем. В этой статье мы подробно разберем, почему это происходит и как выполнить переход, сохранив всю накопленную информацию в кастомных полях.

Почему затираются данные при штатном переходе?

Разберем первопричину проблемы. В платформе 1С:Предприятие 8.3 каждый объект метаданных (справочник, документ, реквизит) имеет два ключевых признака: имя и уникальный внутренний идентификатор (UUID). Для системы при реструктуризации таблиц базы данных первичным является именно UUID.

Когда мы используем штатный механизм «Переход на ERP» и подкладываем «чистый» файл поставки .cf от ERP, система видит, что реквизиты с вашими именами в новом файле отсутствуют. Если же вы предварительно добавили эти реквизиты в .cf файл ERP вручную (создав их заново), их UUID не совпадут с теми, что были в вашей рабочей базе УТ. В результате 1С примет решение удалить «старую» колонку в SQL-таблице и создать «новую» с тем же именем, но пустую. Чтобы избежать этого, нам необходимо обеспечить преемственность идентификаторов.

Пошаговый алгоритм безопасного перехода

Рассмотрим методику, которая позволяет «обмануть» механизм обновления и заставить его считать ваши реквизиты в ERP теми же самыми объектами, что были в УТ. Для этого мы будем использовать предварительную подготовку файла конфигурации.

Шаг 1. Подготовка эталонного файла конфигурации

Нам потребуется файл .cf от целевой версии ERP, на которую планируется переход. Важно, чтобы релиз ERP соответствовал поддерживаемым версиям для перехода с вашего текущего релиза УТ.

  1. Откроем пустую базу ERP (или просто создадим новую в конфигураторе).
  2. Выполним команду Конфигурация — Сравнить, объединить с конфигурацией из файла. В качестве файла выберем .cf вашей текущей (доработанной) УТ.
  3. В открывшемся окне сравнения крайне важно нажать кнопку Настройка и убедиться, что установлен флаг Разрешить удаление объектов основной конфигурации.
  4. Используем механизм Поиск соответствий по именам. Это позволит сопоставить стандартные объекты УТ и ERP.
  5. Снимем все галочки с объединения и вручную отметим только те реквизиты и объекты, которые являются вашими собственными доработками. Таким образом, мы перенесем в .cf ERP ваши объекты с сохранением их оригинальных UUID из УТ.

Шаг 2. Создание файла поставки

После того как мы «внедрили» ваши реквизиты в дерево метаданных ERP с правильными идентификаторами, необходимо создать файл, который будет использоваться мастером перехода.

Выполним команду Конфигурация — Поставка конфигурации — Создать файл поставки. Полученный файл будет содержать в себе логику ERP и структуру ваших данных из УТ.

Шаг 3. Выполнение перехода в режиме «Предприятие»

Теперь перейдем к основной базе УТ. Разберем ситуацию, когда мы используем штатный помощник перехода.

  1. Зайдем в раздел НСИ и администрирование — Обслуживание — Переход на ERP.
  2. Укажем путь к нашему подготовленному на втором шаге файлу .cf.
  3. Запустим процесс. Поскольку идентификаторы объектов в базе и в файле теперь совпадают, платформа не будет удалять колонки с данными, а просто проведет реструктуризацию существующих таблиц.

Решение проблемы с неуникальностью в «Реестре документов»

Проанализируем ситуацию, возникающую в процессе объединения: ошибка Записи регистра сведений «Реестр документов» стали неуникальными. Это происходит из-за того, что в ERP структура этого регистра (состав измерений) отличается от УТ.

Выясним причину: регистр РеестрДокументов является вспомогательным (индексирующим) и служит для быстрого построения списков документов. Данные в нем являются производными от самих документов. Если при обновлении возникает конфликт уникальности, самым эффективным методом будет полная очистка этого регистра в исходной базе УТ перед началом перехода.

Пример кода для очистки регистра (выполнять в обработке в исходной базе):


НаборЗаписей = РегистрыСведений.РеестрДокументов.СоздатьНаборЗаписей();
НаборЗаписей.Записать();

После успешного перехода на ERP данные в этом регистре можно будет восстановить штатными средствами через Обслуживание — Регламентные операции — Пересчет данных реестра документов.

Нюансы работы с расширениями

Посмотрим на роль расширений в этом процессе. Если ваши реквизиты выведены на формы через расширения, это не защищает сами данные. Данные хранятся в основной конфигурации. Однако, если реквизиты были созданы внутри расширения, ситуация иная.

Рекомендуем на время самого процесса смены конфигурации (реструктуризации) отключать все расширения. После того как основная конфигурация будет успешно заменена на ERP и данные сохранятся, расширение следует подключить заново и адаптировать под новые типы данных ERP (например, заменить ссылки на типы, которые изменились или исчезли).

Завершение перехода и восстановление поддержки

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

  1. Зайдем в Конфигуратор.
  2. Выберем Конфигурация — Поддержка — Настройка поддержки.
  3. Нажмем кнопку Обновить конфигурацию, выберем Выбор файла обновления и укажем чистый (стандартный) файл .cf ERP того же релиза.
  4. В окне сравнения-объединения снимем все галки. Нам не нужно ничего менять в коде или структуре, нам нужно только, чтобы система «увидела» связь с официальной поставкой.
  5. Выполним объединение. Теперь база стоит на поддержке, но при этом содержит ваши уникальные реквизиты, которые не будут затираться, если при будущих обновлениях вы будете аккуратно следовать правилам сравнения-объединения.

Важный совет: Перед любыми манипуляциями с конфигурацией всегда создавайте резервную копию базы данных. В случае перехода УТ -> ERP рекомендуется проводить «боевой» переход только после двух-трех успешных тестовых прогонов на копиях с полной проверкой заполнения ключевых регистров.

← На главную