Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Расширения в 1С
Расширение это отдельная конфигурация, которая дополняет или модифицирует основную конфигурацию, не меняя её напрямую. Это механизм для неинвазивного расширения функционала.
Определение
Расширение это:
- Отдельный файл конфигурации (.cfe)
- Дополнительный слой функционала поверх основной конфигурации
- Может добавлять новые объекты и модифицировать существующие
- Не нарушает целостность базовой конфигурации
- Легко включается и отключается
Типы расширений
1. Простое расширение (добавление новых объектов)
Основная конфигурация:
├─ Справочник Организации
├─ Справочник Контрагенты
└─ Документ Счета
Расширение добавляет:
├─ Справочник ОКПО (новый)
└─ Документ АктПриемки (новый)
2. Модифицирующее расширение (изменение существующих)
Основная конфигурация:
├─ Справочник Товары
│ └─ Реквизиты: Наименование, Цена
Расширение добавляет в Справочник Товары:
└─ Новый реквизит: КодПоставщика
└─ Новый реквизит: ТипУпаковки
Создание расширения
Конфигуратор → Конфигурация → Создать расширение
Параметры:
- Имя: "МояБизнесЛогика"
- Название: "Расширение пользовательской бизнес-логики"
- Описание: "Добавляет логику учёта по проектам"
Практический пример 1: Добавление реквизитов
// В расширении модифицируем Справочник Контрагенты
// (в основной конфигурации он остаётся неизменным)
// Конфигуратор → Справочники → Контрагенты → Реквизиты
// Добавляем новый реквизит:
// Имя: КодДостава
// Тип: Число(5,0)
// Описание: Код службы доставки
// В модуле объекта расширения:
Процедура ПриУстановкеНовогоКодаДостав()
// Логика валидации нового поля
Если КодДостава < 10000 Или КодДостава > 99999 Тогда
ВызватьИсключение("Неверный формат кода");
КонецЕсли;
КонецПроцедуры
Практический пример 2: Добавление команд в форму
// В расширении добавляем команды в форму Справочника Товары
// Новая команда: "Синхронизировать с каталогом"
Процедура СинхронизироватьСКаталогомНажатие()
// Получить данные из внешнего источника
Данные = ПолучитьДанныеИзКаталога(Объект.ВнешнийID);
// Обновить реквизиты
Объект.Наименование = Данные.Наименование;
Объект.Описание = Данные.Описание;
Объект.Цена = Данные.Цена;
// Сохранить
Объект.Записать();
Сообщить("Синхронизация завершена");
КонецПроцедуры
Практический пример 3: Расширение функционала документа
// В расширении добавляем новые табличные части
// к документу Счет
// В конфигураторе расширения:
// Документ Счет → Таблицы → добавляем "ФактическиеДаты"
// Колонки:
// - Товар (ссылка на Товары)
// - ПланируемаяДата (дата)
// - ФактическаяДата (дата)
Процедура ПриПроведенииРасширение(ПроведениеОтмена)
// Валидация фактических дат
Для каждого Строка Из ФактическиеДаты Цикл
Если Строка.ФактическаяДата > ТекущаяДата() Тогда
ВызватьИсключение("Фактическая дата не может быть в будущем");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Преимущества расширений
1. Неинвазивность
- Основная конфигурация остаётся чистой
- Легко откатить расширение
- Не нарушается целостность оригинала
2. Гибкость
- Можно включать/отключать расширения
- Несколько расширений могут работать вместе
- Легко развивать функционал
3. Управляемость
- Четкая граница между базой и расширениями
- Проще обновлять конфигурацию поставщика
- Конфликты обновлений решаются проще
4. Переносимость
- Расширение можно применить к другой ИБ
- Можно делиться расширениями между проектами
Ограничения расширений
1. Нельзя удалить объекты из основной конфигурации
- Можно только скрыть
- Нельзя удалить реквизит
- Нельзя удалить таблицу
2. Нельзя переименовать объекты основной конфигурации
- Имена остаются от оригинала
- Можно только изменить представление
3. Производительность
- Расширение может замедлить работу
- Множественные слои логики сложнее отлаживать
4. Совместимость
- Некоторые объекты нельзя расширять
- Есть ограничения на тип изменений
Как работают расширения
1. Включение расширения:
Администрирование → Расширения конфигурации
→ Выбрать файл (.cfe)
→ Применить расширение
2. Во время работы:
- Объекты из основной конфигурации загружаются первыми
- Затем применяются изменения из расширения
- Обработчики из расширения вызываются дополнительно
3. Отключение расширения:
Администрирование → Расширения конфигурации
→ Выбрать → Удалить расширение
Практический пример 4: Несколько расширений вместе
Основная конфигурация:
├─ Справочник Организации
├─ Справочник Контрагенты
└─ Документ Счета
Расширение 1 (Учёт по проектам):
├─ Добавляет поле Проект в Счета
└─ Добавляет Справочник Проектов
Расширение 2 (Интеграция с 1С:ЭДО):
├─ Добавляет команду "Отправить в ЭДО"
└─ Добавляет поле ТипДокумента
Расширение 3 (Мобильное приложение):
├─ Добавляет синхронизацию с облаком
└─ Добавляет поле Синхронизирован
Все три расширения работают независимо!
Обновление конфигурации при наличии расширений
// При обновлении поставщика конфигурации:
1. Сделать резервную копию
Администрирование → Резервные копии
2. Отключить все расширения
Администрирование → Расширения конфигурации
→ Удалить все
3. Обновить основную конфигурацию
Конфигурация → Загрузить из файла
→ Выбрать новую версию
4. Применить расширения обратно
Администрирование → Расширения конфигурации
→ Добавить расширение
→ Выбрать .cfe файл
5. Проверить совместимость
Проверить синтаксис (F7)
Протестировать функционал
Типичные ошибки при работе с расширениями
1. Забыли отключить расширение перед обновлением
→ Конфликты с новыми версиями
2. Расширение добавляет логику в основной модуль
→ Сложно отлаживать
→ Трудно поддерживать
3. Множество расширений создают беспорядок
→ Трудно разобраться, откуда функция
→ Производительность падает
4. Расширение повторяет функционал основной конфигурации
→ Путаница в коде
→ Баги
5. Документация расширения отсутствует
→ Другим разработчикам сложно понять
Best Practices при разработке расширений
1. Давайте расширению осмысленное имя
"БизнесЛогикаУчётаПроектов" вместо "РасширениеV1"
2. Документируйте что делает расширение
- Какие объекты добавляет
- Какие реквизиты добавляет
- Какие зависимости от других расширений
3. Минимизируйте размер расширения
- Одно расширение = одна функция
- Не смешивайте несвязанный функционал
4. Тестируйте на разных версиях ИБ
- На разных версиях конфигурации
- С разными наборами расширений
5. Версионируйте расширения
- Сохраняйте старые версии
- Указывайте номер версии в имени файла
6. Создавайте инструкции по применению
- Шаги для установки
- Резервная копия перед применением
- Как откатить в случае проблем
Экспорт и импорт расширений
// Сохранить расширение:
Администрирование → Расширения конфигурации
→ Выбрать расширение
→ Экспортировать
→ Сохранить .cfe файл
// Применить расширение к другой ИБ:
Администрирование → Расширения конфигурации
→ Импортировать
→ Выбрать .cfe файл
Итого: расширение это отдельная конфигурация, которая дополняет основную конфигурацию, позволяя добавлять функционал и модифицировать объекты без изменения оригинальной конфигурации.