В процессе разработки на платформе 1С часто возникает задача добавить новые данные к типовым документам с помощью расширений. Однако при попытке вывести такой реквизит на заимствованную форму документа разработчики сталкиваются с тем, что данные не сохраняются или поле вовсе не отображается. Давайте разберем, как реализовать эту задачу правильно, не прибегая к снятию конфигурации с поддержки.
Важно различать Реквизит объекта и Реквизит формы. Когда вы добавляете новый реквизит к документу в расширении, вы расширяете структуру метаданных самой базы данных. Чтобы пользователь мог работать с этим полем в интерфейсе, необходимо правильно связать его с элементом управления на форме.
Первым делом мы добавляем реквизит в расширении именно к Документу, а не к форме. Это гарантирует, что данные будут физически сохранены в таблице документа при записи. Если вы добавите реквизит только в Реквизиты формы, то при закрытии окна данные будут теряться, так как они существуют только в оперативной памяти текущего сеанса.
После добавления реквизита к объекту, он не всегда автоматически появляется в списке доступных полей формы. Чтобы вывести его на заимствованную форму, следуйте этой инструкции:
Реквизиты формы.Реквизит формы.Тип выберите тип, соответствующий вашему документу.ПутьКДанным выберите созданный вами ранее реквизит объекта расширения.Многие разработчики ошибочно пытаются использовать свойство АвтоматическоеСохранениеДанныхВНастройках. Важно понимать: это свойство предназначено для запоминания положения окон, ширины колонок или фильтров пользователя, а не для сохранения значений самих документов. Если ваш реквизит привязан к Объекту (через ПутьКДанным), платформа 1С автоматически обработает его запись в базу данных при вызове метода Записать(). Дополнительные настройки или флаги «Сохраняемые данные» для реквизитов объекта не требуются.
Снятие конфигурации с «замка» — это крайняя мера, которая создает серьезные проблемы при обновлении программы. Все изменения, внесенные вручную в основную конфигурацию, потребуют повторного анализа и ручного переноса после каждого выхода обновления от вендора. Механизм Расширений позволяет:
Рассмотрев данные подходы, мы убедились, что добавление реквизитов через Расширения — это стандартизированный и надежный способ доработки системы. Если вы столкнулись с тем, что поле пустое или не сохраняется, прежде всего проверьте, привязан ли Реквизит формы к Реквизиту объекта через ПутьКДанным. Именно эта настройка отвечает за успешную передачу данных между интерфейсом и базой данных.