Как изменить режим совместимости в расширении 1с
Платформа 1С каждый год, а то и чаще, обновляется, и в каждом новом релизе содержится множество правок и изменений. Следовательно, перед разработчиками стоит задача отображать данные перемены в собственных конфигурациях (это означает, что когда выпускается новая версия, то его код должен быть переделан под неё, чтобы было возможно безболезненно обновить версию платформы 1С). После такого радикального заявления у многих возникает вопрос: что надо делать, чтобы старая конфигурация запустилась и работала в обновлённой версии. Как раз ответом на это и стала разработка режима совместимости конфигурации: когда происходит скачивание и возобновление платформы 1С, характеристики в этом режиме останутся прежними, и конфигурация продолжит работать.
Выбор режима для конкретной конфигурации системы 1С:Предприятие
Для определения нынешнего режима совместимости у конкретной конфигурации системы 1С:Предприятие нужно включить Конфигуратор, потом запустить нужную конфигурацию в режиме просмотра – кликаем правой клавишей в корень в дереве конфигурации и кликаем на «Свойства» (находятся в контекстной панели). Делаем перемотку в конец, в нашем окне со свойствами, как раз там будет располагаться необходимое значение режима совместимости конфигураций.
Рис. 1 Значение режима совместимости конфигураций
Увеличение значения режима совместимости конфигурации
Допустим, наша конфигурация была написана на версии системы 1С 8.2, после чего система была обновлена до версии 8.3. В раннее упомянутой конфигурации установится режим совместимости одной из версий: 8.2.16/8.2.13. Также при установке новой версии будет повышен до последнего значения режим совместимости конфигурации.
Общий алгоритм для повышения номера режима совместимости конфигурации прост – самостоятельно по порядку вносим изменения в конфигурацию системы 1С согласно списку нововведений и перемен (этот список прилагается ко всем новым релизам платформы 1С). На скриншоте ниже показан пример, где можно проверить версию технологической платформы:
Рис. 2 Проверка версии технической платформы стандартных конфигураций
Рекомендованный режим в конкретного выпуска конфигурации
При скачивании обновления конкретной конфигурации можно посмотреть версию системы, которая рекомендована для конкретного выпуска конфигурации:
Рис. 3 Рекомендованная версия системы для конкретного выпуска конфигурации
В нашем случае, при работе с 1С:Бухгалтерия предприятия 3.0.66.60, лучше всего скачивать платформу версии не ниже, чем 8.3.12.1685.
Также режим совместимости конфигурации регулируется и проверяется при помощи самой программы: система станет предупреждать, какой режим ей необходим.
Также внимание следует уделить режиму совместимости конфигурации под названием «Не использовать». Вышеупомянутый режим прописывается, учитывая такое условие: когда номер платформы 1С, которую используем, равен номеру режима совместимости конфигурации.
На днях вышла тестовая Бухгалтерия Предприятия с отключенным режимом совместимости с платформой 8.3.6.
А значит в этой версии используется новый движок, который по-новому отрисовывает формы.
Прочитать про это можно в Вместе с типовыми на новую платформу следует переделывать и свои расширения.
В процессе перевода сформировал для себя небольшой чек-лист или памятку о том, что нужно сделать.
Памятка:
1. Переводим расширение на новую платформу
Для этого следует привести режим совместимости расширения к режиму совместимости конфигурации.
В версии Бухгалтерия Предприятия установлены следующие свойства:
В расширении можно установить точно такие же свойства или снять все флажки.
Отсутствие флажков означает, что расширение не будет проверять эти свойства при подключении.
То если эти свойства изменятся в основной конфигурации, то расширение все равно запуститься:
2. Устраняем проблемы подключения
Для этого запускаем конфигурацию в режиме предприятия и смотрим взлетело или нет.
Ошибки, из-за которых не удалось подключить расширение, можно посмотреть в журнале регистрации
(Администрирование - Поддержка и обслуживание - Журнал регистрации)
Нас интересуют события - “Сеанс. Ошибка применения расширения конфигурации”:
Чаще всего проблема подключения решается удалением лишнего реквизита или объекта.
Основная сложность в том, что расширение не выдает сразу все ошибки (кстати, эта
3. Обновляем формы в расширении
Для этого в каждой измененной форме нажимаем на “Обновить расширение формы”
С помощью этой команды мы заново подгружаем форму основной конфигурации в расширение.
В принципе работать будет и без этого, но это нужно для того, чтобы в расширении форма выглядела также как и в основной конфигурации.
В версии 3.0.44 практически все формы подверглись изменениям, поэтому хорошо бы и в расширение подтянуть эти изменения.
4. Приводим форму к правилам нового движка.
- Убираем все декорации, которые использовались для отступов.
Вместо них теперь используются группы. - Смотрим, что все выглядит хорошо.
Если что-то пошло не так, то смотрим статью.
Если все хорошо, то двигаемся дальше. - Проверяем новые свойства платформы “Объединенная”, “АвтомаксимальнаяШирина” и “АвтомаксимальнаяВысота”.
Просто смотрим, что в этих свойства установлены умолчания платформы и форма из-за этого не разъезжается.
5. Проверяем расширение в режиме предприятия
Запускаем конфигурацию и радуемся тому, что все стало хорошо.
Полезные материалы по теме:
Специальные предложения
(2) Alex_E, это я-то не умею? Смешно. Я одним из первых, смею надеяться, занялся глубоким и всесторонним изучением этого уродства. Ибо наивно полагал, что какая-то польза всё ж будет. А потом я, знаешь ли, даже публикацию накатал о некоторых нюансах расширений. А потом эксплуатация показала, что более кривой и ненадёжной хрени в 1С трудно отыскать. И я вынужден был у трёх клиентов отказаться от расширений и перейти к нормальной куроченной конфе. И это было хотя бы прозрачно, однозначно и стабильно.
Так что всем минуснувшим мою реплику - ребятки, вы просто ещё не встали как следует на эти грабли. Встанете - будет вам урок)
(7) Yashazz, Я не минусовал, расширения использую со дня их появления, публикации то же есть, с что нравится и что нет на тот момент, и ни в одной конторе, где их использовал не отказался - вот такие мы разные, прикинь :-) (и во всех бухгалтериях сразу ставлю отключение регламента и пр. через расширение сразу - закрывать всякие окошки с "а Вы знаете. " хотца нет :-) Это пустяк, конечно, но решается через расширение на счет раз) (8) Alex_E, а что Вы будите делать, когда вызов открытия этих окошек переедет в другой модуль?т.к. при обновлении Вы проблем не знаете, то Вы даже не узнаете, что эти вызовы исчезли в одном модуле и появились в другом. (9) monkbest, вообще-то это вызовет ошибку - 1С таки бейсик - компилируется по мере открытия. А вы в продакшн без тестирование всё вываливаете? Я вот проверять пытаюсь. (1) Yashazz, с каждой версией платформы они расширяют возможности этого механизма, как по мне, это явно лучше чем "ломать" конфигурацию. (3) Solovyeff, пока не будет возможности переопределять любые модули и добавлять свои модули, к сожалению только расширениями не всегда можно обойтись (4) baracuda, в 8.3.9 реализовано, осталось подождать выхода версии платформы. (1) прошло 5 лет, все поменялось. Вы бы подписались сегодня пож этими словами? (13) Однозначно подписался бы. Я уже давно махнул рукой и не коллекционирую баги расширений, но они всё столь же грубые, критичные и опасные, даже ещё хуже кое-где стало. В некоторых случаях падают Предприятие или Конфигуратор, в некоторых теряются или искажаются данные, а уж мелких милых косячков не счесть. Я ж постоянно с расширениями дело имею, к сожалению. Я ж постоянно с расширениями дело имею, к сожалению. Так баги не только из-за них - в самой платформе их тоже хватает. Но расширения помогают быстро "и без дополнительной возни в гиперпространстве" сделать простые и нужные штуковины, не особо напрягаясь. Так что, имхо, Вы тут зря мнение не поменяли. Видел ситуации, когда даже внешняя обработка приводила к падению системы - я вот их использую, и расширения (хоть и меньше). Что, от обоих отказаться и только в конфигураторе пилить? )))
(15) С внешками даже после замутов с профилями безопасности и "защитой от опасных действий" на порядок меньше проблем и больше стабильности, чем с расширениями. А расширения - моё мнение такое: если надо слегка изменить/добавить форму, то можно. Во всех остальных случаях - ни-ни.
Из недавнего: делаю я, значит, расширение для БП, в рамках общеизвестного 534 новые СчФ и УПД. Заимствую из конфы макет 1137, и макет 981. Дорабатываю код. Запускаю: макет 981 видит, про 1137 говорит, что такого нету. Вот нет такого общего макета, совсем. Метод "ПолучитьОбщийМакет" даёт невосстановимую ошибку. Ладно, работаю с тем, что есть. Спустя часа полтора работы понадобилось мне обновить в расширении 981-й, жму "Добавить в расширение", он меня спрашивает, обновить ли в расширении, иии. и конфигуратор тихо рушится. Ситуация воссоздаваемая, пятый раз я ронял конфигуратор, уже показывая этот "эффект" в Энидеске заказчику, который спросил, фигли так долго.
Кончилось тем, что тупо добавил в расширении свои макеты-копии типовых. И что, это называется стабильная работа? Когда бишь макеты-то в расширениях появились. Ладно, я молчу, что мало кто копал, как именно они "расширяются" и как себя ведёт наследование а) именованных областей, б) примечаний, в) внедрённых объектов, типа компоненты штрихкода, г) элементов управления. Да, мало кто это знает.
Но сам факт таких косяков, и невозможности выполнить вроде бы простую и давно якобы работающую операцию - характеризует.
Один раз с этим столкнулся - просто просят иногда ерундой страдануть. Там очень древняя УТ (10.3.27, сейчас вроде уже 90-я). Да, в таком случае просто скопировал макет, добавил в него строку с документом реализации и поправил колонки (очень классное сочетание клавиш Ctrl + M - пользуйтесь) - 10 минут дел в конфигураторе, + 3 минуты на условие 01-07-2021. Скука ))(17) Мне ещё параллельно надо было другие старые доработки сохранить, они ранее были в ВПФ, меня попросили, раз уж так, загнать всё в расширение. Там слегка нетипично второстепенные поля СчФ формируются, основная фишка вообще не в макетах была.
Ах да, у заимствованных макетов не все изменения свойств объединённых ячеек применяются. А иногда она в конфигураторе объединённая, а в предприятии оказывается первая-одиночная, и спасает только программно Объединить() ещё раз. От так.
Расширения конфигурации 1С облегчают доработку и поддержку типовых решений на внедрениях. Для облачных вариантов это практически единственный способ доработки. Также на расширениях реализуются хотфиксы — быстрые исправления. В последних версиях платформы доступны функции, облегчающие создание «универсальных расширений», независимых от конфигурации. Например, интеграционный инструментарий, консоли, файловый менеджер.
Алексей Тютякин, разработчик 1С в компании Neti, рассказывает о расширениях конфигурации и предупреждает о подводных камнях, с которыми может столкнуться каждый программист.
Краткая справка
Технология с довольно скудным функционалом появилась в 2015 году, в платформе 8.3.6.
Возможности расширений в типовых конфигурациях зависят от режима совместимости, который обычно ограничен версией БСП. На февраль 2021 года в основных линейках типовых конфигураций (ЕРП, БП, ЗУП) используется БСП версии 3.1.3 и режим совместимости 8.3.14.
В базовых версиях расширения не поддерживаются.
Как это выглядит при разработке
Как это выглядит при разработке. Есть основная конфигурация и ее расширение (отдельная мини-конфигурация). Объекты бывают собственными, созданными в самой конфигурации или в расширении, и заимствованными, захваченными из основной конфигурации в расширение. Для заимствованных объектов можно переопределять ряд свойств.
Свойства объектов бывают контролируемые и модифицируемые. Контролируемые свойства менять нельзя — они должны совпадать у основной конфигурации и расширения, иначе расширение не запустится. Модифицируемые свойства можно изменять в расширении.
Возможности технологии
В версии платформы 8.3.14, поддерживаемой современными типовыми решениями, широкий спектр возможностей для изменения. В частности, можно:
- менять большое количество свойств заимствованных объектов;
- создавать собственные справочники, документы и РС;
- создавать и переопределять подсистемы и роли, шаблоны доступа;
- переопределять практически все модули и формы;
- версионировать расширения в хранилище.
В последних версиях платформы появилось множество интересных возможностей. Отметим самые существенные:
- в версии 8.3.13 — поддержка создания своих РН, РБ, РР и связанных объектов, функционал планов обмена;
- в 8.3.14 — собственные параметры сеанса, что дает полноценное создание своих РЛС;
- в 8.3.15 — появилась возможность заимствовать процедуры и функции с контролем изменения кода в основной конфигурации и в расширении — аннотация &ИзменениеИКонтроль;
- в 8.3.16 — создание собственных констант, функциональных опций и критериев отбора, изменение состава заимствованных критериев отбора и функциональных опций;
- в 8.3.17 — создание своих подписок на события и заимствование существующих;
- в 8.3.18 — возможность расширения состава типов заимствованных объектов (с некоторыми исключениями, например, для определяемого типа).
Более подробно с описанием механизма расширений можно узнать в следующих материалах:
Кейс: переход на ЗУП 3.1 КОРП в федеральной торгово-производственной компании
Основной источник кейсов для этой статьи — проект перехода на ЗУП 3.1 КОРП с ЗУП 2.5 в крупной торгово-производственной компании. Особенности проекта:
- холдинговая структура, состоящая из десятка юрлиц;
- пять тысяч сотрудников;
- существенная текучка кадров и большой объем документооборота;
- управленческий учет, аналогичный ЗУП 2.5.
Важное требование заказчика: доработки конфигурации необходимо выполнить только с помощью расширений. Удалось на 99%, 1% — ограничения технологии, о которых поговорим отдельно.
Проект выполнялся на версии платформы 8.3.13, 8.3.15, поэтому для некоторых кейсов сейчас доступны альтернативные решения.
Собственные структуры данных
Одна из первых задач любого внедрения — адаптация структуры хранимых данных к реалиям конкретного проекта, то есть расширение структуры данных.
С версии 8.3.11 платформа умеет через расширения создавать справочники, документы, регистры сведений. С 8.3.13 — РН, РБ, РР, полноценные планы обмена, ПВХ, ПС, ПР.
Эти возможности широко применялись на проекте для расширения структуры данных. Расширялся реквизитный состав заимствованных справочников и документов, добавлялись собственные документы, регистры сведений, регистры накопления. Более того, на смежном проекте внедрения решения 1С:ERP в той же компании проектная команда решила не использовать дополнительные реквизиты вообще. В итоге для описания всей специфики номенклатуры в едином расширении было создано более 100 новых реквизитов, десяток перечислений и справочников-классификаторов. Результат по производительности не ставит каких-либо значимых вопросов, все работает так же быстро, как и типовая ERP.
Работать с расширенной структурой данных удобно. Она поддерживается конструктором запросов и в пользовательском режиме, и в конфигураторе.
Однако стоит учитывать ряд особенностей:
1. Тип ЛюбаяСсылка не содержит ссылок на собственные типы расширения. Механизмы, использующие этот тип, с данными расширения работать не будут.
2. Если в заимствованный справочник/документ добавлен новый реквизит, необходимо захватить в расширение роль, дающую права на этот справочник/документ, иначе реквизит останется без прав и не будет показан на форме.
Хранение новых реквизитов
Рассмотрим способ реализации хранения данных в расширении. Под новые справочники и документы создаются новые таблицы. Они помечаются суффиксом Х и порядковым номером. Например, Reference789X1.
Когда в заимствованный объект расширения добавляется новый реквизит, табличная часть или реквизит табличной части, в базе данных копируется весь набор таблиц объекта с теми же суффиксами в названиях. Например, для таблицы справочника Reference34 будет создана Reference34X1, для новой табличной части может быть создана таблица Reference34_VN34437X1.
Таблицы нового набора дополняются созданными в расширении структурами, после чего данные переносятся в новые таблицы. Дальше вся работа идет с этими таблицами в рамках разделителей текущей области.
Если расширение после изменения основной конфигурации не может быть запущено, оно переводится в неактивный режим. Новые данные не удаляются и не теряются. Для отключения расширения необходимо выбрать соответствующий пункт меню и подтвердить свои намерения в диалоге. Случайно это сделать сложно, поэтому опасения, которые возникли, когда возможность только появилась, сейчас напрасны.
Есть особенность в работе глобального метода ПолучитьСтруктуруХраненияБазыДанных(): в именах таблиц не показываются суффиксы, поэтому определить этим методом наличие или отсутствие расширенной структуры невозможно.
На иллюстрации приведен пример, как выглядит расширенная структура данных для заимствованного справочника расширения, в которую добавлены новый реквизит и новая табличная часть. Видим, что созданы копия таблицы с суффиксом X1 и таблица для табличной части, в конце которой тоже суффикс. Все данные справочника перенесены в новую таблицу.
Во второй части статьи о расширениях поговорим о РН, изменении режима совместимости, доработке модулей и форм, отчетах и печатных формах.
В первой части статьи о расширениях конфигурации 1С мы говорили о возможностях технологии, собственных структурах данных и хранении новых реквизитов. Во второй части обсудим РН, изменение режима совместимости, доработку модулей и форм, отчеты, печатные формы и ограничения расширений.
Новые регистры накопления (РН)
В ходе адаптации под нужды заказчика потребовалось переработать типовой механизм учета НДФЛ к перечислению. Для этого понадобилась возможность создавать собственные РН, которая стала доступна в версии 8.3.13 платформы. В БСП, актуальной на тот момент, режим совместимости был только 8.3.12, поэтому его потребовалось повысить.
Появились нюансы, характерные для конкретной версии платформы 8.3.13.1644. Оказалось, что для нее заимствованные РН нельзя модифицировать, точнее, можно, но конфигурация начинает работать нестабильно: ломается конструктор запросов в пользовательском режиме, возникают странные падения и ошибки. Причем регистр накопления считается измененным, даже если установлен флаг модификации совершенно пустого модуля набора записей. Такое состояние метаданных можно получить, если в заимствованном регистре написать код в модуле набора записей и потом его удалить. Поиск этой ошибки занял большое количество нервов и времени.
Кстати, модифицированные объекты легко отобрать прямо из дерева конфигурации с помощью кнопки-фильтра. В свежих версиях платформы (например, 8.3.15 и выше в режиме совместимости 8.3.13) эта проблема не воспроизводится.
Изменение режима совместимости
Вытекающая из предыдущей части задача — поднять режим совместимости конфигурации. Это контролируемое свойство, и приходится менять его и в основной конфигурации, и в расширении.
В зависимости от версий нюансы могут быть разные, так как поведение платформы отличается, меняются сигнатуры некоторых платформенных функций. Это выявляется только тщательным тестированием.
С чем сталкивались мы:
● Менялась сигнатура метода НачатьПомещениеФайла. Третий параметр в 8.3.12 мог быть простой строкой, которая шла в заголовок диалога, а в 8.3.13 должен быть объект ДиалогВыбораФайла.
Доработка модулей
В расширении можно заимствовать модули основной конфигурации и создавать свои. В заимствованных модулях, помимо создания собственных функций/процедур, можно менять выполнение типового кода: вклиниться до выполнения типовой процедуры и после или вместо типовой сделать свою процедуру. Это реализуется указанием перед заимствованной процедурой или функцией аннотации &Перед, &Вместо, &После. Работают заимствованные модули в одном пространстве имен с основными — можно вызвать типовой код из расширения.
Особенности. Модули в расширении могут быть собственными и заимствованными. Лучше в заимствованных писать только код, касающийся перехвата поведения типового, а свой код писать в собственных модулях расширения. Это позволяет легче контролировать изменения относительно типовой конфигурации при обновлении, когда исходная функция изменена. Потребуется анализировать меньше кода.
Существует настройка — безопасный режим и имя профиля безопасности. Она влияет на переопределение кода в общих модулях. Если не разрешить ее для расширения, код из его общих модулей не будет срабатывать без каких-либо видимых оповещений.
Доработка форм
Механика процесса сложнее, чем кажется на первый взгляд.
В момент захвата формы в расширение вместе с экземпляром сохраняется исходная версия захваченной формы. При открытии расширенной формы в пользовательском режиме вычисляются две разницы: новой формы в основной конфигурации относительно старой формы и формы в расширении относительно старой формы. Разница подразумевает изменения в свойствах и структуре элементов, команд и реквизитов. Сопоставление элементов выполняется по именам.
После вычисления разницы они совмещаются с приоритетом изменений расширения — так получается результирующая форма.
Проблемы, к которым может привести алгоритм
Во-первых, вычисление разниц требует времени, и на больших сложных формах типа РМК возможно существенное замедление.
Во-вторых, есть зависимость от сохраненной формы. Пока форма в основной конфигурации не изменилась, все работает логично и понятно. При существенных изменениях структуры форм результат в пользовательском режиме может быть неожиданным. К счастью, в редакторе формы есть команда обновления сохраненной формы в расширение, с помощью которой получится затянуть новую версию из основной конфигурации. Можно также открыть сохраненную форму на чтение.
Подходы к доработке форм
Часто другие компании на проектах запрещают редактирование свойств формы — все реализуется только кодом. В этом случае полезно сделать обработку: создать форму как обычно, обработка генерирует код для получения того же результата программно.
При доработке формы интерактивным редактированием есть особенность для обработчиков событий: вместо аннотаций для них используется создание собственных процедур в расширении с назначением в свойствах элементов формы. Также там можно указать обработчик Перед, После и Вместо. Для остального кода формы доработка выполняется как и в других модулях — через аннотации.
Отчеты и печатные формы
Для подключения отчетов расширения к подсистеме БСП «Варианты отчетов» нужно по сути два действия:
1. Подключить отчет к хранилищу вариантов, предварительно захватив его в расширение (это актуально для ЗУП, где в корне основной конфигурации не проставлено свойство хранилища вариантов).
2. Описать подключаемые варианты кодом в менеджере отчета функцией НастроитьВариантыОтчета().
Особенности внешних дополнительных отчетов и обработок
● Для собственных документов расширения не подключаются назначаемые печатные формы, реализовать можно только командами из формы. Причина: в подсистеме используется ТЧ «Назначения», где для дополнительного отчета хранятся ссылки на идентификаторы объектов метаданных. При этом справочника в БСП два: для объектов метаданных и для объектов расширений. Но хранить ссылку там можно только для объектов метаданных.
● Конструктор запросов в конфигураторе работает только со структурами данных, захваченными или созданными в расширении. Если запрос или отчет строится по большому числу существующих в основной конфигурации объектов, то их все (и объекты, и реквизиты) нужно захватывать в расширение, что довольно утомительно — инструмента, позволяющего это сделать в один клик, нет.
Решение: подготовка текста запроса или схемы СКД в пользовательском режиме в консоли запроса или СКД. Результат можно загрузить в конфигурацию, и он будет исполняться корректно (не работает только конструктор).
● При работе с внешними отчетами конструктор запросов и СКД не видит собственные структуры данных расширения. Это проблема только конструктора запросов в конфигураторе, так что можно работать с текстом запроса из консоли запросов в пользовательском режиме и уже готовый запрос вставлять в отчет. Вероятно, потребуется сначала создать пустышку запроса для возможности настроить структуру, отборы и т. п. в СКД.
Внешний отчет можно разрабатывать в расширении, а в конце выгрузить его.
Ограничения расширений
Несколько существенных ограничений технологии, с которыми мы столкнулись на проекте.
Планы обмена. В версии 8.3.13 они практически полноценные: можно создавать свои, в заимствованных менять состав, добавлять и заимствованные и собственные объекты. Но в версии платформы 8.3.13.1644 это не работало: таблицы изменений для собственных добавленных объектов метаданных не создавались, в конструкторе запросов тоже не было таблиц изменений.
Решение простое, но требует вмешательства в основную конфигурацию: создаем пустышку плана обмена — только сам объект с требуемым именем — захватываем в расширение. Остальное: реквизиты и ТЧ, состав, макеты и прочее — можно настроить в расширении.
Кстати, в 8.3.15 даже с режимом совместимости 8.3.13 работает корректно.
Константы не поддерживаются (стало возможным в 8.3.16). Решается это созданием собственного независимого непериодического регистра сведений, где в ресурсах можно хранить все необходимые данные. Из недостатков: запись будет работать на весь набор целиком (если часто меняются константы, возможны проблемы с блокировками).
Нельзя создавать в расширении регламентные задания (альтернатив нет вплоть до 8.3.18). Варианты решения: метод пустышек или внешний отчет, подключаемый к подсистеме БСП с типом команды ВызовСерверногоМетода (для него из стандартного интерфейса есть возможность настройки расписания).
Версионирование
С версии 8.3.12 платформы поддерживается работа расширения с хранилищем. Это немного странно реализовано в меню, и новые разработчики путаются. Управляется одним и тем же меню в конфигураторе, нужно только выбрать объект из дерева основной конфигурации или из дерева расширения.
Доработка расширением удобна: оно небольшое, на 1–2 порядка меньше основной конфигурации, и все операции с хранилищем выполняются быстро.
Расширения, как и основную конфигурацию, можно разбирать на файлы и собирать обратно.
Заключение
● Технология достигла зрелости. В продуктивной среде проблем стабильности и производительности нет.
● Можно использовать на крупных проектах, в том числе и для расширения данных.
● Ошибки работы расширений редкие, но есть особенности применения. Необходимо заранее проверять проектные решения на работоспособность в используемой версии платформы.
Не стоит применять расширения для развития уже существенно переписанных систем или если в проекте изначально предполагается масштабная переработка типовых механизмов. Причина — исключается преимущество (нетронутая основная конфигурация) при возрастающей сложности доработки (особенности механизмов и несколько мест правки кода).
Не следует использовать в одной конфигурации несколько расширений, изменяющих один и тот же объект метаданных. Это приводит к запутыванию работы кода, доработки будет сложно выполнять. Исключение: временные исправления ошибок, которые в ближайшем релизе будут устранены.
Читайте также: