К статье
Практический материал

Администрирование · 11 мин

Как обновить 1С, если конфигурация подключена к хранилищу

Как обновить конфигурацию 1С, подключённую к хранилищу: подготовка, захват объектов, обновление через поддержку, разрешение конфликтов и проверка результата.

Обновление конфигурации 1С, подключённой к хранилищу, отличается от обычного обновления типовой базы. Хранилище конфигурации фиксирует версии объектов и права разработчиков, поэтому стандартный механизм «Обновление конфигураций» напрямую применить нельзя — сначала нужно корректно подготовить рабочую базу и само хранилище.

Типичная ситуация: конфигурация доработана, несколько разработчиков ведут изменения через хранилище, и при этом выходит новый релиз поставщика. Задача — поднять версию типовой части, не потеряв собственные доработки и историю изменений. Ошибки в этом процессе могут привести к потере доработок или рассинхронизации хранилища с рабочей базой.

Ниже описан рабочий порядок действий: от резервного копирования до проверки результата, а также разбор типичных проблем — конфликтов при сравнении, захваченных объектов и ошибок обновления базы данных.

Что такое хранилище конфигурации и почему оно меняет процедуру обновления

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

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

Существует два основных подхода: обновление с сохранением связи с хранилищем (объекты захватываются администратором) и обновление через временное отключение базы от хранилища с последующим восстановлением связи. Выбор зависит от объёма доработок и количества разработчиков.

Два подхода к обновлению

Обновление без отключения от хранилища

Подходит при небольшом числе доработок и одном администраторе. Требует захвата всех изменяемых объектов, что при большом релизе занимает много времени.

Обновление с временным отключением

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

Подготовка: резервные копии и проверка хранилища

Первый обязательный шаг — полная резервная копия рабочей базы. Для файловой базы достаточно скопировать каталог с файлом 1Cv8.1CD при завершённых сеансах; для клиент-серверной — выполнить выгрузку в dt через конфигуратор или средствами СУБД. Копия должна быть проверена: убедитесь, что из неё база открывается.

Второй шаг — копия каталога хранилища. Хранилище — это отдельный каталог с файлами версий (для файлового варианта) или база на сервере 1С:Хранилища. Скопируйте его целиком, пока никто не работает. Если хранилище повредится в процессе, восстановить историю без копии будет невозможно.

Третий шаг — убедиться, что все разработчики поместили свои изменения в хранилище и отменили захваты объектов. Проверьте это в конфигураторе: «Конфигурация → Хранилище конфигурации → Захваченные объекты». Незавершённые захваты других пользователей администратор может отменить принудительно, но их непомещённые правки будут потеряны — предупредите команду заранее.

Обновление без отключения от хранилища

Этот способ сохраняет непрерывную связь базы с хранилищем и подходит, когда доработок немного и обновлением занимается один администратор.

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

Ключевой момент — захват корня конфигурации. Без него механизм обновления не сможет изменить объекты, и процесс прервётся с сообщением о том, что объект не захвачен. При большом объёме объектов захват может занять заметное время — это нормально.

В окне сравнения и объединения обратите внимание на объекты, изменённые и поставщиком, и вами. Для них платформа предложит режимы: «Взять из новой конфигурации поставщика», «Оставить текущий» или «Объединить». Доработанные объекты почти всегда требуют ручного объединения — автоматический выбор «взять из поставщика» затрёт ваши изменения.

Обновление с временным отключением от хранилища

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

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

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

Разрешение конфликтов при объединении

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

Для модулей используйте построчное сравнение: откройте объединение текстов модулей и перенесите свои доработки в новый код поставщика вручную. Механическое «оставить свой вариант» опасно: вы потеряете исправления поставщика, и ошибки, устранённые в новом релизе, вернутся.

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

Типичные ошибки
01
Выбрать «взять из поставщика» для всех конфликтных объектов — доработки будут удалены без предупреждения.
02
Забыть поместить результат в хранилище после обновления — другие разработчики продолжат работать со старой версией и получат конфликты.
03
Обновлять конфигурацию базы данных при активных сеансах пользователей — реструктуризация прервётся или данные окажутся в несогласованном состоянии.
04
Отменить чужие захваты без предупреждения — непомещённые правки коллег исчезнут.

Обновление конфигурации базы данных и проверка результата

После объединения конфигураций выполните «Конфигурация → Обновить конфигурацию базы данных». Если структура данных изменилась, платформа покажет окно реструктуризации со списком изменений — прочитайте его, особенно строки про удаление реквизитов и изменение типов. Удаление реквизита означает безвозвратную потерю данных в нём.

На больших базах реструктуризация может занять от нескольких минут до часов. Выполняйте её в нерабочее время, при завершённых сеансах пользователей и остановленных регламентных заданиях. Для клиент-серверных баз убедитесь, что на диске сервера СУБД достаточно свободного места — реструктуризация больших таблиц требует места под временные структуры.

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

Контрольные точки

Как проверить результат

Версия конфигурации
Норма

В «О программе» указан новый релиз поставщика

Тревожный признак

Номер релиза не изменился — обновление не завершено

Связь с хранилищем
Норма

База подключена, последняя версия в хранилище соответствует обновлённой конфигурации

Тревожный признак

База отключена или в хранилище нет новой версии

Доработки
Норма

Изменённые объекты работают как до обновления

Тревожный признак

Доработанные кнопки, печатные формы или отчёты исчезли

Проведение документов
Норма

Документы проводятся без ошибок

Тревожный признак

Ошибки в модулях при проведении — вероятно, конфликт объединён неправильно

Если что-то пошло не так

Если обновление завершилось ошибкой или база работает некорректно, не пытайтесь «дообновить» поверх повреждённого состояния. Восстановите базу из резервной копии, сделанной до начала работ, и повторите процедуру, устранив причину сбоя.

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

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

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

Можно ли обновить 1С через интернет (автоматически), если база подключена к хранилищу?

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

Что делать, если объект захвачен уволившимся разработчиком?

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

Нужно ли отключать пользователей от базы на время обновления?

Да. Обновление конфигурации базы данных требует монопольного доступа: все сеансы должны быть завершены, регламентные задания остановлены. В клиент-серверном варианте используйте блокировку сеансов в консоли кластера или через параметр блокировки в конфигураторе.

Как не потерять историю версий при временном отключении от хранилища?

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

Что делать, если после обновления пропала доработанная печатная форма?

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

Можно ли обновляться через несколько релизов сразу?

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

Итог

Что важно запомнить

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