Про запуск конфигуратора в режиме агента 1С рассказывала в прошлом году. Для администраторов и разработчиков главное преимущество этого режима заключается в том, что выполнение регламентных операций можно автоматизировать с помощью стандартных ssh-клиентов. Однако на тот момент набор этих операций был небольшим, а одна из главных «хотелок», знать процент выполнения команды, осталась у нас в статусе пожелания. Теперь 1С устранила оба этих недостатка.
Команды, существующие в пакетном режиме
Во-первых, как и обещали, 1С расширила состав команд, которые можно выполнять в режиме агента. У 1С не было цели реализовать абсолютно все возможности, существующие в пакетном режиме конфигуратора. 1С отбирала из них наиболее приоритетные операции.
В результате 1С реализовала девять команд. Ниже, в скобках, указаны существующие сейчас параметры командной строки, используемые для выполнения аналогичных действий в пакетном режиме конфигуратора.
- Выгрузить информационную базу в файл (DumpIB);
- Загрузить информационную базу из файла (RestoreIB);
- Удалить данные из информационной базы (EraseData);
- Выгрузить конфигурацию (расширение) в файл (DumpCfg);
- Загрузить конфигурацию (расширение) из файла (LoadCfg);
- Снять конфигурацию с поддержки (ManageCfgSupport);
- Записать xml-файл мобильного приложения (MobileAppWriteFile);
- Подписать конфигурацию мобильного клиента (MobileClientDigiSign);
- Записать xml-файл мобильного клиента (MobileClientWriteFile).
Прогресс выполнения длительных операций
При интерактивном выполнении некоторых административных операций в конфигураторе, платформа может отображать прогресс их выполнения в процентах. Агент конфигуратора, в принципе, поддерживает возможность отправки и приёма сообщений во время выполнения операций. Однако сразу, в прошлом году, реализовать эту возможность нам не удалось, так как потребовалась доработка самого конфигуратора.
Теперь 1С эту работу закончила, и в режиме агента вы можете получать и отображать прогресс выполнения длительных операций процентах. В текстовом режиме выводится текстовый статус и число, например, так (строка выводится в одно и то же место):
В режиме json-сообщений 1С добавила новый тип сообщения progress:
Здесь message это описание текущего этапа, оно совпадает с описанием расширенного статуса конфигуратора, но может быть и пустым. А percent это процент выполнения операции.
Не все команды могут выдавать сообщение о прогрессе своего выполнения. Здесь 1С тоже отбирала наиболее приоритетные операции. Это:
- Выгрузить конфигурацию в файл;
- Загрузить конфигурацию из файла;
- Выгрузить конфигурацию в xml-файлы;
- Загрузить конфигурацию из xml-файлов;
- Обновить конфигурацию базы данных;
- Выгрузить внешнюю обработку (внешний отчёт) в xml-файлы;
- Загрузить внешнюю обработку (внешний отчёт) из xml-файлов.
Для настройки прогресса выполнения 1С добавила два новых параметра: notify-progress и notify-progress-interval. Команды отправляют информацию о прогрессе, если в настройках агента конфигуратора включен параметр notify-progress. Эта информация отправляется не чаще, чем количество секунд, указанное в параметре progress-interval (по умолчанию 1 секунда). Если за указанный интервал времени прогресс не изменился, то сообщение не отправляется. Для одной операции прогресс изменяется от 1 и доходит до 100 только один раз.
Новые команды
Поскольку 1С сама использует режим агента конфигуратора в среде разработки EDT, существует потребность в выполнении некоторых операций, недоступных в пакетном режиме. И ряд таких новых команд для управления расширениями конфигурации 1С реализовала именно и только в режиме агента:
- Создать расширение (config extensions create) - создаёт пустое расширение;
- Удалить расширение (config extensions delete) - удаляет расширение из информационной базы;
- Получить свойства расширения (config extensions properties get) - получает информацию о расширении из информационной базы (имя, версия, безопасный режим, область действия и так далее);
- Установить свойства расширения (config extensions properties set) - устанавливает параметры расширения в информационной базе.
Новые типы ошибок
Также 1С расширила состав ошибок, о которых может сообщать агент конфигуратора. Прежде всего, 1С добавила несколько новых типов ошибок, которые могут возникать при работе с информационной базой. Это:
- Информационная база не найдена (InfoBaseNotFound);
- Для операции необходимы административные права (AdministrationAccessRightRequired);
- Уже запущен конфигуратор (DesignerAlreadyStarted);
- Требуется исключительная блокировка информационной базы (InfoBaseExclusiveLockRequired);
- Язык не найден (LanguageNotFound);
- Расширение конфигурации активно и содержит данные (ExtensionWithDataIsActive);
- Расширение не найдено (ExtensionNotFound).
Кроме этого 1С добавила новый тип ошибки для исключений, которые могут возникнуть в процессе загрузки конфигурации из xml-файлов и выгрузки конфигурации в xml-файлы - ConfigFilesError.
А для ошибок и предупреждений, накопленных в процессе загрузки конфигурации из xml-файлов, 1С реализовала новый тип json-сообщения - loading-issue.
1С надеется, что новые команды и возможности будут полезны вам при автоматизации регламентных операций с конфигурациями и информационными базами, поскольку все они могут быть выполнены с помощью стандартных ssh-клиентов.