Переход со старых версий программного обеспечения на современные платформы — это всегда серьезный вызов для разработчика и аналитика. Особенно остро этот вопрос встает при миграции с легендарной, но технологически устаревшей платформы 1С 7.7 на современную 1С 8.3. В этой статье мы подробно разберем процесс переноса документов типа Заказ-наряд из конфигурации 1С 7.7 Сервисный центр (версия 3.2.16) в отраслевое решение 1С 8.3 Управление сервисным центром (версия 1.6.17.174), созданное на базе 1С:Управление нашей фирмой (УНФ).
Мы детально рассмотрим методологию проектирования правил обмена, разберем архитектурные различия между конфигурациями и решим техническую проблему интеграции правил КД2 с обработкой выгрузки для платформы 7.7.
Перед тем как приступить к написанию правил конвертации, проанализируем бизнес-логику и структуру хранения данных в обеих системах. Без понимания этих различий корректно перенести документы невозможно.
В конфигурации-источнике 1С 7.7 Сервисный центр документ Заказ-наряд являлся сквозным универсальным объектом. Он одновременно выполнял роль заявки на ремонт, фиксировал прием оборудования, списывал запасные части со склада, отражал выполнение работ мастерами и фиксировал оплату. Вся история взаимодействия по ремонту хранилась внутри одного физического документа или его подчиненных элементов.
В целевой конфигурации 1С 8.3 Управление сервисным центром (УСЦ), базирующейся на 1С:УНФ, цепочка бизнес-процесса ремонта разделена на специализированные документы:
Приемка в работу) — регистрирует факт получения клиентской техники, фиксирует серийный номер, внешний вид, заявленные неисправности и комплектацию.Таким образом, при переносе данных нам предстоит решить задачу "расщепления" одного исходного документа Заказ-наряд из 1С 7.7 в два (а иногда и более) документа в 1С 8.3: Прием в работу и Заказ-наряд. Мы должны настроить правила так, чтобы данные из одной формы источника корректно распределились по табличным частям разных документов-приемников.
Поскольку готовых ("коробочных") правил перехода для этих редких отраслевых конфигураций разработчики не предоставляют, оптимальным решением является использование специализированной конфигурации "1С:Конвертация данных 2.1" (КД2). Этот инструмент позволяет создать правила конвертации объектов (ПКО) и правил конвертации свойств (ПКС) на основе XML-схем метаданных источника и приемника.
Рассмотрим пошагово процесс подготовки к разработке правил:
MD77Exp.ert (ее можно найти в каталоге установки КД2). В результате мы получим файл структуры метаданных источника (обычно в формате XML).MD83Exp.epf. Получаем файл структуры метаданных приемника.Перейдем к настройке ПКО (Правил конвертации объектов). Нам необходимо настроить два основных правила для документов:
Прием в работу.Заказ-наряд.Рассмотрим подробнее логику настройки свойств (ПКС) внутри этих правил:
При переносе в Прием в работу мы сопоставляем базовые реквизиты: контрагента, договор, дату приема, а также уникальные текстовые поля (описание дефекта, серийный номер устройства, комплектацию). Эти данные переносятся напрямую из шапки или специфических реквизитов 1С 7.7.
При переносе в Заказ-наряд в 1С 8.3 мы должны заполнить табличные части товаров (запчастей) и выполненных работ. В 1С 7.7 эти данные могли храниться в единой табличной части с признаком типа строки или в разных табличных частях. В КД2 на уровне ПКС мы настраиваем фильтрацию строк табличной части. Например, пишем входящий обработчик, который разделяет строки с номенклатурой (тип "Товар") и строки с услугами (тип "Работа").
При разработке правил обмена, где источником выступает конфигурация на платформе 1С 7.7, начинающие специалисты часто сталкиваются со следующей проблемой: написанные в КД2 алгоритмы и обработчики событий (например, "Перед выгрузкой" или "При выгрузке") не отрабатывают во время выгрузки данных из "семерки". Выгрузка либо падает с ошибками, либо выгружает пустые или некорректные значения.
Выясним причину этого поведения. Платформа 1С 7.7, в отличие от 1С 8.3, не имеет встроенного полноценного XML-интерпретатора, способного "на лету" читать сложные логические конструкции и код на встроенном языке, описанные внутри XML-файла правил обмена. Чтобы обойти это ограничение, разработчики КД2 применили оригинальное архитектурное решение.
При сохранении правил конвертации в КД2, если источником является 1С 7.7, программа генерирует два отдельных файла:
.xml..txt. Этот файл содержит сгенерированный программный код на языке 1С 7.7, который включает в себя все ваши алгоритмы, условия сопоставления и обработчики событий, прописанные в КД2.Для того чтобы этот код заработал во время реальной выгрузки данных из старой базы, выполним следующие действия по шагам:
v77exp.ert (она поставляется вместе с КД2 и обычно лежит в ее каталоге).Ctrl + A) и удалим его..txt, сгенерированный конфигурацией КД2 при выгрузке правил, скопируем все его содержимое и вставим в очищенный модуль формы обработки v77exp.ert.v77exp.ert.Только после выполнения этой процедуры все ваши сложные условия отбора документов, алгоритмы сопоставления контрагентов по ИНН и логика разделения документов при выгрузке из 7.7 начнут функционировать должным образом.
Перенос исторических транзакционных данных (проведенных документов прошлых периодов) из 7.7 в 8.3 — это крайне трудоемкий процесс, сопряженный с огромным количеством ошибок. В старых базах за годы работы часто накапливаются логические нестыковки, отрицательные остатки, незакрытые цепочки взаиморасчетов. При попытке перенести и провести старые заказ-наряды в новой базе вы рискуете получить искажение себестоимости и взаиморасчетов.
Проанализируем оптимальную стратегию миграции, рекомендуемую опытными специалистами по внедрению:
WRAP.ERT. Это позволит избавиться от лишнего мусора в базе и уменьшит объем переносимых данных в разы.Контрагенты, Номенклатура, Договоры контрагентов, Склады. Настроим правила синхронизации справочников по уникальным идентификаторам (GUID) или по ключевым полям (ИНН/КПП для контрагентов, код или артикул для номенклатуры).Ввод начальных остатков в 1С 8.3.Заказ-наряд, которые находятся в процессе работы (техника еще ремонтируется или ожидает запчастей на дату перехода), перенесем точечно. Именно для этих документов мы и задействуем настроенные нами правила КД2. Все закрытые и оплаченные заказы прошлых лет лучше оставить в старой базе 1С 7.7, к которой у сотрудников останется доступ в режиме "только для чтения" для просмотра истории обслуживания клиентов.Соблюдение этой последовательности действий гарантирует вам быстрый, контролируемый и безболезненный запуск новой учетной системы на платформе 1С 8.3 Управление сервисным центром.