Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Преобразование значения к типу Булево не может быть выполнено

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

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

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

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

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


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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.