Если при запуске 1С:Предприятие у Вас появляется ошибка «Ошибка применения расширения конфигурации» — это значит одно из установленных в Вашей конфигурации расширений не подключено.
Как правило, расширение перестает работать при обновлении конфигурации или платформы. Система предупреждает Вас — расширение не совместимо с актуальной версией конфигурации. Для исправления ошибок необходимо адаптировать расширение конфигурации под новую конфигурацию.
Адаптация расширения конфигурации
Процесс адаптации расширения конфигурации можно разделить по следующим шагам:
- Обновление свойств расширения конфигурации.
- Исправления ошибок изменения свойств объектов, входящих в расширение конфигурации.
- Обновление форм, использующихся в расширении конфигурации.
Со всеми этими шагами Вы можете ознакомиться в нашей статье — Адаптация расширений конфигурации.
Наши разработки:
Инструкция по созданию патчей (оперативных исправлений ошибок)
1. Патчи следует выпускать для оперативного исправления критичных ошибок в прикладных решениях и библиотеках, не дожидаясь выпуска очередного исправительного релиза («минуя» длительную процедуру выпуска и встраивания библиотек – в случае ошибок в библиотеках).
Критичность определяется ответственным за прикладное решение (библиотеку).
2. Технически патч – это расширение конфигурации, которое имеет небольшой размер (по сравнению с файлом поставки или обновления конфигурации), и установка которого не требует длительного обновления и блокировки работы пользователей. Для применения патча достаточно перезапустить сеанс.
Установка и удаление патчей реализована в 1С:Библиотека стандартных подсистем, а в 1С:Библиотека интернет-поддержки предусмотрена автоматическая загрузка патчей с портала 1C:Обновление программ. Вариант установки патчей (ручной или автоматический) в «коробках» контролирует администратор, а в модели сервиса – администратор сервиса (требуется подключение экземпляра облачного решения 1C:Fresh к порталу 1С:ИТС). Для «коробок» и облачных решений без подключения к интернету также возможно загружать интересующие патчи с портала 1C:Обновление программ на флешку и устанавливать с нее.
3. Создавать патчи можно с помощью конфигуратора или автоматически по исправленным в хранилище ошибкам с помощью 1С:Система проектирования прикладных решений (СППР). С помощью СППР патчи формируются автоматически по закладкам в репозитории git, рассчитывается применимость патча к версиям конфигурации (а для библиотек – к версиям всех прикладных решений, в которые она встроена); автоматизирована публикация и отзыв патчей, есть подписание патчей для базовых версий, а также целый ряд других полезных сервисов.
Создание патчей с помощью конфигуратора
Сначала исходную ошибку, которую требуется закрыть патчем, необходимо исправить и протестировать штатным образом. Изменения по исправлению ошибки поместить в рабочее хранилище проекта.
Затем открыть конфигуратором информационную базу одной из прошлых версий, в которой имеется исправляемая ошибка, и перенести изменения по ошибке в расширение конфигурации.
Для этого создать новое расширение конфигурации (если изменять ранее созданное расширение для другой ошибки, то это приведет к исключению при одновременном подключении этих расширений) и выполнить действия:
- Указать свойства расширения:
- Имя – «EF_<произвольный_номер_ошибки>». Например, EF_00_00268773.
- Префикс имен – берется из свойства имя.
- Основные роли – снять флаг.
- Основной язык – снять флаг.
- В группе Совместимость – снять флаги у всех свойств.
- Режим совместимости — указывать равный или ниже тому, что у конфигурации, для которого оно создается.
- Не удалять объект метаданных Язык – Русский.
- Перенести изменения в расширение-патч.
- Для процедур и функций – встать на любой строчке и нажать ALF+SHIFT+F2, в диалоговом окне «Тип выбора» указать «Вызывать вместо».
- В метод патча перенести текущую реализацию со всеми необходимыми изменениями.
- Создать и заполнить макет, который описывает содержимое патча и информацию о нем:
- Добавить общий макет, имя которого совпадает с именем расширения. Например, EF_00_00268773.
- Заполнить содержимое макета по примеру:
Копировать в буфер обмена
<Patch xmlns=»http://www.v8.1c.ru/ssl/patch» xmlns:xs=»http://www.w3.org/2001/XMLSchema» xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»>
<Name>EF_00_00268773</Name>
<Description>В веб-клиенте при сохранении некоторых печатных форм может быть недоступен выбор папки сохранения.</Description>
<UUID>abfde8f7-7ac4-43a9-9521-d291d0d0d6c3</UUID>
<ModifiedMetadata>ОбщаяФорма.СохранениеПечатнойФормы.ПриСозданииНаСервере</ModifiedMetadata>
<AppliedFor>
<ConfigurationName>СтандартныеПодсистемы</ConfigurationName>
<Versions>3.1.2.229,3.1.2.245</Versions>
</AppliedFor>
</Patch>
- Name – должно совпадать с именем патча из расширения
- Description – описание для пользователя, будет отображаться в списке установленных патчей.
- UUID – уникальный идентификатор патча. Требуется создать новый, получив методом платформы Новый УникальныйИдентификатор.
- ModifiedMetadata – изменяемые объекты метаданных.
- AppliedFor – блок, в котором описывается к каким конфигурациям подходит данный патч.
- ConfigurationName – имя конфигурации, берется из описания подсистемы в модуле ОбновлениеИнформационнойБазы<Сокращение>.
- Versions – список версий конфигурации через запятую, для которой применим патч.
- Рекомендуется при проверке патча проверять, что данный макет корректно читается и в нем нет ошибок – для этого нужно перейти к списку установленных исправлений (Администрирование – Обслуживание – Установленные исправления).
При переносе исправления ошибки в расширение следует учитывать следующее. Новые процедуры и функции следует добавлять в расширение с префиксом патча, например, вместо
«ИмяМоейПроцедуры» следует указывать
«EF_<произвольный_номер_ошибки>_ИмяМоейПроцедуры».
Если этого не сделать, то возникнет ошибка при удалении патча после обновления на новую версию конфигурации, в которой уже существуют одноименные новые процедуры и функции.
Создание патчей с помощью Системы проектирования прикладных решений (СППР)
Первичная настройка
- Развернуть сервер репозиториев git (например, GitLab) и указать его адрес в карточке проекта в СППР.
- Переключиться на закладку Общая информация проекта и заполнить поля Имя конфигурации – то, что указано в модуле ОбновлениеИнформационнойБазы<Сокращение> и Идентификатор программы – идентификатор в сервисах Интернет-поддержки пользователей. Если СППР будет использоваться только для создания патчей, без их публикации, то идентификатор программы заполнять не обязательно.
- В карточке версии:
- на закладке Наследование ошибок и патчи включить флажок «Автоматически создавать патчи по публикуемым ошибкам»;
- заполнить поле Версия платформы. Значение должно совпадать с режимом совместимости платформы для данной версии конфигурации.
Создание патчей для ошибок
- Исправить ошибку в хранилище проекта.
- В карточке ошибки в СППР внизу на закладке Исправление включить флажок Создать патч по исправлению ошибки .
- Описание патча автоматически заполнится из публикуемого описания ошибки.
- Дождаться готовности патча, проверить его на версии, в которой ошибка была привнесена, и нажать Проверен в карточке патча (для каждой версии, если патч создается сразу для нескольких версий проекта).
- Сформированный патч сохранить по кнопке Сохранить патч… и передать пользователям.
- Если СППР подключен к базе публикации, то нажать Опубликовать . После чего патч будет отправлен в базу публикации и вскоре окажется доступен для автоматической загрузки с портала 1C:Обновление программ.
Отзыв патчей с портала 1C:Обновление программ
В случае если ошибка исправлена неверно, требуется отозвать патч и выпустить новый. Но не следует перевыпускать патч или выпускать патч на патч.
При публикации патча из СППР необходимо:
- Открыть карточку интересующего патча.
- В меню Еще списка версий патча нажать Отозвать. После чего информация об отзыве патча будет отправлена на портал 1C:Обновление программ.
Если патч публиковался вручную на портале 1C:Обновление программ, то отзыв так же выполняется вручную.
После доисправления ошибки появится возможность вновь опубликовать патч для нее.
Если патч не удалось создавать автоматически
Не во всех случаях возможно создать патч автоматически, например:
- изменения по ошибке пересекаются с другим исправлением и патч нельзя применить ни к одной из опубликованных сборок конфигурации;
- содержит изменения, которые не касаются кода и на данный момент не поддерживаются автогенератором патчей в СППР;
- особенности или ограничения автогенератора патчей.
В первых двух случаях рекомендуется выполнить оставшиеся действия вручную, внеся изменения непосредственно в сформированное расширение, и опубликовать получившийся патч.
Рекомендации и ограничения технологии патчей
Патчи подходят для исправления ошибок:
- в программных модулях (общих модулях, модулях форм, модулей менеджеров, объектов, наборов записей и пр.)
- в «коробочных» версиях, в модели сервиса и в базовых версиях;
- в типовых (на полной поддержке), доработанных типовых и нетиповых конфигурациях (которые включают публикуемые библиотеки).
Патчи не подходят:
- для исправления обработчиков обновления, которые портят данные;
- для изменения пользовательских данных;
- для добавления реквизитов, справочников, перечислений и других объектов метаданных, хранящих данные.
Один патч должен «точечно» исправлять только одну ошибку
В одном патче для одной ошибки могут содержаться исправления сразу для нескольких процедур и функций различных модулей одной конфигурации (библиотеки). Но если для исправления ошибки необходимо внести изменения синхронно в код двух и более библиотек (или, например, конфигурацию и библиотеку), то следует разделить ее на несколько ошибок на каждую библиотеку, и выпустить для этих ошибок несколько отдельных патчей.
Патчи не должны создаваться «внахлест»
Если для исправления двух разных ошибок требуется исправить одну и ту же процедуру (функцию), то следует создать два патча и ограничить их область применимости (по версиям).
В случае если одна ошибка имеет разные способы исправления в нескольких поддерживаемых версиях прикладного решения, следует выпускать несколько патчей для каждой версии.
Тщательно проверять патчи
Поскольку патч публикуется максимально оперативно, то рекомендуется дополнительно проверять патч отдельно от проверки исправления ошибки:
- в опубликованной версии конфигурации (библиотеки) – сначала убедиться, что ошибка воспроизводится;
- затем установить патч и убедиться, что ошибка исправлена.
Не следует полагаться только на успешное подключение патча к конфигурации, или что патч успешно собран автоматически (есть также ограничения технологии патчей и платформы).
Проверка патча важна в полном объеме, во всех ветках, для которых он будет публиковаться.
Кроме того, для проверки патчей настоятельно рекомендуется:
- аудит исправления ошибки другим разработчиком;
- перекрестная проверка исправления тестировщиком или другим разработчиком.
Если проверка исправления ошибки требует регламентного тестирования (например, обязательно подтверждение исправления регрессионными тестами и т.п.), то патч также не следует публиковать до того, как исправление ошибки пройдет все предусмотренные этапы проверки.
Патч рекомендуется публиковать только после выполнения перечисленных этапов проверки.
Подпись патчей для базовых версий конфигураций
<путь к платформе> DESIGNER /IBConnectionString <строка подключения> /SignCfg <путь к подписанному патчу> -Type File -digisign <путь к закрытому ключу (*.pem)> -File <путь к исходному патчу>
УНФ базовая и расширения
Подскажите, разрешено ли подключать к базовой УНФ расширения (допустим через «все функции»)? Не нарушу ли я лицензию 1С? А то конфигуратором лазить нельзя, а расширения к нему приравниваются?
В базовых версиях прикладных решений работа с расширениями не поддерживается. (с) https://its.1c.ru/db/v8311doc#bookmark:dev:TI000001923
Если у тебя расширение доступно — значит у тебя лицензия на платформу не базовая, а ПРОФ.
(11) всё-таки _расширения_ работают на платформе _проф_
И им в этом случае как бы и все равно, а в какой же базе работает это расширение. Базовая база? Ну и 1С предоставляет свою поддержку для базовой версии.
Можно предположить, что со временем эту фичу уберут, когда базовая база способна работать на платформе с проф лицензией, что значительно расширяет ее возможности.
И это не единственная такая прикольная фича у платформы 1С. Можно и возможности серверного режима получать абсолютно ничего не взламывая, просто использовать и все штатными средствами.
Причем, теперь уже два варианта для получения режима сервера доступны, а раньше был только один. Причем, прямо «из коробки»
Ошибка применения расширения конфигурации
Не получается адаптация конфигурации «1С:Розница 2.2» Вот с этого сайта http://online-modul.ru/kkt_server.html#driver .
Пытаюсь подключить две розници с разными базами к одному ККМ атол 30ф. На рознице 2.3 которая не подключена к ккм. адаптация проходит хорошо, а на рознице 2.2 к которой ккм подключен физически выдает эти ошибки
(Критичная) : Для работы с базовой версией расширение должно быть подписано тем же ключом, что и конфигурация.
: Ошибка при вызове метода контекста (Записать): Ошибка применения расширения конфигурации: Для работы с базовой версией расширение должно быть подписано тем же ключом, что и конфигурация.
В чем может быть проблема?
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Не получается адаптация конфигурации «1С:Розница 2.2» Вот с этого сайта http://online-modul.ru/kkt_server.html#driver .
Пытаюсь подключить две розници с разными базами к одному ККМ атол 30ф. На рознице 2.3 которая не подключена к ккм. адаптация проходит хорошо, а на рознице 2.2 к которой ккм подключен физически выдает эти ошибки
(Критичная) : Для работы с базовой версией расширение должно быть подписано тем же ключом, что и конфигурация.
: Ошибка при вызове метода контекста (Записать): Ошибка применения расширения конфигурации: Для работы с базовой версией расширение должно быть подписано тем же ключом, что и конфигурация.
В чем может быть проблема?
(2)Там есть файл для 2.2 и 2.3. только 2.2 почему то ругается
Что делать, если после обновления конфигурации 1С выходит сообщение об ошибке инициализация модуля EF — скорее всего «свежего» патча.
Буквально на днях помогли исправить похожую ошибку в 1С БП, которая не запускалась из-за EF_1954_14.
В октябре т. г. публиковали материал по ошибке в модуле EF_00_00406132 «Процедура или функция с указанным именем не определена». В общем, алгоритм схожий.
Причина
Наиболее вероятно, что при автоматическом обновлении 1С не смогла удалить ранее установленный патч с исправлениями или произошел внутренний сбой. И теперь один из модулей препятствует корректному запуску программы.
Поэтому, проблемный патч необходимо удалить вручную.
Одно важное замечание
Перед выполнением каких-либо действий, пожалуйста, сделайте копию вашей информационной базы. Это будет правильным шагом.
В случае каких-то ошибочных действий, вы сможете вернуться к исходной точке. Это ваша страховка. Поэтому, будьте внимательны. Сделайте бэкап, а только потом приступайте к операциям с расширениями.
Если ошибка не дает выполнить запуск в пользовательском режиме, то используйте другие способы.
- Перейдите в список установленных исправлений через меню «Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи)».
- В списке выберите патч, который необходимо удалить, и нажмите кнопку «Удалить исправление».
Альтернативный вариант открытия списка — через команду «Функции для технического специалиста».
Путь такой: «Главное меню — Функции для технического специалиста — Стандартные — Управление расширениями конфигурации».
Как включить показ всех функций на панели: Главное меню — Настройки — Параметры — ✔ Режим технического специалиста.
Способ 2. Удаление расширения через Конфигуратор
Этот вариант доступен только в 1С версии ПРОФ. У базовых версий в Конфигураторе нет пункта меню «Расширения конфигурации» — используйте 3-й способ.
- Откройте 1С в режиме Конфигуратора.
- Главное меню — Конфигурация — Расширения конфигурации.
Если пункт недоступен, выполните команду «Конфигурация — Открыть конфигурацию». - В списке установленных расширений выберите удаляемый патч и нажмите кнопку «Удалить» (или через меню «Действия — Удалить»).
Способ 3. Удаление патча с помощью параметра запуска
Описание формата:
/DeleteCfg [-Extension <Имя расширения>] [-AllExtensions]
Где «/DeleteCfg» — указание на действие удаления. Два варианта:
- «/DeleteCfg -Extension <Имя расширения>»— удаление конкретного расширения или патча с указанным именем.
- «/DeleteCfg -AllExtension» — удаление всех расширений и патчей из информационной базы.
Эту команду необходимо добавить в дополнительные параметры запуска информационной базы или командную строку, вызывающую старт 1С.
Например, чтобы удалить расширение EF_1954_14 (у вас будет свой идентификатор патча), необходимо указать:
/DeleteCfg -Extension EF_1954_14
План следующий:
- Добавьте дополнительные параметры запуска ИБ на удаление одного или всех расширений.
- Разово откройте программу 1С в режиме Конфигуратор — после выполнения команды /DeleteCfg с указанной опцией Конфигуратор будет автоматически закрыт.
- Очистите поле дополнительных параметров запуска ИБ в исходное состояние и запустите её в режиме 1С:Предприятие.
Примеры удаления патча через командную строку
Для файловой базы:
"C:Program Files1cv8common1cestart.exe" DESIGNER /F <Путь> /N <Имя> /P <Пароль> /DeleteCfg -Extension <Имя расширения>
Для клиент-серверного варианта:
"C:Program Files1cv8common1cestart.exe" DESIGNER /S <Адрес> /N <Имя> /P <Пароль> /DeleteCfg -Extension <Имя расширения>
Где:
/F <Путь> — путь к файловой информационной базе;
/S <Адрес> — адрес базы на сервере 1С;
/N <Имя> — имя пользователя из общего списка, необходимы полные административные права для этого пользователя;
/P <Пароль> — пароль пользователя, имя которого указано в /N (если пароля нет, то параметр не указывается);
/DeleteCfg -Extension <Имя расширения> — имя расширения, которое необходимо удалить. Либо /DeleteCfg -AllExtensions для удаления всех расширений и патчей.
Один из этих способов должен помочь. Также рекомендуем на время отключить автоматическую установку патчей, чтобы ситуация не повторилась. Успехов вам.
Если не получается или требуется дополнительная поддержка, наши программисты 1С готовы помочь. +7-911-500-10-11
Здравствуйте, Светлана,
ошибка показывается в общем модуле Загрузка выписки по банковскому счету в функциях хозяйственных операций Получения займа от контрагента и Уплаты процентов по займу контрагента.
Поскольку в коде общего модуля ссылок на эти функции нет — я проверила (привожу скрины), то при обработке загрузки выписок программа, попадая в этот модуль, видит несоответствие по операциям и сообщает об этом.
Данные по ошибке приходят из патча EF_60002641. У вас подключена автоматическая загрузка исправления ошибок 1С, поэтому в Конфигурации в списке расширений всегда присутствуют те, или иные исправления от разработчиков.
Указанного патча не нашла ни в БП 3.0, ни в БП КОРП 3.0, максимальное там сейчас EF_60002611, а у вас EF_60002641, но не суть. Вам нужно открыть конфигуратор. В разделе Конфигурация — Расширения найти указанный патч и по кнопке Удалить — удалить его из списка.
Содержание:
1. Почему возникает ошибка при расширении конфигурации
2. Решение проблемы с ошибкой при расширении конфигурации
1. Почему возникает ошибка при расширении конфигурации
Описан готовый механизм решения следующей проблемы:
При добавлении ролей в расширение конфигурации 1С 8.3 нет возможности в режиме предприятия корректно назначить их пользователю с полными правами (Администратору). Т.к. отрабатывает стандартный код общего модуля 1С УправлениеДоступомСлужебный процедуры ОбновитьРолиПользователей, который сбрасывает все роли, переназначая основную (ПолныеПрава) и дополнительную (ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок).
А теперь разберем пример на «простом языке».
Была задача создать новые роли в расширении. Режим совместимости конфигурации ниже 8.3.13 (т.е. нет возможности применения «Основные роли» в том числе). При назначении ролей полноправным пользователям выявлена проблема: роли из расширения конфигурации 1С 8.3 недоступны (по вышеуказанной причине).
2. Решение проблемы с ошибкой при расширении конфигурации
Решение можно реализовать как в текущем, так и в отдельном расширении:
1. Добавить в расширение общий модуль УправлениеДоступомСлужебный:
2. Заменить процедуру ОбновитьРолиПользователей
Копировать код 1С:Предприятия из основной конфигурации. Между строк вставить код:
(!) Тут укажите имя своего расширения, которое содержит ваши роли:
3. Подключите (или обновите) расширение.
4. Назначьте эти роли в режиме 1С:Предприятия (Роли – в Профиле, Профиль – в Группе доступа, Группу доступа – полноправному пользователю).
Специалист компании «Кодерлайн»
Антонова Юлия.