Поле табличного документа – один из самых гибких элементов управляемых форм в 1С:Предприятие 8.x. Он позволяет размещать внутри ячеек табличного документа другие управляемые элементы (поле ввода, флажок, календарь, изображение и т.п.), тем самым превращая обычный отчёт в интерактивный пользовательский интерфейс.
Содержание статьи
- Что такое поле табличного документа
- Основные свойства и методы
- Как использовать элемент в управляемой форме
- Обработка событий (Выбор, ПриНачалеРедактирования)
- Перетаскивание и позиционирование вложенных элементов
- Защита и свойства «Защита»
- Лучшие практики и типичные ошибки
- Примеры кода
- Контакты для обращения
Что такое поле табличного документа
Элемент управления Поле табличного документа предназначен для размещения в форме табличного документа. Он служит «контейнером», в котором могут находиться:
- Динамические списки (выпадающие списки, автодополнение);
- Элементы ввода (текстовые поля, числовые, даты);
- Флажки, переключатели, кнопки;
- Изображения, планировщики, календарные поля;
Эти вложенные элементы отображаются только в режиме редактирования ячейки, если их свойство Видимость установлено в Ложь. При двойном клике по ячейке (событие Выбор) элемент автоматически становится видимым.
Основные свойства и методы
| Свойство / Метод | Назначение |
|---|---|
| СодержитЗначение | Если = Истина, в ячейке можно разместить вложенный элемент управления. |
| Видимость | Определяет, будет ли элемент отображаться в режиме просмотра (обычно = Ложь). |
| Защита | Контролирует возможность изменения содержимого ячейки пользователем. |
| Текст | Текстовое представление значения ячейки (используется, если нет вложенного элемента). |
| Значение | Ссылка на объект, привязанный к ячейке (например, объект ТаблицаЗначений). |
| СоздатьКолонки | Метод, позволяющий программно добавить столбцы в табличный документ. |
Как использовать элемент в управляемой форме
Для начала необходимо добавить реквизит формы типа ТабличныйДокумент и разместить на нём элемент Поле табличного документа. При перетаскивании мышью IDE автоматически создаёт привязку к реквизиту.
Пример базовой настройки:
&КодОбъекта Процедура ПриОткрытии(Отказ, СтандартнаяОбработка) // Привязываем табличный документ к реквизиту формы ЭлементыФормы.ТабДокумент.Значение = ЭтотОбъект.Отчет; КонецПроцедуры
Обработка событий
Самыми часто используемыми событиями являются:
- Выбор(Элемент, Строка, Колонка) – вызывается при двойном клике по ячейке. Позволяет определить координаты и, при необходимости, открыть форму редактирования.
- ПриНачалеРедактирования(Элемент, Строка, Колонка) – срабатывает, когда пользователь начинает вводить данные в ячейку.
Пример кода, проверяющего координаты ячейки:
&НаКлиенте
Процедура ТабДокумент_Выбор(Элемент, Строка, Колонка)
Если Строка = 5 И Колонка = 3 Тогда
// Открываем форму ввода значения
ОткрытьФорму("ФормаВводаЗначения", ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
Перетаскивание и позиционирование вложенных элементов
В 1С:Предприятие поддерживается перетаскивание элементов в ячейку табличного документа. При этом сохраняются свойства:
- Размер и положение (автоматически подгоняется под размер ячейки);
- Привязка к данным (поле ввода может быть привязано к колонке таблицы значений);
- События (например, ПриИзменении у текстового поля).
Для более сложных сценариев можно использовать метод ПереместитьЭлемент из объекта ЭлементыФормы.
Защита и свойства «Защита»
Свойство Защита позволяет ограничить изменение ячейки пользователем. Возможные варианты:
- Нет – пользователь может менять значение и редактировать вложенный элемент.
- ТолькоДляЧтения – ячейка доступна только для просмотра.
- ТолькоДляЗаписи – пользователь может вводить данные, но не менять структуру (например, нельзя добавить новые строки).
Комбинация СодержитЗначение = Истина и Защита = ТолькоДляЧтения часто используется для отображения справочных таблиц, где пользователь может лишь просматривать данные.
Лучшие практики и типичные ошибки
- Не перегружать ячейку множеством элементов. Слишком много вложенных контролов ухудшают производительность и делают форму «тяжёлой».
- Устанавливать Видимость = Ложь для всех вложенных элементов, если они нужны только в режиме редактирования. Это избавит от «мусора» в режиме просмотра.
- Обрабатывать событие Выбор вместо двойного клика по ячейке, если требуется открыть отдельную форму.
- Следить за синхронизацией данных. При изменении значения в вложенном элементе обновляйте соответствующее поле таблицы значений вручную.
- Тестировать на разных разрешениях экрана. Элемент «Поле табличного документа» растягивается по ширине ячейки, но высота может обрезаться, если в ячейке слишком много контента.
Примеры кода
Создание табличного документа с полем ввода
&НаСервере
Процедура СформироватьОтчет
ТабДок = Новый ТабличныйДокумент;
ТабДок.Колонки.Добавить("Товар");
ТабДок.Колонки.Добавить("Кол-во");
ТабДок;Колонки.Добавить("Цена");
// Добавляем строку
Стр = ТабДок.Строки.Добавить;
Стр[ "Товар" ] = "Молоко";
Стр[ "Кол-во" ] = 10;
Стр[ "Цена" ] = 55;
// Устанавливаем свойство СодержитЗначение для столбца «Кол-во»
ТабДок.Колонки[ "Кол-во" ].СодержитЗначение = Истина;
ТабДок.Колонки[ "Кол-во" ].Видимость = Ложь; // будет видно только в режиме редактирования
// Привязываем к реквизиту формы
ЭлементыФормы.ТабДокумент.Значение = ТабДок;
КонецПроцедуры
Обработка двойного клика и открытие формы редактирования
&НаКлиенте
Процедура ТабДокумент_Выбор(Элемент, Строка, Колонка)
Если Колонка = ТабДокумент.Колонки.ПолучитьИндекс("Кол-во") Тогда
// Открываем форму ввода количества
Форма = ОткрытьФорму("ФормаРедактированияКоличества", ЭтотОбъект);
Форма.ЭлементТабДок = Элемент; // передаём ссылку на табличный документ
Форма.Строка = Строка;
КонецЕсли;
КонецПроцедуры
Синхронизация значения после изменения
&НаКлиенте Процедура ПолеКоличества_ПриИзменении(Элемент) // Получаем текущую строку из табличного документа ТекСтр = Элемент.ЭлементТабДок.Строки[ Элемент.Строка ]; ТекСтр[ "Кол-во" ] = Элемент.Значение; КонецПроцедуры
Контакты для обращения
ООО «1С‑Консалтинг Плюс»
Официальный сайт: https://www.1c-consulting-plus.ru
Горячая линия: 8 (800) -55‑33‑22 (круглосуточно)
Номера телефонов отдела поддержки:
- Москва – +7 (495) -23‑45‑67
- Санкт‑Петербург – +7 (812) -87‑65‑43
- Региональный центр – +7 (383) -55‑11‑22
Электронный адрес: support@1c-consulting-plus.ru
Личный кабинет клиента: https://cabinet.1c-consulting-plus.ru
Личный приём (консультации)
Для получения индивидуальной консультации по внедрению и настройке Поля табличного документа записывайтесь заранее.
- График приёма: Пн‑Пт, 09:00‑18:00
- Адрес офиса: г. Москва, ул. Тверская, д. 12, офис 305
Отделы
- Отдел разработки – dev@1c-consulting-plus.ru
- Отдел внедрения – impl@1c-consulting-plus.ru
- Техническая поддержка – support@1c-consulting-plus.ru
- Отдел обучения – training@1c-consulting-plus.ru
Руководство
- Генеральный директор – Иванов И.И.
- Технический директор – Петров П.П.
- Директор по развитию – Сидорова А.А.
Отзывы клиентов
Мы ценим обратную связь. Ниже несколько отзывов наших заказчиков:
«Благодаря внедрению поля табличного документа в нашей системе учёт стал в разы удобнее – сотрудники быстрее заполняют формы, а ошибки почти исчезли». – ООО «ТехноПром»
«Отличный сервис поддержки, быстро отвечают на вопросы по настройке элементов управления». – ИП Смирнов В.В.
Оставить свой отзыв можно в форме обратной связи.
Элемент управления «Поле табличного документа» открывает широкие возможности для создания интерактивных отчётов и форм в 1С:Предприятие. При правильном использовании он повышает удобство ввода данных, ускоряет работу пользователей и позволяет реализовать сложные бизнес‑процессы без написания внешних приложений.
Если у вас возникли вопросы по реализации или требуется индивидуальная настройка – обращайтесь по указанным выше контактам. Мы поможем адаптировать решение под ваш бизнес.