1с обычные формы флажок в табличной части

Реализация отметки строк флажками в табличном поле

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

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

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

Пример 1. Отметка строк в табличном поле, связанном с таблицей значений

Основные принципы реализации этой возможности следующие:

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

В модуле формы размещены приведенные ниже процедуры. Обратите внимание, что процедуры тпСотрудникиПриВыводеСтроки и тпСотрудникиПриИзмененииФлажка являются обработчиками событий табличного поля, т.е. они назначены в палитре свойств для соответствующих событий.

Пример 2. Отметка строк в табличном поле, отображающем динамический список

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

marks 2

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

Вы можете посмотреть внешнюю обработку » marks.epf «, в которой содержатся два приведенных выше примера. Обратите внимание, что для просмотра второго примера требуется, чтобы в конфигурации был справочник «Номенклатура».

Внешняя обработка с примерами находится на CD-ROM в каталоге \1CITS\EXE\Examples81

Источник

вот еще вариант через ПередНачаломИзменения

(15)Табличное поле связано с табличной частью, но колонка с флажком не привязана к данным Таб. части.
(10) при изменении флажка, не связанного с ТЧ, я в процедуру ТабличнаяЧасть1ПриОкончанииРедактирования( ) вообще не попадаю, только в ТоварыПриИзмененииФлажка(Элемент, Колонка)
Расширение элементов управления, расположенных в поле табличного документа (Extension for controls located in a spreadsheet document field)
Значение (Value)
Использование:

Чтение и запись.
Описание:

Тип: Произвольный. Предоставляет доступ к значению, которое редактируется в элементе управления.

Толстый клиент.
Примечание:

Только для элементов управления, поддерживающих связь с данными.

Хм. сейчас посмотрел, действительно, если делать через:

[1с]
Процедура ИТПриПолученииДанных(Элемент, ОформленияСтрок)

Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ДанныеСтроки = ОформлениеСтроки.ДанныеСтроки;
ОформлениеСтроки.Ячейки.Флаг.УстановитьФлажок(ДанныеСтроки.План <> 0 и (ДанныеСтроки.План = ДанныеСтроки.Факт));
КонецЦикла;

Процедура ИТПриИзмененииФлажка(Элемент, Колонка)

ДанныеСтроки = Элемент.ТекущиеДанные;
Если Колонка.Имя = «Флаг» Тогда
Если ДанныеСтроки.План = ДанныеСтроки.Факт Тогда
ДанныеСтроки.Факт = 0;
Иначе
ДанныеСтроки.Факт = ДанныеСтроки.План;
КонецЕсли;
КонецЕсли;

Колонка = ЭлементыФормы.ИТ.Колонки.Вставить(ЭлементыФормы.ИТ.Колонки.Индекс(ЭлементыФормы.ИТ.Колонки.Факт) + 1, «=»);
Колонка.Имя = «Флаг»;
Колонка.Ширина = 3;
Колонка.ИзменятьПозицию = Ложь;
Колонка.ИзменениеРазмера = ИзменениеРазмераКолонки.НеИзменять;
Колонка.ИзменятьВидимость = Ложь;
Колонка.ИзменятьНастройку = Ложь;
Колонка.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
[/1с]

Источник

Программное создание флажка в табличном поле 1С

3. Знаю наизусть! 100% (1) voting3
1. Всегда забываю как это сделать! 0% (0) voting1
2. Не пользуюсь такими возможностями! 0% (0) voting2

Всего мнений: 1

1) Создаем колонку в таблице значений, т.к. обычно в ней подготавливаются необходимые данные для работы

2) Загружаем таблицу значений в табличное поле

ЭлементыФормы.ТабличноеПоле.Значение = ТаблицаЗначений.Скопировать();
ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();

3) В событии «ПриВыводеСтроки» элемента ТабличноеПоле пишем:

После этого в колонке уже будет флажок, который интерактивно можно включать/выключать.

4) Для того, чтобы можно было считывать значение флажка не через оформление строки, настроим данные для колонки «Пометка»:

ЭлементыФормы.ТабличноеПоле.Колонки.Пометка.Данные = «»;
ЭлементыФормы.ТабличноеПоле.Колонки.Пометка.ДанныеФлажка = «Пометка»;
ЭлементыФормы.ТабличноеПоле.Колонки.Пометка.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;

5) Интерактивно установим флажки в нескольких строках, и проверим наличие флажков программно:

Для Каждого Строчка из ТабличноеПоле Цикл
Сообщить(Строчка.пометка);
ОбработкаПрерыванияПользователя(); // для прерывания цикла по Ctrl+Break, если таблица большая
КонецЦикла;

Источник

Флажки (галочки) в списках документов обычных форм в 1С Предприятии 8.2, 8.3

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

В списке документов нет возможности добавить колонку с данными, соответственно и нет возможности добавить свой флажок.

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

У списков есть возможность использовать флажок «Пометка удаления». Вот и задействуем эту возможность в своих целях.

Принцип работы такой, при изменении пометки удаления будем запоминать (или забывать) отмеченные документы.

В то же время заблокируем фактическую установку пометки. Не забудем показать состояние флажка отмечен/снят вместо пометки удаления.

Вот собствено и весь принцип работы.

Список отмеченных документов будем хранить в соответствии:

Отображение нашего состояния флажка поручим процедуре

Запомним или забудем отмеченные документы в процедуре

С помощью нажатия на кнопку обработаем выбранные документы

Вариант 2. Без использования «Пометки удаления». Добавлено после обсуждений в комментариях.

Способ почти идентичный, по этому расписывать подробно нет смысла.

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

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

При добавлении кода из обработки в типовой модуль формы необходимо проследить, есть ли в модуле обработчики ДокументСписокПередНачаломИзменения или ДокументСписокПриПолученииДанных и при их наличии раскомментировать соответствующие строки в процедурах ДокументСписокПередНачаломИзменения_Подключаемая и ДокументСписокПриПолученииДанных_Подключаемая. Что бы не забывались вызываться типовые процедуры.

А так же необходимо проследить за именем списка документов и при необходимости переименовать в добавляемом коде имя «ДокументСписок» на необходимое.

Примечание. В обработке представлены оба способа (на всякий случай).

Источник

1с обычные формы флажок в табличной части

02 февраля 2017

1С галочки для табличного поля

Делается очень просто! Для этого вы добавляете новую колонку, через контекстное меню.

1

Называете ее «Отметка». Выбираете элемент управления Флажок.

2

3

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

Процедура КоманднаяПанельДействиеСнятьВсе(Кнопка)
ОтмеченныеПользователи.Очистить();
ЭтаФорма.Обновить();
КонецПроцедуры

В итоге у вас получится вот такая табличная часть с дополнительной колонкой Отметка, где выбираются нужные строки, они будут попадать в список значений ОтмеченныеСтроки. И в дальнейшем, перебирая ОтмеченныеСтроки сможете производить с ними какие либо действия! Над таблицей есть две кнопки, установить все галочки и снять!

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с обычные формы условное оформление табличной части
  • 1с обычные формы список значений на форме