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