Если при запуске 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. Почему возникает ошибка при расширении конфигурации
2. Решение проблемы с ошибкой при расширении конфигурации
1. Почему возникает ошибка при расширении конфигурации
Описан готовый механизм решения следующей проблемы:
При добавлении ролей в расширение конфигурации 1С 8.3 нет возможности в режиме предприятия корректно назначить их пользователю с полными правами (Администратору). Т.к. отрабатывает стандартный код общего модуля 1С УправлениеДоступомСлужебный процедуры ОбновитьРолиПользователей, который сбрасывает все роли, переназначая основную (ПолныеПрава) и дополнительную (ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок).
А теперь разберем пример на «простом языке».
Была задача создать новые роли в расширении. Режим совместимости конфигурации ниже 8.3.13 (т.е. нет возможности применения «Основные роли» в том числе). При назначении ролей полноправным пользователям выявлена проблема: роли из расширения конфигурации 1С 8.3 недоступны (по вышеуказанной причине).
2. Решение проблемы с ошибкой при расширении конфигурации
Решение можно реализовать как в текущем, так и в отдельном расширении:
1. Добавить в расширение общий модуль УправлениеДоступомСлужебный:
2. Заменить процедуру ОбновитьРолиПользователей
Копировать код 1С:Предприятия из основной конфигурации. Между строк вставить код:
(!) Тут укажите имя своего расширения, которое содержит ваши роли:
3. Подключите (или обновите) расширение.
4. Назначьте эти роли в режиме 1С:Предприятия (Роли – в Профиле, Профиль – в Группе доступа, Группу доступа – полноправному пользователю).
Специалист компании «Кодерлайн»
Антонова Юлия.
Ошибка при добавлении расширения в базу 1С 8: Не удалось добавить расширение из файла по причине значения РежимСовместимости
Описание ошибки:
Ошибка при добавлении расширения в базу 1С 8:
Не удалось добавить расширение из файла по причине: Ошибка применения расширения конфигурации: Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации.
Найденные решения:
Проблема может возникнуть при попытке загрузки в базу полученного файла, содержащего расширение для конфигурации (файл в формате .cfe). Ошибка режима совместимости расширения может возникать, если конфигурация была обновлена до более нового релиза, а в расширении значение режима совместимости более раннего релиза.
Открываем базу в режиме «Конфигуратор». В меню «Конфигурация» переходим к пункту «Расширения кнфигурации». В открывшемся окне списка расширений добавляем новое расширение.
Для строки в списке созданного расширения в контекстном меню выбираем пункт «Загрузить конфигурацию из файла…» и выбирайем файл расширения формата .cfe.
Соглашаемся с предупреждениями, нажимая на кнопку «Да».
Возникнет предупреждение «Обнаружены проблемы при применении расширения конфигурации».
Откроется окно «Проверка возможности применения». В колонке «Действия» нажимаем на ссылку «Исправить» и выбираем пункт «Установить значение из объекта конфигурации».
Для расширения выполняем «Обновление конфигурации базы данных (F7)».
Созданное расширение после обновления будет отображаться под именем расширения, которое было загружено в него. Остается сохранить обновленный экземпляр расширения с помощью «Сохранить конфигурацию в файл…» в исходный файл или в новый.
После описанных действий расширеине можно попытаться снова сохранить в базе данных в разделе «Администрирование» — «Внешние «
Описанные действия возможно увидеть в представленном видео. В видео используется в качестве примера расширение «Ввод документа Счет-фактура выданный с номером документа Реализация товаров» (расширение доступно по ссылке ) для конфигурации Комплексная автоматизация 2.
Так же в частном случае программист может «встретить» ошибку в конфигураторе 1С 8 при сохранении, обновлении конфигурации расширения. «Обнаружены проблемы при применении расширения конфигурации» при попытке обновить конфигурацию базы данных 1С 8 по причине, из-за ошибки: Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации. Автоматическое исправление автоматически предлагается самой платформой 1С 8.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
20-11-2020
Журавлев А.С.
(Сайт azhur-c.ru)
При обновлении 1С, уже в режиме «Предприятие», вы можете столкнуться с такой ошибкой: «EF_’№…’: Процедура или функция с указанным именем не определена».
Теория
Процесс обновления базы 1С я показывал в этой статье. Но бывает так, что в «Конфигураторе» обновление прошло без ошибок. Затем вы открываете базу в режиме «Предприятие» чтобы продолжить обновление. И как только согласитесь с легальностью полученных обновлений, вдруг видите следующую ошибку:
Может появиться и другая ошибка, без её описания. Тогда, чтобы понять что произошло, нажмите на ссылку «Сформировать отчет об ошибке«, а затем сохраните ошибку на ваш компьютер. Ошибка сохраниться в архиве в виде текстового файла, который вы можете открыть любым текстовым редактором. В этом текстовом файле можете найти ошибку из-за которой не обновляется база. И она может быть также связана с расширением, а может и ещё с чем-то. Но в этой статье мы рассматриваем именно определённую ошибку.
Эта ошибка означает что в базе есть расширение конфигурации, которое мешает обновиться. И номер этого расширения, в моём случае: «EF_00_00364434_5«. У вас может быть и другой номер, но начинается он всегда с EF_.
Расширения конфигурации – это специальный механизм, который нужен для доработки конфигурации без её изменения и без снятия её с поддержки. Типовые конфигурации, такие как «Бухгалтерия» или «Зарплата и управление персоналом» загружают расширения из интернета автоматически или вручную.
Кстати, расширения имеют больший приоритет, чем основная конфигурация. Поэтому и возникает данная ошибка. Расширение в обновлённой базе уже не нужно, но продолжает работать. И вот вам и ошибка «Процедура или функция с указанным именем не определена».
Если у вас есть доступ к ИТС, то почитать про расширения можете тут.
В этом случае вам нужно просто удалить мешающее расширение используя «Конфигуратор«.
Удаление расширения
В конфигураторе вам следует перейти по следующим пунктам меню: «Конфигурация» / «Расширения конфигурации«:
И в открывшемся списке расширений находим нужное расширение и удаляем его:
Так как я уже удалил мешающее расширение, на рисунке выше его уже нет.
Далее нужно открыть базу в режиме «Предприятие» и попробовать продолжить обновление ещё раз. Больше этой ошибке у вас не должно появиться.
Успешных вам обновлений!
Сводка
Имя статьи
Расширение мешает обновлению 1С
Описание
При обновлении 1С, уже в режиме «Предприятие», вы можете столкнуться с такой ошибкой: «EF_’…’: Процедура или функция с указанным именем не определена»