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

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

Элементы управления в 1С: для чего предназначены и как с ними работать

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

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

Понимание назначения элементов управления важно в трёх ситуациях: при обычной работе пользователя, при настройке форм без изменения конфигурации (механизм «Изменить форму») и при разработке собственных форм в конфигураторе. Во всех трёх случаях логика одна: элемент либо отображает данные, либо принимает ввод, либо инициирует действие.

В управляемых формах (интерфейс «Такси») разработчик в основном описывает состав и поведение элементов, а платформа сама решает, как их отрисовать. Это снижает количество ручной работы, но требует понимать, какие свойства элемента на что влияют.

Какие задачи решают элементы управления

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

Вторая задача — управление логикой работы пользователя. С помощью свойств видимости, доступности и «только просмотр» элементы включаются и отключаются в зависимости от состояния объекта. Например, после проведения документа поля могут блокироваться, а для менеджера без прав на изменение цен соответствующая колонка скрывается вовсе.

Третья задача — группировка и навигация внутри формы. Группы, страницы и панели организуют элементы так, чтобы пользователь не терялся в сложных документах с десятками реквизитов.

Основные виды элементов управления

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

ЭлементНазначениеТипичное применение
Поле вводаВвод и отображение значения реквизитаНоменклатура, количество, комментарий
ФлажокБулево значение (да/нет)Признак «Оплачен», «Не использовать»
ПереключательВыбор одного значения из спискаСпособ доставки, вид операции
Поле списка / выпадающий списокВыбор из фиксированных значенийСтавка НДС, единица измерения
ТаблицаОтображение и редактирование табличных частей и списковТовары в документе, список контрагентов
КнопкаВыполнение команды«Записать», «Провести», «Подобрать»
Надпись (декорация)Пояснения, заголовки, гиперссылкиПодсказки на форме
Группа, страницыСтруктурирование формыВкладки «Основное», «Дополнительно»

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

Как элементы привязываются к данным

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

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

Настройка формы без программирования

Пользователю без доступа к конфигуратору доступен механизм «Изменить форму» (в типовых конфигурациях обычно через меню «Ещё» на форме). Он позволяет скрывать ненужные элементы, выводить дополнительные реквизиты, менять порядок полей и состав колонок таблиц. Настройка сохраняется для текущего пользователя или для всех пользователей — в зависимости от прав.

Что можно сделать через «Изменить форму»

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

Ограничения механизма

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

Порядок настройки формы пользователем
  1. 1
    Откройте нужную форму и выберите «Ещё» → «Изменить форму»
  2. 2
    Снимите флажки с элементов, которые не нужны, или перетащите поля в другую группу
  3. 3
    Настройте состав и порядок колонок табличной части
  4. 4
    Нажмите «ОК» и проверьте форму: откройте существующий документ и попробуйте создать новый
  5. 5
    Если результат не подошёл — снова откройте настройку и используйте кнопку возврата к стандартным настройкам

Работа с элементами в конфигураторе

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

Поведение элемента задаётся свойствами и событиями. Из наиболее используемых: Видимость, Доступность, ТолькоПросмотр, АвтоОтметкаНезаполненного, а также события ПриИзменении, НачалоВыбора, ОбработкаВыбора. Программно элементы доступны через коллекцию Элементы формы.

bsl
&НаКлиенте
Процедура СпособДоставкиПриИзменении(Элемент)
    Элементы.АдресДоставки.Видимость = (Объект.СпособДоставки = "Курьер");
КонецПроцедуры

Добавлять элементы можно и полностью программно — методом Элементы.Добавить() в обработчике ПриСозданииНаСервере. Так делают, когда состав формы зависит от настроек или прав и заранее неизвестен. Минус подхода: такие элементы не видны в редакторе формы, что усложняет сопровождение.

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

Типичные ошибки и их последствия

Большинство проблем с элементами управления сводится к нескольким повторяющимся сценариям, которые легко диагностировать.

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

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

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

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

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

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

Ввод и сохранение
Норма

Значение, введённое в поле, сохраняется после записи и отображается при повторном открытии

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

Поле очищается после записи или показывает старое значение

Видимость и доступность
Норма

Элементы появляются и блокируются по заданным условиям

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

Поле недоступно всегда или не реагирует на изменение условий

Открытие формы
Норма

Форма открывается без ошибок у пользователей с разными правами

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

Ошибка «Поле не найдено» или пустая форма у части пользователей

Табличные части
Норма

Строки добавляются, редактируются и удаляются, итоги пересчитываются

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

Колонки не редактируются или итоги не обновляются

Если проверка выявила проблему у конкретного пользователя, но не у остальных — почти всегда дело в персональных настройках формы. Их сбрасывают через «Изменить форму» → «Установить стандартные настройки» или через административную обработку очистки пользовательских настроек.

Часто задаваемые вопросы

Чем элемент управления отличается от реквизита?

Реквизит — это данные (хранилище значения), а элемент управления — визуальное представление этих данных на форме. Один реквизит может быть связан с несколькими элементами или не выведен на форму вовсе.

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

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

Можно ли добавить кнопку на форму без изменения конфигурации?

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

Что такое динамический список и когда он нужен?

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

Почему форма тормозит при вводе в поле?

Чаще всего в обработчике «ПриИзменении» выполняется серверный вызов или тяжёлый запрос при каждом изменении. Решение — перенести логику на момент записи, использовать кэширование или убрать лишние серверные вызовы из клиентских обработчиков.

Итог

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

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