Решение задач 1С:Предприятие 8 на примерах

Как настроить отображение флажка в колонке табличного поля

Обычные формыОпубликовано Обновлено

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

Пошаговое решение

В ситуациях, когда у табличного поля имеется колонка, не связанная с источником данных, и в ней необходимо хранить значения логического типа в виде установленного или сброшенного флажка, для этого следует настроить отображение данного флажка.
Решение.
Для указанной колонки необходимо установить тип значения булево и не использовать никакой элемент управления (в палитре свойств опцию "элемент управления" оставить пустой) и прописать следующий код в событиях табличного поля "ПриВыводеСтроки" и "ПриИзмененииФлажка":

// выключаем отображение текста и устанавливаем отображение флажка
Процедура ТабличноеПолеПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)    
    ОформлениеСтроки.Ячейки.НазваниеКолонки.ОтображатьТекст = Ложь;
    ОформлениеСтроки.Ячейки.НазваниеКолонки.ОтображатьФлажок = Истина;
    ОформлениеСтроки.Ячейки.НазваниеКолонки.Флажок = ДанныеСтроки.НазваниеКолонки;
КонецПроцедуры
// изменяем соответствующие флажку данные
Процедура ТабличноеПолеПриИзмененииФлажка(Элемент, Колонка)
    ТекСтрока = Элемент.ТекущиеДанные;
    ТекСтрока.НазваниеКолонки = Не ТекСтрока.НазваниеКолонки;
КонецПроцедуры

Актуальность для новых версий

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

Частые вопросы

Почему у колонки не нужно указывать элемент управления?

Если оставить элемент управления пустым, ячейка отображается только средствами оформления строки. Это позволяет в событии ПриВыводеСтроки отключить текст и включить отображение флажка.

Зачем нужен обработчик ПриИзмененииФлажка?

Клик по флажку сам по себе не меняет данные строки. В обработчике значение реквизита строки инвертируется, и при следующем выводе строки флажок отображается в новом состоянии.

Что подставить вместо «НазваниеКолонки»?

Имя колонки табличного поля и одноимённого поля в данных строки. В примере они совпадают, поэтому одно имя используется и в ОформлениеСтроки.Ячейки, и в ДанныеСтроки.

Как получить в запросе начальные и конечные остатки на каждый день, месяц или другой период

Обычные формы, Управляемые формы, Запросы

Виртуальная таблица ОстаткиИОбороты не возвращает строки за дни без движений. Показываем запрос с таблицей дат, который даёт начальный и конечный остаток на каждый день периода.

Как подключиться к базе MySQL из 1С через ODBC

Обычные формы

Обмен данными между 1С и MySQL-базой сайта через драйвер ODBC. Три варианта строки подключения и готовые процедуры для чтения и записи остатков товаров.

Как в 1С изменить размер изображения

Обычные формы

Уменьшаем фотографию до 2048 пикселей по большей стороне с сохранением пропорций: подключаем внешнюю компоненту GraphicsNET и сохраняем результат в JPG.

Как настроить отправку писем из 1С через Gmail

Обычные формы

Настраиваем отправку писем из 1С через Gmail: профиль SMTP, создание сообщения с вложением и отправка объектом ИнтернетПочта, а также что изменилось в требованиях Google.