1с как проверить расширение после обновления

Обновлено: 08.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Из файла

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

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

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

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

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

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

Из хранилища

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как известно, если конфигурация находится на поддержке без возможности внесения изменений, то обновление представляет собой полностью автоматизированный процесс. В противном случае обновление конфигурации производится с использованием стандартного механизма сравнения и объединения.

Но как быть, если, по заверению слушателя, в конфигурацию изменения не вносились, а при обновлении в дереве объединения появляются дважды измененные объекты?

Вопрос

Подскажите, почему при обновлении типовой конфигурации (под замком) на ближайший релиз появляются дважды измененные объекты?

Реализация услуг и прочих активов

(нажмите, чтобы увеличить картинку)

Ответ

Да, такое может быть. Значит, для базы включена возможность изменения (в меню Конфигурация – Поддержка – Настройка поддержки), но корневой объект не редактируется, находится “под замком”:

Реализация услуг и прочих активов

(нажмите, чтобы увеличить картинку)

При этом для других объектов “замок” может быть снят, в них могут вноситься изменения.

Комментарий слушателя

Вы правы. Конфигурация находится на поддержке с возможностью изменения, но изменений никаких в конфигурации нет, то есть это типовая конфигурация. Изменения я вносил ранее в один из общих модулей, но потом все вернул обратно. И этот модуль не присутствует в данном списке измененных дважды объектов, а те, что присутствуют, никаким образом не изменялись.

Комментарий тренера

А если в форме со сравнением развернуть эти проблемные объекты, какие изменения в них будут отображаться? Чаще всего туда попадают различия в справочной информации. Эта проблема давно уже присутствует в платформе.

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

Можно попробовать вернуть конфигурацию на поддержку, если никакие изменения в конфигурации больше не нужны. Для этого нужно загрузить типовой cf-файл этого же релиза (можно взять из дистрибутива конфигурации). Конечно, обязательно нужно сделать копию базы. Тогда конфигурация станет полностью типовой, без возможности редактирования. И окно сравнения не будет отображаться при обновлении.

Комментарий слушателя

Реализация услуг и прочих активов

(нажмите, чтобы увеличить картинку)

Комментарий тренера

Да, конечно, поставить “под замок” можно только конфигурацию без доработок. Либо вынести в расширение все доработки.

На скриншоте видно, что разница появилась в теге color.

Предполагаю, что здесь те же причины, что и для справочной информации. Это работа с HTML-документами (справочная информация и форматированные строки базируются на HTML). Похоже, что разные версии платформы по-разному работают с этими данными.

Также ранее платформа работала с HTML через Internet Explorer, в справочной информации появлялись разные теги, если работать с ней на компьютерах с разными операционными системами. Сейчас в платформе перешли на библиотеку WebKit. Возможно, из-за этого появились еще какие-то нюансы.

Часто при работе с расширениями самым трудоемким является не реализация самого расширения, а поддержка его работоспособности после обновлений основной конфигурации. В платформе нет удобного механизма или инструмента для автоматического выявления проблемных мест расширений, поэтому разработчикам после обновлений приходится практически в ручном режиме проверять каждый объект расширения.

Вопрос

Ответ

Да, логика действий описана правильная. Получается, нужно вручную выполнить что-то вроде поиска дважды измененных объектов. Если обновляемая конфигурация знакома, известно, что именно делает конкретное расширение, то можно немного сократить работу по проверке корректности расширения. Проверяем, что расширение подключается, затем в пользовательском режиме проверяем, как оно работает. Например, если это печатная форма, формируем ее, проверяем корректность формы, не возникают ли ошибки во время исполнения программного кода. Если при помощи расширения изменялись роли и права доступа, проверяем, что в пользовательском режиме нужные объекты доступны (или наоборот – недоступны) конкретным пользователям и т.д. То есть здесь исходим из того, что есть описание функционала расширения, не нужно разбираться в этом “от программного кода”. Это поможет сэкономить время при обновлении.

Если таких сведений у нас нет, либо расширение после обновления перестало корректно работать, то двигаемся по Вашему плану – выявляем, какие изменения в каких объектах были сделаны при помощи расширений, а также какие изменения были сделаны в новой конфигурации поставщика по сравнению со старой конфигурацией поставщика. На основании этих данных изменяем расширение.

Сложность также тут заключается в том, что в платформе нет возможности сравнить расширение с конфигурацией. Возможно, тут на помощь может прийти выгрузка конфигурации и расширений в xml-файлы, затем дальнейший анализ этих файлов. Но готового инструмента вроде окна сравнения-объединения конфигураций я тут не предложу.

В этой инструкции расскажу как бороться с ошибкой подобной этой: "Ошибка подключения расширения: ИмяРасширения. " для 1С:Бухгалтерии 8.3, редакция 3.0.

Прежде всего, речь идёт о расширении, которое вы (или кто-то другой) когда-то подключили к конфигурации и забыли про него.

И теперь, скорее всего после обновления базы, оно перестало работать.

Вариантов решения проблемы всего два.

Найти новую версию расширения и установить её вместо старой

Это самый правильный путь, если вам по прежнему нужны возможности, которые давало расширение.

В этом случае вам нужно связаться с его автором, получить новую версию (новый файл), а затем:

1. Зайти в базу в режиме пользователя.

2. Открыть меню "Функции для технического специалиста. " (у вас его нет?):


3. В открывшемся диалоге раскрыть пункт "Стандартные" и выбрать обработку "Управление расширениями конфигурации":

5. Выбрать новый файл, полученный от автора и загрузить его вместо старой версии.

6. После этого нажать кнопку "Перезапустить":

1С перезапустится и заработает новая версия расширения, уже без ошибок.

Отключить расширение

Если же получить новую версию расширения невозможно или вы решили отказаться от него по другим причинам, тогда нужно:

1. Зайти в базу в режиме пользователя.

2. Открыть меню "Функции для технического специалиста. " (у вас его нет?):


3. В открывшемся диалоге раскрыть пункт "Стандартные" и выбрать обработку "Управление расширениями конфигурации":

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

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

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