Разработка и Конфигурация · 12 мин
Как обновлять конфигурацию 1С с хранилищем
Пошаговая инструкция по обновлению конфигурации 1С из хранилища: захват объектов, получение изменений, разрешение конфликтов, проверка результата и типичные ошибки.
Обновление конфигурации 1С, подключённой к хранилищу, отличается от обычной загрузки файла поставщика. Хранилище конфигурации — это централизованная база версий, где фиксируются изменения от нескольких разработчиков, и обновление рабочей базы должно согласовываться с текущим состоянием хранилища, а не просто с файлом .cf. Если действовать «в обход» — например, загрузить конфигурацию из файла, не синхронизировавшись с хранилищем, — можно потерять чужие доработки и получить рассинхронизацию версий.
Типовой сценарий выглядит так: разработчики помещают изменённые объекты в хранилище, формируется стабильная версия, после чего конфигурация рабочей базы (или тестовой копии) обновляется до нужной версии хранилища. Ниже разобран полный цикл — от подготовки и резервной копии до проверки результата и разрешения конфликтов версий.
Понимание механизма хранилища конфигурации
Хранилище конфигурации — это служебная база, в которой 1С сохраняет историю изменений объектов метаданных по версиям. Каждая версия фиксирует набор объектов, помещённых разработчиками, с указанием автора, даты и комментария. Подключение рабочей информационной базы к хранилищу означает, что конфигурация этой базы синхронизируется именно с хранилищем, а не с файлами поставки.
Работа с хранилищем строится на механизме захвата объектов: чтобы изменить объект, разработчик захватывает его в хранилище, и другие пользователи до освобождения захвата не могут менять этот же объект. После внесения правок объект помещается обратно — создаётся новая версия. Обновление конфигурации из хранилища, по сути, сводится к получению изменений, накопленных с момента последней синхронизации.
Важно различать два действия: «получить из хранилища» (подтянуть изменения в конфигурацию базы) и «обновить конфигурацию базы данных» (применить изменения к структуре данных). Первое действие меняет только конфигурацию разработчика, второе — реструктуризирует таблицы базы, что и влияет на работу пользователей.
Подготовка: резервная копия и проверка подключения
Перед любым обновлением конфигурации сделайте выгрузку информационной базы через «Администрирование → Выгрузить информационную базу» в файл .dt или штатную резервную копию СУБД, если база клиент-серверная. Это единственный надёжный способ откатиться, если обновление пойдёт не по плану — например, если в хранилище попали незавершённые доработки.
Далее проверьте, что база действительно подключена к хранилищу. Откройте Конфигуратор и посмотрите меню «Конфигурация → Хранилище конфигурации»: если пункты «Захватить», «Поместить», «Получить из хранилища» активны — подключение есть. Если подключения нет, его можно создать через «Подключиться к хранилищу», указав путь к каталогу хранилища (файловому или через сервер хранилищ) и имя пользователя хранилища.
Также убедитесь, что у вашего пользователя хранилища достаточно прав, а конфигурация базы не находится в состоянии «на поддержке с запретом изменений», если планируется объединение с изменениями из хранилища. Для типовых конфигураций, доработанных через хранилище, режим поддержки настраивается заранее — обычно включена возможность изменения с сохранением поддержки.
Пошаговое обновление конфигурации из хранилища
Основной сценарий выполняется в Конфигураторе и занимает несколько последовательных шагов. Ниже приведён порядок действий для типичной ситуации: хранилище содержит новую версию, которую нужно перенести в базу.
- 1Сделайте резервную копию базы (файл .dt или копию средствами СУБД)
- 2Откройте Конфигуратор и убедитесь, что конфигурация открыта и подключена к хранилищу
- 3Выполните «Конфигурация → Хранилище конфигурации → Получить из хранилища» или откройте «Сравнить, объединить с конфигурацией из хранилища»
- 4В окне сравнения отметьте объекты, которые нужно перенести, и выполните объединение
- 5Проверьте отсутствие ошибок в окне сообщений
- 6Выполните «Конфигурация → Обновить конфигурацию базы данных» и подтвердите реструктуризацию
- 7Проверьте работу ключевых функций на тестовом сеансе
Команда «Получить из хранилища» получает изменения по захваченным вами объектам. Если нужно перенести все изменения произвольной версии, удобнее использовать «Сравнить, объединить с конфигурацией из хранилища» — в диалоге можно выбрать конкретную версию хранилища, увидеть список отличающихся объектов и выборочно отметить их для объединения.
При объединении платформа показывает направление переноса для каждого объекта. Следите, чтобы изменения из хранилища не затёрли локальные правки, которые ещё не были помещены в хранилище: в окне сравнения такие ситуации видны по двусторонним различиям. Если объект изменён и локально, и в хранилище — потребуется ручное разрешение конфликта в режиме детального сравнения модулей и форм.
Обновление конфигурации базы данных и реструктуризация
После того как конфигурация разработчика приведена к нужной версии, примените изменения к базе данных: «Конфигурация → Обновить конфигурацию базы данных» (клавиша F7). Платформа покажет список изменений структуры данных — добавленные реквизиты, новые таблицы, изменённые индексы. Внимательно просмотрите этот список: неожиданные удаления реквизитов или объектов — сигнал остановиться и разобраться в причине.
Реструктуризация больших таблиц (например, регистров накопления с миллионами записей) может занять значительное время. В клиент-серверном варианте стоит выполнять такие обновления в монопольном режиме, предварительно завершив сеансы пользователей и отключив регламентные задания через консоль кластера. В файловом варианте убедитесь, что никто не открыл базу параллельно.
Если обновление конфигурации базы данных завершилось ошибкой реструктуризации, не повторяйте попытку вслепую. Откройте окно сообщений, определите проблемную таблицу, восстановите базу из резервной копии на тестовом контуре и разберитесь с причиной — чаще всего это недостаток места на диске, длительные блокировки или повреждённые данные.
Разрешение конфликтов и работа с захватами
Конфликты возникают, когда один и тот же объект изменён в хранилище и в локальной конфигурации, которая ещё не синхронизирована. В окне сравнения такие объекты помечаются как изменённые с обеих сторон. Для текстовых модулей платформа предлагает построчное объединение: можно выбрать, какие блоки взять из хранилища, а какие оставить локальными. Для форм и макетов автоматическое объединение ограничено — часто приходится выбирать одну из версий целиком и вручную переносить недостающие правки.
Отдельная частая ситуация — «зависшие» захваты: разработчик захватил объект и не поместил его обратно, а сам недоступен. Администратор хранилища может отменить захват через «Хранилище конфигурации → Администрирование → Отменить захват» (при наличии административных прав). Делать это стоит осознанно: если коллега в это время правил объект локально, его изменения не попадут в хранилище автоматически.
Проверка результата после обновления
После успешного обновления конфигурации базы данных проверьте результат системно, а не ограничивайтесь отсутствием ошибок в окне сообщений. Минимальный набор проверок: база открывается в режиме Предприятия, запускаются ключевые формы и отчёты, затронутые изменениями, выполняются регламентные задания, работают обмены данными, если они есть.
Как проверить результат
Совпадает с целевой версией хранилища (смотрите в свойствах конфигурации и истории версий)
Версия не изменилась или отличается от ожидаемой — объединение не завершено
Нет ошибок реструктуризации и проверки
Есть сообщения об ошибках таблиц или данных
База открывается, изменённые объекты работают
Ошибки при запуске, падение форм, недоступность новых функций
Выполняются без ошибок после обновления
Задания падают с ошибками по изменённым объектам
Дополнительно полезно выполнить «Конфигурация → Проверка конфигурации» с включённой проверкой логической целостности — это выявит битые ссылки в метаданных, которые могли образоваться при объединении. Для критичных доработок заранее составьте короткий чек-лист функциональной проверки и прогоняйте его после каждого обновления тестовой базы.
Особые сценарии и ограничения
Если рабочая база не подключена к хранилищу (например, обновление переносится из тестовой среды в продуктивную), хранилище используется только для сборки эталонной конфигурации: в тестовой базе получается целевая версия, затем конфигурация сохраняется в файл .cf и загружается в рабочую базу через «Загрузить конфигурацию из файла» либо через сравнение и объединение. Это нормальная практика, но важно, чтобы рабочая база при этом не была сама подключена к тому же хранилищу.
Для типовых конфигураций на поддержке с доработками в хранилище обновление релиза поставщика делается отдельно: сначала обновляется конфигурация поставщика штатным механизмом поддержки, затем изменения из хранилища накатываются поверх. Порядок действий здесь строже — рекомендуется фиксировать в хранилище версию до обновления поставщика, чтобы иметь точку отката.
Как выбрать действие
Частые вопросы
Можно ли обновлять конфигурацию из хранилища, пока пользователи работают в базе?
Получение изменений в конфигурацию разработчика возможно, но «Обновить конфигурацию базы данных» при активных сеансах либо будет отклонено, либо приведёт к ошибкам реструктуризации. Корректный подход — завершить сеансы, отключить регламентные задания и выполнять обновление в монопольном режиме.
Чем отличается «Получить из хранилища» от «Сравнить, объединить с конфигурацией из хранилища»?
«Получить из хранилища» подтягивает изменения по объектам, захваченным текущим пользователем. «Сравнить, объединить» показывает полный список различий с выбранной версией хранилища и позволяет выборочно переносить объекты — это основной инструмент полноценного обновления.
Что делать, если после обновления база не открывается в режиме Предприятия?
Не пытайтесь повторно обновлять конфигурацию. Зафиксируйте текст ошибки, восстановите базу из резервной копии на тестовом контуре и воспроизведите обновление там, анализируя окно сообщений. Частые причины — ошибки реструктуризации и изменённые объекты, к которым обращается код при старте.
Как откатиться на предыдущую версию хранилища?
Через «Сравнить, объединить с конфигурацией из хранилища» выберите нужную более раннюю версию и перенесите изменения в обратном направлении, затем обновите конфигурацию базы данных. Учтите, что реструктуризация «вниз» (удаление новых реквизитов) может затронуть данные — предварительно сделайте копию.
Обязательно ли всем разработчикам работать через одно хранилище?
Для командной разработки — да, общее хранилище является стандартным механизмом синхронизации. Альтернативой служит EDT с git, но смешивать оба подхода на одной конфигурации без выстроенного процесса не рекомендуется — версии начнут расходиться.
Почему после получения изменений из хранилища пропали мои локальные правки?
Наиболее вероятная причина — правки вносились в объекты без захвата, и при получении из хранилища они были перезаписаны версией хранилища. Всегда захватывайте объект перед изменением и помещайте его обратно сразу после завершения правки.
Что важно запомнить
Обновление конфигурации 1С с хранилищем — это синхронизация с версиями хранилища через сравнение и объединение, а не загрузка файла. Перед обновлением делайте резервную копию, обновляйте конфигурацию базы данных без активных сеансов, разрешайте конфликты вручную и проверяйте результат на тестовой копии. Дисциплина захвата и помещения объектов — главная защита от потери доработок.