Обновление типовой конфигурации 1С, которая подключена к хранилищу
Содержание
Главная ошибка: люди обновляют базу разработчика обычным способом, как рабочую, а потом удивляются, что хранилище осталось на старом релизе. Релиз поставщика сначала загружается в одну базу и помещается в хранилище, а остальные разработчики просто получают его оттуда. Обновлять каждую копию по отдельности не нужно.
Ниже весь путь обновления 1С с хранилищем: что проверить заранее, кто и что делает, как разобрать конфликты доработок и что делать, если 1С отказывается захватывать объекты или помещать изменения.
Что подготовить до начала обновления
Обновление идёт в Конфигураторе, поэтому пользователей из рабочей базы это не касается. Сначала убедитесь, что есть всё необходимое.
- 📦 Файл обновления. Либо установленный шаблон релиза (папка с
1cv8.cfили1cv8.cfu), либо файл.cfuс официального сайта. Версию берите ту, что подходит вашей текущей: перескакивать через несколько промежуточных релизов можно не всегда. - 🔑 Права в хранилище. Нужны как минимум «Захват объектов» и «Помещение изменений». Для обновления корня конфигурации удобнее роль администратора хранилища.
- 💾 Резервная копия хранилища и базы разработки. Хранилище — это один файл
1cv8ddb.1CDв каталоге хранилища (для файлового варианта), его копируют целиком, когда никто не работает . - 👥 Тишина в хранилище. Предупредите коллег: пока вы грузите релиз, они не должны ничего помещать.
Проверка прав пользователя
В Конфигураторе откройте Конфигурация → Хранилище конфигурации → Администрирование → Пользователи хранилища. В списке найдите себя и посмотрите роль:
| Право | Что позволяет | Нужно для обновления |
|---|---|---|
| Только чтение | Смотреть и получать версии | Нет, годится лишь для коллег после обновления |
| Захват объектов | Брать объекты на редактирование | Да |
| Изменение версий | Помещать правки в хранилище | Да |
| Администратор | Всё, включая пользователей и копирование хранилища | Удобно, но необязательно |
Если пункта «Администрирование» в меню нет, вы подключены без прав администратора. Попросите того, кто создавал хранилище, выдать нужную роль или выполнить шаги за вас.
Подключение базы к хранилищу
Если база уже привязана к хранилищу, этот раздел пропустите. Привязка видна в заголовке окна Конфигуратора и в меню Конфигурация → Хранилище конфигурации: там активны пункты «Захватить объекты» и «Поместить изменения».
Если не привязана:
- Откройте Конфигуратор для базы разработчика, не для рабочей.
Конфигурация→Хранилище конфигурации→Подключиться к хранилищу.- Укажите путь к каталогу хранилища. Для сетевого варианта это адрес сервера хранилища, для файлового — сетевая папка.
- Введите имя и пароль пользователя хранилища. Они отдельные, не совпадают с пользователем информационной базы.
- Подтвердите загрузку конфигурации из хранилища в базу.
Подключение перезаписывает конфигурацию базы версией из хранилища. Поэтому подключайтесь к пустой или копии, в которой ничего ценного не лежит.
Для типовой конфигурации на поддержке обычно держат отдельную копию «под хранилище» и отдельную рабочую. Разработка идёт в первой, рабочая база получает готовую конфигурацию обновлением.
Как получить версию из хранилища (обычное обновление разработчика)
Самый частый случай: коллега уже поместил в хранилище новую версию, а вам нужно её забрать. Никакого релиза грузить не надо.
- В Конфигураторе откройте
Конфигурация→Хранилище конфигурации. - Выберите пункт обновления конфигурации из хранилища (в формулировке меню есть слова «Обновить конфигурацию »).
- В открывшемся списке отметьте нужные объекты или весь корень.
- Нажмите кнопку выполнения и дождитесь окончания. На большой конфигурации это минуты.
- После получения нажмите
Конфигурация→Обновить конфигурацию базы данных(или F7), чтобы изменения структуры дошли до информационной базы.
Всё, ваша копия на актуальной версии. Если в списке пусто, значит, ваша версия уже совпадает с хранилищем.
Историю версий можно посмотреть там же: Хранилище конфигурации → Показать историю. Каждая версия имеет номер, автора и комментарий. По истории удобно проверить, что релиз поставщика действительно уже загружен, и не делать этого повторно.
Порядок загрузки нового релиза в хранилище
Это шаги ответственного за обновление. Выполняет их один человек.
Шаг 1. Захватите корень конфигурации
Откройте дерево конфигурации, правой кнопкой по самому верху (имя конфигурации) → Захватить в хранилище. Обязательно включите галочку «Рекурсивно» (захват подчинённых объектов). Без неё обновление не сможет менять объекты, которые остались свободными не по вашей воле, и вы получите частичный результат.
Если часть объектов захвачена другими людьми, 1С сообщит об этом списком. Пока они не освободят объекты, полноценно обновить не получится: либо ждите, либо просите коллег поместить правки или отменить захват.
Шаг 2. Запустите обновление конфигурации
Конфигурация → Поддержка → Обновить конфигурацию. Выберите источник: файл обновления либо установленную поставку. Программа покажет версию, из которой вы переходите, и версию, на которую переходите.
Дальше платформа проанализирует конфигурацию и откроет окно сравнения.
Шаг 3. Разберите окно сравнения
В окне Обновление конфигурации будет дерево объектов с режимами. Режим по умолчанию — «Объединить с приоритетом поставщика» там, где вы ничего не меняли, и «Объединить с приоритетом основной конфигурации» там, где менялось вами. Проверьте вручную:
- 🟢 Объект не менялся — берётся версия поставщика без вопросов.
- 🟡 Менялся и вами, и поставщиком — 1С предложит объединить автоматически, если правки в разных местах модуля.
- 🔴 Конфликт — правка в том же месте. Решать придётся вручную.
Нажмите «ОК» и дождитесь окончания. Платформа перезапишет конфигурацию базы, но ничего ещё не попадёт в хранилище.
Шаг 4. Проверьте результат до помещения
Не торопитесь помещать. Сделайте три вещи:
Конфигурация→Проверка конфигурации, оставив стандартные галочки. Ошибки синтаксиса и неразрешённые ссылки вылезут сразу.- Выполните
Конфигурация→Обновить конфигурацию базы данныхи запустите базу в режиме 1С:Предприятие. Откройте пару ключевых документов и отчётов. - Откройте любую свою доработку и посмотрите, что она осталась на месте.
Шаг 5. Поместите в хранилище
Конфигурация → Хранилище конфигурации → Поместить изменения. В поле комментария напишите номер релиза и что сделано, например «Обновление на релиз такой-то, доработки по печатным формам перенесены». Через год по такому комментарию легко найти нужную версию.
Конфликты версий: как слить доработки с релизом
Конфликт возникает, когда вы изменили модуль, форму или макет, и поставщик изменил то же самое.
Вариантов у вас три:
| Метод | Когда подходит | Риск |
|---|---|---|
| Приоритет поставщика | Ваша правка устарела или реализована в типовой | Потеряете свою логику |
| Приоритет основной конфигурации | Нужна ваша версия, типовая вам не годится | Пропустите исправления поставщика |
| Ручное слияние | Правки в обеих сторонах нужны | Тратит время, зато без потерь |
Ручное слияние
В окне сравнения откройте объект двойным щелчком. Видны две колонки: слева ваша версия, справа поставщика. Платформа подсвечивает различия.
Порядок действий такой:
- Пройдите различия сверху вниз по списку.
- Для каждого фрагмента решите: берём «слева», «справа» или руками сводим оба.
- Если правка нужна обоим — вставьте оба фрагмента и проверьте, что код остался логичным.
- Сохраните объект и перейдите к следующему.
Если вы дорабатываете типовую конфигурацию, выносите свои изменения в расширения. Тогда релиз ложится без ручного слияния, а в самой конфигурации конфликтов почти нет.
Обычно конфликтов больше всего в общих модулях и модулях форм документов. Макеты печатных форм при слиянии часто теряют правки: проверяйте их глазами после.
Что делать с новыми объектами поставщика
Если в релизе появились новые объекты, 1С добавит их в вашу конфигурацию. Они будут помечены как не захваченные, и при помещении изменений попадут в хранилище одной версией. Отдельно ничего делать не надо.
Как поместить свои доработки в хранилище и не потерять правки
После релиза начинается обычная работа: вы или коллеги вносят собственные изменения. Правило одно: работаете только с захваченными объектами.
- Правая кнопка по нужному объекту →
Захватить в хранилище. - Внесите правки в Конфигураторе, проверьте, что работает.
Конфигурация→Хранилище конфигурации→Поместить изменения, укажите комментарий.- Если больше править не надо, объект освобождается автоматически (галочка «Оставить объекты захваченными» должна быть снята).
Если изменили объект и передумали: Хранилище конфигурации → Отменить захват. Правки в объекте откатятся до версии в хранилище.
Комментарий к версии пишите по делу: что поменяли и зачем. Эти комментарии потом читают, когда ищут, кто и когда сломал печатную форму.
Версии для отката
Каждое помещение — отдельная версия. Если релиз принёс проблемы, можно вернуться к предыдущей: Хранилище конфигурации → Показать историю, выберите версию, получите её в базу. Для боевой базы так делать нельзя, только в копии разработчика.
Ошибки при обновлении с хранилищем и как их починить
Здесь собраны сообщения, которые встречаются чаще других.
Объект захвачен другим пользователем
Объект захвачен другим пользователем — коллега взял объект и не отпустил. Откройте Хранилище конфигурации → Администрирование → Список захваченных объектов (название пункта может немного отличаться) и посмотрите, кто держит.
Что делать:
- попросить владельца поместить правки или отменить захват;
- если человек в отпуске, администратор хранилища может снять захват принудительно: у администратора для этого есть отдельное действие в том же меню.
Нет прав на выполнение операции
Недостаточно прав для выполнения операции — у вашего пользователя хранилища нет нужной роли. Вернитесь к таблице прав выше и попросите администратора поднять уровень.
Конфигурация базы данных не совпадает с конфигурацией хранилища
Такое случается, когда кто-то обновил базу в обход хранилища. Решение: получить конфигурацию из хранилища целиком (Обновить конфигурацию из хранилища), потом Обновить конфигурацию базы данных. Если хранилище и база уже сильно разошлись, проще создать копию базы
заново и подключить её к хранилищу.
Хранилище не открывается или «зависло»
Для файлового хранилища проверьте три вещи:
- доступен ли каталог по сети и хватает ли места на диске;
- нет ли блокирующих процессов (проверьте, не висит ли чей-то Конфигуратор);
- не повреждён ли файл
1cv8ddb.1CD. Если да, восстанавливайте из резервной копии.
Файловое хранилище не любит нестабильную сеть. При обрывах в момент помещения изменений версия может записаться не полностью. Для коллектива из нескольких разработчиков лучше сервер хранилища.
Релиз встал, а в рабочей базе ничего не поменялось
Это нормально. Рабочую базу обновляют отдельно: выгружаете из базы разработчика конфигурацию в файл .cf или готовите .cfu, а затем загружаете в рабочую в тихое время. Хранилище на рабочую базу напрямую не влияет.