Как перенести документы Заказ-наряд из 1С 7.7 Сервисный центр в 1С 8.3 Управление сервисным центром?

Программист 1С v8.3 (Управляемые формы) Управленческий учет Сфера услуг, туризм и социальный сектор
← На главную

Переход со старых версий программного обеспечения на современные платформы — это всегда серьезный вызов для разработчика и аналитика. Особенно остро этот вопрос встает при миграции с легендарной, но технологически устаревшей платформы 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. Прием в ремонт (или документ Приемка в работу) — регистрирует факт получения клиентской техники, фиксирует серийный номер, внешний вид, заявленные неисправности и комплектацию.
  2. Заказ-наряд — является основным калькуляционным и планирующим документом. Он резервирует материалы, фиксирует перечень необходимых работ, распределяет их по исполнителям (мастерам) и рассчитывает сдельную оплату.
  3. Выдача из ремонта (или оформление накладных/актов) — фиксирует возврат готовой техники клиенту и окончательный расчет.

Таким образом, при переносе данных нам предстоит решить задачу "расщепления" одного исходного документа Заказ-наряд из 1С 7.7 в два (а иногда и более) документа в 1С 8.3: Прием в работу и Заказ-наряд. Мы должны настроить правила так, чтобы данные из одной формы источника корректно распределились по табличным частям разных документов-приемников.

Инструмент для переноса данных: Конвертация данных 2.1

Поскольку готовых ("коробочных") правил перехода для этих редких отраслевых конфигураций разработчики не предоставляют, оптимальным решением является использование специализированной конфигурации "1С:Конвертация данных 2.1" (КД2). Этот инструмент позволяет создать правила конвертации объектов (ПКО) и правил конвертации свойств (ПКС) на основе XML-схем метаданных источника и приемника.

Рассмотрим пошагово процесс подготовки к разработке правил:

  1. Выгрузим описание структуры метаданных из базы 1С 7.7 Сервисный центр. Для этого используется внешняя обработка MD77Exp.ert (ее можно найти в каталоге установки КД2). В результате мы получим файл структуры метаданных источника (обычно в формате XML).
  2. Выгрузим описание структуры метаданных из базы 1С 8.3 Управление сервисным центром. Используем для этого обработку MD83Exp.epf. Получаем файл структуры метаданных приемника.
  3. Запустим базу "Конвертация данных 2.1", создадим новую конвертацию и загрузим в нее оба файла структуры метаданных.

Проектирование правил конвертации для Заказ-нарядов

Перейдем к настройке ПКО (Правил конвертации объектов). Нам необходимо настроить два основных правила для документов:

Рассмотрим подробнее логику настройки свойств (ПКС) внутри этих правил:

При переносе в Прием в работу мы сопоставляем базовые реквизиты: контрагента, договор, дату приема, а также уникальные текстовые поля (описание дефекта, серийный номер устройства, комплектацию). Эти данные переносятся напрямую из шапки или специфических реквизитов 1С 7.7.

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

Важнейший нюанс КД2 при работе с источником на платформе 1С 7.7

При разработке правил обмена, где источником выступает конфигурация на платформе 1С 7.7, начинающие специалисты часто сталкиваются со следующей проблемой: написанные в КД2 алгоритмы и обработчики событий (например, "Перед выгрузкой" или "При выгрузке") не отрабатывают во время выгрузки данных из "семерки". Выгрузка либо падает с ошибками, либо выгружает пустые или некорректные значения.

Выясним причину этого поведения. Платформа 1С 7.7, в отличие от 1С 8.3, не имеет встроенного полноценного XML-интерпретатора, способного "на лету" читать сложные логические конструкции и код на встроенном языке, описанные внутри XML-файла правил обмена. Чтобы обойти это ограничение, разработчики КД2 применили оригинальное архитектурное решение.

При сохранении правил конвертации в КД2, если источником является 1С 7.7, программа генерирует два отдельных файла:

  1. Файл самих правил обмена в формате .xml.
  2. Файл модуля выгрузки в формате .txt. Этот файл содержит сгенерированный программный код на языке 1С 7.7, который включает в себя все ваши алгоритмы, условия сопоставления и обработчики событий, прописанные в КД2.

Для того чтобы этот код заработал во время реальной выгрузки данных из старой базы, выполним следующие действия по шагам:

  1. Откроем базу-источник 1С 7.7 Сервисный центр в режиме Конфигуратора.
  2. Через меню "Файл" -> "Открыть" найдем стандартную обработку выгрузки данных v77exp.ert (она поставляется вместе с КД2 и обычно лежит в ее каталоге).
  3. В дереве метаданных открытой обработки перейдем к форме диалога и откроем ее Модуль формы.
  4. Выделим весь существующий код в модуле формы обработки (нажатием сочетания клавиш Ctrl + A) и удалим его.
  5. Откроем текстовый файл .txt, сгенерированный конфигурацией КД2 при выгрузке правил, скопируем все его содержимое и вставим в очищенный модуль формы обработки v77exp.ert.
  6. Сохраним изменения в обработке v77exp.ert.

Только после выполнения этой процедуры все ваши сложные условия отбора документов, алгоритмы сопоставления контрагентов по ИНН и логика разделения документов при выгрузке из 7.7 начнут функционировать должным образом.

Практические рекомендации по организации процесса переноса

Перенос исторических транзакционных данных (проведенных документов прошлых периодов) из 7.7 в 8.3 — это крайне трудоемкий процесс, сопряженный с огромным количеством ошибок. В старых базах за годы работы часто накапливаются логические нестыковки, отрицательные остатки, незакрытые цепочки взаиморасчетов. При попытке перенести и провести старые заказ-наряды в новой базе вы рискуете получить искажение себестоимости и взаиморасчетов.

Проанализируем оптимальную стратегию миграции, рекомендуемую опытными специалистами по внедрению:

  1. Предварительная свертка базы 1С 7.7: Перед началом работ выполним свертку базы источника на начало текущего года или квартала с помощью стандартной обработки WRAP.ERT. Это позволит избавиться от лишнего мусора в базе и уменьшит объем переносимых данных в разы.
  2. Перенос НСИ (Справочников): Перенесем в первую очередь чистые справочники: Контрагенты, Номенклатура, Договоры контрагентов, Склады. Настроим правила синхронизации справочников по уникальным идентификаторам (GUID) или по ключевым полям (ИНН/КПП для контрагентов, код или артикул для номенклатуры).
  3. Ввод остатков: Зафиксируем и перенесем остатки товаров на складах, остатки денежных средств и сальдо взаиморасчетов на дату перехода (например, на 31 декабря) с помощью документов Ввод начальных остатков в 1С 8.3.
  4. Перенос активных заказ-нарядов ("незавершенки"): Документы Заказ-наряд, которые находятся в процессе работы (техника еще ремонтируется или ожидает запчастей на дату перехода), перенесем точечно. Именно для этих документов мы и задействуем настроенные нами правила КД2. Все закрытые и оплаченные заказы прошлых лет лучше оставить в старой базе 1С 7.7, к которой у сотрудников останется доступ в режиме "только для чтения" для просмотра истории обслуживания клиентов.

Соблюдение этой последовательности действий гарантирует вам быстрый, контролируемый и безболезненный запуск новой учетной системы на платформе 1С 8.3 Управление сервисным центром.

← На главную