Как ускорить перенос изменений между хранилищами 1С?
Зачастую в рамках одной системы нам приходится работать с двумя хранилищами — хранилищем разработки (ХР) и хранилищем обновления (ХО). И перенос изменений из ХР в ХО, по крайней мере у меня, зачастую превращается в боль — нужно сделать много рутинных операций, в ходе которых приходится тратить время на ожидание (например, на этапах сохранения конфигурации в файл или сравнения, объединения конфигураций с файлом). Поэтому в один прекрасный день я сел и написал инструмент по автоматизации этого переноса.
- Описание
- Подробнее
Описание
Предпосылки автоматизации
На момент написания статьи в моем направлении работало порядка 70 сотрудников — специалистов, ведущих специалистов и их руководителей, которые занимались разработкой на платформе 1С. Каждый из них ежедневно проводил разработку, тестирование и внедрение функционала.
Процесс тестирования и внедрения включал в себя этап подготовки конфигурации. На этом этапе сотрудник должен был, следуя действующим в подразделении стандартам и правилам, выполнить перенос объектов разработки из одной конфигурации в другую. Длительность этого процесса напрямую зависела от количества объектов, сложности изменений и количестве конфигураций, в которые необходимо было транслировать изменения.
Вот последовательность типовых операций, которые нужно было выполнить сотруднику:
В Источнике: Обновить конфигурацию из хранилища. Время этого шага — от 1 до 20 минут (в зависимости от нагрузки на хранилище, оборудование и объема изменений).
В Источнике: Сохранить конфигурацию в файл. Время этого шага — от 5 до 15 минут.
В Приемнике: Обновить конфигурацию из хранилища. Время этого шага — от 1 до 10 минут.
В Приемнике: Захватить объекты в хранилище. Время этого шага измеряется количеством объектов и зависит от нагрузки на хранилище. Например, если нужно захватить 100 объектов и хранилище работает идеально, то время захвата составляет порядка 60 минут интенсивной ручной работы.
В Приемнике: Обновить ИБ. Время этого шага — от 1 до 20 минут.
В Приемнике: Сравнить/объединить конфигурацию с файлом, выгруженным на шаге 2. Время этого шага от 10 до 60 минут.
Просмотр всех изменений и отметка галочками по каждому объекту, что конкретно нужно перенести. Время этого шага измеряется количеством объектов и сложностью изменений. Например, если нужно сравнить между собой 100 объектов, то время сравнения составляет порядка 2 часов интенсивной ручной работы.
В Приемнике: Обновить ИБ. Время этого шага — от 1 до 20 минут.
В Приемнике: Выполнить синтаксическую проверку модулей. Время этого шага — от 1 до 10 минут.
В Приемнике: Выполнить помещение изменений в хранилище. Время этого шага — от 1 до 30 минут. В статистику не включены такие ситуации, как удаление объектов из хранилища, т.к. эти операции довольно редкие. Но если они используются, то помещение может идти часами.
Идея возникла в том, чтобы ускорить этот процесс:
За счет автоматизации рутинных операций. Сотруднику остается указать базы источника и получателя, выбрать объекты для переноса, а после переноса — проверить результат.
За счет использования пакетного режима 1С:Конфигуратора. Некоторые шаги в этом режиме работают значительно быстрее.
Те сотрудники, кто начал использовать инструмент, получили следующие эффекты:
Трудозатраты на выполнение рутинных операций сократились от 20% до 90%. Вот конкретный пример: в рамках задачи обновления "1С:Библиотеки стандартных подсистем" потребовалось поместить изменения в два отдельных хранилища тестовой среды. Объектов было порядка 1000. В случае ручного переноса на каждое помещение потребовалось бы около 6 часов непрерывной работы сотрудника. В случае автоматизации время каждого переноса составило не более 30 минут.
Снизился риск “человеческого фактора” что-нибудь забыть перенести.
Итак, ниже описана краткая инструкция по использованию этого инструмента.
Начинаем работу
Развертывание базы
Инструмент представляет из себя небольшую конфигурацию, разработанную на базе "1С:Библиотеки стандартных подсистем" от "Фирмы 1С". Базу лучше развернуть в файловом режиме. Для корректной работы необходимо использовать платформу не ниже 8.3.10.
Почему файловый режим? Причин несколько:
Большая часть операций требуют прямого доступа к конфигуратору. А это значит, что для выполнения синхронизации придется либо закрывать конфигуратор базы источника и базы приемника, что не всегда бывает удобно; либо сделать отдельные копии баз источника и приемника в клиент-серверном варианте работы.
Для загрузки метаданных из базы потребуется установить COM-соединение, а для него важно, чтобы версии клиента и сервера совпадали.
Интерактивные операции, такие как “Запуск Конфигуратора”, в клиент-серверном варианте работают некорректно — конфигуратор откроется на сервере 🙂 Руки починить это пока не дошли.
Создание источника, приемника и сценария синхронизации
Для примера рассмотрим классический сценарий переноса изменений из хранилища разработки в хранилище обновления. Запускаем режим Предприятия. На рабочем столе появляется окно “Синхронизации хранилищ”.

Создаем базы для синхронизации.

