Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Флажок в табличной части
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
BeLuY
Добрый день. Есть необходимость добавить колонку в таблицу на форме документа - некий признак (флажок) выбора необходимых строк для дальнейшей обработки, но данное значение хранить не нужно. Как можно добавить этот флажок, чтобы не создавать реквизит в табличной части? Даже если создать необходимый реквизит, то при установке флажка будут изменятся данные документа и, при закрытии документа, будет запрашивать сохранение.

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

Платформа 8.3.8, Обычное приложение.

Спасибо!

26.05.2021: нашел необходимо зарегистрироваться для просмотра ссылки.
denis84
BeLuY @ Сегодня, 10:18 необходимо зарегистрироваться для просмотра ссылки ,
с помощью обработки (написать), которая считает строки документа Вы их отметите и отправите в производство. И не надо будет трогать (изменять) конфигурацию
BeLuY
denis84 @ Сегодня, 10:55 необходимо зарегистрироваться для просмотра ссылки ,

Данный документ уже был подвержен доработкам, так что ничего страшного, если доработать еще немного. А писать дополнительные обработки - это не совсем то, что нам нужно
BeLuY
Нашел решение:

1. В таблицу на форме добавляем колонку, назовем ее "Выбор", ЭлементУправления устанавливаем "Поле выбора"
2. В таблице на форме (в моем случае Товары) создаем обработчики ПриВыводеСтроки и ПриИзмененииФлажка
3. В модуль формы, в раздел оглашения глобальных переменных добавляем переменную ВыбраннаяНоменклатура, в самом конце модуля инициализируем эту переменную ВыбраннаяНоменклатура = Новый Соответствие

В итоге, модуль формы должен содержать:

// Глобальные переменные
Перем ВыбраннаяНоменклатура;

//------------------------------------------------------

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

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

//------------------------------------------------------

// Инициализация глобальной переменной
ВыбраннаяНоменклатура = Новый Соответствие;


Немного колхоз, но мне помогло)

Спасибо за внимание)

PS: к модератору - а я могу данное решение внести в первое сообщение темы? Кнопка "Редактировать" отсутствует...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.