Создание хранилища конфигурации 1с. Работа с хранилищем конфигурации удаленно
Хранилище конфигурации в 1С 8.2 и 8.3 — это инструмент для групповой разработки решения, встроенный в платформу 1С: Предприятие 8. Хранилище позволяет вести многопользовательскую разработку решений неограниченным количеством пользователей. С его помощью можно увидеть полную историю разработки конфигурации и каждый шаг разработчиков в подробностях.
Рассмотрим настройки и работу с хранилищем конфигурации подробнее.
Хранилище, по сути, это база данных, где хранятся изменения конфигурации. Каждый из разработчиков работает со своей информационной базой, подключенной к хранилищу. Рабочая база так же может быть подключена к хранилищу. Лучше всего общая схема изображена на этой картинке:
Так же в этой БД хранится информации о том, кем захвачен тот и или иной объект. Захват объекта — это метка, устанавливаемая разработчиком. Установленный захват позволяет избежать коллизий при групповой разработке. Пока объект захвачен, никто не может его редактировать.
Захватить можно как объект целиком (рекурсивно), так и отдельно объект или формы.
После того как разработчик произвел какие-то действия над объектом, он обязан поместить доработки в хранилище. И тем самым снять пометку о том, что объект захвачен.
Как создать хранилище 1С
Создать хранилище достаточно просто, для этого необходимо выбрать в меню «Конфигурация — Хранилище конфигурации» пункт «Создать хранилище». В появившемся меню достаточно указать путь к будущему расположению хранилища и логин/пароль пользователя-администратора:
При создании сделайте обязательно резервную учетную запись с административными правами — очень часто это выручает.
Как подключиться к хранилищу 1С
Чтобы подключиться к хранилищу конфигурации, нужно выбрать в меню в меню «Конфигурация — Хранилище конфигурации» пункт «Подключиться к хранилищу». В появившемся окне необходимо указать путь к хранилищу и логин/пароль пользователя, нажать «Подключиться»:
Получите 267 видеоуроков по 1С бесплатно:
В момент подключения Ваша конфигурация заменится конфигурацией из хранилища, будьте внимательны.
Администрирование хранилища конфигурации 1С
Для администрирования хранилища 1С необходимо выбрать в меню конфигурации следующий пункт — «Конфигурация — Хранилище конфигурации — Администрирование»:
- На вкладке «Пользователи» можно добавить или удалить новых пользователей, а также определить состав прав для каждого из них.
- На вкладке «Подключения» можно просмотреть всех пользователей, подключившихся к хранилищу, по необходимости отключить их.
- На вкладке «Отмена захвата» Вы можете снять захват любого пользователя на определенный объект, если конечно же Вы имеете права на это.
Как просмотреть историю хранилища 1С
Для просмотра истории надо зайти в меню «Конфигурация — Хранилище конфигурации», выбрать пункт «История хранилища»:
В истории хранилища 1С можно увидеть, когда, кем и что было изменено.
Разработка с хранилищем 1С 8.3
Работу с хранилищем условно можно разделить на основные действия:
- конфигурации из хранилища конфигурации 1С;
- обновить статусы хранилища 1С;
- захват в хранилище;
- помещение в хранилище.
Остановимся подробнее на каждом действии:
Обновить статусы хранилища 1С
Производит получение последних статусов объектов (захвачен или нет).
Вызывается: «Конфигурация — Хранилище конфигурации — Обновить статусы».
Обновление конфигурации из хранилища конфигурации 1С
Действие позволит получить все измененные объекты конфигурации, которые были помещены в хранилище. Выполнение данной команды так же обновляет статусы объектов.
Вызывается: «Конфигурация — Хранилище конфигурации — Обновить конфигурацию из хранилища».
Захват в хранилище конфигурации 1С
С помощью этой команды можно заблокировать изменение данного объекта для других разработчиков: пока объект захвачен Вами, никакой пользователь не может изменить его до тех пор, пока Вы не поместите объект обратно.
Произвести захват можно, вызвав правой кнопкой контекстное меню у объекта метаданных:
В открывшемся окне можно установить некоторые настройки:
- Выполнять рекурсивно — позволяет захватить все подчиненные объекты — формы и т.д.
- Разрешать получать захваченные — позволяет получать другим пользователям промежуточные версии объекта
Помещение в хранилище 1С
После изменения объекта его необходимо поместить обратно в хранилище, делается это так же, как захват, только выбирается пункт «Поместить в хранилище»:
При помещении обязательно заполняйте поле «комментарий», это очень важно при групповой разработке. Через полгода Вы и не вспомните, зачем производили те или иные действия. Так же, как у захвата, у помещения есть свои специфичные настройки:
- Выполнять рекурсивно — позволяет поместить все подчиненные объекты — формы и т.д.
- Оставить захваченными — позволяет поместить «промежуточную» версию объекта, оставив при этом захват пользователем
Как добавить новый объект в хранилище 1С
При коллективной разработке требуется контроль за историей разработки, отслеживание объектов, которые дорабатываются в текущий момент.
Для этого и предназначено хранилище конфигурации.
- если в конфигурации более одного разработчика
- несколько баз, но решение единое и требуется их синхронизация
- просто требуется сохранять историю разработки даже одного программиста
Значит вам надо разворачивать хранилище конфигураций.
Быстрый переход
Как это делается поэтапно:
- Зайти в « » и создать хранилище
- Указать его расположение (папку на которую есть права на запись)
- Задать имя Администратора и его пароль
- Далее, конфигурация подключится к созданному хранилищу
- Следующий шаг: добавление пользователей в хранилище — каждая база разработки привязывается к отдельному пользователю. Эти пользователи никак не связаны с пользователями информационной базы. Зайдите в «Администрирование хранилища»
- Добавляете и задаете пароль:
- Устанавливаете его права, достаточно прав на «Захват хранилища»
- Создаете новую базу из копии (или используете уже существующую), изменения должны быть сохранены, поскольку при первом подключении конфигурация синхронизируется с данными хранилища
- Указываете данные ранее созданного пользователя
- Вот и всё: подключение к хранилищ успешно завершено
Работа с хранилищем
При каждом старте запуске конфигурации требуется:
- подключиться к хранилищу указав пароль, либо прописать его в параметрах запуска 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.2.
Стандартные хранилища настроек
Итак, по умолчанию, в конфигурации имеются следующие хранилища настроек:
- ХранилищеВариантовОтчетов — для доступа к настройкам вариантов отчетов.
- ХранилищеПользовательскихНастроекОтчетов — для доступа к пользовательским настройкам отчетов.
- ХранилищеНастроекДанныхФорм — для доступа к пользовательским настройкам данных форм.
- ХранилищеОбщихНастроек — для доступа к общим настройкам.
- ХранилищеСистемныхНастроек — для доступа к системным настройкам.
- ХранилищеПользовательскихНастроекДинамическихСписков — для доступа к пользовательским настройкам динамических списков.
К каждому из этих хранилищ можно обратиться как к свойству глобального контекста.
Стандартные хранилище программист может использовать для своих нужд, сохраняя различные настройки в разрезе пользователя, объекта и самой настройки.
Для работы с хранилищами настроек (как со стандартными, так и с добавленными программистом) используются следующие методы.
Запись и получение настройки:
ХранилищеОбщихНастроек.Сохранить(НазваниеОбъекта, НазваниеНастройки, ЗначениеНастройки, ОписаниеНастройки, ИмяПользователя); ЗначениеНастройки = ХранилищеОбщихНастроек.Загрузить(НазваниеОбъекта, НазваниеНастройки, ОписаниеНастройки, ИмяПользователя);
Удаление лишней/ненужной настройки:
ХранилищеОбщихНастроек.Удалить(НазваниеОбъекта, НазваниеНастройки, ИмяПользователя);
Получение списка настроек:
СписокЗначенийНастроек = ХранилищеОбщихНастроек.ПолучитьСписок(ИмяОбъекта, ИмяПользователя);
Параметры «НазваниеОбъекта», «НазваниеНастройки» и «ИмяПользователя» должны строковой тип.
В базе данных, все настройки хранятся в отдельно таблице.
Хранилища настроек создаваемые программистом
Теперь поговорим о тех хранилищах настроек, что создаются программистом. Вообще, программист ничем не ограничен в своем желании создать новое хранилище настроек, но обычно отдельные хранилища настроек создают по следующим причинам:
- необходимо перемещение настроек между базами данных;
- необходим ссылочный контроль при хранении настроек;
- требуется особая структура настроек 1С.
Хранилища настроек добавляют в соответствующем разделе конфигурации.
Ключевой особенностью хранилищ настроек, созданных программистом является необходимость ручной реализации методов записи и получения значений (Сохранить() и Загрузить()). В этих методах программист должен описать сохранение (в регистры сведений, файлы, справочники и тд.) и загрузку настроек при помощи встроенного языка.
В остальном же, принципы работы с созданным хранилищем практически не отличается от работы со стандартными хранилищами настроек.
Доступ к созданному хранилищу можно получить таким образом:
ХранилищаНастроек.НазваниеХранилища.Загрузить();
Кроме этого, созданными хранилищами можно заменять стандартные в различных объектах конфигурации и в самой конфигурации.
Управляемые формы имеют два свойства:
- Автоматическое сохранение данных — если выбрано значение «Использовать», то данные будут сохраняться автоматически в стандартное хранилище настроек данных форм;
- Сохранение данных в настройках — если выбрано значение «Использовать список», то в окне реквизитов формы появится столбец «Сохранение», с помощью которого можно указать какие реквизиты формы должны сохраняться, а также появиться возможность выбрать хранилище настроек для этих данных.
На этом все, надеюсь данная статья Вам помогла.
Основные этапы запуска удаленного хранилища конфигураций 1С 8 на сервере, на котором планируется установить сервер удаленного хранилища 1С 8 :
1. Установка 1С предприятия.
При установке платформы необходимо отметить следующие компоненты:
- Сервер 1С:Предприятия 8.1
- Адаптер web-сервисов 1С:Предприятия 8.1 (он понадобится для обеспечения доступа к серверу хранилища из интернета)
- Сервер хранилища конфигурации.
1.1 Устанавливаем сервер хранилища как сервис, для этого нужно выполнить следующую команду:
"C:\Program Files\1cv81\bin\crserver.exe" -instsrvc -d "D:\WebRepo\"
- в ключе -d нужно указать путь к папке где будут храниться ваши хранилища.
2. Настройка поддержки WEB-сервисов.
В рамках данной статьи рассмотрим веб-сервер IIS 6.0(используется для Windows Server 2003).
Таблица соответствия версий IIS и ОС семейства Windows
Для настройки поддержки web-сервисов необходимо сделать следующее:
- Необходимо зарегистрировать менеджер веб-сервисов: Start---Run "C:\Program Files\1cv81\bin\wsinst.exe" -iis.
- В C:\Inetpub\wwwroot создаем каталог с именем appstorage1C
- Создание прав на использование веб-сайтов. Открытие IIS / Веб-узлы / Веб-узел по умолчанию (правой кнопкой мыши) Свойства
- Создание приложения IIS на основе виртуального каталога. Открытие IIS / Веб-узлы / Веб-узел по умолчанию / appstorage1C (правой кнопкой мыши) Свойства / Каталог / кнопка Создать
- Проверка правильности указания пользователя для работы с IIS и флага анонимности. Открытие IIS / Веб-узлы / Веб-узел по умолчанию / appstorage1C (правой кнопкой мыши) Свойства / Безопасность каталога
- Настройка отображения расширений.1cws и.1crs (+ .1ccr) на wsisapi.dll. Открытие IIS / Веб-узлы / Веб-узел по умолчанию / appstorage1C (правой кнопкой мыши) Свойства / Каталог / кнопка Настройка.
Обязательно указываем путь к исполняемому файлу в кавычках если имеется пробел в данном пути!!!
- Добавление MIME типов 1C:Предприятия в настройки HTTP заголовков виртуальной директории Web-сервисов (расширения.1cws и.1crs (+ .1ccr), Mime тип text/xml). Открытие IIS / Веб-узлы / Веб-узел по умолчанию / appstorage1C (правой кнопкой мыши) Свойства / Заголовки HTTP
- Разрешение запускать wsisapi.dll на IIS. (если не создано - в расширениях Web-сервисов IIS добавить wsisapi.dll как расширение Web-сервисов и разрешить ему запуск). Проверить имеется ли в наличии и при отсутствии создать:
- Настройка прав пользователей на каталог исполняемого файла "C:\Program Files\1cv81\bin" 2-х учетных записей IIS
Для корректной работы нужно сделать "Port Forwarding / Port Triggering" портов 8080(+ 80) и 443 на сервер хранилища.
На данном рисунке представлены настройки роутера D-link. В данном случае 192.168.15.2 - сервер хранилища конфигурации.
3. Публикация конфигурационного файла веб-сервиса.
Нашему веб-сервису для корректной работы с сервером хранилища конфигураций необходим конфигурационный файл. Его нужно поместить в виртуальный каталог, который мы создали ранее, а выглядеть он должен вот так:
Это файл в формате XML с расширением 1ccr, с единственным узлом и атрибутом connectString - в этом атрибуте необходимо указать адрес нашего сервера хранилища конфигурации в сети. В нашем случае мы не разделяли сервер хранилища и IIS, поэтому указываем имя компьютера, на котором мы проделываем все эти действия. Назовем наш файл repository.1ccr.
4. Создание хранилища.
При запуске агента сервера хранилища конфигураций будет создан каталог"D:\WebRepo\" - это каталог хранилищ конфигураций. Если не указывать путь при регистрации сервера(как в пункте 1.1), то хранилище по умолчанию будет создано в каталоге %APPDATA%\1C\1Cv81\ maincr.
Для создания уделенного хранилища, необходимо из режима "Конфигуратор"(Конфигурация / Хранилище конфигурации / Создать хранилище...) создать новое хранилище, только указать в качестве каталога адрес нашего сервера:
<Имя виртуального каталога>/<Имя конфигурационного файла>/<имя хранилища>
Вот пример: http://78.45.99.183/appstorage1C/repository.1ccr/MyRepo. Но мы рекомендуем создавать хранилище соответствующей конфигурации непосредственно на сервере, на котором располагается сервер хранилищ конфигураций, так как это будет быстрее.
5.Подключение к хранилищу.
Подключаемся к хранилищу стандартными средствами, только в качестве каталога указываем адрес нашего сервера
http://78.45.99.183/appstorage1C/repository.1ccr/MyRepo