Разработка и Конфигурация · 10 мин
Как добавить документ в расширение 1С
Как добавить документ в расширение конфигурации 1С: создание нового объекта, заимствование типового документа, настройка прав и проверка результата.
Расширение конфигурации — основной способ доработки типовых решений 1С без снятия конфигурации с поддержки. Документ в расширение можно добавить двумя способами: заимствовать существующий объект из основной конфигурации, чтобы изменить его поведение, или создать полностью новый документ, которого нет в типовой поставке. Выбор зависит от задачи: если нужно поправить печатную форму или добавить реквизит к «Реализации товаров», достаточно заимствования; если требуется собственный учётный документ — создаётся новый объект.
Работа ведётся в конфигураторе 1С:Предприятие 8.3 на платформе, поддерживающей расширения (механизм доступен начиная с платформы 8.3.6, полноценная работа с собственными объектами — с более поздних версий). Перед началом убедитесь, что у вас есть права администратора в конфигураторе и что расширение подключено к нужной информационной базе.
Когда заимствовать документ, а когда создавать новый
Заимствование применяется, когда объект уже существует в типовой конфигурации, а требуется изменить его частично: добавить реквизит, переопределить обработчик события, расширить форму или командный интерфейс. При этом основная логика документа остаётся в типовом коде, а расширение лишь дополняет или переопределяет отдельные элементы.
Новый документ создают, когда в типовой конфигурации подходящего объекта нет: например, внутренний акт осмотра оборудования, заявка на обслуживание или специфический учётный регистр. Такой объект полностью принадлежит расширению и не зависит от изменений типовой поставки, но и типовые механизмы (подписки на события, критерии отбора, планы обмена) для него придётся настраивать отдельно.
Сравнение вариантов
Подходит для точечных доработок: новый реквизит, своя печать, переопределение проведения. Ограничение: нельзя удалять типовые реквизиты и менять их тип.
Подходит для объектов, которых нет в типовой конфигурации. Ограничение: нужно самостоятельно настраивать права, подсистемы, нумерацию и интеграцию с остальным учётом.
Подготовка: создание и подключение расширения
Откройте конфигуратор и в меню «Конфигурация» выберите «Расширения конфигурации». В открывшемся списке нажмите «Создать», укажите имя расширения латиницей без пробелов (например, MyDocsExtension), синоним и префикс. Префикс важен: он автоматически добавляется к именам новых объектов и предотвращает конфликты с типовыми объектами и другими расширениями.
Проверьте свойства расширения: назначение должно соответствовать задаче («Дополнение» для большинства случаев), а режим безопасности и защита от опасных действий — требованиям вашей базы. В файловой базе расширение подключается сразу; в клиент-серверном варианте может потребоваться перезапуск сеансов пользователей, чтобы объект стал доступен.
Как заимствовать типовой документ
Откройте расширение на редактирование двойным щелчком — в дереве конфигурации появится ветка расширения. Переключитесь на основную конфигурацию, найдите нужный документ в ветке «Документы», щёлкните по нему правой кнопкой мыши и выберите «Добавить в расширение». Объект появится в дереве расширения с пиктограммой заимствования.
После заимствования доступны типовые сценарии доработки. Чтобы добавить реквизит, откройте заимствованный документ, перейдите на вкладку «Данные» и создайте новый реквизит — он будет храниться в расширении. Чтобы расширить модуль объекта или форму, вызовите контекстное меню на модуле и выберите «Добавить в расширение», затем используйте аннотации &После("ИмяПроцедуры"), &Перед("ИмяПроцедуры") или &Вместо("ИмяПроцедуры") для переопределения обработчиков.
- 1Откройте расширение конфигурации на редактирование
- 2В основной конфигурации найдите нужный документ
- 3Правой кнопкой — «Добавить в расширение»
- 4Добавьте реквизиты, заимствуйте форму или модуль
- 5Переопределите обработчики через аннотации &После, &Перед, &Вместо
- 6Обновите конфигурацию базы данных (F7)
- 7Проверьте документ в режиме Предприятия
Как создать новый документ в расширении
В дереве расширения щёлкните правой кнопкой по ветке «Документы» и выберите «Добавить». Платформа создаст объект с именем, начинающимся с префикса расширения, например Расш1_АктОсмотра. Задайте синоним — именно его увидят пользователи в интерфейсе.
На вкладке «Данные» добавьте реквизиты шапки и табличные части. На вкладке «Нумерация» настройте периодичность номера, на вкладке «Движения» укажите регистры, по которым документ будет проводиться — учтите, что регистры также должны быть либо заимствованы, либо созданы в расширении. На вкладке «Права» проверьте доступность объекта для ролей.
Чтобы документ появился в интерфейсе пользователя, заимствуйте нужную подсистему из типовой конфигурации и добавьте в её состав новый документ, либо создайте собственную подсистему. Без этого шага объект будет существовать в базе, но не отобразится ни в одном разделе меню.
// Пример: переопределение обработки проведения заимствованного документа
&После("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
// Дополнительные проверки или движения
Если Не ЗначениеЗаполнено(Расш1_Согласующий) Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Настройка прав и подсистем
Частая причина «невидимого» документа — отсутствие прав. Заимствованный документ наследует роли типовой конфигурации, но новые реквизиты могут требовать отдельной настройки. Для нового документа права нужно выдать явно: заимствуйте нужную роль в расширение и установите права на чтение, добавление и изменение, либо создайте собственную роль.
Учтите, что в типовых конфигурациях на базе БСП (Бухгалтерия, Управление торговлей, ERP) доступ регулируется профилями групп доступа. После обновления расширения проверьте, что новый документ доступен пользователям с соответствующими профилями, а не только администратору.
Проверка результата и обновление базы
После завершения доработок нажмите F7 («Обновить конфигурацию базы данных»). Платформа выполнит реструктуризацию: для нового документа будут созданы таблицы в базе данных, для заимствованного — добавлены поля новых реквизитов. В многопользовательском режиме потребуется завершить активные сеансы.
Запустите режим Предприятия и проверьте: документ отображается в нужной подсистеме, открывается форма, создаётся и проводится новый объект, переопределённые обработчики срабатывают. Проверку выполняйте под учётной записью с типичными правами пользователя, а не только под администратором.
Как проверить результат
Виден в нужной подсистеме и открывается
Объект есть в конфигураторе, но не виден пользователю — проверьте подсистемы и права
Документ проводится, движения формируются
Ошибки проведения или пустые движения — проверьте обработчики и регистры
Обычный пользователь создаёт и редактирует документ
Доступно только администратору — не настроены роли или профили доступа
Типичные ошибки и ограничения расширений
Механизм расширений имеет принципиальные ограничения. Нельзя удалять или изменять тип заимствованных реквизитов, нельзя изменять длину номера и периодичность типового документа. Переопределение через &Вместо полностью заменяет типовой обработчик — после обновления типовой конфигурации новые исправления в этой процедуре перестанут применяться, что требует ручной сверки.
Ещё одна группа проблем связана с обновлением типовой конфигурации. Если в новом релизе изменён заимствованный объект (например, переименована процедура, на которую ссылается аннотация), расширение перестанет работать или не пройдёт проверку применимости. После каждого обновления типовой конфигурации открывайте расширение и выполняйте проверку — конфигуратор покажет несовпадения.
Часто задаваемые вопросы
Можно ли в расширении изменить типовой реквизит документа?
Нет, изменить тип, длину или состав типового реквизита нельзя — это ограничение механизма расширений. Доступно только добавление собственных реквизитов. Если нужно хранить значение другого типа, создайте новый реквизит и заполняйте его через переопределённые обработчики.
Почему новый документ из расширения не виден в меню?
Объект появляется в интерфейсе только после включения в состав подсистемы. Заимствуйте нужную подсистему из типовой конфигурации и добавьте документ в её состав, либо создайте собственную подсистему. Дополнительно проверьте права доступа и функциональные опции.
Сохранятся ли данные при отключении расширения?
При отключении расширения с удалением данных все таблицы, созданные расширением (новые документы и их реквизиты), будут удалены вместе с данными. Вариант «отключить без удаления» оставляет данные в базе, но они станут недоступны. Перед отключением сделайте резервную копию.
Что делать, если после обновления типовой конфигурации расширение выдаёт ошибку?
Откройте расширение в конфигураторе и выполните проверку конфигурации. Типичные причины: переименованные процедуры, на которые ссылаются аннотации, изменённые формы или удалённые объекты. Исправьте ссылки на актуальные имена и повторно обновите конфигурацию базы данных.
Можно ли проводить новый документ по типовым регистрам?
Да. Заимствуйте нужный регистр в расширение, укажите его на вкладке «Движения» нового документа и напишите формирование движений в обработке проведения. Учтите, что типовые отчёты и механизмы, ожидающие конкретные документы-регистраторы, могут не учитывать ваш объект без дополнительной доработки.
Работают ли расширения с документами в файловой и клиент-серверной базе одинаково?
Механизм одинаков, различия в процедуре применения: в клиент-серверном варианте обновление конфигурации базы данных чаще требует завершения сеансов, а подключение расширения может потребовать перезапуска сеансов пользователей. Порядок разработки и проверки не отличается.
Что важно запомнить
Документ добавляется в расширение заимствованием типового объекта или созданием нового. Для видимости нужны подсистема и права, для работы — корректные обработчики и обновление конфигурации базы данных. Всегда тестируйте на копии и проверяйте расширение после обновления типовой конфигурации.