К статье
Практический материал

Разработка и Конфигурация · 14 мин

Как добавить все реквизиты в расширение 1С

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

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

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

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

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

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

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

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

Подготовка: создайте расширение и заимствуйте объект

Прежде чем добавлять реквизиты, нужен сам объект в расширении. Откройте конфигуратор, в меню выберите «Конфигурация» → «Расширения конфигурации» и создайте новое расширение. Задайте имя, префикс и при необходимости безопасный режим. Префикс важен: он будет автоматически добавляться к именам собственных объектов расширения, чтобы они не пересекались с типовыми.

Далее найдите нужный объект в дереве основной конфигурации — например, справочник «Номенклатура» или документ «РеализацияТоваровУслуг». Щёлкните по нему правой кнопкой мыши и выберите «Добавить в расширение». Объект появится в дереве расширения, но изначально — с минимальным набором заимствованных свойств: обычно только стандартные реквизиты и то, что платформа посчитала необходимым.

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

Порядок действий
  1. 1
    Откройте конфигуратор и создайте расширение через меню «Конфигурация» → «Расширения конфигурации»
  2. 2
    Задайте имя и префикс расширения
  3. 3
    Найдите объект в основной конфигурации и добавьте его в расширение через контекстное меню
  4. 4
    Заимствуйте нужные реквизиты групповым выделением или копированием
  5. 5
    Обновите конфигурацию базы данных и проверьте результат

Способ 1: групповое выделение и «Добавить в расширение»

Самый быстрый штатный приём — выделить все реквизиты объекта в основной конфигурации и заимствовать их одной командой. Для этого раскройте объект в дереве конфигурации поставщика, раскройте ветку «Реквизиты», кликните по первому реквизиту, затем, удерживая Shift, кликните по последнему — выделится весь диапазон. Если нужны не все, а часть реквизитов, выделяйте их с зажатой клавишей Ctrl.

После выделения щёлкните правой кнопкой по любому из выделенных элементов и выберите «Добавить в расширение». Все выделенные реквизиты будут заимствованы в объект расширения за одну операцию. Тот же приём работает для табличных частей, измерений и ресурсов регистров, видов субконто плана счетов и других коллекций свойств.

Учтите: команда «Добавить в расширение» доступна только при активном расширении в дереве конфигурации. Если расширений несколько, платформа заимствует в то, которое открыто и подключено в текущем окне конфигуратора. Проверьте заранее, что работаете именно с нужным расширением, иначе реквизиты уедут не туда.

Способ 2: копирование реквизитов через буфер обмена

Альтернативный вариант — скопировать реквизиты напрямую. Выделите нужные реквизиты в объекте основной конфигурации (снова через Shift или Ctrl), нажмите Ctrl+C или выберите «Копировать» в контекстном меню. Затем перейдите в дерево расширения, найдите заимствованный объект, раскройте его ветку «Реквизиты» и вставьте скопированное через Ctrl+V.

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

Этот способ удобен, когда объект уже заимствован и вы дозагружаете в него отдельные группы свойств — например, сначала реквизиты шапки, позже табличные части. Также копирование помогает, когда контекстное меню «Добавить в расширение» по какой-то причине недоступно для выделенного набора.

Сравнение вариантов

Контекстное меню «Добавить в расширение»

Подходит для первичного массового заимствования. Быстро, но требует, чтобы расширение было активным в дереве.

Копирование через буфер обмена

Удобно для дозагрузки свойств в уже заимствованный объект и когда меню недоступно. Требует аккуратности при вставке.

Заимствование по одному реквизиту

Медленно, но даёт минимальный состав расширения. Выбирайте, когда нужны 2–3 свойства из большого объекта.

Особенности для разных типов объектов

Справочники и документы

У справочников и документов массово заимствуются реквизиты шапки и табличные части. Табличная часть заимствуется как объект целиком, но её реквизиты (колонки) при необходимости добавляются отдельно — тем же групповым выделением внутри ветки табличной части. Если планируете выводить колонки на форму расширения, заимствуйте и саму табличную часть, и её реквизиты.

Регистры сведений и накопления

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

Планы счетов и планы видов характеристик

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

Если после заимствования объекта его реквизиты не видны в конструкторе запроса или на форме расширения, почти всегда причина одна — реквизит просто не добавлен в расширение. Проверяйте ветку «Реквизиты» заимствованного объекта до того, как искать ошибку в коде.
ПЗ
Практическое замечание

Проверка результата и применение расширения

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

Далее обновите конфигурацию базы данных (клавиша F7 в окне основной конфигурации или соответствующая команда в окне расширения) и запустите режим предприятия. Убедитесь, что расширение подключено: в режиме предприятия список подключённых расширений доступен через «Все функции» → «Стандартные» → «Управление расширениями конфигурации» либо через соответствующий раздел администрирования в типовых конфигурациях.

Финальная проверка — функциональная: откройте заимствованную форму, выполните обработчик, обращающийся к реквизитам, или запустите отчёт. Если код обращается к незаимствованному реквизиту, при проверке или выполнении возникнет ошибка вида «Поле объекта не обнаружено» — это прямой признак того, что свойство нужно дообавить в расширение.

Контрольные точки

Как проверить результат

Состав реквизитов объекта в расширении
Норма

Все нужные свойства присутствуют и помечены как заимствованные

Тревожный признак

Часть реквизитов отсутствует — код и формы не смогут к ним обратиться

Проверка расширения в конфигураторе
Норма

Проверка завершается без ошибок применимости

Тревожный признак

Ошибки вида «объект не найден» — есть ссылки на незаимствованные элементы

Работа в режиме предприятия
Норма

Формы открываются, обработчики выполняются, расширение подключено

Тревожный признак

Ошибка «Поле объекта не обнаружено» или расширение отключено из-за конфликта

Ограничения и типичные ошибки

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

Отдельный риск — обновление типовой конфигурации. Если поставщик переименует или удалит реквизит, который вы заимствовали и используете, расширение станет неприменимым: при обновлении оно отключится, а в списке расширений появится признак ошибки. Чем больше заимствовано свойств, тем выше вероятность такого конфликта. Это главный аргумент против бездумного заимствования «всего подряд».

Ещё одна частая ошибка — заимствование реквизитов в неправильное расширение при работе с несколькими расширениями одновременно. Перед массовым добавлением убедитесь, что активно именно целевое расширение. Также не путайте заимствованные реквизиты с собственными: если при копировании вы вставили реквизит как новый (с префиксом расширения), это создаст отдельное свойство объекта, а не ссылку на типовое — логика работы с данными сломается.

Типичные ошибки
01
Заимствование всех реквизитов «про запас» — расширение раздувается и чаще конфликтует при обновлении типовой конфигурации
02
Добавление реквизитов в неактивное расширение при работе с несколькими — свойства попадают не туда, и их приходится переносить вручную
03
Вставка скопированного реквизита как собственного вместо заимствованного — создаётся дублирующее свойство с префиксом, ломающее логику
04
Попытка изменить тип или длину заимствованного реквизита — платформа это запрещает, изменение возможно только через доработку самой конфигурации

Что делать, если массовое заимствование недоступно

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

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

FAQ: частые вопросы о заимствовании реквизитов

Можно ли добавить в расширение сразу все объекты конфигурации?

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

Почему реквизит заимствован, но недоступен на форме расширения?

Чаще всего форма была заимствована до добавления реквизита, и поле просто не перетащено на форму. Откройте заимствованную форму в редакторе и добавьте элемент вручную из панели реквизитов формы. Также проверьте, что заимствован сам реквизит, а не только объект-владелец.

Нужно ли заимствовать стандартные реквизиты (Код, Наименование, Дата, Номер)?

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

Что произойдёт с расширением, если поставщик удалит заимствованный реквизит?

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

Можно ли программно добавить реквизиты в расширение?

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

Замедляет ли большое количество заимствованных реквизитов работу базы?

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

Итог

Что важно запомнить

Отдельной кнопки «добавить все реквизиты» в расширении нет, но задача решается групповым выделением реквизитов в основной конфигурации с последующей командой «Добавить в расширение» или копированием через буфер обмена. Заимствуйте только нужные свойства, после добавления выполняйте проверку расширения и обновление конфигурации базы данных, а перед любыми экспериментами со снятием конфигурации с поддержки делайте резервную копию.