Приветствую!
Нужен флажок в табличной части, например справочника, для выполнения некоторых действий с отобранными строками. Сохранения состояния флажков не требуется.
Добавляю колонку реквизита с типом - Булево, флажок появляется. И вроде бы все как надо, но при интерактивной установке флажков при закрытии формы появляется запрос о сохранении изменений. Причем при программной установке флажков вопроса о сохранении изменений нет. Можно ли по-простому исправить ситуацию? Включение отбора не прижилось, нужны именно хорошо заметные флажки.
---
Чтобы по щелчку на крыжик в таблице справочник не запрашивал сохранение, добавьте обработчик события
```1c
    &НаКлиенте
    Процедура ВидыНоменклатурыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)

    ИмяКолонки = ЭтаФорма.Элементы.ВидыНоменклатуры.ТекущийЭлемент.Имя;

    Если ИмяКолонки = "ВидыНоменклатурыРеквизит1" Тогда
    ЭтаФорма.Модифицированность = ложь;
    КонецЕсли;

    КонецПроцедуры
```
---
да, как-то в обычной программной рутине и не обращаешь на такие нюансы внимания,
вот ваша база, пришлось перехватить тройку событий, для корректной работы признака Модифицированности.
посмотрите может подойдет
---
Сделал так:
```1c
    &НаКлиенте
    Процедура ВидыНоменклатурыПередНачаломИзменения(Элемент, Отказ)
    Если Элемент.ТекущийЭлемент.Имя = "ВидыНоменклатурыРеквизит1" Тогда
    Отказ = Истина;

    Элемент.ТекущиеДанные.Флажок = Не Элемент.ТекущиеДанные.Флажок;
    КонецЕсли;
    КонецПроцедуры
```

Вроде работает. ВидыНоменклатурыРеквизит1, так у автора элемент флажка на форме называется.
---
Сохранения состояния флажков не требуется.

вложение не смотрел, но предположу что флажки - это реквизит объекта?

если так, то сделай те их реквизитом формы..
(есть такая возможность, на форме добавить реквизиты табличным частям)
---
В обработчике события при изменении колонки "Флажка", работайте со свойством ЭтаФорма.Модифицированность
---
Этот способ ничего не меняет к сожалению - если отрабатывать событие ПриИзменении флажка. Но в обработчике ПриОкончанииРедактирования таблицы формы работает как нужно, спасибо!
---
Смотрите на (3)
ЭтаФорма.Модифицированность = Ложь;
---
Галку "Изменяет данные" уберите
---
в упр.формах по этому элементу нет такой галки: Изменяет данные :-(
---
Чтобы по щелчку на крыжик в таблице справочник не запрашивал сохранение, добавьте обработчик события
```1c
    &НаКлиенте
    Процедура ВидыНоменклатурыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)

    ИмяКолонки = ЭтаФорма.Элементы.ВидыНоменклатуры.ТекущийЭлемент.Имя;

    Если ИмяКолонки = "ВидыНоменклатурыРеквизит1" Тогда
    ЭтаФорма.Модифицированность = ложь;
    КонецЕсли;

    КонецПроцедуры
```
---
А если перед этим были изменены важные реквизиты и Модифицированность была Истина? Все равно сбросите её в Ложь?

Ответ уже дан в (2) - в такой ситуации надо использовать реквизиты формы, у них есть свойство "Сохраняемые данные" - именно оно влияет на ведение флага "Модифицированность". А то, что является непосредственным реквизитом Объекта (на уровне метаданных) - ВСЕГДА будет изменять флаг "Модифицированность", ибо данные объекта всегда сохраняемые (на то он и Объект).

UPD. Если реквизит формы добавлен в качестве колонки к реальной ТЧ Объекта - попробуйте снять у него флаг "Использовать всегда".
---
Не понимаю, как в одной таблице одновременно разместить поле реквизита формы и поле реквизита объекта. У таблицы есть свойство ПутьКДанным. Пусть это свойство ссылается на Объект. На таблицу формы я добавляю поле. Для того, чтобы можно было выбрать Вид этого поля нужно заполнить его ПутьКДанным, а кроме как сослаться на реквизиты Объекта возможности нет.
---
На таблицу формы я добавляю поле. а кроме как сослаться на реквизиты Объекта возможности нет.
Все верно. А вы раскройте в дереве реквизитов Объект, встаньте на нужную ТабличнуюЧасть и нажмите сверху (или ПКМ) "Добавить колонку реквизита". Колонка добавится в таблицу красным цветом. И вот на неё вы будете ссылаться из табличного поля формы. А сохраняться она не будет.
---
В той конфигурации, что я выложил в главном посте так и было изначально сделано, но тем не менее Вопрос при сохранении возникает
---
Можно еще добавить в ваш код строчку, чтобы не запрашивало сохранение на кнопках
```1c
    Функция УстановкаФлажков(Флаг=Истина)
    Для Каждого Стр ИЗ Объект.ВидыНоменклатуры Цикл
    Стр.Флажок=Флаг;
    КонецЦикла;
    ЭтаФорма.Модифицированность = ложь;
    КонецФункции
```
---
да, как-то в обычной программной рутине и не обращаешь на такие нюансы внимания,
вот ваша база, пришлось перехватить тройку событий, для корректной работы признака Модифицированности.
посмотрите может подойдет
---
А если перед этим были изменены важные реквизиты и Модифицированность была Истина? Все равно сбросите её в Ложь?Согласен. Не подумал об этом. Мой вариант не подходящий.
---
Qupkbe. В вариант Флажки.dt от soft_wind добавьте обработчик события
```1c
    &НаКлиенте
    Процедура ВидыНоменклатурыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    ЭтоФлажок = Ложь;
    КонецПроцедуры
```
 и не будет вылетать ошибка при добавлении строки.
Мой вариант не корректный, т.к. затирает Модифицированность при изменении реальных данных. А этого делать очень не надо.
---
Понятно
---
да, да, не протестил этот вариант,
событие перед началом добавления, вроде можно и не использовать
просто в конце модуля формы, после всех процедур, добавить команду

...
ЭтоФлажок = Ложь; //начальная инициализация переменной
---
Сделал так:
```1c
    &НаКлиенте
    Процедура ВидыНоменклатурыПередНачаломИзменения(Элемент, Отказ)
    Если Элемент.ТекущийЭлемент.Имя = "ВидыНоменклатурыРеквизит1" Тогда
    Отказ = Истина;

    Элемент.ТекущиеДанные.Флажок = Не Элемент.ТекущиеДанные.Флажок;
    КонецЕсли;
    КонецПроцедуры
```

Вроде работает. ВидыНоменклатурыРеквизит1, так у автора элемент флажка на форме называется.
---
Имя не то, но работает отлично!
---
Имя то, которое было в конфигурации из шапки: