Что такое расширения конфигурации 1С, и для чего они нужны?
После выхода 1С 8.3.6.1977 к функционалу типовых конфигурации был добавлен новый инструмент «Расширение».
Расширения 1С — это инструмент, который позволяет осуществлять доработку типовой конфигурации, но при этом сохранить её в статусе типовой поддержки. Тем самым, затраты на проведение штатных работ по обновлению конфигурации не будут увеличены и система останется типовой.
При помощи расширений конфигураций вы сможете в разы сократить затраты на адаптацию стандартных прикладных решений к потребностям внедрения для конкретного клиента.
Плюсы данного решения в том, расширения позволяют вносить доработки в конфигурацию, но при этом не снимают её с поддержки. Снятие конфигурации с поддержки значительно увеличивает временные и финансовые затраты, необходимые для обновления такой конфигурации, а также (при большом количестве изменений) повышает требования к квалификации специалиста, который будет проводить обновление.
Но создание расширения 1С не всегда исключает ситуации связанные с трудностями при обновлении. Это связано с тем, что после очередного обновления в типовой системе могут быть внесены разработчиком (компанией «1С») изменения в объекты, которые используются в расширениях (доработках конфигурации) и расширения могут утратить свою работоспособность и потребуется вносить в них доработки. А в редких случаях могут привести и к серьезным ошибкам или полностью утратить свою актуальность, либо работоспособность.
В целом функционал расширения может значительно упростить жизнь как программисту, так и пользователям базы данных, однако и этот механизм требует четкой работы и корректной поддержки.
Работа с расширениями 1С
Осуществляя разработку расширений полезно знать о том, что:
- 1 В конфигурации можно внедрять сразу несколько расширений одновременно;
- 2 Не все объекты конфигурациии можно использовать в расширении.
Расширения могут включать в себя одно из перечисленных далее назначений в следующем порядке:
- 1 «Исправление» — назначение применимо в том случае, когда требуется оперативное исправление ошибок в расширениях;
- 2 «Адаптация» — данное назначение используется в случае, когда под условие клиента требуется применение прикладного решения. Например: при условиях, когда в одно реализованное расширение не получается вместить весь перечень доработок применяется «Адаптация». С помощью этого назначения вы сможете разделить все доработки в расширении по крупным блокам;
- 3 «Дополнение» — применяется в случае, когда необходимо реализовать новую доработку в уже существующем расширении. Например: при включении данного назначения программист сможет создать, к примеру, новый набор отчётов, которые отсутствуют в прикладном решении, но необходимы клиенту.
Применение 1С расширения
Программистам 1С часто поступают задачи, касательные доработки конфигураций. Метод, по которому работают 1С 8 расширения, не предполагает вмешательства в типовую версию продукта. Все доработки осуществляются внутри самих расширений.
Когда все доработки в расширении выполнены — специалисту остаётся подключить его к конфигурации, а платформа их самостоятельно объединит.
Так как режим поддержки типовой версии продукта не подвергался изменениям — при выпуске обновления продукт автоматически обновится, потому что по-прежнему будет находиться на полной технической поддержке со стороны самой компании 1С.
После обновления система произведёт объединение конфигурации и расширения.
Сценарий работы расширения 1С
Для наглядности рассмотрим следующий пример: внештатный специалист дорабатывает конфигурацию для клиента, находящегося на поддержке или в момент внедрения продукта в бизнес-процессы Заказчика. Или же доработкой типовой версии продукта занимается не сторонний исполнитель, а специалист со стороны самого Заказчика.
При выполнении доработок в расширениях типовые конфигурации будут оставаться на полной поддержке со стороны самой компании 1С. Это в разы упрощает их дальнейшее сопровождение.
Какие объекты в 1С расширениях не поддерживаются при создании?
При расширении типовой конфигурации не поддерживаются следующие собственные объекты:
- Функциональные опции и их параметры;
- Бизнес-процессы и задачи;
- Внешние источники данных;
- Регламентные задания;
- Подписки на события;
- Хранилище настроек;
- Журнал документов;
- Определяемые типы;
- Общие реквизиты;
- Параметры сеанса;
- Критерии отбора;
- Константы;
- Языки.
- В расширении нельзя создать подчинённую подсистему. В случае, если объект не является собственным, его расширение невозможно;
- При использовании базовой версии прикладного решения инструмент по расширению конфигурации недоступен.
Как устроено 1С расширение конфигурации
Устройство расширения схоже с обычной конфигурацией и демонстрируется в форме дерева объектов.
Главная особеность расширений — это наличие функции заимствования любых объектов у типовых конфигураций.
Необходимо перейти в раздел «Конфигурация» → «Номенклатура» → «Добавить в расширения».
Функция заимствования объектов нужна для того, чтобы убедиться в том, что расширение и типовая конфигурация в связке работает правильно.
В процессе подключения расширения система каждый раз проводит проверку на корректное заимствование объектов.
Как осуществляется подключение расширения 1С
Нужно перейти в раздел «Все функции» → «Стандартные» → «Управление расширениями конфигурации» или же воспользоваться интерфейсом, предоставленным самой компанией 1С: Предприятие.
Также создать новое расширение можно в конфигураторе. После отладки и проверки вы сможете сохранить его в файл.
После сохранения вы можете передать файл клиенту, а он в свою очередь сможет осуществить самостоятельную загрузку расширения.
Чтобы осуществить подключение расширения, которое сохранено в файл запуск конфигуратора не требуется.
Как проверить возможность подключения расширения к различным конфигурациям
Осуществить проверку подключения расширения к различным конфигурациям можно при помощи:
- 1 Встроенной опции «Управление расширениями конфигурации»;
- 2 Запуска конфигуратора в пакетном режиме;
- 3 Встроенного языка.
Назначение расширения 1С
Выбрать назначение можно из списка фиксированных значений, которые предусмотрены в системе.
Последовательность применения расширения с назначением:
- 1 «Исправление»;
- 2 «Адаптация»
- 3 «Дополнение».
Если следовать такому порядку, то вы сможете избегать конфликтов между функциональностью расширений и назначением.
В данной статье мы рассказали о том, что такое расширения в конфигурациях 1С. Если у вас остались вопросы или требуется настройка 1С — звоните нам по номеру, указанному на сайте. Наши специалисты с радостью ответят на все, интересующие вас вопросы.
1С 8.3 Расширения — Программист 1С Минск. Автоматизация бизнеса.

ПРИМЕРЫ КОДА 1С
Расширения в 1С 8.3 — это микро конфигурации в формате xml (текст с тегами) которые позволяют дополнить существующую конфигурацию (вклиниться) в виде слоя. Расширения в 1С 8.3 являются одновременно и данными, и метаданными. В одной конфигурации может быть N-е количество и зависимости друг от друга заранее неизвестно. В основном имеет смысл использовать в типовых конфигурациях (на поддержке). Расширение является своеобразным «клином», который можно мигрировать из одной информационной базы в другую.
//* — Работа с механизмом расширения тестировалась на конфигурации 1С 8.3.19.
1. Создание:
Конфигуратор 1С — Меню — Конфигурация — Расширения конфигурации. При применении расширения контролируется порядковый номер версии при одинаковых ID (применяется последняя версия). Имя, синоним, префикс — называем как нам удобно.

Назначение:
- Исправление — применяются на конфигурацию поставщика (вклинивание в логику поставщика bug fix, инъекция в код).
- Адаптация — в логику кода не вмешиваемся. Адаптация без изменения логики и зависит от конфигурации поставщика.
- Дополнение — полностью независимое решение. Автономное решение без связки с конфигурацией поставщика.

Признаки:
- Активно — расширение используется. Если будет ошибка применения — признак автоматически отключится.
- Безопасный режим — влияет на работу в клиент-серверной версии. Актуально только для профилей безопасности SQL (разрешения к доступу).
- Защита от опасных действий — запрещает обращение к серверным модулям, открытие внешних отчетов, работа с интернетом. Аналогично параметрам пользователя
- Используется в распределенной ИБ — миграция расширения по распределенным узлам
- Область действия — использование БД целиком или с разделителями для различных технологий (например, для облаков)
- Использовать основные роли для всех пользователей — Рекомендуется ее отключить т.к. значительно влияет на производительность. Для всех пользователей создастся дополнительная роль (с префиксом) расширения и будет применятся. Роли пользователя в основной конфигурации будут иметь приоритет.
Применение в режиме 1С Предприятие:
- Применилось ли расширение можно увидеть в Меню — Справка — О программе «Конфигурация»
- Если расширений много и не конфликтуют друг с другом — они применяются последовательно по имени и/или версии.
- Отключать расширение (Функции для технического специалиста — Стандартные — Управление расширениями конфигурации) в можно в режиме 1С Предприятие, но при закрытом! конфигураторе. Иначе при попытке отключить признак «Активно» получаем ошибку: Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи не выполнено). Ошибка блокировки объекта. Объект уже заблокирован: . После отключения расширения необходим перезапуск пользователя.
2. Принцип разработки:
- Рекомендуется дробить расширения. Создавать на каждый объект своё, так проще контролировать применение и фиксировать ошибки, т.к. при конфликте в режиме 1С Предприятие расширение автоматически отключается.
- Найти пересечения по объектам невозможно. Поэтому расширения должны быть автономны.
- Для новой печатной формы или нового отчета/обработки рекомендуется первично использовать БСП так как количество расширение негативно влияет на производительность
- При удалении расширения сопутствующие данные удаляются без возможности восстановления
- Работать с метаданными основного поставщика не рекомендуется
Система не поддерживает зависимость объектов в конфигурации поставщика. Применяет слои в порядке их очередности ( последовательно), по списку (если они друг с другом не конфликтуют). Первыми будут применятся Исправление , потом Адаптация , а самые последние Дополнение . Далее в списке происходит сортировка по Имени и Версии расширения:
Конфигурация поставщика

Инъекции в программный код (вклинивание):
1. Создаем расширение (Адаптация)
2. Заимствуем форму документа (родительского объекта)
3. Вклиниваемся в событие и переопределяем его — добавляем в расширение Alt+Shift+F2
4. Выбираем Тип вызова:
- Вызывать перед
- Вызывать после
- Вызывать вместо
- Вызывать вместо (с контролем)
! Порядок кода должен быть именно таким (иначе работать не будет) !
&ИзменениеИКонтроль(«ПересчетТаблицы»)
&НаКлиенте
Функция Расш1_ПересчетТаблицы ( Табл )
FAQ при разработке объектов и их форм в расширениях:
При изменении существующего или добавлении нового реквизита основной конфигурации через заимствование в расширение. Система создаст новую таблицу чтение которой будет производится через основную таблицу. Поэтому при переопределении свойств реквизита (например: увеличение длины цены с 10 до 12 символов) не рекомендуется использовать заимствование объекта, а создать автономный, новый (в расширении) и работать с ним для исключения конфликтов (как заимствованные объекты). В этом случаем система создаст новую независимую таблицу. Например, также можно реализовывать через Регистр сведений или подчиненный справочник с нужными реквизитами. К баг фиксам данная рекомендация не относится!
Для переноса данных из основной конфигурации в расширение нужно писать обработку (через внешний источник (*.xml, *.bdf и т.п.) или дежурный регистр).
При добавлении в расширение из осн.конфигурации реквизита составного типа система заимствует все объекты
Если объект контролируемый (установлен признак). Система не применит расширение если основной поставщик изменит значение объекта.

В режиме 1С получим ошибку: » Ошибка применения расширения конфигурации. Имя: *****
Критичная: Значение контролируемого свойства Тип у объекта ***** не совпадает со значением в расширяемой конфигурации «
Также можно установить у объекта свойство: Проверять значение при подключении расширения, не запрещать подключение расширения:

Просмотреть работает ли расширение в пользовательском режиме 1С: Меню — Сервис и настройки — О программе (Расширения конфигурации:).
Отключить расширения в пользовательском режиме 1С (с правами Администратора): Меню — Сервис и настройки — Функции для технического специалиста — Стандартные — Управление расширениями конфигурации — Снять галки с ненужного расширения (Делать это нужно при закрытом конфигураторе и для применения нужен перезапуск сеанса).
Разработка 1С: «Изменение и Контроль» в Расширение конфигурации 1С. Пример использования — видео HD

«Изменение и Контроль» в Расширение конфигурации 1С. Пример использования
С помощью аннотации &ИзменениеИКонтроль можно делать точечные вставки в код типовой конфигурации.
Основная проблема при изменении кода в процедурах и функциях с помощью расширений конфигурации — это контроль за изменением кода в основной конфигурации.
Когда изменяется код в процедурах или функциях основной конфигурации вынесенных в расширение, возникает необходимость внести изменения в расширение 1С.
Использование аннотации &ИзменениеИКонтроль частично упрощает обновление расширений — теперь платформа будет контролировать неизменность кода в вынесенной в расширение процедуры.
Приглашаем на 4-х ступенчатую программу подготовки Программиста 1С: work-1c.ru/Training_Programmer_1C/
Выбери свой курс:
I ступень — Базовый курс «Я любитель» — начни с нуля и разработай собственную конфигурацию – обучение 1-2 месяца 8800 руб.
II ступень— Основной курс «Я профессионал» — программируй в типовых конфигурациях — обучение 4-6 месяцев 29 000 руб.
III ступень— VIP курс «Я эксперт» — изучи всё топовые механизмы в программировании 1С — обучение 6-8 месяцев 50 600 руб.
IV ступень — Premium курс «Я Гуру» — доступ ко всем нашим курсам, книгам, тренажерам, а также к обновлениям в течении 2-х лет. — 100 000 руб
Есть вопросы по нашим платным курсам, по обучению? Звоните по бесплатному номеру 88002344322 и мы проконсультируем вас!
Мы ответим на все ваши вопросы.
1с изменение и контроль расширение как работает
Использую в расширении для процедуры общего модуля #ИзменениеИКонтроль
Если в процедуру общего модуля добавляю #Вставка и #КонецВставки, то по точке останова процедура пропускается.
Если оставить только #Удаление и #КонецУдаления, тогда процедура выполняется
Синтаксический контроль ошибок не выдает
В чем может быть причина?
Сделайте проверку возможности применения всех расширений
Тогда будет понятно насколько корректно написана #Вставка
(1) А что это даст? Расширение ведь работает, в предприятии пишет «Расширение подключено»
(3) это иногда обманчиво, оно подключено, но конкретное место такое может не работать
(3) Дважды сталкивался, когда Измерение и контроль не выдавало ошибки, но НЕ работало. пока принудительно не поставишь совместимость 8.3.15