Добрый день. Есть необходимость добавить колонку в таблицу на форме документа - некий признак (флажок) выбора необходимых строк для дальнейшей обработки, но данное значение хранить не нужно. Как можно добавить этот флажок, чтобы не создавать реквизит в табличной части? Даже если создать необходимый реквизит, то при установке флажка будут изменятся данные документа и, при закрытии документа, будет запрашивать сохранение.
Другими словами: необходима возможность открытия документа, выбора необходимых запчастей и перемещение их в производство. После чего закрыть документ без каких-либо сохранений
Платформа 8.3.8, Обычное приложение.
Спасибо!
26.05.2021: нашел https://pro1c.org.ua/topic/flazhok-v-tablichnoj-chasti-66513/?view=findpost&p=173444.
BeLuY @ Сегодня, 10:18
,
с помощью обработки (написать), которая считает строки документа Вы их отметите и отправите в производство. И не надо будет трогать (изменять) конфигурацию
denis84 @ Сегодня, 10:55
,
Данный документ уже был подвержен доработкам, так что ничего страшного, если доработать еще немного. А писать дополнительные обработки - это не совсем то, что нам нужно
Нашел решение:
1. В таблицу на форме добавляем колонку, назовем ее "Выбор", ЭлементУправления устанавливаем "Поле выбора"
2. В таблице на форме (в моем случае Товары) создаем обработчики ПриВыводеСтроки и ПриИзмененииФлажка
3. В модуль формы, в раздел оглашения глобальных переменных добавляем переменную ВыбраннаяНоменклатура, в самом конце модуля инициализируем эту переменную ВыбраннаяНоменклатура = Новый Соответствие
В итоге, модуль формы должен содержать:
// Глобальные переменные
Перем ВыбраннаяНоменклатура;
//------------------------------------------------------
// Описание обработчика "ПриВыводеСтроки"
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
// Отображаем флажок в ячейке с именем "Выбор"
ОформлениеСтроки.Ячейки.Выбор.ОтображатьФлажок = Истина;
// Производим поиск соответствия "ВыбраннаяНоменклатура" текущей строки
Если ВыбраннаяНоменклатура[ДанныеСтроки] = Неопределено Тогда
// Если соответствие не найдено - флажок снят
ОформлениеСтроки.Ячейки.Выбор.Флажок = Ложь;
Иначе
// Иначе устанавливаем флажок
ОформлениеСтроки.Ячейки.Выбор.Флажок = ВыбраннаяНоменклатура[ДанныеСтроки];
КонецЕсли;
КонецПроцедуры
// Описание обработчика "ПриИзмененииФлажка"
Процедура ТоварыПриИзмененииФлажка(Элемент, Колонка)
// Если состояние флажка меняется в ячейке с именем "Выбор"
Если Колонка.Имя = "Выбор" Тогда
// Производим поиск соответствия "ВыбраннаяНоменклатура" текущей строки
Если ВыбраннаяНоменклатура[Элемент.ТекущаяСтрока] = Неопределено Тогда
// Если соответствие не найдено - создаем новое соотвотствие
ВыбраннаяНоменклатура[Элемент.ТекущаяСтрока] = Истина;
Иначе
// Иначе, если соответствие найдено - удаляем его
ВыбраннаяНоменклатура.Удалить(Элемент.ТекущаяСтрока);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//------------------------------------------------------
// Инициализация глобальной переменной
ВыбраннаяНоменклатура = Новый Соответствие;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua