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

· 9 мин

Содержание

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

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

Что подготовить до начала обновления

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

  • 📦 Файл обновления. Либо установленный шаблон релиза (папка с 1cv8.cf или 1cv8.cfu), либо файл .cfu с официального сайта. Версию берите ту, что подходит вашей текущей: перескакивать через несколько промежуточных релизов можно не всегда.
  • 🔑 Права в хранилище. Нужны как минимум «Захват объектов» и «Помещение изменений». Для обновления корня конфигурации удобнее роль администратора хранилища.
  • 💾 Резервная копия хранилища и базы разработки. Хранилище — это один файл 1cv8ddb.1CD в каталоге хранилища (для файлового варианта), его копируют целиком, когда никто не работает .
  • 👥 Тишина в хранилище. Предупредите коллег: пока вы грузите релиз, они не должны ничего помещать.

Проверка прав пользователя

В Конфигураторе откройте Конфигурация → Хранилище конфигурации → Администрирование → Пользователи хранилища. В списке найдите себя и посмотрите роль:

ПравоЧто позволяетНужно для обновления
Только чтениеСмотреть и получать версииНет, годится лишь для коллег после обновления
Захват объектовБрать объекты на редактированиеДа
Изменение версийПомещать правки в хранилищеДа
АдминистраторВсё, включая пользователей и копирование хранилищаУдобно, но необязательно

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

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

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

Если не привязана:

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

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

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

Как получить версию из хранилища (обычное обновление разработчика)

Самый частый случай: коллега уже поместил в хранилище новую версию, а вам нужно её забрать. Никакого релиза грузить не надо.

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

Всё, ваша копия на актуальной версии. Если в списке пусто, значит, ваша версия уже совпадает с хранилищем.

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

Порядок загрузки нового релиза в хранилище

Это шаги ответственного за обновление. Выполняет их один человек.

Шаг 1. Захватите корень конфигурации

Откройте дерево конфигурации, правой кнопкой по самому верху (имя конфигурации) → Захватить в хранилище. Обязательно включите галочку «Рекурсивно» (захват подчинённых объектов). Без неё обновление не сможет менять объекты, которые остались свободными не по вашей воле, и вы получите частичный результат.

Если часть объектов захвачена другими людьми, 1С сообщит об этом списком. Пока они не освободят объекты, полноценно обновить не получится: либо ждите, либо просите коллег поместить правки или отменить захват.

Шаг 2. Запустите обновление конфигурации

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

Дальше платформа проанализирует конфигурацию и откроет окно сравнения.

Шаг 3. Разберите окно сравнения

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

  • 🟢 Объект не менялся — берётся версия поставщика без вопросов.
  • 🟡 Менялся и вами, и поставщиком — 1С предложит объединить автоматически, если правки в разных местах модуля.
  • 🔴 Конфликт — правка в том же месте. Решать придётся вручную.

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

Шаг 4. Проверьте результат до помещения

Не торопитесь помещать. Сделайте три вещи:

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

Шаг 5. Поместите в хранилище

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

Конфликты версий: как слить доработки с релизом

Конфликт возникает, когда вы изменили модуль, форму или макет, и поставщик изменил то же самое.

Вариантов у вас три:

МетодКогда подходитРиск
Приоритет поставщикаВаша правка устарела или реализована в типовойПотеряете свою логику
Приоритет основной конфигурацииНужна ваша версия, типовая вам не годитсяПропустите исправления поставщика
Ручное слияниеПравки в обеих сторонах нужныТратит время, зато без потерь

Ручное слияние

В окне сравнения откройте объект двойным щелчком. Видны две колонки: слева ваша версия, справа поставщика. Платформа подсвечивает различия.

Порядок действий такой:

  1. Пройдите различия сверху вниз по списку.
  2. Для каждого фрагмента решите: берём «слева», «справа» или руками сводим оба.
  3. Если правка нужна обоим — вставьте оба фрагмента и проверьте, что код остался логичным.
  4. Сохраните объект и перейдите к следующему.

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

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

Что делать с новыми объектами поставщика

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

Как поместить свои доработки в хранилище и не потерять правки

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

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

Если изменили объект и передумали: Хранилище конфигурации → Отменить захват. Правки в объекте откатятся до версии в хранилище.

Комментарий к версии пишите по делу: что поменяли и зачем. Эти комментарии потом читают, когда ищут, кто и когда сломал печатную форму.

Версии для отката

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

Ошибки при обновлении с хранилищем и как их починить

Здесь собраны сообщения, которые встречаются чаще других.

Объект захвачен другим пользователем

Объект захвачен другим пользователем — коллега взял объект и не отпустил. Откройте Хранилище конфигурации → Администрирование → Список захваченных объектов (название пункта может немного отличаться) и посмотрите, кто держит.

Что делать:

  • попросить владельца поместить правки или отменить захват;
  • если человек в отпуске, администратор хранилища может снять захват принудительно: у администратора для этого есть отдельное действие в том же меню.

Нет прав на выполнение операции

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

Конфигурация базы данных не совпадает с конфигурацией хранилища

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

Хранилище не открывается или «зависло»

Для файлового хранилища проверьте три вещи:

  • доступен ли каталог по сети и хватает ли места на диске;
  • нет ли блокирующих процессов (проверьте, не висит ли чей-то Конфигуратор);
  • не повреждён ли файл 1cv8ddb.1CD. Если да, восстанавливайте из резервной копии.

Файловое хранилище не любит нестабильную сеть. При обрывах в момент помещения изменений версия может записаться не полностью. Для коллектива из нескольких разработчиков лучше сервер хранилища.

Релиз встал, а в рабочей базе ничего не поменялось

Это нормально. Рабочую базу обновляют отдельно: выгружаете из базы разработчика конфигурацию в файл .cf или готовите .cfu, а затем загружаете в рабочую в тихое время. Хранилище на рабочую базу напрямую не влияет.

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

Перед обновлением: чек-лист

Обновление с хранилищем
Выполнено: 0 / 8

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

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