1с расширения файлов для автовозврата

Обновлено: 04.07.2024

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

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

Меню управления расширениями для базы можно найти сразу в нескольких местах:

Вот как выглядит сам диалог для администрирования расширений:

Посмотрим его в действии.

Я покажу всё на примере одной базы, но вы знайте - можно проделывать то же самое сразу для нужного количества баз (выделив их через Ctrl или отметив галками).

Перед нами типовая бухгалтерия 3.0 без установленных расширений:

Добавляем новое расширение

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

Выводим уже добавленные расширения

Переходим на закладку "Вывести", чтобы получить список расширений (вместе с их свойствами), которые уже добавлены в базу:

Проверяем работоспособность (применимость) добавленных расширений

Это можно сделать сразу для всех расширений запустив операцию на закладке "Проверить":

И если расширение содержит ошибки - мы увидим их в отчёте обновлятора.

Обновляем уже существующее расширение

Предположим, вышла новая версия расширения и его нужно обновить в базе (записать поверх существующего).

В этом нам поможет закладка "Обновить".

Из файла

Я указал файл с новой версией расширения и указал имя уже существующего расширения в конфигураторе ("ПисьмоВПоддержку").

Это имя необходимо, чтобы обновлятор смог найти уже существующее расширение в базе и загрузить в него новую версию из файла.

Часто оно совпадает с именем файла из которого мы загружаем расширение. Но так бывает не всегда.

Чтобы узнать имя расширения наверняка - зайдём в конфигуратор после его установки:

Вот его имя: "ПисьмоВПоддержку".

Причём если мы не выбираем конкретные значения опций (например, оставляем закрашенными синим цветом "Безопасный режим", "Защита от опасных действий" и так далее), то они не меняются при обновлении расширения (остаются как были до обновления).

Из хранилища

При этом есть нюансы в зависимости от того подключено ли расширение в обновляемой рабочей (продуктовой) базе к хранилищу или нет.

Расширение НЕ подключено к хранилищу

Это самый желательный вариант, который позволит вам не беспокоиться о конфликте пользователей хранилища между собой.

А также даст вам возможность обновляться из хранилища не только на последнюю версию конфигурации, но и на любую необходимую (заполнив поле "Версия", об этом ниже).

Расширение подключено к хранилищу

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

Причём в этом случае пользователь должен быть уникальным, то есть не использоваться для подключения этого же расширения в других базах.

Внимание! Чтобы обойти это ограничение вы можете параметризовать имя пользователя хранилища. Для этого укажите значение "%base_name%" (вместо "updater" у нас в примере). В этом случае при выполнении скрипта в качестве имени пользователя хранилища будет подставляться имя базы в обновляторе (наша задача предварительно создать пользователей с такими именами в хранилище).

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

Именно поэтому я рекомендую держать расширение подключенным к хранилищу только в базах для разработки, а рабочие (продуктовые) базы к хранилищу не подключать.

Это поле отвечает за номер версии конфигурации расширения из хранилища, которую мы получаем.

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

Не нужно путать эту версию с версией самого расширения. Речь идёт вот об этой колонке:

Внимание. Заполнять поле "версия" имеет смысл только в том случае, если обновляемое расширение не подключено к хранилищу. Если оно подключено к хранилищу, то будем всегда получать актуальную версию несмотря на настройки.

Выгружаем все расширения во внешнюю папку

Обновлятор может легко выгружать все (или конкретное) имеющиеся в базе расширения во внешнюю папку в виде отдельных файлов:

В нашем случае результат будет таким:

В xml-файле сохраняются все настройки расширения в базе (безопасный режим, защита от опасных действий и так далее).

Загружаем все расширения из внешней папки

Все выгруженные расширения (вместе с их настройками) можно легко загрузить назад в ту же или в другую базу:

Удаляем существующее расширение

Удалим расширение с именем "ПисьмоВПоддержку":

Выполняем эти же операции по расписанию

Мы также можем настроить запуск любой из перечисленных выше операций по расписанию для нужных нам баз.

Предположим, что нам требуется обновлять расширение с именем "ПисьмоВПоддержку" из хранилища в 3 базах каждую ночь.

Для этого переходим на закладку "Скрипты" в главном окне обновлятора:

Из шаблонов открываем диалог "Управление расширениями" и настраиваем его для обновления нужного расширения из хранилища:

Нажимаем на кнопку "Обновить. " и в редактор вставляется текст скрипта с нужными параметрами:

Внимание! Обычно для каждой базы в хранилище создают отдельного пользователя. Сейчас в скрипте мы указали одного и того же пользователя с именем "updater", но ничего не мешает нам параметризовать это имя и выбрать, например, из параметров скрипта значение "%base_name%". В этом случае при выполнении скрипта в качестве имени пользователя хранилища будет подставляться имя базы в обновляторе (наша задача предварительно создать пользователей с такими именами в хранилище).

Сохраняем скрипт (кнопка "Сохранить" на нижней панеле):

Далее в настройки программы, кнопка "Расписание":

Здесь создаём новую задачу с типом операции "Запуск скрипта" и выбираем файл с нашим скриптом ("x:\work\update_extension.cmd"):

Настраиваем и сохраняем остальные параметры задачи:

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

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

Читайте также: