Имя: Пароль:
1C
 
Как сделать реквизит недоступным?
🠗 (Волшебник 18.04.2025 13:58)
0 AlenaA
 
10.04.25
21:13
При создании записи справочника кандидатов необходимо сделать реквизит «Возраст» недоступным для редактирования при незаполненном реквизите «Пол»
1 Kuzmich123
 
10.04.25
21:21
(0) Вау! Не знал, что возраст зависит от пола. Миста образовательная!

Как изменить доступность реквизита в Управляемой Форме
2 AlenaA
 
10.04.25
21:37
(1) Я уже так пробовала, не получается почему то
3 Garykom
 
гуру
10.04.25
21:53
Мне кажется это дискриминация кандидатов!
4 Fragster
 
гуру
10.04.25
21:58
можно условным оформлением сделать
5 AlenaA
 
10.04.25
22:11
(4) Мне не нужен цвет фона и тд
Мне нужно чтобы при создании контакта у меня поле Возраст было недоступным, если не заполнено поле Пол
6 PR
 
10.04.25
23:31
(0) Что, ТолькоПросмотр не работает?
7 Доминошник
 
11.04.25
00:29
(0) И что было непонятно здесь https://forum.infostart.ru/forum9/topic325542/ рассказано???
8 Ненавижу 1С
 
гуру
11.04.25
08:20
(0) возраст постоянно меняется, надо дату рождения или хотя бы год
9 Ненавижу 1С
 
гуру
11.04.25
08:21
(5) Элементы.Возраст.ТолькоПросмотр = Не ЗначениеЗаполнено(Объект.Пол);
10 Волшебник
 
11.04.25
08:25
(0) у Вас в личке пол неправильный
11 AlenaA
 
11.04.25
10:31
(7) Если бы все работало, я бы не задавала этот вопрос здесь, много информации перебрала и много вариантов, ничего не дает то, что мне нужно
12 Ёпрст
 
11.04.25
10:32
Реинкарнация Светы Семененко
13 АгентБезопасной Нацио
 
11.04.25
10:37
(12) да что-то много в последнее время разных, хм, "реинкарнаций"...
14 okmail
 
11.04.25
10:38
(12) честно говоря, не слишком удачная. Света была топ
15 Волшебник
 
11.04.25
10:43
(11) Хватит врать, тупой бот
16 Prog_man
 
гуру
11.04.25
11:14
(0) в процедуре при создании на сервере

Элементы.Возраст.Доступность = ЗначениеЗаполнено(Объект.Пол);

далее

в процедуре при изменении у реквизита "Пол"
Элементы.Возраст.Доступность = ЗначениеЗаполнено(Объект.Пол);
17 Волшебник
 
11.04.25
11:06
(16) Уменьшайте когнитивную сложность:
Элементы.Возраст.Доступность = ЗначениеЗаполнено(Объект.Пол);
18 Ненавижу 1С
 
гуру
11.04.25
11:09
(16) вы реально решили два раза написать один и тот-же код?
ну и как написали в (17) - все гораздо проще
и да, лучше ограничиться свойством ТолькоПросмотр чем Доступность
19 maxab72
 
11.04.25
11:11
(0) Ничего блокировать не надо. Лучше повесить на событие изменение поля "Возраст" предупреждение, если пол не заполнен, то "Не надо врать, возраст сотрудника без пола не более 7-8 недель от зачатия!"
20 Волшебник
 
11.04.25
11:13
(19) Как правильно заметили в (8), поля "Возраст" вообще не должно быть. Это должна быть расчётная величина от даты или года рождения. Например, как на мисте в личных карточках.
21 Prog_man
 
гуру
11.04.25
11:13
(17) согласен, так красивше)
22 maxab72
 
11.04.25
11:14
"Это должна быть расчётная величина от даты или года рождения." фильм "Формула любви" вспоминается сразу...
23 AlenaA
 
11.04.25
12:00
Я сама понимаю, что поле Возраст не очень то корректно в данном случае, но такого задание мне дали
24 АгентБезопасной Нацио
 
11.04.25
12:01
Если "пол" не заполнен, то возраст должен быть отрицательным.
25 Волшебник
 
11.04.25
12:01
(23) Откажитесь от выполнения задания. Скажите, что постановщик задачи — идиот. Если хотите, я Вам выпишу справку.
26 maxab72
 
11.04.25
12:05
(25) Они собираются замораживать сотрудников, и тогда их биологический возраст не будет меняться столетиями. Если ТС откажется - ее тоже заморозят, но в мааааленьком холодильничке.
27 AlenaA
 
11.04.25
12:24
(26) Никого не собираемся замораживать)
Если пол выбран, то возраст можно написать
Если не выбран пол, то возраст недоступен для редактирования

Сделала чтобы поле Возраст было недоступным с помощью кода
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если Элементы.Возраст.Доступность = (Элементы.Пол <> неопределено) Тогда
         Элементы.Возраст.Доступность=Ложь;
    КонецЕсли;  
КонецПроцедуры

Теперь пытаюсь понять как сделать чтобы поле возраст стало доступным при заполненном реквизите Пол
28 Волшебник
 
11.04.25
12:31
(27) Какая милая бредогенерация программного кода
29 maxab72
 
11.04.25
12:35
(27) "Теперь пытаюсь понять как сделать чтобы поле возраст стало доступным при заполненном реквизите Пол" Закрыть и снова открыть карточку сотрудника.
30 AlenaA
 
11.04.25
12:39
(28) Код который вы указали в комментарии 17 тоже делает поле возраст недоступным, но он также недоступен при заполнении реквизита пол
31 DrZombi
 
гуру
11.04.25
12:41
(0) Лучше сделать проверку, после редактирования не заполненность полей. Наверняка у вас есть обработчик нажатия кнопки "Записать", "применить" или еще чего.

Вот там и лепите свои проверки, на то, как пользователь заполнил или выполнил свою работу.

Излишне заморачиваться открытием или закрытием полей, без лишней надобности... т.е. затрат много, толку ноль, все ровно во все варианты фантазий управляющих не обхватите :)
32 AlenaA
 
11.04.25
12:42
(29) Так возраст доступен да, но возможно ли сделать это все сразу при создании контакта, а не через редактирование карточки?
33 DrZombi
 
гуру
11.04.25
12:42
+ А еще пользователь может заполнить, а потом удалить пол. Как вам такой вариант?

"Пилите Шура, они золотые" (с)
34 Мультук
 
гуру
11.04.25
12:43
(27)

Может всё же пойти по пути повышения демографии в отдельно взятой стране ?
35 DrZombi
 
гуру
11.04.25
12:44
+ А еще пользователь может ввести все, а потом понять, что ненужно было это.

1С пошло простым путем, при записи справочников, очищает поля, которые не должны заполняться при определенном варианте.
Но эти моменты не уследить, и 1С так же забывает про это :)
36 DrZombi
 
гуру
11.04.25
12:44
(35) Под 1С я имею ввиду разработчиков конфигураций :)
37 DrZombi
 
гуру
11.04.25
12:45
(32) Можно, делайте. У 1С есть такой объект "Расширение", так что можно даже не снимать конфигурацию с поддержки :)
38 Ненавижу 1С
 
гуру
11.04.25
12:47
(27) откровенно говоря Ваш код можно сократить до

Элементы.Возраст.Доступность=Ложь;

Вам уже давали ответы, но Вы их игнорируете
39 Волшебник
 
11.04.25
12:53
(30) не врите
40 Ненавижу 1С
 
гуру
11.04.25
12:59
(30) ну так он должен вызываться как при создании/чтении формы, так и при изменении пола
41 Prog_man
 
гуру
11.04.25
13:02
(30) в процедуре при изменении у реквизита "Пол"
Элементы.Возраст.Доступность = ЗначениеЗаполнено(Объект.Пол);
42 Garykom
 
гуру
11.04.25
13:31
(24) это зависит от страны
в некоторых возраст считают от зачатия
а в некоторых +1 год от даты рождения
типа родился = возраст 1 год уже!
43 Волшебник
 
11.04.25
13:57
(40) >> при изменении пола

Вы давайте, без этих вот...

правильно: при указании пола
44 Мультук
 
гуру
11.04.25
13:57
Надеюсь пол это не Булево ?
45 Волшебник
 
11.04.25
14:07
Для русских имён пол можно эвристически определять по имени. Точность 99%, если использовать следующие правила
1. если заканчивается на "а", "я" - женский, исключения Никита, Данила, Гаврила, Илья, Кузьма, Фома (м)
2. если заканчивается на другую букву, то мужской, исключение "Любовь" (ж)
46 АгентБезопасной Нацио
 
11.04.25
14:08
(43) ачотакова? Перечисление:{Деревянный/линолеумный/паркетный/плиточный/заливной}
47 Волшебник
 
11.04.25
14:08
(46) Это не пол, а покрытие пола
48 maxab72
 
11.04.25
14:22
(44) Пол? - ДА!
49 Волшебник
 
11.04.25
14:24
(48)
Я достаю из широких штанин
Длиннее и толще пожарного шланга
Смотрите ! Завидуйте !!
Я - ГРАЖДАНИН !
А не какая-нибудь гражданка...
50 Kigo_Kigo
 
14.04.25
15:11
Чем ответ в (16) не нравится? Яснее некуда
51 Ненавижу 1С
 
гуру
18.04.25
13:20
(50) только не в ПриСоздании, а при Чтении, ну и ПослеЗаписи не забыть (в случае, если данные меняются в модуле объекта)
52 Bigbro
 
18.04.25
13:54
(48) - male, female.. sometimes camel (c)
53 maxab72
 
18.04.25
13:57
(52) Five times a day...