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