gifts2017

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

Опубликовал Франко Деллиани (Franco) в раздел Программирование - Практика программирования

Данное изложение на примерах демонстрирует работу с хранилищем конфигураций из пакетного режима

Данное изложение на примерах демонстрирует работу с хранилищем конфигураций из пакетного режима*.
*Самый простой вызов командной строки для пакетного режима в Windows - сочетание клавиш Win+R. 

 
например:
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" /ConfigurationRepositoryF "D:\Storage\morpho" /ConfigurationRepositoryN "AdminStorage" /ConfigurationRepositoryP "qwerty" /ConfigurationRepositoryAddUser -User Lex -Rights Administration
 
где 
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" 
- путь к запуску 1С (вместо 1cv8.exe поставьте полный путь) и параметры подключения к ИБ конфигуратором. Она будет неизменной.
2-ая часть - 
/ConfigurationRepositoryF "D:\Storage\morpho" /ConfigurationRepositoryN "AdminStorage" /ConfigurationRepositoryP "qwerty"
- параметры подключения к хранилищу конфигурации.
заканчивает строку используемое действие.

В качестве примера используется конфигурация на платформе 8.3.4.465. Взял 2 информационных базы для разбора примеров.
 
1.Создаём хранилище конфигураций:
/ConfigurationRepositoryCreate
 
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" /ConfigurationRepositoryF "D:\Storage\morpho" /ConfigurationRepositoryN "AdminStorage" /ConfigurationRepositoryP "qwerty" /ConfigurationRepositoryCreate 
 
Если конфигурация на поддержке, то следует использовать суффикс с указанием действий с этой поддержкой, например:
...-AllowConfigurationChanges -ChangesAllowedRule ObjectIsEditableSupportEnabled -ChangesNotRecommendedRule ObjectIsEditableSupportEnabled
Возможно, что вся строка уже целиком не помещается в командную строку Windows. Но её вызов можно употребить либо в .bat-файле либо в вызвав из 1С через ЗапуститьПриложение().
Пользователь, добавляемый при создании, всегда будет администратором.
При таком вызове конфигурация будет подключена к хранилищу и останется подключённой (и только в этом случае, о чём ниже). Чтобы не подключаться - добавьте ещё -NoBind.
 
2.Добавление ещё одного пользователя
/ConfigurationRepositoryAddUser
 
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" /ConfigurationRepositoryF "D:\Storage\morpho" /ConfigurationRepositoryN "AdminStorage" /ConfigurationRepositoryP "qwerty" /ConfigurationRepositoryAddUser -User "DirectorStorage" -Pwd "qwerty" -Rights Administration

Если в момент добавления пользователя будет открыт конфигуратор с подключением к хранилищу - соответственно, подключения не произойдёт и пользователь добавлен не будет. Например, откройте 2-ую конфигурация, подключитесь вновь созданным пользователем DirectorStorage и выполните:
C:\1Cv\8.3.4.465\bin\1cv8.exe designer  /F "D:\1cBase\morpho_res" /N "Admin" /P "abc" /ConfigurationRepositoryAddUser -User "ManagerStorage" -Pwd "qwerty" -Rights Administration
Пользователь ManagerStorage добавлен не будет.
 
3.Отключиться от хранилища
/ConfigurationRepositoryUnbindCfg
 
Подключитесь 2-ой конфигурацией, откройте Конфигурация - Хранилище конфигурации - Администрирование хранилища - [Подключения]
 
(Должны быть 2 подключения. Если не так, то подключитесь 1-ой конфигурацией другим пользователем - AdminStorage и закройте 1-ый конфигуратор).
Выполните:
 
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" /ConfigurationRepositoryUnbindCfg -force
 
и обновите список:
 
(Здесь суффикс -force указывает, что можно игнорировать всё захваченное).
 
4.Обновление конфигурации из хранилища.
/ConfigurationRepositoryUpdateCfg
 
Откройте 1-ую конфигурацию без подключения к хранилищу и внесите любые изменения (ну, например, добавьте константу). Закройте и выполните:
 
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" /ConfigurationRepositoryF "D:\Storage\morpho" /ConfigurationRepositoryN "AdminStorage" /ConfigurationRepositoryP "qwerty" /ConfigurationRepositoryUpdateCfg -force
 
Догадались, что -force - это средство от лишних сложностей и вопросов?
 
5.Снять конфигурацию в файл:
/ConfigurationRepositoryDumpCfg
 
[без комментариев...]
 
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" /ConfigurationRepositoryF "D:\Storage\morpho" /ConfigurationRepositoryN "AdminStorage" /ConfigurationRepositoryP "qwerty" /ConfigurationRepositoryDumpCfg "d:\temp\xxx.cf"
 
6.Снять отчёт по версиям хранилища:
/ConfigurationRepositoryReport
 
1cv8.exe designer  /F "D:\1cBase\morpho" /N "Admin" /P "abc" /ConfigurationRepositoryF "D:\Storage\morpho" /ConfigurationRepositoryN "AdminStorage" /ConfigurationRepositoryP "qwerty" /ConfigurationRepositoryReport "d:\temp\ver.mxl"
 
Плохо, что отчёт снимается в moxel-е. Что с ним дальше делать?
 
Можно ли подключиться к хранилищу? Нет. Кроме случая создания хранилища по /ConfigurationRepositoryCreate. Только тогда конфигурация подключается к хранилищу и остаётся подключенной. Сравните: создайте новое хранилище (пункт 1), добавьте пользователя (пункт 2), зайдите во 2-ую конфигурацию, подключитесь 2-ым пользователем, перейдите в администрировании в подключения - подключения произведены к обоим информационным базам разными пользователями.
К сожалению, подключится через пакетный режим нельзя. Для этого существует только интерактивный режим. Когда-нибудь и это придумают...

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Губанов (gubanoff) 23.04.14 18:23
В версии 8.2 при работе с хранилищем из командной строки была ошибка. Для команды ConfigurationRepositoryReport отчет возвращался без группировки по версиям. Хотя в справке есть
/ConfigurationRepositoryReport <имя файла> [-NBegin <номер версии>] [-NEnd <номер версии>] [-GroupByObject] [-GroupByComment] — построение отчета по истории хранилища. Если параметры группировки не указаны и режим совместимости указан "Не используется", то отчет формируется с группировкой по версиям. В режимах совместимости "Версия 8.1" и "Версия 8.2.13" отчет формируется с группировкой по объектам. Если конфигурация базы данных отличается от редактируемой по свойству совместимости, при обработке командной строки учитывается значение режима совместимости конфигурации базы данных.

<имя файла> — имя файла, в который выводится отчет;
NBegin — номер сохраненной версии, от которой начинается строиться отчет;
NEnd — номер сохраненной версии, по которую строится отчет;
GroupByObject — признак формирования отчета по версиям с группировкой по объектам;
GroupByComment — признак формирования отчета по версиям с группировкой по комментарию.

...Показать Скрыть
Не проверяли, на новой платформе остался этот глюк?
2. Александр Губанов (gubanoff) 23.04.14 18:26
Плохо, что отчёт снимается в moxel-е. Что с ним дальше делать?

А тут, кстати, все нормально. Можно его анализировать, прочитав через ТабличныйДокумент.
ТабДок.Прочитать(ПутьКФайлу); ПерваяКолонка = СокрЛП(ТабДок.Область(ТекСтрока, 1, ТекСтрока, 1).Текст); 
3. Франко Деллиани (Franco) 24.04.14 13:56
4. Марина (be-may) 25.04.14 08:47
у меня почему-то не получается подключиться таким образом к внешнему хранилищу?
Вы не пробовали ?
5. Франко Деллиани (Franco) 25.04.14 09:43
(4) be-may,
самоцитата
'
Можно ли подключиться к хранилищу? Нет. Кроме случая создания хранилища по /ConfigurationRepositoryCreate. Только тогда конфигурация подключается к хранилищу и остаётся подключенной.
...
К сожалению, подключится через пакетный режим нельзя. Для этого существует только интерактивный режим. Когда-нибудь и это придумают...
'
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа