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