Имя: Пароль:
1C
1С v8
Как написать код ограничения
,
0 AdamWorld
 
25.12.19
15:44
Я сделал так, создал реквизит ДетиЕсть. Тип Булево Вид: Поле ввода
Записать на него код, что если стоит нет, то я не могу добавить детей, а если да то могу.

Вот код но он не работает, можете помочь
&НаКлиенте
Процедура КолличествоДетейПриИзменении(Элемент)
    Если элемент. ДетиЕсть = "Нет"
    Тогда доступ ограничить           
    Если  элемент. ДетиЕсть = "Да"  
    Тогда отобразить таблицу
    КонецПроцедуры
1 Волшебник
 
модератор
25.12.19
15:46
Если ДетиЕсть = Истина Тогда

или

Если ДетиЕсть = Ложь Тогда
2 Strogg
 
25.12.19
15:51
(1) это если это реквизит формы.
А если реквизит объекта, то, пожалуй,

Если Объект.ДетиЕсть = Истина тогда
...
иначе
...
КонецЕсли
3 Strogg
 
25.12.19
15:52
можно без "= Истина"
4 unenu
 
25.12.19
15:53
ДетиЕсть тип булево не пойдет, там значения такие могут быть
{Да, НеПомню, Надеюсь, АЕслиНайдут}
5 AdamWorld
 
25.12.19
16:05
(2) Разница в чем не  понимаю, между реквизитом формы и реквизитом объекта. Просто новичек
6 Timon1405
 
25.12.19
16:06
"если стоит нет, то я не могу добавить детей, а если да то могу" - эта пять!
7 SSSSS_AAAAA
 
25.12.19
16:08
(5) Неужто так сложно различать форму и объект?
8 Масянька
 
25.12.19
16:08
(5) Обработка, отчет, документ, элемент справочника - это объект.
А форма - это тупо форма.
9 Kigo_Kigo
 
25.12.19
16:08
Это на каком языке вы все это писали?
(4) Это целый справочник статусов надо Бббгггггг
10 AdamWorld
 
25.12.19
16:10
(8) ну я сижу на Формеэлемента и ввожу код ПриИзменении
Наверно это реквезит формы
11 Волшебник
 
модератор
25.12.19
16:10
(8) форма — это тоже объект
12 Масянька
 
25.12.19
16:11
+(8) Для документов и справочников: реквизиты этих объектов есть в конфигураторе. Если на нормальном языке - поля таблицы базы данных. С отчетами и обработками чуть по-другому - они (реквизиты объектов) есть внутри отчета, обработки.
А реквизиты формы - они только на форме.
13 Масянька
 
25.12.19
16:12
(10) Не факт. На форму можно вынести реквизиты объекта.
14 pechkin
 
25.12.19
16:13
(12) хорошее объяснение:
реквизиты объекта - только у объекта. реквизиты формы - только у формы
15 Fish
 
25.12.19
16:13
(11) Это сложно и не по-женски. Для них - это тупо форма :))
16 Fish
 
25.12.19
16:15
(14) А с учётом (11) получается "Ой, всё" :))
17 Волшебник
 
модератор
25.12.19
16:16
(15) Ну ок. Пусть будет форма. Извините.
18 AdamWorld
 
25.12.19
16:17
(1) Все равно не работает (Наверно я что-то не так делаю)
19 Fish
 
25.12.19
16:19
(18) Наверное. Но ты спрашивай. Желательно с подробностями: что говорит отладчик.
20 Kigo_Kigo
 
25.12.19
16:21
(19) Окей гугл"что такое отладчик в 1с ?" :))))
21 Strogg
 
25.12.19
16:21
(18) а (2)  работает?:))))
22 Fish
 
25.12.19
16:22
(20) Отладчик - это тупо отладчик :))
23 Fish
 
25.12.19
16:23
Вангую, что проблема может быть не в условии, а в строках:
    Тогда доступ ограничить          
и
    Тогда отобразить таблицу
24 Масянька
 
25.12.19
16:23
(18) Это у тебя что? Отчет, обработка, справочник и пр.
25 AdamWorld
 
25.12.19
16:51
(24) справочник
26 AdamWorld
 
25.12.19
17:09
(17) &НаКлиенте
Процедура КолличествоДетейПриИзменении(Элемент)
Если элемент.ДетиЕсть = "Нет" тогда
объект.ИмяТабЧасти.Доступность = Ложь
Иначе
объект.ИмяТабЧасти.Доступность = Истина
КонецЕсли
КонецПроцедуры

Вот код, типо если ставить нет Табличная часть блочется, а если Да то выводится ошибка 1с
27 vicof
 
25.12.19
17:11
Доступность может быть у элементов формы, а не у реквизитов объекта.
28 vicof
 
25.12.19
17:11
Про булево тебе уже писали выше
29 Fish
 
25.12.19
17:11
(26) Код не верный и расходится с данными ранее показаниями.
30 vicof
 
25.12.19
17:12
И количество пишется с одной л
31 AdamWorld
 
25.12.19
17:18
(29) я не знаю что правильно , поэтому пытаюсь мб получится
32 Fish
 
25.12.19
17:20
(31) Это неверный подход. Сначала надо изучить хотя бы основы, тогда сразу поймёшь, как делать правильно и главное: почему так правильно.
33 SSSSS_AAAAA
 
25.12.19
17:21
(26)
Процедура КоличествоДетейПриИзменении(Элемент)
объект.ИмяТабЧасти.Доступность = (НЕ элемент.ДетиЕсть = "Нет")
КонецПроцедуры

Не кажется ли вам сей код несколько короче и читабельнее оригинального?
34 Fish
 
25.12.19
17:22
(33) Но от такой читабельности и лаконичности он рабочим не стал :))
35 SSSSS_AAAAA
 
25.12.19
17:26
(34) Разумеется :) Это ж не отладка, а рефакторинг. :)
36 AdamWorld
 
25.12.19
17:48
(33) &НаКлиенте
Процедура ДетейПриИзменении(Элемент)
        Если Объект.ДетиЕсть тогда
        ЭтаФорма.Элементы.Дети.Доступность = Истина
    Иначе ЭтаФорма.Элементы.Дети.Доступность =  Ложь
        КонецЕсли
КонецПроцедуры

ну вот такой крч в итоге у меня
37 Кодер
 
25.12.19
17:50
(36) Сокращается до ЭтаФорма.Элементы.Дети.Доступность =  Объект.ДетиЕсть
38 AdamWorld
 
25.12.19
17:57
(37) ну я не сверх разум) Учту в дальнейших изучения
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс