Разработка и Конфигурация · 11 мин
Как добавить все документы в расширение 1С
Как массово добавить документы в расширение конфигурации 1С: заимствование объектов, настройка ролей, проверка совместимости и типичные ошибки разработчика.
Расширение конфигурации в 1С — это механизм, который позволяет дорабатывать типовую программу без снятия её с поддержки. Одна из частых задач — добавить в расширение документы: либо заимствовать существующие объекты из основной конфигурации, чтобы изменить их поведение, либо создать собственные документы, которых в типовом решении нет.
Когда говорят «добавить все документы в расширение», обычно имеют в виду одну из трёх ситуаций: заимствование всех документов конфигурации для массовой доработки, подключение документов к ролям и подсистемам расширения, либо перенос документов между расширениями. Каждый сценарий решается по-разному, и важно сразу понять, зачем вам нужны эти объекты в расширении.
Ключевое ограничение, о котором нужно помнить с самого начала: заимствование объекта в расширение не копирует его, а создаёт «надстройку». Расширение хранит только изменения относительно основной конфигурации. Если вы заимствовали документ, но ничего в нём не изменили, это не даст никакого эффекта, кроме лишней связи, которую платформа будет проверять при каждом обновлении.
Что значит «добавить документ в расширение»
В терминах платформы 1С добавление существующего объекта в расширение называется заимствованием. Заимствованный документ появляется в дереве конфигурации расширения со специальной пиктограммой, и дальше вы можете менять его свойства: добавлять реквизиты, дорабатывать формы, переопределять обработчики модулей.
Данные при этом остаются в основной конфигурации. Расширение не создаёт копию таблиц документа — оно лишь расширяет их структуру, если вы добавили новые реквизиты. При отключении расширения добавленные реквизиты перестают быть доступны, а хранившиеся в них значения могут быть потеряны, если платформа выполнит реструктуризацию с удалением данных.
Отдельный случай — создание собственного документа прямо в расширении. Такой объект существует только в расширении и исчезает вместе с ним. Это подходит для внутренних служебных документов, но требует внимательного отношения к данным: при удалении расширения документы и их движения будут утеряны.
Подготовка: что проверить перед добавлением документов
Прежде чем заимствовать объекты, убедитесь, что расширение создано корректно. Откройте конфигуратор, перейдите в меню «Конфигурация → Расширения конфигурации» и создайте новое расширение. Задайте префикс имён — он будет добавляться к новым объектам и поможет отличать их от типовых.
Проверьте назначение расширения. Если вы планируете добавлять данные (реквизиты, табличные части), назначение должно быть «Дополнение» или «Исправление» в зависимости от задачи. Расширение с назначением «Адаптация» предназначено для других сценариев и имеет ограничения.
Также убедитесь, что версия платформы поддерживает нужные возможности. Возможности расширений наращивались от версии к версии: изменение модулей объектов, добавление табличных частей, расширение ролей появлялись в разных релизах платформы 8.3. Если база работает на старой платформе, часть доработок может быть недоступна.
Как заимствовать документы в расширение
Базовый способ добавить один документ: в дереве основной конфигурации найдите нужный документ, щёлкните по нему правой кнопкой мыши и выберите «Добавить в расширение». Объект появится в дереве расширения, после чего его можно дорабатывать.
Для добавления сразу нескольких документов используйте множественное выделение: зажмите Ctrl и кликайте по нужным объектам либо выделите диапазон с Shift. Затем вызовите контекстное меню и выполните «Добавить в расширение» — все выделенные документы будут заимствованы за одну операцию.
- 1Откройте конфигуратор и активное расширение (окно расширения должно быть активным)
- 2В дереве основной конфигурации раскройте ветку «Документы»
- 3Выделите нужные документы с Ctrl или Shift
- 4Щёлкните правой кнопкой и выберите «Добавить в расширение»
- 5Проверьте, что объекты появились в дереве расширения
- 6Сохраните расширение (F7 или «Сохранить»)
Штатной команды «добавить все документы разом» в конфигураторе нет. Если объектов десятки, выделяйте их группами через Shift — это самый быстрый легальный способ. Альтернатива для совсем больших объёмов — программная выгрузка и загрузка расширения через файлы XML или использование EDT, где доступны более гибкие инструменты работы с проектом.
После заимствования сразу проверьте, что добавилось именно то, что нужно. Иногда вместе с документом требуется заимствовать связанные объекты: подсистемы, в которых он отображается, роли, дающие к нему доступ, общие формы и макеты, если вы планируете их менять.
Добавление документов в роли и подсистемы расширения
Заимствование документа само по себе не даёт пользователям доступа к доработанным возможностям. Если вы создали в расширении собственный документ, нужно явно включить его в подсистемы и добавить права в роли — иначе пользователи просто не увидят объект в интерфейсе.
Для включения в подсистему заимствуйте нужную подсистему в расширение и в её составе отметьте свой документ. Для прав создайте в расширении новую роль (или заимствуйте типовую) и установите права на объект: чтение, добавление, изменение, проведение. Затем назначьте роль пользователям в режиме предприятия или через профили групп доступа, если используется БСП.
Типовая ошибка на этом этапе — забыть про права на связанные объекты. Если документ использует новый справочник или регистр из расширения, права нужны и на них, иначе при проведении пользователь получит ошибку нарушения прав доступа.
Создание собственных документов в расширении
Если задача — не изменить типовые документы, а добавить новые, создайте документ непосредственно в дереве расширения: правый клик по ветке «Документы» → «Добавить». Задайте имя с префиксом расширения, настройте нумерацию, движения по регистрам и формы.
У собственных документов расширения есть ограничения. Например, в некоторых типовых конфигурациях документы из расширения не попадают автоматически в стандартные механизмы обмена, нумерации и журналы — это нужно учитывать при проектировании. Проверяйте, как конкретная конфигурация формирует состав журналов и планов обмена.
Проверка результата и обновление базы
После добавления документов сохраните расширение и обновите конфигурацию базы данных. Если вы добавляли реквизиты или собственные объекты, платформа выполнит реструктуризацию — просмотрите список изменений в окне реструктуризации и убедитесь, что там нет неожиданных удалений данных.
Затем запустите базу в режиме предприятия и пройдите контрольный сценарий: откройте доработанный документ, создайте новый, проведите его, проверьте отражение в журнале и отчётах. Для собственных документов расширения дополнительно проверьте доступ под пользователем с ограниченными правами, а не только под администратором.
Как проверить результат
Объект заимствован и отображается с пиктограммой расширения
Объекта нет — заимствование не выполнено или расширение не было активным
Документ есть в нужном разделе под обычным пользователем
Виден только администратору — не настроены роли или подсистема
Документ проводится без ошибок, движения формируются
Ошибка прав доступа или отсутствия объекта метаданных
Реструктуризация проходит без удаления нужных данных
В списке изменений есть удаление таблиц или реквизитов с данными
Полезная практика — вести список заимствованных объектов в описании расширения или в отдельном файле. При обновлении типовой конфигурации вы быстро проверите, не изменились ли эти объекты у поставщика, и поймёте, какие доработки нужно перепроверить.
Ограничения и альтернативные подходы
Расширения не всесильны. Нельзя, например, удалять типовые реквизиты, менять состав планов обмена произвольным образом или дорабатывать некоторые служебные механизмы. Если задача упирается в ограничения расширений, рассмотрите альтернативы: внешние обработки и отчёты, дополнительные реквизиты и сведения из БСП, либо доработку основной конфигурации с последующим аккуратным сопровождением обновлений.
Как выбрать действие
Если доработка большая и затрагивает десятки объектов, подумайте о работе через 1C:EDT с хранением проекта в системе контроля версий. Это упрощает командную разработку и перенос расширения между базами: расширение можно выгрузить в файлы и загрузить в другую информационную базу через конфигуратор или командную строку.
Что важно запомнить
Документы добавляются в расширение заимствованием через контекстное меню с множественным выделением. Заимствуйте только реально дорабатываемые объекты, не забывайте про подсистемы и роли, а любую структурную доработку проверяйте сначала на копии базы.
Частые вопросы
Можно ли добавить в расширение сразу все документы конфигурации одной кнопкой?
Штатной команды «заимствовать всё» нет. Выделяйте документы группами с помощью Shift и Ctrl и добавляйте через контекстное меню. Однако массовое заимствование без реальной необходимости — плохая практика: каждое обновление типовой конфигурации потребует проверки всех заимствованных объектов.
Почему заимствованный документ не виден пользователям?
Заимствование не меняет видимость типового документа — если его не видно, проблема обычно в правах или в функциональных опциях основной конфигурации. Для собственного документа расширения проверьте, что он включён в подсистему и что у роли пользователя есть права на чтение и просмотр.
Что произойдёт с данными, если отключить или удалить расширение?
Типовые документы останутся нетронутыми, но значения реквизитов, добавленных расширением, могут быть удалены при реструктуризации. Собственные документы расширения и их движения будут потеряны вместе с расширением. Перед отключением сделайте резервную копию базы.
Как изменить модуль документа в расширении, чтобы не было конфликтов при обновлении?
Заимствуйте модуль и переопределяйте процедуры через аннотации &Вместо, &После, &Перед или &ИзменениеИКонтроль, а не переписывайте код целиком. Тогда при обновлении типовой конфигурации вы увидите только точечные изменения, а не полный конфликт версий модуля.
Переносится ли расширение с документами в другую базу?
Да. Расширение выгружается в файл через конфигуратор и загружается в другую базу с той же конфигурацией. Условие — состав объектов основной конфигурации должен совпадать, иначе заимствованные документы не смогут сопоставиться и расширение не применится.