Получение объектов и версий из хранилища в Конфигураторе 1С 8.3

· 9 мин

Содержание

Чтобы получить объекты из хранилища конфигурации 1С, откройте Конфигуратор подключённой базы и выберите Конфигурация → Хранилище конфигурации → Получить из хранилища…. Отметьте нужные объекты, нажмите «ОК», а затем обновите конфигурацию базы данных клавишей F7. Если нужно забрать все изменения сразу, есть команда Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища.

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

Подготовка: подключение к хранилищу и права пользователя

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

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

Адрес зависит от того, как развёрнуто хранилище:

ВариантКак выглядит адресГде применяется
Файловое\\fileserver\repo\buh или D:\repo\buhНебольшая команда в одной сети
Через сервер хранилищаtcp://repo-srv/buh (по умолчанию порт 1542)Удалённые разработчики, много участников
Через веб-серверhttp://repo-srv/repo/buhДоступ через интернет по HTTP

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

Что нужно для получения объектов:

  • 👤 учётная запись в списке пользователей хранилища;
  • 📂 права на чтение папки (для файлового варианта) или доступ к порту сервера хранилища;
  • 🔢 версия платформы, совместимая с хранилищем: для работы через сервер хранилища версия клиента и сервера должна совпадать.

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

Как получить объекты из хранилища: пошаговый алгоритм

Получение выбранных объектов

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

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

Получение всех изменений одной командой

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

Получение через окно хранилища

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

Получение в новую базу разработчика

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

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

Какой способ выбрать

  • 🔁 Каждое утро — Обновить конфигурацию из хранилища: одна команда, ничего не пропустите.
  • 🎯 Нужен один объект перед захватом — получение из окна хранилища.
  • 🧪 Нужна чистая копия для теста — сохранение конфигурации хранилища в файл.

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

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

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

Где смотреть историю

  • Конфигурация → Хранилище конфигурации → История хранилища… — все версии хранилища с номером, датой, автором и комментарием.
  • История одного объекта — из контекстного меню объекта в окне хранилища.

В окне истории можно открыть версию, сравнить её с текущей конфигурацией или другой версией и сохранить в файл.

Три способа забрать старую версию

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

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

Метки версий

Перед выпуском релиза или крупной доработкой ставьте на версию метку в окне истории. Метка с понятным текстом, например «Перед переходом на новый релиз БП», потом находится за секунды. Номер версии через полгода никто не вспомнит.

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

Конфликты при получении объектов из хранилища

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

Объект захвачен вами и изменён

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

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

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

Получение объекта поверх непомещённых правок стирает их без возможности вернуть из хранилища.

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

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

Изменения без захвата

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

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

Настройки захвата и безопасности при работе с хранилищем

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

Как захват связан с получением

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

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

Что делает администратор хранилища

Административные функции находятся в Конфигурация → Хранилище конфигурации → Администрирование:

  • 👥 список пользователей и их права;
  • 🔑 смена пароля администратора;
  • 🧹 оптимизация данных хранилища;
  • 🔓 принудительная отмена захвата объектов пользователя, который уволился или ушёл в отпуск.

Рекомендации по правам:

  • 🛡️ «Административные функции» — одному-двум людям.
  • ✍️ «Захват объектов» — только разработчикам.
  • 👀 Аналитикам и тестировщикам хватит учётной записи без прав захвата: они могут получать объекты и смотреть историю.
  • 🤖 Для автоматической выгрузки заведите отдельного пользователя хранилища без прав захвата.

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

Автоматизация получения из хранилища: пакетный режим 1cv8

Регулярное получение удобно поручить скрипту: ночная тестовая база, сборка .cf для релиза, выгрузка в Git. Для этого Конфигуратор запускают в пакетном режиме с параметрами командной строки.

Основные параметры:

ПараметрНазначение
/ConfigurationRepositoryFАдрес хранилища
/ConfigurationRepositoryNПользователь хранилища
/ConfigurationRepositoryPПароль пользователя хранилища
/ConfigurationRepositoryUpdateCfgОбновить конфигурацию из хранилища; -v задаёт номер версии, -force подтверждает получение без вопросов
/ConfigurationRepositoryDumpCfgСохранить конфигурацию хранилища в .cf
/UpdateDBCfgОбновить конфигурацию базы данных
/OutФайл журнала выполнения

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

@echo off
set V8="C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe"

%V8% DESIGNER /S "srv1c\buh_test" /N "Администратор" /P "pass" ^
  /ConfigurationRepositoryF "tcp://repo-srv/buh" ^
  /ConfigurationRepositoryN "robot" /ConfigurationRepositoryP "robotpass" ^
  /ConfigurationRepositoryUpdateCfg -force ^
  /UpdateDBCfg ^
  /DisableStartupDialogs /Out "C:\logs\repo_update.log"

Путь к 1cv8.exe замените на версию, установленную у вас. Версия должна совпадать с версией сервера хранилища.

Выгрузка конкретной версии в файл для релиза:

%V8% DESIGNER /F "D:\bases\empty" /N "Администратор" /P "pass" ^
  /ConfigurationRepositoryF "tcp://repo-srv/buh" ^
  /ConfigurationRepositoryN "robot" /ConfigurationRepositoryP "robotpass" ^
  /ConfigurationRepositoryDumpCfg "D:\release\buh_v512.cf" -v 512 ^
  /DisableStartupDialogs /Out "C:\logs\dump.log"

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

Что ещё автоматизируют

  • 🗂️ Выгрузку истории хранилища в Git. Для этого есть открытые инструменты на OneScript, которые проходят версии по порядку и делают коммит на каждую.
  • 📊 Отчёт по хранилищу: параметр /ConfigurationRepositoryReport формирует файл с перечнем версий и изменений.
  • 🔐 Пароли не храните в bat-файле открытым текстом. Вынесите их в переменные окружения учётной записи, под которой работает планировщик.

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

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

Можно ли получить объекты из хранилища без Конфигуратора?
Нет, интерактивно — только в Конфигураторе. Без открытия окна это делается пакетным запуском 1cv8 в режиме DESIGNER с параметрами хранилища.
Нужно ли отключаться от хранилища, чтобы загрузить конфигурацию из .cf?
Если база подключена, загрузка из файла сломает соответствие с хранилищем. Правильнее получить нужную версию из хранилища, а .cf использовать для отдельной базы.
Почему после получения в базе всё старое?
Изменения попали в основную конфигурацию, но не в конфигурацию базы данных. Нажмите F7 и примите изменения.
Можно ли получить объект, который сейчас захвачен коллегой?
Да. Вы получите его последнюю помещённую версию, без незаконченных правок коллеги.
Как вернуть удалённый из конфигурации объект?
Откройте историю хранилища, найдите версию до удаления, сохраните её в .cf и перенесите объект через сравнение конфигураций.