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

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

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

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

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

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

В любой момент времени можно выполнить сравнение текущей конфигурации с хранилищем или выполнить сохранение хранилища как конфигурации.
История хранилища
Конфигуратор 1С:Предприятия поддерживает ведение истории хранилища:

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

Отчет по версиям хранилища отражает состав добавленных или измененных объектов:

Отчет по объектам разработки содержит информацию об изменениях, которые были внесены в конкретные объекты прикладного решения:

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

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

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

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

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

Удаленная работа с хранилищем конфигурации
Начиная с версии 8.1.11, с хранилищем конфигурации можно работать, используя не только общий сетевой ресурс, но и соединение по локальной сети (используя протокол TCP) и интернет-соединение (используя протокол HTTP). В общем случае взаимодействие разработчиков с хранилищем конфигурации может выглядеть следующим образом:

Хранилище конфигурации может располагаться на компьютере под управлением операционных систем как Windows, так и Linux. В операционной системе Windows сервер хранилища конфигурации может быть запущен как приложение или установлен как сервис. В операционной системе Linux сервер хранилища конфигурации может быть запущен как процесс или как демон. При этом:
- При подключении по TCP протоколу «клиентское приложение» взаимодействует с сервером хранилища конфигурации. Тот в свою очередь взаимодействует непосредственно с хранилищем.
- При подключении по HTTP протоколу «клиентское приложение» подключается к веб-серверу. Веб-сервер обращается к серверу хранилища, который взаимодействует с хранилищем конфигурации.
Проверка и исправление хранилища конфигурации
Для автономной проверки хранилища конфигурации может использоваться утилита восстановления файловой базы данных. Исправлять хранилище этой утилитой не рекомендуется.
Однако в случае потери копии последней версии конфигурации можно попытаться выполнить исправление файла базы данных хранилища для того, чтобы получить из него последнюю версию конфигурации, на основе которой создать новое хранилище.
Варианты использования хранилища конфигурации
Основные принципы и особенности работы с хранилищем конфигурации описаны в разделе Особенности работы с хранилищем конфигурации. В данном разделе мы постараемся отразить варианты использования хранилища конфигурации, не вдаваясь в подробности, возникающие в процессе разработки конфигурации с использованием хранилища.
Использование группой разработчиков
Основным предназначением хранилища конфигурации является организация совместной разработки конфигурации группой разработчиков. Главным преимуществом подобной разработки является возможность изменения одной и той же конфигурации несколькими разработчиками одновременно. Хранилище ведет историю изменений конфигурации, что позволяет в любой момент получить конфигурацию более ранней версии или же вернуться к этой версии. Каждая версия конфигурации, создаваемая в хранилище, может содержать комментарий, описывающий произведенные изменений, и метку — выделяющую данную версию из остальной истории конфигурации.
Использование одним разработчиком
Данный вариант использования хранилища конфигурации может рассматриваться как частный случай варианта использования хранилища группой разработчиков. В этом случае хранилище представляет собой некий архив конфигурации, который может использоваться для ведения истории изменений. Разработка конфигурации должна вестись по правилам работы с хранилищем (захват объектов конфигурации, изменение их и помещение в хранилище). При этом, т.к. других (параллельно работающих) разработчиков данной конфигурации нет, при помещении объектов в хранилище можно всегда устанавливать признак «Оставить захваченными».
Автономная работа
Разработка конфигурации, подключенной к хранилищу конфигурации, подразумевает непосредственную связь с базой данных хранилища. Однако если возникает необходимость конфигурирования без непосредственной связи с хранилищем, то предварительно необходимо захватить объекты, которые планируется изменить. После чего, при открытии конфигурации, необходимо отказаться от соединения с хранилищем, но не отключаться от хранилища (на соответствующее предложение системы необходимо ответить отрицательно), при этом все захваченные ранее объекты конфигурации будут доступны для редактирования. При последующем подключении по необходимости можно синхронизовать конфигурацию с конфигурацией хранилища (поместив захваченные объекты в хранилище).
Отчеты
- отчет по версиям;
- отчет по объектам;
- отчет по комментариям.
Отчет по версиям — в данном отчете содержится информация о версиях конфигурации хранилища. Для каждой версии отображается пользователь, создавший ее, списки добавленных/измененных/удаленных объектов, а также комментарий к данной версии хранилища.
Отчет по объектам — в данном отчете содержится информация об объектах конфигурации хранилища. Для каждого объекта конфигурации отображается список комментариев к версиям конфигурации, в которых данный объект конфигурации добавлялся/изменялся/удалялся.
Отчет по комментариям — данный отчет содержит информацию о версиях конфигурации, сгруппированную по комментариям к версиям. Для каждого уникального комментария отображается информация об объектах, которые были добавлены/изменены/удалены в версиях конфигурации хранилища, имеющих данный комментарий.
Резервное копирование хранилища
Для осуществления резервного копирования хранилища конфигурации необходимо выполнить копирование файла 1cv8ddb.1cd и каталога data при его наличии. Каталог data появляется при работе с хранилищем в режиме совместимости «Не использовать» и содержит файлы объектов метаданных. Каталог cache может не включаться в состав резервной копии, так как содержит вспомогательные файлы с версиями конфигурации. Данный каталог создается автоматически и может периодически очищаться для освобождения места на диске.
После восстановления хранилища конфигурации из резервной копии информация о захваченных объектах будет синхронизирована с преимуществом хранилища конфигурации, т.е. состояние захвата объекта будет в любом случае взято из хранилища конфигурации.
Хранилище конфигурации и механизм поддержки
Механизм поддержки конфигурации и хранилище конфигурации могут быть использованы совместно. Оба механизма предполагают запрет редактирования объектов конфигурации исходя из собственной логики работы. Для того чтобы осуществить редактирование объекта конфигурации, подключенной к хранилищу и стоящей на поддержке, необходимо не только захватить требуемый объект в хранилище, но и сделать его доступным для редактирования средствами механизма поддержки.
Обновление конфигурации
Для корректного обновления конфигурации, подключенной к хранилищу, рекомендуется предварительно захватить все объекты конфигурации. После это выполнить обновление и поместить объекты обратно в хранилище. Обновление конфигурации возможно при захвате только корневого объекта конфигурации, однако, в таком случае, при наличии обновления для объекта, не захваченного в хранилище, его обновление выполнено не будет.
Изменение параметров поддержки
Для изменения параметров поддержки конфигурации, подключенной к хранилищу, необходимо захватить корневой объект конфигурации. Произведенные изменения в параметрах поддержки будут доступны другим разработчикам данной конфигурации только после помещения корневого объекта в хранилище конфигурации.
Хранилище конфигурации и механизм распределенной ИБ
При разработке конфигурации распределенной информационной базы к хранилищу конфигурации может быть подключена только конфигурация информационной базы, являющейся корневым узлом распределенной информационной базы (значение Главного узла в такой информационной базы равно Неопределено ). Подключение к хранилищу конфигураций информационных баз подчиненных узлов невозможно, потому что изменение конфигурации в таких информационных базах может осуществляться только через сообщения обмена. В остальном работа с хранилищем конфигурации при разработке конфигурации, в рамках распределенной ИБ, ничем не отличается от разработки в обычной информационной базе.
Хранилище конфигурации в 1С 8.3: установка и настройка

Файловая база данных, в которой хранится информация обо всех вносимых изменениях в конфигурацию, называется ее хранилищем.
Как работать с хранилищем конфигурации 1С 8.3
Через хранилище может вестись коллективная работа разработчиков с конфигурацией. При этом можно посмотреть, кем и когда были внесены те или иные изменения. При подключении к хранилищу, все метаданные из него загружаются в базу.
Разработчики, создавая собственные объекты метаданных, чтобы не возникло ситуации одновременного изменения объекта в хранилище, могут воспользоваться возможностью его захвата. После окончания работы над объектом, он перемещается обратно в хранилище, и метка захвата снимается. В любой момент можно восстановить предыдущую версию конфигурации из ее хранилища. Благодаря этому осуществляется контроль доступа к объектам конфигурации при ее разработке или модификации, и тем самым обеспечивается синхронная работа разработчиков.
Рассмотрим, как происходит такая работа на примере «1С:Бухгалтерия 8.3».
Установка сервера хранилища конфигурации 1С
Если в хранилище будут работать несколько человек, удобнее располагать удаленное хранилище на сервере с доступом через интернет. При этом следует отследить, чтобы платформа была одинакова на всех компьютерах, с которых будет осуществляться работа. При установке платформы необходимо выбрать установку компоненты – «Сервер хранилища конфигураций 1С:Предприятия».

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

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

Для регистрации службы воспользуемся командной строкой. Вызываем ее, введя в строке поиска кнопки «cmd».

Для регистрации службы сервера хранилища конфигурации, в командной строке пишем: «C:\Program Files (x86)\1cv8\8.3.13.1513\bin\crserver.exe» -instsrvc -d «C:\1С Хранилище».
- 8.3.13.1213 – каталог с нашей платформой и далее путь к файлу crserver.exe.
- С:\1С Хранилище – это путь к папке, которую мы создали для хранилища конфигурации (для примера).

Если все правильно написано, то в окне «Службы (локальные)» у нас появится наша служба (найти этот раздел можно поиском в Панели управления).

Нажимаем гиперссылку «Запустить службу», чтобы она заработала. Тип запуска – «Установлено автоматически».
Далее мы создадим хранилище.
Создание хранилища конфигурации 1С
Откроем нашу базу в режиме Конфигуратора и в пункте меню Хранилища выберем команду создания.

Указываем путь, где будет располагаться хранилище. Это может быть локальный компьютер, компьютер в сети, сервере или веб-сервере. Пример локального пути – С:\1С Хранилище.

Или можно указать его сетевое имя (при этом не забудьте открыть доступ к папке).

Если хранилище располагается на сервере, путь указывается в формате: tcp://192.168.0.100/Хранилище конфигурации 1.

Где 192.168.0.100 – IP компьютера (в нашем примере).
Далее мы пишем имя каталога нашего хранилища (например, «Хранилище конфигурации 1»). При создании на сервере хранилища база будет находиться: С:\1С Хранилище\Хранилище конфигурации 1.
Выбрав удобный вариант размещения хранилища, нажимаем кнопку «Далее», указываем имя пользователя и устанавливаем пароль.

После нажатия кнопки «Ок» начнется процесс создания хранилища конфигурации.

По окончании процесса, программа предложит подключиться к хранилищу (подтверждаем действие).

Как подключиться к хранилищу конфигурации 1С 8.3
В нашем пункте меню выбираем команду подключения.

При этом текущая конфигурация заменяется конфигурацией из хранилища. На вопрос программы о подключении отвечаем – «Да».

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

О подключении появится соответствующее сообщение: «Подключение конфигурации к хранилищу успешно завершено».

Отключиться от хранилища можно в том же разделе через команду «Отключиться от хранилища».
Как подключиться к хранилищу конфигурации на сервере за NAT, если есть доступ по RDP?
Плюсом такого решения для клиента является то, что соединение активно только пока активно ssh подключение из rdp сеанса на сервере клиента. Если вам закроют доступ к rdp, то подключаться к хранилищу вы не сможете.
Минусом такого решения для меня является то, что мой домашний комп уязвим для атаки из сети клиента, т.к. свой логин и пароль мне приходится набирать в сеансе rdp и клиенту ничего не стоит их перехватить.
Далее подробнее по пунктам:
Поднятие ssh сервера
У меня Windows 10. Я воспользовался нативным сервером OpenSSH который можно установить с помощью PowerShell.
Запускаем PowerShell с правами администратора и проверяем установлен ли у нас сервер OpenSSH или нет. Для этого выполняем команду:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'
Как видно из результата команды — сервер у меня уже установлен. Если у вас он не установлен, то выполните команду
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Затем настраиваем службу нашего SSH сервера
Я решил, что меня волнует безопасность моего компьютера, поэтому сервер я всегда буду стартовать только вручную, когда мне это надо:
Set-Service -Name sshd -StartupType 'Manual'
Если вас безопасность не парит, то можете поставить службу в автозапуск:
Set-Service -Name sshd -StartupType 'Automatic'
Затем стартуем службу:
Start-Service sshd
Проверяем, что 22-й порт брандмауера открыт и прослушивается:
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled
netstat -na| Select-String '0.0.0.0:22'
Если вы подключены к интернету через роутер, то требуется пробросить какой-нибудь внешний порт на свой компьютер в локальной сети. Я покажу на примере моего роутера tp-link. Для доступа к веб-интерфейсу моего роутера мне нужно перейти в браузере по адресу http://192.168.0.1/ У вас адрес может быть другой.
Для начала зарезервируем в своей локальной сети адрес для своего компьютера. Я зарезервировал для своего компа адрес 192.168.0.101 и в дальнейших настройках буду использовать его. MAC-адрес своего компьютера можно увидеть в списке подключенных клиентов выше.
Далее выполняем проброс случайного порта роутера на 22-й порт нашего компьютера. Я выбрал порт 2020.
Подключение к серверу SSH из сеанса RDP
Заходим по RDP на сервер клиента и скачиваем подходящий клиент Putty.exe
В поле Host Name вводите ваш белый ip, который вам выдал провайдер. Порт вводите тот, который пробросили на роутере. У меня это 2020. Сохраняете настройки сессии кнопкой Save. Нажимаете кнопку Open и проверяете, что клиент подключается к вашему домашнему компьютеру. Потребуется ввести логин и пароль пользователя домашнего компьютера.
Если всё получилось, закрываем соединение командой exit.
Теперь требуется сделать обратный проброс порта для того, чтобы мы могли подключится к хранилищу с нашего домашнего компьютера:
В поле Source Port пишем любой порт, который мы будем использовать в 1С для подключения к хранилищу. У меня это 3333. В поле Destination пишем имя компьютера, на котором развернуто хранилище или localhost, если хранилище находится на том же компьютере, к которому вы подключены по rdp. Стандартный порт хранилища конфигурации 1С — 1542.
Сохраняем настройки подключения на вкладке настроек сессии, открываем SSH соединение по кнопке open, вводим логин и пароль и возвращаемся на свой домашний комп.
Подключение к хранилищу через проброшенный порт
Открываем конфигуратор и подключаемся к хранилищу:
В пути у нас всегда будет localhost т.к. мы в шаге выше сделали проброс 3333 порта нашего домашнего компьютера через ssh туннель на компьютер к которому мы подключены по RDP. 3333 — это «любой порт», что я пробросил в шаге выше. RepoName — это название опубликованного хранилища конфигурации.
Profit
Если не хотите давать доступ к своему домашнему компу по логину и паролю, то можете сгенерировать ssh ключи для доступа к нему, запретить на нем подключение по логину и паролю, разрешить подключение с помощью ssh ключа и добавить сгенерированный ключ в список доверенных. Я не стал этим заморачиваться.