1с хранилище конфигурации как пользоваться
Описание приемов работы с хранилищем конфигурации 1С из режима 1С: Предприятие минуя конфигуратор. Статья содержит ряд примеров работы с хранилищем по протоколу HTTP, описание "внутренностей", а также демонстрационную обработку
Для чего я это все делал:
Изначально было интересно как же устроено хранилище конфигурации, возможно ли каким-либо образом вытащить из него данные и работать с ними. Стандартные средства работы с хранилищем из конфигуратора есть, но для доступа к данным необходим доступ в конфигуратор, а это не всегда возможно обеспечить. Например, есть потребность у службы технической поддержки посмотреть какие были сделаны изменения в рабочей конфигурации за вчера, чтобы сопоставить с обращениями пользователей. Или для системы учета обращений сопоставить конкретное обращение с изменениями в конфигурации (измененные объекты). Или, наконец, построить банальный отчет по изменениям в конфигурации за период.
Что нам потребуется:
Интересующие нас на данном этапе параметры в секции auth: password и user.
Если с User все понятно - это логин, то с password все оказалось сложнее. Это хэш пароля, но как оказалось, хэш не простой. Я долго не мог понять как он формируется, но в итоге удалось определить, что хэш пароля формируется по алгоритму CAPICOM_HASH_ALGORITHM_MD5.
В ответ на этот запрос сервер хранилища отвечает нам тоже данными в виде XML
В итоге, имеем 3 секции:
- statMap - информация о версиях
- bindInfos - информация о подключениях к хранилищу
- users - информация о пользователях хранилища
Уже что-то есть, но нам этого мало. Хотим историю хранилища.
Идем дальше.
Запрос на получение истории хранилища следующий (получил я его так же как и в первом примере)
По авторизации все понятно, остальные параметры я оставлял как есть. Предполагаю, что параметры begindate, enddate, beginvernum и endvernum для фильтрации истории по дате и номерам версий.
Отправив такой запрос мы получим ответ в следующем формате:
Уже интереснее. Мы имеем номер версии, версию платформы (pver. ), дату версии, версию конфигурации, а так же метку(комментарий).
Но и это еще не все. Осталось сделать то, ради чего все это делалось - состав изменений. Запрос выглядит следующим образом:
Уже все просто. Помимо авторизации нам необходим параметр verNum - номер версии. Отправляем этот запрос серверу хранилища и получаем ответ:
Вот это именно то, чего я хотел.
- Name - наименование объекта
- action - действие (опытным путем понял, что "0" - Добавление, 1 и 5 - изменение)
- fullName - полное наименование объекта метаданных, где нечто похожее на ГУИД - это идентификатор родителя (Справочник, документ, форма и т.д.), ниже приведу расшифровку того, что мне удалось расшифровать
Дальше, в планах получение версии объекта из хранилища, если кого-то заинтересует, опишу и этот функционал.
Обработку с демонстрацией описанных выше функций я прикладываю, но замечу, это не какой-то конечный продукт - лишь демонстрация написанного материала. Обработка тестировалась на версии платформы 8.3.15.1830, конфигурация, в которой запускается обработка не имеет значения
Хранилище конфигурации в 1С 8.2 и 8.3 — это инструмент для групповой разработки решения, встроенный в платформу 1С: Предприятие 8. Хранилище позволяет вести многопользовательскую разработку решений неограниченным количеством пользователей. С его помощью можно увидеть полную историю разработки конфигурации и каждый шаг разработчиков в подробностях.
Рассмотрим настройки и работу с хранилищем конфигурации подробнее.
Как работает хранилище 1С
Хранилище, по сути, это база данных, где хранятся изменения конфигурации. Каждый из разработчиков работает со своей информационной базой, подключенной к хранилищу. Рабочая база так же может быть подключена к хранилищу. Лучше всего общая схема изображена на этой картинке:
Так же в этой БД хранится информации о том, кем захвачен тот и или иной объект. Захват объекта — это метка, устанавливаемая разработчиком. Установленный захват позволяет избежать коллизий при групповой разработке. Пока объект захвачен, никто не может его редактировать.
Захватить можно как объект целиком (рекурсивно), так и отдельно объект или формы.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
После того как разработчик произвел какие-то действия над объектом, он обязан поместить доработки в хранилище. И тем самым снять пометку о том, что объект захвачен.
Как создать хранилище 1С
Создать хранилище достаточно просто, для этого необходимо выбрать в меню «Конфигурация — Хранилище конфигурации» пункт «Создать хранилище». В появившемся меню достаточно указать путь к будущему расположению хранилища и логин/пароль пользователя-администратора:
При создании сделайте обязательно резервную учетную запись с административными правами — очень часто это выручает.
Как подключиться к хранилищу 1С
Чтобы подключиться к хранилищу конфигурации, нужно выбрать в меню в меню «Конфигурация — Хранилище конфигурации» пункт «Подключиться к хранилищу». В появившемся окне необходимо указать путь к хранилищу и логин/пароль пользователя, нажать «Подключиться»:
В момент подключения Ваша конфигурация заменится конфигурацией из хранилища, будьте внимательны.
Администрирование хранилища конфигурации 1С
Для администрирования хранилища 1С необходимо выбрать в меню конфигурации следующий пункт — «Конфигурация — Хранилище конфигурации — Администрирование»:
- На вкладке «Пользователи» можно добавить или удалить новых пользователей, а также определить состав прав для каждого из них.
- На вкладке «Подключения» можно просмотреть всех пользователей, подключившихся к хранилищу, по необходимости отключить их.
- На вкладке «Отмена захвата» Вы можете снять захват любого пользователя на определенный объект, если конечно же Вы имеете права на это.
Как просмотреть историю хранилища 1С
Для просмотра истории надо зайти в меню «Конфигурация — Хранилище конфигурации», выбрать пункт «История хранилища»:
В истории хранилища 1С можно увидеть, когда, кем и что было изменено.
Разработка с хранилищем 1С 8.3
Работу с хранилищем условно можно разделить на основные действия:
-
конфигурации из хранилища конфигурации 1С;
- обновить статусы хранилища 1С;
- захват в хранилище;
- помещение в хранилище.
Остановимся подробнее на каждом действии:
Обновить статусы хранилища 1С
Производит получение последних статусов объектов (захвачен или нет).
Вызывается: «Конфигурация — Хранилище конфигурации — Обновить статусы».
Обновление конфигурации из хранилища конфигурации 1С
Действие позволит получить все измененные объекты конфигурации, которые были помещены в хранилище. Выполнение данной команды так же обновляет статусы объектов.
Вызывается: «Конфигурация — Хранилище конфигурации — Обновить конфигурацию из хранилища».
Захват в хранилище конфигурации 1С
С помощью этой команды можно заблокировать изменение данного объекта для других разработчиков: пока объект захвачен Вами, никакой пользователь не может изменить его до тех пор, пока Вы не поместите объект обратно.
Произвести захват можно, вызвав правой кнопкой контекстное меню у объекта метаданных:
В открывшемся окне можно установить некоторые настройки:
- Выполнять рекурсивно — позволяет захватить все подчиненные объекты — формы и т.д.
- Разрешать получать захваченные — позволяет получать другим пользователям промежуточные версии объекта
Помещение в хранилище 1С
После изменения объекта его необходимо поместить обратно в хранилище, делается это так же, как захват, только выбирается пункт «Поместить в хранилище»:
При помещении обязательно заполняйте поле «комментарий», это очень важно при групповой разработке. Через полгода Вы и не вспомните, зачем производили те или иные действия. Так же, как у захвата, у помещения есть свои специфичные настройки:
- Выполнять рекурсивно — позволяет поместить все подчиненные объекты — формы и т.д.
- Оставить захваченными — позволяет поместить «промежуточную» версию объекта, оставив при этом захват пользователем
Как добавить новый объект в хранилище 1С
Для этого необходимо захватить «корень» конфигурации, а после добавления объектов (справочников, регистров, перечислений и т.п.) поместить корень конфигурации обратно в хранилище.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Этот вопрос задают многие программисты — как опытные, так и начинающие.
Ниже я дам некоторые советы по работе с хранилищем конфигурации, в том числе как можно за одно помещение поместить несколько объектов или как увидеть список всех захваченных объектов в хранилище конфигурации 1С 8.3.
Совет 1. Вынесите подменю «Хранилище конфигурации» в область главного меню.
Как на скриншоте выше. Это очень удобно. Ведь когда Вы работаете с хранилищем, Вы используете его очень часто. А 1С по умолчанию запрятала его достаточно «глубоко».
Чтобы вывести подменю в главное меню откройте настройки (Сервис-Настройки). Станет доступно редактирование меню. Перетяните «Хранилище конфигурации» на нужное место в меню программы.
Совет 2. Как посмотреть список захваченных мною объектов?
Из меню «Хранилище конфигурации» необходимо выбрать пункт «Хранилище», где Вы можете установить отбор, выбрав пользователя — себя. Еще меню «Хранилище» можно вывести в левую панель для быстрого доступа, как в случае с «Конфигурацией». С помощью этого совета Вы никогда не забудете поместить нужные объекты в хранилище, что бывает достаточно часто.
Совет 3. Массовое помещение объектов в хранилище 1С
Как поместить сразу несколько объектов в хранилище? Очень просто: мы открываем меню «Хранилище», выделяем с помощью shift интересующие нас объекты и правой кнопкой мыши вызываем контекстное меню, где выбираем «поместить в хранилище».
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Вот скриншот настройки интерфейса моего хранилища:
Сохранение пользовательских настроек — достаточно важный момент в любой информационной системе, ведь иногда на настройку определенного функционала уходит большое количество времени и сил.
Специально для этого в платформе 1С были созданы 2 объекта — стандартные общие хранилища и хранилища настроек 1С, созданные разработчиком на стадии разработки конфигурации.
Стандартное хранилище настроек платформы 1С
Данная функция появилась вместе с платформой 1С версии 8.2. Она позволяет сохранить любые данные настроек в разрезе объекта, определенной настройки 1С, пользователя.
- Записать настройки можно при помощи метода ХранилищеОбщихНастроек.Сохранить().
- Потом для прочтения нужно использовать ХранилищеОбщихНастроек.Загрузить() с теми же параметрами.
- Если настройка стала не актуальной, её можно удалить методом ХранилищеОбщихНастроек.Удалить().
- Также в разрезе объекта можно получить список сохраненных настроек с помощью метода ХранилищеОбщихНастроек.ПолучитьСписок().
Сохраненные настройки хранятся в отдельной сводной таблице БД.
Хранилище настроек, создаваемое в конфигураторе
Хранилище настроек может создать и сам разработчик в конфигураторе 1С:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Вместо стандартных хранилищ можно назначить хранилище, созданное разработчиком. Эта настройка производится в палитре свойств конфигурации:
Создание своих настроек может понадобиться в том случае, если:
- необходима миграции настроек между базами данных;
- необходим ссылочный контроль данных настроек.
Использование хранилищ настроек в отчетах и обработках 1С
Хранилище настроек можно указать для определенного отчета из конфигурации, указывается в свойствах отчета:
Флаг Сохраняемые данные данные позволяет автоматически сохранить значение при закрытии обработки:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Создаем хранилище
Выбираем в меню "Конфигурация"->"Хранилище конфигурации"->"Создать хранилище. "
Указываем путь к каталогу хранилища. (Каталог должен быть доступен для всех разработчиков!)
После того как хранилище создано, заходим в пункт меню "Конфигурация"->"Хранилище конфигурации"->"Администрирование" для того чтобы создать пользователей для разработчиков
В открывшемся окне создаем пользователей.
Подключаем конфигурации разработчиков к хранилищу конфигурации
выбираем пункт меню "Конфигурация"->"Хранилище конфигурации"->"Подключиться к хранилищу. "
Далее конфигуратор нас спросит:
"При подключении к хранилищу конфигурации, данная конфигурация будет заменена конфигурацией из хранилища. Продолжить подключение?"
Нажимаем кнопку "Да" и указываем:
- путь к хранилищу
- имя пользователя
- пароль
Ждём, пока произойдет сравнение конфигурации с хранилищем.
Если всё прошло успешно, то справа от объектов конфигурации в дереве объектов должна появиться пиктограмма замка.
Работа с хранилищем конфигурации
По умолчанию все объекты конфигурации имеют пиктограмму "замок". Для того чтобы изменить объект конфигурации нужно его захватить, то есть выбрать в контекстном меню объекта пункт "Захватить в хранилище"
указать настройки захвата
Выполнять рекурсивно - указывает, что помимо тех объектов, которые перечислены в списке, следует также захватить и все их подчиненные объекты, которые могут быть загружены независимо (подчиненные объекты, которые не могут быть загружены независимо от родительского объекта, всегда будут получены вместе с родительским объектом).
Например, если при захвате справочника не выполнять загрузку рекурсивно, то из подчиненных объектов будут захвачены только реквизиты и табличные части справочника.
Если же выполнить захват рекурсивно, то также будут захвачены и те объекты, подчиненные справочнику, которые могут быть захвачены отдельно от него: формы и макеты.
Флажок Разрешать получать захваченные позволяет при загрузке получить и те объекты, которые захвачены данным пользователем. Такая возможность может потребоваться, например, когда нужно вернуться к состоянию хранилища, не отменяя захват объекта, а продолжая его редактирование.
После того, как нужные изменения внесены, следует объект поместить снова в хранилище со сделанными изменениями. Выбираем в контекстном меню объекта конфигурации пункт "Поместить в хранилище. "
Если требуется отменить сделанные изменения и освободить объект от захвата, то выбираем в контекстном меню объекта пункт "Отменить захват"
Если требуется восстановить объект из хранилища, то то выбираем в контекстном меню объекта пункт "Получить из хранилища. ". При этом внесенные изменения в то время, как объект был захвачен, теряются.
Так же можно просмотреть историю версий и сравнить захваченный и измененный объект с объектом в хранилище.
После того, как работа в копиях завершена(или завершен какой-то промежуточный этап), можно обновить конфигурацию основной базы для этого нужно выбрать пункт в меню "Конфигурация"->"Хранилище конфигурации"->"Обновить конфигурацию из хранилища" или "Конфигурация"->"Хранилище конфигурации"->"Сравнить/объединить конфигурацию с хранилищем".
Во втором случае произойдет более "мягкое" обновление конфигурации, то есть, можно будет посмотреть отчет по различиям объектов исходной конфигурации и хранилища.
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Посмотреть все результаты поиска похожих
Еще в этой же категории
Полнотекстовый поиск в 1С (что это и пример использования) 23
Полнотекстовый поиск - позволит найти текстовую информацию, размещенную практически в любом месте используемой конфигурации. При этом искать нужные данные можно либо по всей конфигурации в целом, либо сузив область поиска до нескольких объектов Формат, функция форматирования значений 21
//Функция формирует удобное для чтения представление значений. // Примеры форматирования чисел ЗначФормат = Формат(123456.789, " ЧЦ=10; ЧДЦ=2" ); // ЗначФормат = " 123 456,79" ЗначФормат = Формат(123456.789, " ЧГ=0; ЧДЦ=2" ); // Знач Обработчики событий при записи объектов. Зачем и что за чем? 12
Программисту, имеющего немного опыта на платформе 1С 8.2, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта, а-а-а-а-аааа. Именно такое сложное чувство непонимания УстановитьСсылкуНового 11
Установить ссылку нового это специальный механизм программиста, который позволяет присваивать новому объекту нужную ссылку. В основном это задача обмена, во многих типовых обменах используется синхронизация по UID объекта. Рассмотрим этот метод на к МоментВремени, получение остатков до и после проведения 9
" Момент времени" - виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя дату и ССЫЛКУ НА ДОКУМЕНТ) В 7.7 было понятие ПозицияДокумента, а в 8.x Момент времени Для получения Остатков, Движений: М Посмотреть все в категории Встроенные Функции
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
А знает ли кто методы - как вернуть в строй помеченного на удаление пользователя ?
Читайте также: