Имя: Пароль:
1C
1С v8
Флажок с тремя значениями "Да", "Нет", "Неопределено"
0 zelenprog
 
07.09.23
17:02
Добрый день!

Делаю обработку по проверке справочника.
Пользователи с помощью обработки будут проверять элементы справочника, и по результатам проверки устанавливать флажок - удовлетворяет ли элемент необходимым условиям или нет.
Обработка просто показывает список элементов справочника, отобранных для проверки и еще не проверенных.
Для хранения флажка, чтобы не менять основную конфигурацию, я сделал Расширение и Регистр сведений в расширении.

Не могу определиться с типом значения флажка.
По идее тип флажка должен быть "Булево". Однако, пока пользователь не проверил элемент, у этого флажка должно быть значение "Неопределено".
Если установить тип "Булево", 1С-ка не дает использовать значение "Неопределено". Она считает пустое значение флажка в регистре как "Ложь".

Как лучше сделать? Какой тип выбрать для флажка?
И как его правильно отображать пользователю, чтобы пользователь тоже понимал, что есть три значения "Да", "Нет", "" (неопределено).
1 yopQua
 
07.09.23
17:06
Число?
2 unbred
 
07.09.23
17:06
(0) что тебе мешает спросить у регистра- есть ли запись, и если нет- тогда проверять?
3 yopQua
 
07.09.23
17:09
собственно помоему логику можно упростить - элемент не соответствует, пока не будет доказано обратное (установлена галка). Неопределено тогда не нужно.
4 AlexeyKh
 
07.09.23
17:09
делайте строкой (выбор из списка значений) уж куда понятнее будет для пользователя
"Выбрать"
"Обработать"
"ХЗ"
"ДаНуЕЕ"
"Отложить"
и тд.
5 yopQua
 
07.09.23
17:10
а можно два флажка Обработан и Соответствует
6 yopQua
 
07.09.23
17:10
на любой вкус в общем решения есть
7 zelenprog
 
07.09.23
17:12
(3) "Неопределено" нужно обязательно.
"Неопределено" - это признак того, что с элементом еще не "поработали", то есть не проверили.
"Да", "Нет" - это результат проверки, который говорит о том, что его проверили.

Пользователь должен видеть все три значения, чтобы понимать "состояние" проверки элемента справочника.
8 zelenprog
 
07.09.23
17:12
(5) Как-то громоздко получается
9 Ногаминебить
 
07.09.23
17:16
Так написали же выше. Нет записи в регистре - это и есть неопределено.
10 PR
 
07.09.23
17:16
(8) Ну сделай перечисление Булево со значениями Да и Нет
11 Ногаминебить
 
07.09.23
17:18
Видеть же пользователь скорее всего будет результат запроса, объединяющий регистр со справочником. Вот в этот результат и вывести Да/Нет/Неопределено(через естьнулл).
12 zelenprog
 
07.09.23
17:28
(11) Как в этом случае вывести пользователю "Неопределено" и работать с ним?

Если сделать в ТЧ обычный флажок, то по этому флажку нифига не понятно.

Если сделать полем ввода, в которое выводить одно из трех значений (Да/Нет/Неопределено), то как пользователь будет редактировать это поле?
13 Ногаминебить
 
07.09.23
17:31
(12) Пользователь не может и не должен редактировать это поле. Это ж результат запроса, а не реквизит. Он должен выполнять какие-то действия, результатом которых станет появление в регистре сведений записи с установленным значением булевого реквизита.
14 Prog111
 
07.09.23
18:00
Перечисление с тремя вариантами. И тумблер для выбора.
15 Ногаминебить
 
07.09.23
18:06
И в регистр предварительно занести по всем элементам справочника записи с третьим значением этого перечисления, а потом еще при появлении нового элемента не забывать ее добавлять? "Как-то громоздко получается." :)
16 Garykom
 
07.09.23
19:58
(0) Два флажка сделай
17 Garykom
 
07.09.23
19:59
(16)+ Хотя Обработано лучше не просто булево а Кем добавить
Т.е. Пользователя записывать, если обработано
18 Bigbro
 
07.09.23
20:02
булево заполнено тогда данет не заполнено - неопределено*?
19 MWWRuza
 
07.09.23
21:39
(0) И как его правильно отображать пользователю, чтобы пользователь тоже понимал, что есть три значения "Да", "Нет", "" (неопределено).

Храните как хотите, вариантов куча, а пользователю можно просто не показывать этот флажок, делать его не видимым, пока не проверен. Хотя, этот вариант для ТЧ не пойдет, просто на форме - да, не проверено - нет флажка, проверили - появился, с соответствующим состоянием. Но, в ТЧ надо что-то по другому придумывать.
20 RomaH
 
08.09.23
04:47
я делал через перечисление
Да/Нет/Не знаю
21 zelenprog
 
08.09.23
09:02
(13) >> Пользователь не может и не должен редактировать это поле. Это ж результат запроса, а не реквизит. Он должен выполнять какие-то действия, результатом которых станет появление в регистре сведений записи с установленным значением булевого реквизита.

Пользователь должен редактировать это поле. Он проверяет соответствие элемента справочника некоторым требованиям, и потом явно (сам ручками) указывает флажок соответствия "Да" или "Нет".
Дальнейшая логика работы с этим элементом зависит от значения этого флажка: если "Да" - выполняем алгоритм (1), если "Нет" - выполняем алгоритм (2), если "Неопределено" - ничего не делаем и ждем пока пользователь определится.
22 zelenprog
 
08.09.23
09:03
(19) >> Но, в ТЧ надо что-то по другому придумывать.

Кстати...
Напомню, что "проверка" справочника выполняется в форме, которая отображает список этих элементов.
Этот список формируется при открытии формы с помощью запроса по справочнику с левым соединением по регистру проверки.

Просто некоторые решения, которые предлагались выше, они в списке не будут работать.
Например:
(14) >> Перечисление с тремя вариантами. И тумблер для выбора.

Как тумблер реализовать в списке?
23 zelenprog
 
08.09.23
09:03
(16),(17)
Да, наверно придется делать два флажка.
24 zelenprog
 
08.09.23
09:05
(18) >> булево заполнено тогда данет не заполнено - неопределено*?

Как понять, что реквизит в регистре не заполнен?
25 Donkey_hot
 
08.09.23
09:10
(24) Напомните, а чем флажок с тремя состояниями не устраивает?
26 zelenprog
 
08.09.23
09:13
(25) >> чем флажок с тремя состояниями не устраивает?

До конца не ясен способ реализации такого флажка.

1) Какой тип использовать для этого флажка? Перечислением с тремя значениями?
2) Как отображать в списке? Полем ввода?
3) Как менять значение этого флажка в списке?
27 Donkey_hot
 
08.09.23
09:14
(26) Расширение поля формы для поля флажка (Form field extension for a check box field)

ТриСостояния (ThreeState)

Доступен, начиная с версии 8.2.

Использование:

Чтение и запись.
Описание:

Тип: Булево.
Содержит признак того, что флажок может иметь три возможных состояния. При этом типом редактируемого значения является Число.
Истина - состояние разрешено.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший