Имя: Пароль:
1C
1С v8
Преобразование значения к типу Булево не может быть выполнено
,
0 Ilnazio
 
02.08.20
14:56
Добрый день. В структуре получаю кривую должность сотрудника, задача в коде при получении должности "бугагалтер" или "буггалтер" получить на выходе "бухгалтер"(а).  Код:

Должность = ТекЭлемент.Должность.Наименование;

Если Должность = "бугагалтер" или "буггалтер" Тогда
Должность = "Невролог";    
ИначеЕсли Должность = "прогер" тогда
Должность = "Программист";    

В отладке останавливаюсь - переменная должность принимает значение "бугагалтер" с типом строка. В чем может быть проблема?
1 Ilnazio
 
02.08.20
14:57
(0) Сорян, там получаю "Невролог"(а). Не суть, задача та же)
2 Ilnazio
 
02.08.20
14:59
(0) Когда в условие попадаю значение должности пропадает почему-то
3 Ilnazio
 
02.08.20
15:02
Не пропадает, не туда посмотрел.
4 Галахад
 
гуру
02.08.20
15:08
Как думаешь, что должна делать одинэска с таким условием?
Если "буггалтер" Тогда
5 acht
 
02.08.20
15:16
(4) Это же очевидно.
Тогда Должность = "Погромисд";
6 Ilnazio
 
02.08.20
15:16
(4) Так я же сравниваю значение должности, почему в булево то уходит
7 Ilnazio
 
02.08.20
15:17
(5) Вроде также написал ж
Должность = "Невролог";
8 acht
 
02.08.20
15:17
(6) Значение должности - ссылка. Наименование - строка
9 acht
 
02.08.20
15:18
(7) Тут тогда нужно Должность = "Психолог";
10 Aleksey
 
02.08.20
15:18
(7) Кто тебя учил так условия писать?
Если (Должность = "бугагалтер") или (Должность = "буггалтер") Тогда
11 Ilnazio
 
02.08.20
15:20
(8) У должности если остановится в отладке тип - строка
12 Ilnazio
 
02.08.20
15:20
(10) Алексей, никто не учил, вот учусь, думал что так можно. Почему нельзя?
13 Aleksey
 
02.08.20
15:21
(12) потому что "буггалтер" - тип строка, а не булево
14 Aleksey
 
02.08.20
15:22
булево алгебру проходили? там только истина и ложь, ну никак не строка
15 MishaD
 
02.08.20
15:22
Если Должность = "бугагалтер" или "буггалтер" Тогда
После или должно другое условие идти. "буггалтер" это не условие.
16 Ilnazio
 
02.08.20
15:23
(15) Догнал походу
17 acht
 
02.08.20
15:24
(12) Это тебе не деревенская улица, где можно все, что не запрещено. Тут, извини, можно только то, что можно. Поэтому ответ на "почему нельзя" - потому.
18 Ilnazio
 
02.08.20
15:28
(15) Спасибо, исправил, заработало.
(17)  =)
19 Ilnazio
 
02.08.20
15:28
(14) Спасибо
20 quest
 
02.08.20
19:27
А жаль что в 1С нельзя сделать так

Если Наименование в ("строка1", "строка2") тогда
21 Aleksey
 
02.08.20
19:48
(20) Можно
22 Aleksey
 
02.08.20
19:49
Если Найти(строка1+строка2,"Наименование") > 0 тогда
23 acht
 
02.08.20
19:55
(22) Тогда уж Найти(строка1 + "," + строка2 + ",", "Наименование" + ",")
Да и то с ограничениями.
24 Aleksey
 
02.08.20
20:00
(23) с каким? При условии что у него поиск по уникальным значениям. Или ты бошься что при поиски, "сто" он найдет севастополь? Тогда да можно заэкранировать слова спецсимволами
25 Aleksey
 
02.08.20
20:03
Можно еще через список значений
Типа
СписокЗамен.Добавить("Невролог","бугагалтер");
СписокЗамен.Добавить("Невролог","буггалтер");
СписокЗамен.Добавить("Программист","прогер");


И тогда
Должность = СписокЗамен.Получить("бугагалтер");
26 2S
 
02.08.20
20:12
(0) надо было к пятнице выложить
27 acht
 
02.08.20
20:29
(25) Если экранировать в полный рост, то проверять
НСтр("бугагалтер='Невролог';буггалтер='Невролог';прогер='Программист'", "бугагалтер") <> ""
28 Aleksey
 
02.08.20
20:31
ну может это 7-ка...
29 acht
 
02.08.20
20:34
(28) В семерке типа булево не было. Так-то =)
30 Aleksey
 
02.08.20
20:50
(29) ? А кто говорит про булево? А булевая алгебра была в 7-ке
31 acht
 
02.08.20
20:56
(30) В названии темы - текст ошибки. Так-то =)
32 Злопчинский
 
02.08.20
22:06
Если (Лев(Должность,2)+Прав(Должность,1))="бур" Тогда
  Должность = "Невролог";
КонецЕсли;
.
сжует всякие кривые написания булгахтеров...
правда, под невролога может попасть "бульдозерист-дизайнер"
33 hhhh
 
02.08.20
23:18
(32) она ведь и "бухгалтер" сжует. Поэтому не то.
34 novichok79
 
03.08.20
00:09
ахахахахаха, бугагалтер. вроде х***ня, а смешно.
35 Злопчинский
 
03.08.20
00:55
(33) это уже частности. может у них все булгахтеры - неврологи
а если "бухгалтера" и "бугагалтера" переведет в "бухгалтера" - то и ок.
36 hhhh
 
03.08.20
05:50
(35) если пользоваться методом дедукции, у них есть бухгалтер. А эти 2 строчки свободные. хотят туда записать невролога
37 craxx
 
03.08.20
06:02
(12) "потому что нельзя быть на свете красивым таким" (с)
38 Aleksey
 
03.08.20
10:58
(31) и не поспоришь
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан