Как отобразить флажок в строках табличного поля в системе 1С8? Способ первый
Здравствуйте, уважаемые читатели блога SoftMaker.kz. Сегодня я продолжу тему о работе с табличным полем. Здесь, на этом блоге, уже есть небольшая обработка, которая показывает некоторые приемы работы с табличным полем, а также неплохие примеры работы с табличным полем. Но сейчас давайте поговорим о том, как отобразить флажок в строках табличного поля.
Для начала создадим новую обработку в конфигураторе 1С8. Пункт меню «Файл» — «Новый» — «Внешняя обработка» — «ОК». Теперь сохраним обработку, назвав — например — «ОтображениеФлажка1». Теперь в самой обработке создадим форму, затем поместим на неё табличное поле. Заходим в модуль формы и пишем следующее:
Перем Отмеченные; Процедура КнопкаВыполнитьНажатие(Кнопка) // Создам таблицу значений ТабЗначений = Новый ТаблицаЗначений; // Добавлю две колонки ТабЗначений.Колонки.Вставить(0,"Отметка",,"О",1);// для флажка ТабЗначений.Колонки.Вставить(1,"Товар",,"Товар",25); // Добавлю две строки в таблицу значений, для примера НоваяСтрока = ТабЗначений.Добавить(); // флажок установлен, если в соответствии Отмеченные существует ключ со значением. Отмеченные[НоваяСтрока] = Истина; НоваяСтрока.Отметка = Истина; НоваяСтрока.Товар = "Сапоги зимние"; НоваяСтрока = ТабЗначений.Добавить(); // флажок не установлен, т.к. для этой строки мы не задали соответствия. НоваяСтрока.Отметка = Ложь; НоваяСтрока.Товар = "Сапоги летние"; // Загружает новые колонки из источника данных ТабЗначений. // Благодаря этому действию в табличном поле ТабличноеПоле1 выводятся строки. ЭлементыФормы.ТабличноеПоле1.Значение = ТабЗначений; ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); КонецПроцедуры
Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) // Зададим признак отображения флажка в колонке Отметка ОформлениеСтроки.Ячейки.Отметка.ОтображатьФлажок = Истина; // Здесь мы проверяем есть ли в соответствии Омеченные // данные о текущей строке. Если Отмеченные[ДанныеСтроки] = Неопределено Тогда // Нет соответствия, тогда флажок отключён. ОформлениеСтроки.Ячейки.Отметка.Флажок = Ложь; Иначе // Есть соответствие, тогда флажок включён. ОформлениеСтроки.Ячейки.Отметка.Флажок = Истина; КонецЕсли; КонецПроцедуры Процедура ТабличноеПоле1ПриИзмененииФлажка(Элемент, Колонка) // Проверяем какая колонка текущая на данный момент, // другими словами, в какой колонке и на какой ячейке произведен щелчок мыши. Если Колонка.Имя = «Отметка» Тогда // Теперь меняем отображение флажка в зависимости от его состояния. Если Отмеченные[Элемент.ТекущаяСтрока] = Неопределено Тогда // Флажок не установлен, устанавливаем, добавляя элемет в соответствие. Отмеченные[Элемент.ТекущаяСтрока] = Истина; Иначе // Флажок установлен, снимаем, удаляя элемент из соответствия. Отмеченные.Удалить(Элемент.ТекущаяСтрока); КонецЕсли; КонецЕсли; КонецПроцедуры Отмеченные = Новый Соответствие;
Если Вы создали новую обработку и поместили на неё табличное поле, тогда можно скопировать отсюда весь текст обработки и вставить его в Ваш модуль формы. Теперь можно проверить обработку в режиме 1С:Предприятия. Первый способ готов, вот второй!
Какие же вы хорошие программисты 1С! Это очень хорошая статья! Спасибо!
Пожалуйста, Змей!
Не работает!
1С:Предприятие 8.3 (8.3.10.2650)
Обманываете людей
У меня все работало, не морочьте голову ;)