При работе над крупными проектами в среде 1С:Предприятие команды часто сталкиваются с дилеммой: разработчикам необходимы актуальные копии информационных баз для отладки, но их огромный объем (терабайты данных) делает создание индивидуальных копий слишком затратным по ресурсам и времени. В этой статье мы подробно разберем, как эффективно выстроить процесс коллективной разработки, минимизировать расходы на инфраструктуру и какие инструменты использовать для команды из 10 и более человек.
Для начала проанализируем стандартный инструмент — Хранилище конфигурации. Это базовый механизм для совместной работы, встроенный в платформу 1С v8.3. Основной принцип его работы заключается в возможности захвата объектов: когда один программист редактирует документ или модуль, объект блокируется для остальных.
Разберем основные правила эффективной работы с хранилищем в больших командах:
Однако, как показывает практика, при составе команды более 10 человек хранилище становится «узким местом». Постоянные ожидания освобождения объектов снижают общую скорость разработки. В таких случаях стоит рассмотреть альтернативные подходы.
Программисту для работы редко требуется вся история транзакций за 10 лет. Разберем, как подготовить «легкую» копию базы. Основная стратегия — создание эталонной базы с актуальной конфигурацией, но ограниченным набором данных.
Рассмотрим пошаговый процесс подготовки такой базы:
Важный совет из практики: если процесс стандартной свертки занимает слишком много времени (например, до двух суток), проанализируем ситуацию с точки зрения СУБД. Можно использовать быстрые операции на уровне SQL.
Для радикального ускорения очистки таблиц можно использовать команду TRUNCATE TABLE. Посмотрим на пример логики очистки тяжелых таблиц (важно: такие действия нарушают лицензионное соглашение в части прямой правки таблиц, поэтому используйте их только для временных dev-сред):
-- Пример SQL-кода для очистки таблиц движений (условно)
TRUNCATE TABLE _DocumentJournal105; -- Очистка журнала документов
TRUNCATE TABLE _AccumReg120; -- Очистка регистра накопления
После такой очистки мы можем дозагрузить только необходимые для тестов данные, используя обработку УниверсальныйОбменДаннымиXML. Это позволит сократить объем базы с терабайтов до нескольких гигабайт, что существенно упростит их тиражирование между программистами.
Если блокировки объектов в хранилище мешают развитию проекта, проанализируем возможность перехода на 1C:EDT (Enterprise Development Tools). Это современная среда разработки на базе Eclipse, которая позволяет полноценно интегрировать 1С с системой контроля версий Git.
Какие преимущества мы получаем при таком подходе:
Для команд, которые пока не готовы полностью перейти на EDT, существует промежуточное решение — утилита Gitsync. Она позволяет синхронизировать историю из «Хранилища 1С» в репозиторий Git, обеспечивая возможность анализа кода современными инструментами.
Выясним, как технологии хранения данных могут помочь нам с терабайтными объемами без физического копирования всех файлов. Одно из наиболее эффективных решений — использование технологий Copy-on-Write (CoW) и мгновенных снимков (Snapshots).
Разберем, как это работает:
Чтобы процесс разработки был непрерывным, необходимо внедрять элементы CI/CD (Continuous Integration / Continuous Delivery). Рассмотрим использование OneScript для автоматизации рутинных операций.
Мы можем настроить скрипты, которые по расписанию (например, в выходные дни) будут выполнять следующие действия:
Использование «Тонких» демо-баз — это отличная альтернатива тяжелым копиям. Вместо того чтобы бороться с терабайтами реальных данных, мы создаем базу с идеально настроенной нормативно-справочной информацией (НСИ) и минимальным, но достаточным набором документов для проверки всех бизнес-процессов.
Для эффективной коллективной разработки на крупных проектах 1С мы рекомендуем:
Комбинация этих методов позволит вашей команде сосредоточиться на написании качественного кода, а не на ожидании освобождения объектов или копировании огромных объемов данных.