Как получить данные колонки таблицы значений
Добрый день. На форме обработки (обычные формы) есть таблица значений (Товары) с двумя колонками, в одной флажок (Булево), в другой наименование товара. Колонку с флажком не видно программно ни в текущей строке, ни в данных строки. Но при этом в ЭлементыФормы.Товары.Колонки данная колонка присутствует. Подскажите, пожалуйста, как получить значение из этой колонки?
По теме из базы знаний
- Создание произвольной таблицы значений на форме в управляемом приложении программным способом
- Вывод Таблицы Значений или Дерева Значений на экран управляемой формы без объявления колонок в реквизитах формы
- Чтоб в СКД по таблице значений был порядок!
- Как передать Таблицу Значений в Динамический Список?
- Доработка стандартного модуля обмена от Битрикс для выгрузки произвольных таблиц значений или запросов в Highload-блоки
Найденные решения
Сделал вот так:
///////элемент формы, по которому открывается форма выбора товаров
Процедура ЗаполнитьПоФильтруНажатие(Элемент)
ТаблицаТоваров= ТЗТовары.Скопировать(, "Номенклатура");
ТаблицаТоваров.Свернуть("Номенклатура");
ФормаВыбора = ПолучитьФорму("ВыборТоваров", ЭтаФорма);
ФормаВыбора.СписокТоваров= ТаблицаТоваров;
ФормаВыбора.ОткрытьМодально();
КонецПроцедуры
////////код из модуля формы выбора товара
Перем ОтмеченныеТовары;
Процедура КнопкаВыполнитьНажатие(Кнопка)
МассивТоваров = Новый Массив;
Для Каждого Строка Из СписокТоваровЦикл
Если Не ОтмеченныеТовары[Строка] = Неопределено Тогда
МассивТоваров .Добавить(Строка.Номенклатура);
КонецЕсли;
КонецЦикла;
ЭтаФорма.ОповеститьОВыборе(МассивТоваров );
КонецПроцедуры
Процедура СписокТоваровПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.Флг.ОтображатьФлажок = Истина;
Если ОтмеченныеТовары[ДанныеСтроки] = Неопределено Тогда
ОформлениеСтроки.Ячейки.Флг.Флажок = Ложь;
Иначе
ОформлениеСтроки.Ячейки.Флг.Флажок = ОтмеченныеТовары[ДанныеСтроки];
КонецЕсли;
КонецПроцедуры
Процедура СписокТоваровПриИзмененииФлажка(Элемент, Колонка)
Если Колонка.Имя = "Флг" Тогда
Если ОтмеченныеТовары[Элемент.ТекущаяСтрока] = Неопределено Тогда
ОтмеченныеТовары[Элемент.ТекущаяСтрока] = Истина;
Иначе
ОтмеченныеТовары.Удалить(Элемент.ТекущаяСтрока);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ОтмеченныеТовары= Новый Соответствие;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Сделал вот так:
///////элемент формы, по которому открывается форма выбора товаров
Процедура ЗаполнитьПоФильтруНажатие(Элемент)
ТаблицаТоваров= ТЗТовары.Скопировать(, "Номенклатура");
ТаблицаТоваров.Свернуть("Номенклатура");
ФормаВыбора = ПолучитьФорму("ВыборТоваров", ЭтаФорма);
ФормаВыбора.СписокТоваров= ТаблицаТоваров;
ФормаВыбора.ОткрытьМодально();
КонецПроцедуры
////////код из модуля формы выбора товара
Перем ОтмеченныеТовары;
Процедура КнопкаВыполнитьНажатие(Кнопка)
МассивТоваров = Новый Массив;
Для Каждого Строка Из СписокТоваровЦикл
Если Не ОтмеченныеТовары[Строка] = Неопределено Тогда
МассивТоваров .Добавить(Строка.Номенклатура);
КонецЕсли;
КонецЦикла;
ЭтаФорма.ОповеститьОВыборе(МассивТоваров );
КонецПроцедуры
Процедура СписокТоваровПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.Флг.ОтображатьФлажок = Истина;
Если ОтмеченныеТовары[ДанныеСтроки] = Неопределено Тогда
ОформлениеСтроки.Ячейки.Флг.Флажок = Ложь;
Иначе
ОформлениеСтроки.Ячейки.Флг.Флажок = ОтмеченныеТовары[ДанныеСтроки];
КонецЕсли;
КонецПроцедуры
Процедура СписокТоваровПриИзмененииФлажка(Элемент, Колонка)
Если Колонка.Имя = "Флг" Тогда
Если ОтмеченныеТовары[Элемент.ТекущаяСтрока] = Неопределено Тогда
ОтмеченныеТовары[Элемент.ТекущаяСтрока] = Истина;
Иначе
ОтмеченныеТовары.Удалить(Элемент.ТекущаяСтрока);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ОтмеченныеТовары= Новый Соответствие;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот