Хранилище конфигурации 1с развертывание и работа. Работа с хранилищем конфигурации

При коллективной разработке требуется контроль за историей разработки, отслеживание объектов, которые дорабатываются в текущий момент.

Для этого и предназначено хранилище конфигурации.

  • если в конфигурации более одного разработчика
  • несколько баз, но решение единое и требуется их синхронизация
  • просто требуется сохранять историю разработки даже одного программиста

Значит вам надо разворачивать хранилище конфигураций.

Быстрый переход

Как это делается поэтапно:

  1. Зайти в « » и создать хранилище
  2. Указать его расположение (папку на которую есть права на запись)
  3. Задать имя Администратора и его пароль
  4. Далее, конфигурация подключится к созданному хранилищу
  5. Следующий шаг: добавление пользователей в хранилище — каждая база разработки привязывается к отдельному пользователю. Эти пользователи никак не связаны с пользователями информационной базы. Зайдите в «Администрирование хранилища»
  6. Добавляете и задаете пароль:
  7. Устанавливаете его права, достаточно прав на «Захват хранилища»
  8. Создаете новую базу из копии (или используете уже существующую), изменения должны быть сохранены, поскольку при первом подключении конфигурация синхронизируется с данными хранилища
  9. Указываете данные ранее созданного пользователя
  10. Вот и всё: подключение к хранилищ успешно завершено

Работа с хранилищем

При каждом старте запуске конфигурации требуется:

  • подключиться к хранилищу указав пароль, либо прописать его в параметрах запуска 1с «ConfigurationRepositoryP»(Пользователь: «ConfigurationRepositoryN», хранилище: «ConfigurationRepositoryF»)
  • либо отказаться от подключения, но не отвязывать хранилища — в этом случае вы сможете править только ранее «Захваченные» объекты, остальные только на просомтр

Для начала работы с объектом его требуется «Захватить» объект — установить монопольный доступ на его разработку. До этого все объекты доступны только на чтение (подобно «Поставке» до снятия с поддержке).

Это можно произвести двумя способами :


После окончания у вас два основных варианта :

  • отменить захват, при этом у вас объект восстановится их хранилища (этим отменяются также внесенные правки)
  • поместить измененный объект

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


Это основные команды для работы с хранилищем.

Особенности работы

Отбор захваченных объектов

  • можно отобрать все захваченные
  • захваченные определенным пользователем


В целом, хранилище работает очень стабильно:

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

Для резервного копирования достаточно настроить сохранение

1Cv8ddb.1CD и ПОЛНОСТЬЮ папку data, расположенную в той же папке, что и файл 1Cv8ddb.1CD

Если http-Сервер не отвечает или сбрасывает соединение, то может возникнуть ошибка «Неклассифицированная ошибка работы с хранилищем конфигурации»:

При «Ошибке сетевого доступа к серверу» попробуйте перезапустить службу хранилища и выполнить команду «Хранилище конфигурации/Закрыть хранилище/Открыть хранилище».

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

Уменьшилось удобство при повторном подключении

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

Раньше, настройки: адрес хранилища и пользователь сохранялись, оставалось только внести пароль — это было гораздо быстрее.

Субъективно и процесс начальной синхронизации стал дольше — не припоминаю долго висящего состояния «Построение снимка версии конфигурации»

В 8.3. появился режим совместимости на вкладке «Прочее» в администрировании хранилища: этим можно включить новый формат хранения.

Особенности хранения

«Хранилище» до 8.3.3 это обычная файловая база, в виде файла 1Cv8ddb.1CD, в которой дополнительно хранится информация о захватах.

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

С версии 8.3.3 появилась папка «data»:
Скорее всего для более универсальной работы с системами версионного контроля.

В случае проблем с рассинхронизацией можно почистить каталог «Cache» в папке хранилища.

Механизм оптимизации

Находится на вкладке «Прочие»

Производится упаковка файлов метаданных в папку pack

  • Количества неупакованных файлов больше 5000.
  • Количества архивов более 50.

Для групповой разработки конфигурации в системе «1С:Предприятия» 8 используется специальный механизм - хранилище конфигурации . Хранилище конфигурации - это файловая база данных, в которую средствами конфигуратора помещается конфигурация, и которая хранит в себе информацию о редактируемых в данный момент объектах, а также историю изменения этих объектов. Доступ разработчиков к хранилищу конфигурации осуществляется либо в рамках локальной сети, либо по удаленному доступу с использованием веб-сервера. Изначально, конфигурация рассматривается как набор объектов, закрытых для изменения. Чтобы произвести изменения в объекте, его следует захватить, а одновременно объект может быть захвачен только одним пользователем. После работы с захваченными объектами, результат их модификации помещается в хранилище, после чего эти объекты становятся доступными всем участникам групповой разработки. Таким образом, осуществляется контроль доступа к одним и тем же объектам конфигурации, а также обеспечивается синхронизация работы группы разработчиков по модификации конфигурации.

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

Создание хранилища 1С

Так как хранилище- это ничто иное как информационная база, то создать его очень просто. Переходим Конфигурация - Хранилище конфигураций Создать хранилище. В появившемся окне указываем путь, где будет расположена ИБ, а также логин и пароль администратора(данный пользователь не связан с пользователями БД). Нажимаем Ок, в результате чего в указанное место будет выгружена текущая конфигурация.

P.S Сразу же после создания хранилища, создайте еще одного пользователя с административными правами, даже если будете работать только вы. Для чего это делается? Объясняю. Не редки случаи, когда пользователь «зависает», а так как увас есть еще один, то вы сможете зайти и снять свой же зависший сеанс. Пользователь создается в пункте Администрирование хранилища.

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

Собственно хранилище у нас уже есть. Теперь необходимо подключить пользователей к нему. На каждом персональном компьютере разработчика требуется создать пустую базу или загрузить в нее либо *.dt файл либо просто конфигурацию *.cf из основной базы. После этого необходимо перейти в пункт Подключение к хранилищу и ввести имя пользователя и пароль, которые предоставит администратор для каждого пользователя. В результате подключения ваша локальная конфигурация будет полностью заменена конфигурацией из хранилища.

P.S Все данные локальной информационной базы останутся на месте. То есть как бы происходит объединение конфигураций без затрагивания текущих данных БД.

Обновление и захват хранилища

Если вы уже произвели редактирование в локальной базе и в хотели бы перенести изменения, то вам необходимо выгрузить «конфу» в *.cf файл. После вы подключаетесь к хранилищу. Ваша конфигурация затирается. Теперь необходимо произвести захват объектов. Если вы один в базе, то произведем рекурсивный захват(захватываются все подчиненные объекты) и правой кнопкой мыши нажимаем Захват в хранилище по корневому элементу конфигурации, либо каждый объект захватываете отдельно, если вы работаете вместе. Далее переходите в пункт Сравнить хранилище с конфигурацией из файла. Вуаля - все ваши изменения теперь в хранилище.

Способ захвата можно установить в появившемся окне рис.5. Либо рекурсивно(1), либо разрешать другим получать захваченные объекты (2)

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

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

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

Профессор: - Как называется хранилище для воды?

Студент: - Презервуар?

Профессор: - Правильно, только без "п".

Студент: - Резерватив?...

Хранилище конфигурации - это полезный функционал 1С 8 для групповой разработки прикладных решений, для версионирования прикладного решения а так же документирования изменений прикладного решения в процессе разработки.
После изучения теоретических материалов выложенных в сети я сделал первый практический шаг в освоении, с которым и хочу с Вами поделится:

Релиз платформы 1С : 8.1.15.14
ОС : WinXP Pro SP3

1 . Установим службу Сервера хранилищ конфигурации 8.1 используя команду:
"D:\Program Files\1Cv81\bin\crserver.exe" -instsrvc -d "D:\1c_repository\"
Каталог D:\1c_repository\ был создан предварительно, для размещения в нем конфигураций хранилища.

В отличие от рекомендаций, широко опубликованных в сети, между ключом «-d» и его параметром (путем к корневому каталогу, в котором хранятся каталоги с отдельными хранилищами конфигурации) ОБЯЗАТЕЛЬНО ДОЛЖЕН БЫТЬ ПРОБЕЛ.
2 . Настраиваем и стартуем службу.



3 . Создадим конфигурацию в каталоге хранилища D:\1c_repository\ .

Созданная конфигурация у меня чистая(пустая) и я предполагаю что с ней будут работать программисты удаленно с своих компьютеров.

4 . В конфигураторе созданной базы создаем Хранилище.

Указываем путь к файловому каталогу конфигурации.

Заводим учетную запись Администратора Хранилища.

И подключаемся к Хранилищу.

5 . Создадим учетную запись для первого удаленного разработчика.


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


В данном примере я подключаюсь к хранилищу с этого же компьютера, поэтому путь указан напрямую к каталогу. Для подключения к Хранилищу по локальной сети необходимо использовать протокол tcp, тогда строка расположения каталога будет иметь следующий вид: "tcp//192.168.0.18/МДБ". Так же, есть возможность использовать протокол http(я не рассматривал).

При успешном подключении будет:

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

Что значит "пользователь подключился к Хранилищу"? Как я понимаю в нашем примере пользователь prada развернул у себя в каталоге ТестХранилищеМожноУдалить копию базы из МБП каталога, которые взаимосвязаны как база разработчика - база хранилища. Т.е. в базе разработчика prada может разрабатывать конфигурацию и после выгрузить свои изменения в хранилище. Получается что все удаленные разработчики работают с базой хранилища через свои базы разработчика. Попробуем поработать с хранилищем.

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



В дереве конфигурации появится значок указывающий на захваченный объект.

У Администратора(и как я понимаю у других пользователей) значок в дереве конфигурации будет следующий:

Кроме того, у администратора есть возможность отменить захват объекта в меню Администрирование хранилища(не тестировалось).

8 . Разработчик prada создает константу и справочник.

У Администратора пока никаких изменений нет.

В меню работы с Хранилищем есть полезная функция "Сравнить/объединить конфигурацию с хранилищем"

В нашем примере, prada добавил константу и справочник.

9 . Разработчик prada помещает свои изменения в Хранилище МДБ.

При помещении изменений есть возможность указать комментарий к вносимым изменениям.


У разработчика prada значки в дереве конфигурации изменятся на:

а у Администратора(и других) на:

10 . История Хранилища. Хранилище хранит историю внесенных изменений.

11 . После завершения работы prada отменяет захват объектов хранилища.


Всё. На этом первый практический урок завершен.

  1. Групповая разработка прикладных решений от 1С -

В 1с версии 7.7 совместная разработка или доработка конфигурации была настоящим мучением. Для того чтобы поддерживать одну конфигурацию даже вдвоем, приходилось делать две копии актуальной базы, затем, после внесенных изменений вручную переносить изменения из конфигурации одной копии в конфигурацию другой. Только потом можно было обновить основную поддерживаемую конфигурацию! Усугубляло положение отсутствие подсистем.

В восьмой версии 1с для совместной разработки используется хранилище конфигурации . Работа с хранилищем происходит следующим образом:

  • Создаем хранилище

Выбираем в меню "Конфигурация"->"Хранилище конфигурации"->"Создать хранилище..."

Указываем путь к каталогу хранилища. (Каталог должен быть доступен для всех разработчиков!)

После того как хранилище создано, заходим в пункт меню "Конфигурация"->"Хранилище конфигурации"->"Администрирование" для того чтобы создать пользователей для разработчиков

И создаем пользователей

  • Подключаем конфигурации разработчиков к хранилищу конфигурации


выбираем пункт меню "Конфигурация"->"Хранилище конфигурации"->"Подключиться к хранилищу..."



Так как у нас с вами копии основной базы пока идентичны, смело нажимаем кнопку "Да" и указываем путь к хранилищу, имя пользователя и пароль

Ждём, пока произойдет сравнение конфигурации с хранилищем.

Если всё прошло успешно, то справа от объектов конфигурации в дереве объектов должна появиться пиктограммка замка.

  • Работа с хранилищем конфигурации

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

указать настройки захвата

У объекта в дереве конфигурации появится пиктограмма

Если объект захвачен другим разработчиком, то объект в дереве конфигурации выглядит так

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



  • Если требуется отменить сделанные изменения и освободить объект от захвата, то выбираем в контекстном меню объекта пункт "Отменить захват"

  • Если требуется восстановить объект из хранилища, то то выбираем в контекстном меню объекта пункт "Получить из хранилища...". При этом внесенные изменения в то время, как объект был захвачен, теряются.

  • Так же можно просмотреть историю версий и сравнить захваченный и измененный объект с объектом в хранилище.

  • После того, как работа в копиях завершена(или завершен какой-то промежуточный этап), можно обновить конфигурацию основной базы для этого нужно выбрать пункт в меню "Конфигурация"->"Хранилище конфигурации"->"Обновить конфигурацию из хранилища" или "Конфигурация"->"Хранилище конфигурации"->"Сравнить/объединить конфигурацию с хранилищем".

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

Приятной вам разработки!

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

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

Для решения этой задачи нам понадобиться:

1. хороший интернет на всех компьютерах, где идет разработка
2. компьютер, который виден из вне по белому IP

Как правило компьютер с белым IP – сервер в офисе. Начинать разворачивание хранилища конфигурации надо с его настройки. Первым делом поставим на него платформу 1С. При установке нужно указать наличие компоненты Сервер хранилища конфигурации. Обратите внимание на релиз платформы, дело в том, что при данной методике работы нужна одинаковая версия платформы, на всех компьютерах. И в вашем офисе, и дома, и у заказчика.

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


Перед регистрацией надо определиться, в какой папке будет лежать наше хранилище. Сервер позволяет работать с несколькими хранилищами одновременно, поэтому серверу при регистрации мы указываем каталог, в котором будут лежать уже каталоги с хранилищами. Так же сервер прекрасно работает с русскими именами папок. Для дальнейшей функциональности было бы неплохо (но не обязательно), чтобы эта папка была расшарена. Например у нас есть общая папка на диске «Обмен», создадим в ней подкаталог «Хранилища».

Теперь регистрируем службу сервера хранилищ. Для этого жмем «пуск», «выполнить», набираем «cmd», жмем Enter и в командной строке пишем:
"C:\Program Files (x86)\1cv8\8.3.4.408\bin\crserver.exe" -instsrvc -d "C:\Обмен\Хранилища"

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

Тут надо убедиться, что служба запущена и что у неё стоит автозапуск. Поскольку при регистрации мы не указали пользователя, то запускается она под системной учетной записью. Это удобно, но возможно не безопасно, при необходимости исправьте это в свойствах службы.
Теперь нам надо создать хранилище. Эта процедура долгая, поэтому рекомендую делать это в локальной сети, где находится наш сервер. Создаем, его как обычно, только в строке с путём указываем не сетевую папку, а путь в следующем формате:
tcp://Server1C/ХранилищеПроекта1\

Где Server1C – имя компьютера в локальной сети. Можно указать IP адрес этого компьютера. ХранилищеПроекта1 – имя каталога для нового хранилища. После создания на сервере хранилище будет лежать в папке C:\Обмен\Хранилища\ХранилищеПроекта1 .

Хоть мы и используем сервер хранилищ, но по своей сути это та же файловая база формата 1CD и к ней можно подключиться старым способом, указав в строке подключения сетевой каталог:
\\Server1C\Обмен\Хранилища\ХранилищеПроекта1

Тут есть несколько нюансов:
1. При работе по tcp с файлом базы работает процесс запущенный относительно файла локально, что обеспечивает некую надежность. Ранее я писал, что даже из-за использования wi-fi база хранилища может посыпаться, печальный опыт был. В этом случае система становится более устойчива к сбоям в сети.
2. При работе по tcp нужны одинаковые версии релизов платформы у всех участников, при файловом общении – нет.
3. Общая папка – папка с полным доступом для всех участников. Люди запросто могут случайно (а может и не случайно) накидать туда мусора, стереть пару «не нужных» файлов, в общем нагадить.

Исходя из этих нюансов, возможно есть смысл даже внутри локальной сети в некоторых случаях разворачивать сервер хранилища.
Теперь о доступе из вне. Сервер хранилищ работает на порту 1542. Если внешний белый IP адрес указывает непосредственно на Ваш сервер, то нужно позаботиться об открытии этого порта. Если внешний IP указывает на роутер, то надо настроить проброску. В моем случае была проброска, сисадмин выдели свободный порт для этого. У меня строка подключения выглядела так:
tcp://36.21.65.20:1501/ХранилищеПроекта1\

Комфорт работы с таким хранилищем полностью зависит от скорости интернета, поэтому всякие там usb модемы в модульных помещениях (почти всех торговых центрах) – плохая практика. Если в модеме нет стабильного 3G и он постоянно переходит на GPRS, то я бы даже не стал пытаться.

Еще, на последок, расскажу об обновлении платформы. Т.к. свежая 1С 8.3 сейчас выходит часто, то это актуально. Переустанавливать платформу надо везде сразу, это и так ясно. При переустановке на сервере служба автоматом не обновиться. Если делать все по правильному, т.е. зарегистрировать приложение crserver.exe из папки bin со свежим релизом платформы, то т.к. называется служба так же, то старая служба пометится на удаление, потребуется перезагрузка сервера. Можно поступить проще. Заходим в службы, останавливаем сервер хранилищ. Смотрим в свойствах строку запуска и копируем её в буфер обмена. Лезем в редактор реестра (regedit ) и ищем в реестре эту строку. Правим в ней номер релиза (он присутсвует в имени папки). Запускаем службу обратно. Все. Если Вы накосячили, то служба у Вас не запуститься. После запуска зайдите в свойства службы и визуально убедитесь, что она стартанула из папки с новым релизом.

На сегодня все, спасибо за внимание

Последние материалы раздела:

Как заблокировать человека в контакте
Как заблокировать человека в контакте

Почти каждый пользователь социальной сети задумывался, как заблокировать страницу в "ВК". Это довольно простая операция, которая имеет несколько...

Визуальные эффекты Launchpad в OS X Lion Что такое launchpad в mac
Визуальные эффекты Launchpad в OS X Lion Что такое launchpad в mac

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

Игра «Пекло!» – официальная группа. Вирус CRYPTED000007 — как расшифровать файлы и удалить вымогателя Резюме, отзыв, мнение
Игра «Пекло!» – официальная группа. Вирус CRYPTED000007 — как расшифровать файлы и удалить вымогателя Резюме, отзыв, мнение

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