Получаем изменения из хранилища конфигурации 1С 8.3 вручную и по расписанию

· 9 мин

Содержание

Чтобы обновить конфигурацию 1С из хранилища, откройте базу в Конфигураторе и выберите Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища. Платформа заберёт последнюю версию в основную конфигурацию. Затем примените её к данным: Конфигурация → Обновить конфигурацию базы данных (F7). Без второго шага пользователи изменений не увидят.

Типичная ситуация: программист поместил в хранилище исправленную печатную форму, бухгалтер просит «уже обновить базу », а в рабочей базе всё по-старому. Почти всегда причина одна: изменения получили в конфигурацию, но не применили к базе данных. Или не получили вовсе, потому что база не подключена к хранилищу. Разберём весь путь: от создания хранилища до ночного обновления по расписанию.

Механизм общий для платформы 8.3 и не зависит от конфигурации. Бухгалтерия, ЗУП, УТ или своя разработка обновляются из хранилища одинаково.

1. Что подготовить до подключения к хранилищу

Хранилище конфигурации — это отдельная база версий. В ней лежит история изменений конфигурации, кто и когда что поменял. Работать с ним можно тремя способами.

ВариантАдрес подключенияКогда подходит
Файловое хранилищепуть к каталогу, например \\srv\repo\buh1–3 разработчика в одной локальной сети
Сервер хранилища crservertcp://srv-repo/buhкоманда, удалённые разработчики, нужна стабильность
Через веб-серверhttp://srv-web/repo/repo.1ccrдоступ через интернет без открытия порта сервера хранилища

📌 Что проверить заранее:

  • 🖥 Версия платформы. Сервер хранилища и клиент должны работать на одной версии платформы. Если разработчики на 8.3.24, а crserver на 8.3.22, подключения не будет.
  • 🔌 Порт. Сервер хранилища по умолчанию слушает порт 1542. Его нужно открыть в брандмауэре сервера.
  • 📁 Права на каталог. Для файлового варианта у всех пользователей Windows, которые подключаются к хранилищу, должны быть права на чтение и запись в папку.
  • 👤 Учётная запись хранилища. Пользователи хранилища не связаны с пользователями информационной базы. Их заводит администратор хранилища.

Создание хранилища

  1. Откройте эталонную базу с нужной конфигурацией в Конфигураторе.
  2. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище.
  3. Укажите адрес: каталог или tcp://….
  4. Задайте имя и пароль администратора хранилища.
  5. Платформа поместит текущую конфигурацию в хранилище как первую версию, а базу подключит к нему.

Дальше администратор открывает Конфигурация → Хранилище конфигурации → Администрирование и заводит пользователей. Каждому выдаются права: захват объектов, изменение состава версий, административные функции. Для базы, которая только получает изменения, достаточно пользователя без права захвата.

Для рабочей базы заведите отдельного пользователя хранилища, например prod-update. Так в истории сразу видно, что рабочая база ничего не помещала, а только получала.

2. Где настраивается подключение: Конфигуратор, а не режим Предприятия

Частый вопрос: можно ли подключиться к хранилищу из пользовательского режима. Нельзя. Подключение, получение изменений и обновление структуры базы выполняются только в Конфигураторе или пакетной командой 1cv8 DESIGNER. В режиме 1С:Предприятие хранилища «не видно».

Из Предприятия на этапе обновления нужно одно: заблокировать работу пользователей, если обновление требует монопольного доступа. В типовых конфигурациях на БСП это делается в разделе Администрирование, в группе команд обслуживания, через блокировку работы пользователей. Там же задаётся код разрешения, который потом передаётся в пакетную команду через ключ /UC.

Подключение базы к хранилищу

  1. Откройте базу в Конфигураторе под пользователем с административными правами.
  2. Выберите Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.
  3. Укажите адрес хранилища, имя и пароль пользователя хранилища.
  4. Если конфигурация базы отличается от конфигурации в хранилище, платформа предупредит: основная конфигурация будет заменена конфигурацией хранилища. Соглашайтесь, только если это ожидаемо.
  5. После подключения в дереве метаданных у объектов появятся значки состояния (захвачен вами, захвачен другим, свободен).

Подключение рабочей базы с доработками, которых нет в хранилище, сотрёт эти доработки в основной конфигурации. Перед первым подключением выгрузите конфигурацию в файл: Конфигурация → Сохранить конфигурацию в файл.

Один пользователь хранилища одновременно может быть подключён только из одной информационной базы. Если та же учётная запись уже привязана к базе разработчика, для рабочей базы нужна другая.

3. Как получить изменения из хранилища и применить их к базе

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

Шаг 1. Получение изменений

  1. Конфигуратор → Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища.
  2. Платформа покажет, какие объекты изменятся, добавятся или удалятся. Просмотрите список.
  3. Подтвердите. Основная конфигурация станет равна последней версии хранилища.

Если нужны только отдельные объекты, щёлкните по ним правой кнопкой в дереве метаданных и выберите Хранилище → Получить из хранилища. Это удобно, когда коллега ещё не закончил другие правки, а исправление печатной формы нужно сегодня.

Шаг 2. Обновление конфигурации базы данных

  1. Нажмите F7 или выберите Конфигурация → Обновить конфигурацию базы данных.
  2. Если меняется структура данных (новые реквизиты, регистры, табличные части), платформа покажет список реструктуризации. Прочитайте его: удаление реквизита означает потерю данных в нём.
  3. Нажмите «Принять».

Монопольный режим нужен только тогда, когда меняется структура хранения. Правка модуля или макета обычно применяется и при открытых сеансах. Платформа в этом случае предложит динамическое обновление.

Динамическое обновление в рабочей базе — компромисс. Сеансы, открытые до обновления, продолжают работать на старой версии, пока пользователь не перезапустит программу. Ошибки, которые вы исправили, у них останутся. Лучше обновляться в нерабочее время.

4. Версии хранилища: откат, метки, сравнение

Каждое помещение в хранилище создаёт новую версию с номером, датой, автором и комментарием. Посмотреть их можно через Конфигурация → Хранилище конфигурации → История хранилища.

Что можно сделать с версией:

  • 🔍 Сравнить две версии или версию с текущей конфигурацией. Так проверяют, что именно придёт в рабочую базу.
  • 🏷 Установить метку, например Релиз 2.4 — в прод. По меткам удобно фильтровать историю, если версий сотни.
  • 💾 Сохранить версию в файл .cf. Это готовый дистрибутив конкретной сборки.
  • 📄 Отчёт по версиям — список изменённых объектов с комментариями за период.

Как обновить рабочую базу не до последней, а до нужной версии

Последняя версия хранилища не всегда готова к выпуску. Есть два рабочих подхода.

  1. Пакетная команда с номером версии. Ключ -v у /ConfigurationRepositoryUpdateCfg получает конкретную версию (пример ниже).
  2. Через файл. Сохраните нужную версию из истории в .cf, отключите рабочую базу от хранилища или держите её неподключённой и загрузите файл через Конфигурация → Загрузить конфигурацию из файла либо через Сравнить, объединить.
ПодходПлюсМинус
Рабочая база подключена к хранилищуобновление одной командойлегко случайно получить незавершённые правки
Рабочая база не подключена, обновление из .cfв прод попадает только проверенная сборкалишний шаг с файлом
Получение по номеру версииточный контроль без файланомер нужно записывать перед каждым выпуском

Договоритесь в команде: каждую версию, которая уходит в рабочую базу, помечать меткой. Тогда номер для команды -v берётся из истории за секунды, а откат к прошлому выпуску понятен любому.

5. Автоматическое обновление из хранилища по расписанию

Регламентные задания 1С здесь не помогут: они работают в режиме Предприятия, а получение изменений возможно только в режиме Конфигуратора. Автоматизация строится на пакетном запуске 1cv8.exe DESIGNER и планировщике заданий Windows или cron в Linux.

Пример bat-файла для серверной базы:

@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set LOG=D:\1c-update\log_%date:~-4%%date:~3,2%%date:~0,2%.txt

%V8% DESIGNER /S "srv-1c\buh" /N "Администратор" /P "pass" ^
 /UC "КодРазрешения" ^
 /ConfigurationRepositoryF "tcp://srv-repo/buh" ^
 /ConfigurationRepositoryN "prod-update" ^
 /ConfigurationRepositoryP "repo-pass" ^
 /ConfigurationRepositoryUpdateCfg -force ^
 /UpdateDBCfg ^
 /DisableStartupDialogs /DisableStartupMessages ^
 /Out %LOG%

Что делают ключи:

  • /ConfigurationRepositoryF, N, P — адрес хранилища, пользователь и пароль хранилища.
  • /ConfigurationRepositoryUpdateCfg — получить изменения в основную конфигурацию.
  • -force — подтверждение, что можно добавлять новые и удалять существующие объекты. Без него пакетное обновление остановится, если в версии есть такие изменения.
  • -v 125 — получить версию 125 вместо последней (добавляется после /ConfigurationRepositoryUpdateCfg).
  • /UpdateDBCfg — сразу применить изменения к базе данных.
  • /UC — код разрешения запуска при установленной блокировке сеансов.
  • /Out — файл журнала. Без него о сбое ночью вы не узнаете.

Для файловой базы вместо /S "srv-1c\buh" укажите /F "D:\Bases\buh".

Порядок ночного обновления

  1. Установить блокировку сеансов с кодом разрешения (вручную в Предприятии или средствами администрирования кластера).
  2. Сделать резервную копию базы : выгрузку .dt или бэкап средствами СУБД.
  3. Запустить bat-файл из планировщика под учётной записью, у которой есть доступ к хранилищу и к пути с платформой.
  4. Проверить журнал /Out и код возврата.
  5. Снять блокировку.

Блокировка сеансов и завершение активных соединений оборвут работу пользователей с несохранёнными документами. Ставьте задание на время, когда в базе никого нет, и предупреждайте заранее.

Перед включением ночного обновления
Выполнено: 0 / 6

6. Ошибки при обновлении из хранилища и как их устранить

Диагностика: выберите симптом

Если в рабочей базе есть локальные доработки

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

  1. Сохраните текущую конфигурацию в .cf.
  2. Выполните Конфигурация → Сравнить конфигурации между основной конфигурацией и конфигурацией хранилища.
  3. Перенесите нужные правки в базу разработчика, захватите объекты и поместите их в хранилище.
  4. Только потом обновляйте рабочую базу.

Если хранилище повреждено

Сообщения о нарушении целостности или ошибки чтения файла хранилища — повод сначала сделать копию каталога хранилища целиком. Сервер хранилища на время копирования лучше остановить, предупредив разработчиков. Дальше восстанавливайте каталог из резервной копии. Резервное копирование самого хранилища настройте так же, как бэкап рабочих баз: это такая же база, и её потеря стоит всей истории разработки.

7. Частые вопросы

Нужно ли отключать рабочую базу от хранилища после обновления?
Не обязательно. Но если базе нужны только проверенные сборки, удобнее держать её отключённой и обновлять из сохранённого файла .cf нужной версии.
Можно ли получить изменения из хранилища без прав администратора базы?
Нет. Работа в Конфигураторе требует административных прав в информационной базе. Права пользователя хранилища — отдельная учётная запись.
Что будет с захваченными объектами, если обновить конфигурацию из хранилища?
Объекты, захваченные из этой базы, по умолчанию не перезаписываются: они остаются в вашей редакции до помещения в хранилище или отмены захвата.
Можно ли обновлять из хранилища базу на поддержке поставщика?
Да. Хранилище хранит конфигурацию вместе с настройками поддержки. Обновление типового релиза выполняют в базе разработчика с захватом корня конфигурации, затем помещают в хранилище, а рабочая база получает уже готовый результат.
Сколько места занимает хранилище?
Зависит от числа версий и размера конфигурации. Для типовой Бухгалтерии с несколькими сотнями версий это обычно единицы гигабайт. Следите за свободным местом на диске сервера хранилища.