8.х Табличное поле, установка отметок, обработка.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Spotty, 19 ноя 2015.

  1. TopicStarter Overlay
    Spotty
    Offline

    Spotty Опытный в 1С

    Регистрация:
    4 янв 2013
    Сообщения:
    77
    Симпатии:
    2
    Баллы:
    29
    Всем добра!
    Вот какая проблема, на обработке я установил Табличное поле и присвоил ему Тип "СправочникСписок.Контрагенты".
    Мне нужно реализовать 2 вещи.
    1. Добавить колонку отметки "галочка".
    2. Реализовать обработку строк, с условием отмеченных галочкой строк.

    1. С добавлением я разобрался

    Код:
    Процедура ТПКонтрагентыПриПолученииДанных(Элемент, ОформленияСтрок)
        Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
            ОформлениеСтроки.Ячейки.Флажок.УстановитьФлажок(СписокКонтрагентовДляОбработки.Получить(ОформлениеСтроки.ДанныеСтроки.Ссылка) <> Неопределено);
        КонецЦикла;
             
    КонецПроцедуры
    
    Процедура ТПКонтрагентыПередНачаломИзменения(Элемент, Отказ)
        Если ЭлементыФормы.ТПКонтрагенты.ТекущаяКолонка.Имя = "Флажок" Тогда
            Отказ = Истина;
            Ссылка = ЭлементыФормы.ТПКонтрагенты.ТекущиеДанные.Ссылка;
            Если СписокКонтрагентовДляОбработки.Получить(Ссылка) = Неопределено Тогда
                СписокКонтрагентовДляОбработки.Вставить(Ссылка, Ссылка);
            Иначе
                СписокКонтрагентовДляОбработки.Удалить(Ссылка);
            КонецЕсли;
        КонецЕсли;
    
    КонецПроцедуры
    
    СписокКонтрагентовДляОбработки = Новый Соответствие;
    Колонка = ЭлементыФормы.ТПКонтрагенты.Колонки.Вставить(0, " ");
    Колонка.Имя = "Флажок";
    Колонка.Ширина = 3;
    Колонка.Данные = "";
    Колонка.ДанныеФлажка = "ПометкаУдаления";
    Колонка.ИзменятьПозицию = Ложь;
    Колонка.ИзменениеРазмера = ИзменениеРазмераКолонки.НеИзменять;
    Колонка.ИзменятьВидимость = Ложь;
    Колонка.ИзменятьНастройку = Ложь;
    Колонка.РежимРедактирования =  РежимРедактированияКолонки.Непосредственно;
    Последнее редактирование модератором: 19 ноя 2015
  2. IceBeerG
    Offline

    IceBeerG Опытный в 1С

    Регистрация:
    15 дек 2012
    Сообщения:
    193
    Симпатии:
    11
    Баллы:
    29
    Обойти циклом табличную часть, внутри цикла написать условие:
    Код:
    Если Строка.Флажок Тогда
    //Втавить нужный код
    КонецЕсли
    Так не подходит?
  3. TopicStarter Overlay
    Spotty
    Offline

    Spotty Опытный в 1С

    Регистрация:
    4 янв 2013
    Сообщения:
    77
    Симпатии:
    2
    Баллы:
    29
    Не подходит
    Код:
    Для Каждого СТР из ТПКонтрагенты цикл
    ///--------------
    КонецЦикла
    Выдает сообщение ошибка интератора.

    Если обойти с помощью
    Код:
    ПостроительОтчета = Новый ПостроительОтчета;
    ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТПКонтрагенты);
    Выборка = ПостроительОтчета.Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Ссылка);
    КонецЦикла;
    
    Тогда нет доступа к флажку и получается что я не могу обработать только отмеченные.

Поделиться этой страницей