Имя: Пароль:
1C
1С v8
v8: Оператор "Если"
0 Dark_Warrior
 
28.03.13
20:25
Всем доброго вечера. У меня к вам вопрос - как организовать сложное условие? Что-то вроде этого, только рабочее)

Если НЕ Впол.Наименование = "Сафронова Ирина Анатольевна" или "Аганеева" или "Новый"  или "Фокеева"
            тогда

где Впол=Справочники.Пользователи.Выбрать();
1 Ёпрст
 
28.03.13
20:27
скобочки поставь
2 bizon2008
 
28.03.13
20:27
И в чем проблема?
3 Ёпрст
 
28.03.13
20:27
или <> + И во всех условиях
4 Dark_Warrior
 
28.03.13
20:29
(2) Проблема в {ОбщийМодуль.Дополнительный.Модуль(33)}: Преобразование значения к типу Булево не может быть выполнено
5 Птица
 
28.03.13
20:29
Если Петя<>"Вася" И Петя <> "Нина Ивановна" и Петя <> "Новый" Тогда
6 bizon2008
 
28.03.13
20:30
(4)Если НЕ (Впол.Наименование = "Сафронова Ирина Анатольевна") или (Впол.Наименование = "Аганеева") или (Впол.Наименование = "Новый")  или (Впол.Наименование = "Фокеева" ))
А так?
7 bizon2008
 
28.03.13
20:31
(6)Блин. после НЕ ((.
8 Fragster
 
гуру
28.03.13
20:32
все в массив, в условии - Массив.Найти() = Неопределено
9 Dark_Warrior
 
28.03.13
20:35
(6) не прокатило. условие работает только по Сафроновой
10 Aleksey
 
28.03.13
20:36
Исключение = новый Массив;
Исключение.Вставить("Иванов");
Исключение.Вставить("Петров");
...

Если Исключение.Найти(Впол.Наименование) = неопределено тогда
  //ненайден в исключении
11 bizon2008
 
28.03.13
20:37
(9)Код покажешь? Или так и будем в угодайку играть?
12 Dark_Warrior
 
28.03.13
20:39
(11) угадайка сработала) Сработал вариант(5) со скобочками)
13 bizon2008
 
28.03.13
20:39
(10)Как вариант. Только медленно.
14 Aleksey
 
28.03.13
20:40
(13) почему?
15 bizon2008
 
28.03.13
20:41
(14)Ну дык, метод найти тормоз. Там походу тупо перебором ищут.
16 НафНаф
 
28.03.13
20:41
быдлокодеры они такие
17 Dark_Warrior
 
28.03.13
20:41
(13) думаю не критично. процедура и так запускается при старте программы, и меняет дату запрета редактирования почти всем пользователям, так что с этим условием, или безнего, разница будет мало заметна
18 bizon2008
 
28.03.13
20:41
(12)Страшно представить что там за коде, если его в догадку пишут.
19 Dark_Warrior
 
28.03.13
20:42
и да - всем большое спасибо за помощь
20 Dark_Warrior
 
28.03.13
20:42
мопед не мой, я добавил ток это условие
21 bizon2008
 
28.03.13
20:43
(17)Ню-ню. С одним может и мало, но оно же у тебя программе не одно. Видал я конфу которая 18 минут загружалась.
22 bizon2008
 
28.03.13
20:44
(20)Это дикий костыль. Ты условие-то не забудь после нового добавления пользователя править.
23 Dark_Warrior
 
28.03.13
20:45
(21) сам я даже до быдлокодера еще не дорос. меня попросили - я сделал, этим пользователям дата автоматически  редактироваться не будет. пользователь доволен, я спокоен
24 Aleksey
 
28.03.13
20:46
(15) А если через соответствие

Исключение = новый соответствие;
Исключение.Вставить("Иванов",1);
Исключение.Вставить("Петров",1);
...

Если Исключение.Получить (Впол.Наименование) = неопределено тогда
25 unkairosed
 
28.03.13
20:46
(20) а если завтра Сафронова выйдет замуж / разведется и сменит фамилию, как-то, батенька, мягко говоря, не универсально, а грубо и справедливо говорил (16)
26 Dark_Warrior
 
28.03.13
20:46
(22) про костыль согласен. править не придется, только этим четырем пользователям нужно такое условие
27 Dark_Warrior
 
28.03.13
20:48
(25) а я этого и не отрицал. на время этой заплатки хватит, пользователь успокоится, а там глядишь и нормальное решение реализую
28 orefkov
 
28.03.13
21:54
(24)
Можно подумать, цепочка из Или  ищет по другому.
29 фобка
 
28.03.13
22:01
Если Не (тото = сёто или тото = сёто2 или ..) Тогда

либо

Если не тото = сёто и не тото = сёто2 и не ... Тогда
30 фобка
 
28.03.13
22:04
да и списком можно..
СписокСёто = Новый списокЗначений,
СписокСёто.Добавить("сето");
СписокСёто.Добавить("сето2");
...
Если СписокСёто.Найти(Тото) = Неопределено Тогда //тут см ситаксис 8ки
31 zladenuw
 
28.03.13
22:08
(30) и
СписокСёто.Найти(Сокрлп(Тото))
32 фобка
 
28.03.13
22:18
(31) возможно)) тогда еще вариант

Сёто = "Сафронова Ирина Анатольевна; Аганеева; Новый; Фокеева"
Если Найти(Сёто,СокрЛП(Тото)+";") = 0 Тогда
33 fenement
 
28.03.13
22:56
(27) Добавь булево "УстанавливатьДатуЗапретаПриСтарте" справочник пользователи.
Или если у них роли отличаются от других пользователей - привяжи к ролям.
34 mikecool
 
28.03.13
23:12
пятница - завтра!
2 + 2 = 3.9999999999999999999999999999999...