Здравствуйте, уважаемые читатели блога SoftMaker.kz. Сегодня я продолжу тему о работе с табличным полем. Здесь, на этом блоге, уже есть небольшая обработка, которая показывает некоторые приемы работы с табличным полем, а также неплохие примеры работы с табличным полем. Но сейчас давайте поговорим о том, как отобразить флажок в строках табличного поля.

Для начала создадим новую обработку в конфигураторе 1С8. Пункт меню «Файл» — «Новый» — «Внешняя обработка» — «ОК». Теперь сохраним обработку, назвав — например — «ОтображениеФлажка1». Теперь в самой обработке создадим форму, затем поместим на неё табличное поле. Заходим в модуль формы и пишем следующее:

Перем Отмеченные;
Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Создам таблицу значений
    ТабЗначений = Новый ТаблицаЗначений;
    // Добавлю две колонки
    ТабЗначений.Колонки.Вставить(0,"Отметка",,"О",1);// для флажка 
    ТабЗначений.Колонки.Вставить(1,"Товар",,"Товар",25);
    // Добавлю две строки в таблицу значений, для примера
    НоваяСтрока = ТабЗначений.Добавить();
    // флажок установлен, если в соответствии Отмеченные существует ключ со значением.
    Отмеченные[НоваяСтрока] = Истина;
    НоваяСтрока.Отметка = Истина;
    НоваяСтрока.Товар = "Сапоги зимние";
    НоваяСтрока = ТабЗначений.Добавить();
    // флажок не установлен, т.к. для этой строки мы не задали соответствия.
    НоваяСтрока.Отметка = Ложь;
    НоваяСтрока.Товар = "Сапоги летние";
   // Загружает новые колонки из источника данных ТабЗначений.
    // Благодаря этому действию в табличном поле ТабличноеПоле1 выводятся строки.
    ЭлементыФормы.ТабличноеПоле1.Значение = ТабЗначений;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
КонецПроцедуры

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

Процедура ТабличноеПоле1ПриИзмененииФлажка(Элемент, Колонка)
	// Проверяем какая колонка текущая на данный момент,
	// другими словами, в какой колонке и на какой ячейке произведен щелчок мыши.
	Если Колонка.Имя = «Отметка» Тогда
		// Теперь меняем отображение флажка в зависимости от его состояния.
		Если Отмеченные[Элемент.ТекущаяСтрока] = Неопределено Тогда
			// Флажок не установлен, устанавливаем, добавляя элемет в соответствие.
			Отмеченные[Элемент.ТекущаяСтрока] = Истина;
		Иначе
			// Флажок установлен, снимаем, удаляя элемент из соответствия.
			Отмеченные.Удалить(Элемент.ТекущаяСтрока);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

Отмеченные = Новый Соответствие;

Если Вы создали новую обработку и поместили на неё табличное поле, тогда можно скопировать отсюда весь текст обработки и вставить его в Ваш модуль формы. Теперь можно проверить обработку в режиме 1С:Предприятия. Первый способ готов, вот второй!


Этот блог читают уже более 3000 человек - читай и ТЫ!
4 ответы
  1. Желтый Змей говорит:

    Какие же вы хорошие программисты 1С! Это очень хорошая статья! Спасибо!

    Ответить

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *