Обновление типовых конфигураций 1С, находящихся под управлением хранилища, — это процедура, требующая строгого соблюдения последовательности действий. Основные сложности возникают из-за механизмов блокировки объектов (захвата) и необходимости синхронизации конфигурации поставщика между всеми участниками разработки. Разберем детально, как выполнить эту задачу эффективно и без потери данных.
Рассмотрим стандартный сценарий, когда мы работаем непосредственно в базе, подключенной к хранилищу. Основная проблема здесь — заблокированные объекты. Если мы попытаемся запустить обновление без предварительной подготовки, система выдаст ошибку доступа.
Проанализируем шаги, которые необходимо выполнить:
.cfu) или полный файл конфигурации (.cf).Выясним причину, почему иногда кажется, что конфигурация поставщика не обновилась. Это происходит, если при обновлении не был захвачен корень или если другие разработчики не выполнили команду «Обновить конфигурацию из хранилища» в своих локальных базах.
Для крупных проектов (например, на базе ERP или «Комплексной автоматизации») блокировка всех объектов в хранилище на длительное время может парализовать работу всей команды. В такой ситуации мы рекомендуем использовать «буферную» базу.
Разберем этот процесс по шагам:
.cf (Конфигурация — Сохранить конфигурацию в файл)..cf.Такой подход минимизирует время, в течение которого объекты в хранилище остаются захваченными одним пользователем. Проанализируем преимущество: пока вы три часа вручную объединяете формы в буферной базе, другие программисты могут продолжать работать в хранилище над своими задачами.
Часто возникает вопрос: как обновить только «движок» поддержки, не меняя основную конфигурацию базы данных немедленно? Посмотрим на ситуацию, описанную опытными разработчиками. Можно запустить процесс обновления через поддержку, а в окне сравнения и объединения снять галочку с корня конфигурации. После нажатия кнопки «Выполнить» система предложит обновить только конфигурацию поставщика. Это полезно, когда нужно актуализировать информацию о версии, но сами изменения в метаданные планируется внедрять позже.
Важно помнить, что хранилище транслирует изменения конфигурации поставщика всем пользователям автоматически, но только при условии помещения в него корня конфигурации Configuration.
При работе с хранилищем мы можем столкнуться с так называемыми «призрачными» изменениями. Если мы захватили все объекты «за компанию», но не меняли их, в истории хранилища могут появиться пустые версии. Чтобы этого избежать, перед финальным помещением объектов в хранилище воспользуемся функцией «Снять захват с неизмененных объектов».
Также рассмотрим ситуацию с кэшем. Если после обновления из хранилища вы видите странные ошибки или неверную версию в окне «О программе», попробуйте очистить локальный кэш хранилища, который находится в папке ConfigSave в профиле пользователя. Это часто решает проблемы рассинхронизации метаданных.
Для автоматизации рутинных операций можно использовать параметры командной строки. Например, команда для обновления из хранилища выглядит так:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "ПутьКБазе" /N "Логин" /P "Пароль" /ConfigurationRepositoryF "ПутьКХранилищу" /ConfigurationRepositoryN "ЛогинХранилища" /ConfigurationRepositoryP "ПарольХранилища" /ConfigurationRepositoryUpdateConfig -force
Однако помните, что полная загрузка файла .cf в базу с хранилищем через пакетный режим требует предварительного программного захвата всех объектов, что реализуется через специализированные скрипты автоматизации (например, на языке OneScript).
В заключение отметим: никогда не удаляйте старое хранилище и не создавайте новое только ради обновления. Это лишает вас истории разработки. Следуя описанным выше методикам захвата корня и использования буферных баз, вы сможете поддерживать конфигурацию в актуальном состоянии, сохраняя целостность всех механизмов 1С.