Расширения конфигурации: добавляем функционал без нервов

20.01.25

Разработка - Механизмы платформы 1С

Механизм расширений в 1С:Предприятие — это инновационный инструмент, который позволяет дорабатывать функционал конфигурации без изменения её исходного кода. В статье подробно разобраны ключевые аспекты работы с расширениями, включая их создание, подключение, настройку и тестирование. Рассматриваются реальные примеры использования расширений для исправления ошибок в типовых конфигурациях, добавления новых полей и отчётов, а также настройки интеграции с другими системами. В статье уделено внимание управлению конфликтами между расширениями и совместимостью с обновлениями основной конфигурации.

Представьте, что у вас есть дом. Вы хотите поставить новую кухню или, скажем, добавить сауну, но ломать стены и менять проект здания не хочется. Вот так же работают расширения в 1С: они позволяют добавлять или изменять функционал программы, не трогая основную конфигурацию. Удобно? Ещё бы!

Итак, начнём с главного: что такое расширение?

Расширение — это набор дополнительных объектов и изменений, которые подключаются к основной конфигурации. При этом:

  • Основная конфигурация остаётся нетронутой.
  • Обновления типовой базы проходят без проблем.

Теперь давайте разберёмся, как создать и управлять этим чудом.


Шаг 1. Создаём расширение в Конфигураторе

  1. Идём в меню “Конфигурация — Расширения конфигурации”. Перед вами открывается окно, в котором можно управлять расширениями.
  2. Нажимаем кнопку “Создать”. Здесь нужно придумать имя расширения и (внимание!) задать префикс имен. Этот префикс будет добавляться ко всем вашим объектам, чтобы избежать конфликтов. Например, если префикс “МояКрутаяФича”, то новый отчёт автоматически получит имя “МояКрутаяФича_ОтчётОПродажах”. Полезно, когда в конфигурации уже есть тысячи объектов!
  3. Настраиваем параметры. Система автоматически копирует свойства из основной конфигурации (режим запуска, язык и т.д.), и они становятся контролируемыми. Если вдруг основная конфигурация поменяет что-то важное, расширение просто не подключится, чтобы избежать поломок. Продуманно, не правда ли?

Шаг 2. Сохраняем расширение в файл

Когда расширение готово, его нужно сохранить в файл с расширением .cfe. Это, так сказать, ваш “волшебный чемоданчик”, который вы можете подключить к любой базе.

  1. Выбираем расширение из списка и кликаем “Сохранить конфигурацию в файл”.
  2. Получаем аккуратный файл, который можно отправить коллеге, клиенту или оставить себе на память.

Шаг 3. Подключаем расширение к базе

Теперь, когда у нас есть готовый файл, пора его “вживить” в базу. Это можно сделать двумя способами:

Через Конфигуратор

  1. Открываем меню “Конфигурация — Расширения конфигурации”.
  2. Нажимаем “Добавить” и выбираем файл .cfe.
  3. Расширение появляется в списке, и его можно активировать.

Через 1С:Предприятие

  1. Заходим в режим пользователя.
  2. Открываем меню “Все функции — Управление расширениями конфигурации”.
  3. Нажимаем “Добавить”, выбираем файл и подтверждаем подключение.

Важно: для подключения расширения в режиме “Предприятие” нужно иметь права администратора. Без этого “кухню” в дом не установить!


А что, если что-то пошло не так?

Если расширение не подключается, скорее всего, проблема в контролируемых свойствах. Например, в основной конфигурации поменяли длину строки в справочнике, а в расширении об этом ничего не знают. Решение простое: обновите расширение или настройте свойства.

 

Создание и подключение расширений — процесс, который сначала может показаться сложным, но на деле это просто “кубики Лего”. Главное — следовать шагам и не забывать про тестирование. Ведь как говорил великий программист: “Баги находят те, кто в них верит”.

Теперь, когда вы знаете, как создать и подключить расширение, давайте двигаться дальше. Далее мы разберёмся, как работать с объектами внутри расширений и избежать конфликтов!


Что можно заимствовать или добавить?

Расширения — это не просто наборы "дополнительных примочек" для 1С. Они могут работать с огромным количеством объектов конфигурации. Вот список того, что можно заимствовать:

  • Управляемые формы — добавляем или редактируем существующие формы.
  • Роли — обновляем права доступа.
  • Справочники, документы, регистры — меняем структуру данных или добавляем новые элементы.
  • Отчёты и обработки — делаем удобные инструменты для пользователей.
  • Web- и HTTP-сервисы — расширяем интеграцию с другими системами.

Кроме того, можно создавать собственные объекты, такие как макеты, подсистемы, команды и многое другое.

 

Работа с заимствованными объектами

Шаг 1: Как заимствовать объект

  1. Найдите нужный объект в конфигурации.
  2. В контекстном меню выберите “Добавить в расширение”.
  3. Готово! Теперь объект “скопирован” в ваше расширение.

Важно: Когда вы заимствуете объект, 1С автоматически добавляет все его родительские элементы. Например, если вы заимствовали форму элемента справочника, то сама структура справочника будет включена в расширение.

Шаг 2: Настройка свойств

После заимствования у объекта есть два типа свойств:

  • Контролируемые свойства — проверяются на совпадение с основной конфигурацией. Если есть расхождения, расширение не подключится.
  • Модифицируемые свойства — значения, которые можно изменять в расширении.

Пример: у справочника "Товары" можно сделать модифицируемым свойство "Основная форма" и указать для него новую форму.

 

Создание собственных объектов

Если нужно добавить что-то принципиально новое, расширения позволяют создавать собственные объекты. Вот, что можно создать:

  • Отчёты и обработки — идеально для аналитики и автоматизации.
  • Подсистемы — для организации новой логики.
  • Общие макеты и команды — упрощаем жизнь пользователям.

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

 

Обновление объектов

Если основная конфигурация обновилась, вам может понадобиться обновить заимствованные объекты в расширении. Для этого:

  1. Откройте объект в редакторе расширения.
  2. Нажмите "Обновить из конфигурации".

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

 

Что делать, если что-то не работает?

Часто проблемы возникают из-за:

  • Конфликтов между несколькими расширениями.
  • Ошибок в настройке контролируемых свойств.
  • Обновлений основной конфигурации.

Чтобы избежать этого, тестируйте расширение в отдельной базе и внимательно проверяйте логи.

 

Теперь вы знаете, как заимствовать, создавать и настраивать объекты в расширении. Теперь мы поговорим о том, как избежать конфликтов и обеспечить совместимость между разными расширениями. Готовьте чай, будет интересно!


Почему возникают конфликты?

Расширения — это как соседи в многоквартирном доме: иногда они дружат, иногда нет. Если несколько расширений пытаются изменить один и тот же объект, система может запутаться и выдать ошибку. Проблемы возникают, если:

  • Дублируются изменения. Например, два расширения хотят изменить одну и ту же форму.
  • Нарушается порядок вызовов. Одно расширение отменяет действия другого.
  • Разные версии объекта. Основная конфигурация обновилась, а расширение нет.

Чтобы избежать таких ситуаций, нужно учитывать несколько важных принципов.

 

Как система объединяет изменения?

Когда подключено несколько расширений, система объединяет их с основной конфигурацией поэтапно:

  1. Сначала берётся основная конфигурация.
  2. На неё накладываются изменения из первого расширения.
  3. Затем изменения из второго, третьего и так далее.
  4. Итоговый объект (называемый результирующим) отображается пользователю.

Важно: Порядок подключения расширений влияет на то, какое из них “победит” в конфликте. Последнее подключённое расширение имеет приоритет.

 

Управление обработчиками событий

Обработчики событий — это участки кода, которые выполняются при определённых действиях пользователя. В расширениях они могут быть переопределены, что приводит к интересным ситуациям:

  • Если несколько расширений переопределяют один и тот же обработчик, порядок вызовов будет обратным порядку подключения.
  • Если обработчик в одном из расширений установит параметр "Отказ", последующие обработчики не выполнятся.

Пример:

  1. Расширение 1 выводит сообщение: "Добро пожаловать!".
  2. Расширение 2 отменяет выполнение всех обработчиков.
  3. Пользователь видит только действия из второго расширения.

 

Решение конфликтов

Чтобы минимизировать проблемы:

  • Планируйте структуру расширений заранее. Избегайте дублирования изменений.
  • Тестируйте каждое расширение отдельно. Это поможет понять, как оно взаимодействует с основной конфигурацией.
  • Используйте префиксы для имён. Это снижает вероятность пересечения объектов.

 

Отладка и логи

Если расширение работает некорректно, загляните в журнал регистрации. В нём можно найти информацию о:

  • Ошибках подключения расширений.
  • Конфликтах в обработчиках событий.
  • Проблемах с контролируемыми свойствами.
 

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

 

Практическое применение расширений

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


Исправление ошибок базовой конфигурации

Иногда даже в типовых конфигурациях можно встретить баги или недочёты. Например:

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

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

  1. Найдите проблемный участок. Например, отчёт с неправильной формулой.
  2. Добавьте в расширение заимствованный объект. Перенесите отчёт или форму в расширение.
  3. Исправьте баг. Внесите изменения и протестируйте их.
  4. Подключите расширение. Оно моментально начнёт работать без необходимости снимать конфигурацию с поддержки.

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


Доработка функционала под клиента

Расширения — это идеальный инструмент для реализации требований заказчика. Например:

  • Добавление новых полей в справочники и документы.
  • Создание специализированных отчётов.
  • Настройка уникальных прав доступа.
  • Разработка дополнительных обработок и макетов.

Пример 1: Добавление нового поля

Предположим, клиенту нужно добавить в справочник “Товары” новое поле “Промо-код”.

  1. Создайте расширение.
  2. Заимствуйте справочник “Товары”.
  3. Добавьте новое поле в структуру данных.
  4. Обновите форму справочника, чтобы отображать поле “Промо-код”.
  5. Подключите расширение и убедитесь, что всё работает.

Пример 2: Разработка нового отчёта

Клиенту нужен отчёт, который показывает продажи по регионам. Как это сделать:

  1. Создайте расширение и добавьте новый отчёт.
  2. Используйте СКД (схему компоновки данных) для настройки выборки и отображения данных.
  3. Подключите отчёт к подсистеме “Продажи”.
  4. Поделитесь результатом с клиентом.

Советы по отладке и тестированию

Разработка расширений — это половина дела. Не менее важно правильно протестировать их перед запуском в рабочую базу. Вот несколько рекомендаций:

  1. Используйте тестовую базу. Никогда не тестируйте новые расширения на рабочей базе.
  2. Включайте отладку. Используйте ключ запуска “РежимОтладки”, чтобы видеть, как работают ваши изменения.
  3. Проверяйте совместимость. Если в базе уже есть другие расширения, убедитесь, что они не конфликтуют.
  4. Просматривайте журнал регистрации. Логи помогут быстро найти ошибки в подключении и работе расширения.

Расширения для интеграций

В современном мире ни одна система не работает в одиночку. Расширения позволяют настроить интеграцию 1С с другими программами через:

  • Web-сервисы. Разработка собственного API для обмена данными.
  • HTTP-сервисы. Получение данных с внешних серверов.
  • XDTO-пакеты. Работа со сложными структурами данных.

Пример: Интеграция с CRM

Клиент хочет передавать данные о заказах из 1С в CRM-систему. Вы можете:

  1. Создать HTTP-сервис в расширении.
  2. Настроить отправку данных при проведении документа “Заказ клиента”.
  3. Реализовать обработку ответов от CRM.

Заключение

Расширения — это мощный инструмент, который позволяет решать множество задач: от исправления багов до создания уникального функционала. Главное — использовать их правильно, тщательно тестировать и не забывать про совместимость.

Если вы ещё не работали с расширениями, самое время попробовать! Это откроет для вас новые горизонты разработки в 1С.

расширения

См. также

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    7333    dsdred    57    

97

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    11094    bayselonarrend    21    

162

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    7701    dsdred    18    

82

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    26184    YA_418728146    33    

73

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    25929    SeiOkami    48    

136
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ardn 686 20.01.25 16:22 Сейчас в теме
В 2025 году вышла статья о том, что расширения - инновационный инструмент.
RomanUzmov; tamantsev; Boss_V; Sam13; ivnik; +5 Ответить
2. bashhhh 26 21.01.25 10:40 Сейчас в теме
Мне одному показалось, что статья написана с использованием ии?
RomanUzmov; Diego_Iv; SemandCheb; tamantsev; Boss_V; ivnik; ardn; +7 Ответить
5. user913329 27.01.25 06:58 Сейчас в теме
(2) Если присмотреться, то и статьи про регистры тоже попахивают ИИ.
3. Sam13 358 22.01.25 21:10 Сейчас в теме
4. stavrosoleg 10 23.01.25 08:31 Сейчас в теме
6. user1723929 28.01.25 16:57 Сейчас в теме
Статья сделана ИИ. Пустой бред не о чем. инфостарт можно закрывать на клюшку
Оставьте свое сообщение