Имя: Пароль:
1C
1С v8
v8: Представление булевого значения ☑
0 Stim
 
23.07.13
✎
14:14
Передаю параметр в функцию, типа
ВыполнитьМойЗапрос(Истина)

Функция ВыполнитьМойЗапрос(Параметр =Истина)
Запрос = новый запрос
Запрос.текст = " бла-бла
..
ГДЕ Какое-то условие И "+Параметр +" остальная часть запроса";


Несмотря на то, что передается Истина и отладчик показывает Параметр как тип булево значение Истина - в тексте запроса условие трансформируется в
ГДЕ Какое-то условие И Да

Соответственно возникает ошибка выполнения запроса. Как быть?
1 Wobland
 
23.07.13
✎
14:16
&Параметр
2 Wobland
 
23.07.13
✎
14:16
двоечник
3 Wobland
 
23.07.13
✎
14:19
http://infostart.ru/public/115188/
это прекрасно!
4 Stim
 
23.07.13
✎
14:22
Мда. А постарше есть кто-нибудь дома?
5 Поросенок Петр
 
23.07.13
✎
14:25
"Как быть?" - впредь не копрокодить.
6 Wobland
 
23.07.13
✎
14:25
(4) вызывай взрослых
7 Stim
 
23.07.13
✎
14:26
Или просто - почему в отладчике Строка(Истина) в одной базе дает значение "Да", а в другой - "Истина" ?
8 Stim
 
23.07.13
✎
14:26
+ платформа одна и та же
9 Stim
 
23.07.13
✎
14:28
А, тьфу, режим совместимости
10 Stim
 
23.07.13
✎
14:28
Всем спасибо)
11 Wobland
 
23.07.13
✎
14:29
в книгу знаний!
12 Aprobator
 
23.07.13
✎
14:30
однозначно ))) Вся причина в режиме совместимости 0)
13 Aprobator
 
23.07.13
✎
14:32
(10) открой для себя региональные установки информационной базы.
14 Stim
 
23.07.13
✎
14:32
Сказка ложь да в ней намек.
15 Stim
 
23.07.13
✎
14:33
(13) это к сабжу не относится.
16 Aprobator
 
23.07.13
✎
14:35
вообще такое ощущение, что у тебя параметр передается в запрос с использованием Формат(...).
17 Maxus43
 
23.07.13
✎
14:35
(15) как раз это к сабжу относится, а вот пост (0) не относится
18 Maxus43
 
23.07.13
✎
14:35
(16) он не передаёт параметр вобще...
надо + "И &параметр"
19 Stim
 
23.07.13
✎
14:36
(17) неа.
(18) НЕТ!
20 Aprobator
 
23.07.13
✎
14:36
(18) так, а я о чем? Происходит преобразование Параметр в строку согласно Региональным установкам информационной базы.
21 Aprobator
 
23.07.13
✎
14:37
(19) двоечник.
22 ДенисЧ
 
23.07.13
✎
14:38
(19) Тебе там что надо получить? Истина?
Так и пиши " + ?(Параметр, "Истина", Ложь") + "
23 hhhh
 
23.07.13
✎
14:38
(19) вот так надо

Функция ВыполнитьМойЗапрос(Параметр ="Истина")
24 Aprobator
 
23.07.13
✎
14:38
(17) а плин ссорь - не дочитал )
25 Maxus43
 
23.07.13
✎
14:40
да вобще ставить в ГДЕ истина/ложь рядом с И - вобще смысла нет парктически... с ИЛИ бывает нужно)
26 Stim
 
23.07.13
✎
14:41
Жертвы названий переменных. Параметр -это параметр функции, являющийся условием  в запросе. Да, можно его передавать как "Истина", но отчет делали еще в 40е годы, когда 8.2 небыло
27 Aprobator
 
23.07.13
✎
14:42
(26) да пофиг что. Тебе уже объяснили, что происходит с параметр булево, когда ты его со строкой плюсовать начинаешь. Совсем ослеп что ли?
28 Maxus43
 
23.07.13
✎
14:42
у 8.2 по умолчанию представление только поменялось, измени на нужное в (13). Или мы не ищем лёгких путей?
29 acsent
 
23.07.13
✎
14:42
Формат()
30 Stim
 
23.07.13
✎
14:42
+ и в те годы не было таких извращений с представлением булевных значений
31 Aprobator
 
23.07.13
✎
14:43
(30) в каменном веке компов вообще не было и что?
32 Aprobator
 
23.07.13
✎
14:45
тем более что тут не извращение. То что кто то пытается сформировать текст запроса таким образом.
33 Aprobator
 
23.07.13
✎
14:45
+()32) имелось ввиду представление не извращение конечно же.
34 Stim
 
23.07.13
✎
14:47
(31) все правильно - не было компов, не надо было кодить.
Или ты предлагаешь еще с 77 начинать использование функции 8.2?
35 Aprobator
 
23.07.13
✎
14:48
(34) я предлагаю думать говолой и изучать инструмент которым пользуешься.
36 Aprobator
 
23.07.13
✎
14:48
+(35)а не искать оправдания своему незнанию.
37 Stim
 
23.07.13
✎
14:49
(35) да-да. Примерно так же, как ты пользуешься русским языком)
38 Dethmont
 
23.07.13
✎
14:51
Перевод типа Булево в строку в пределах одного контекста выполнения само по себе бред
правильный ответ в (18)
39 Aprobator
 
23.07.13
✎
14:51
(37) нормально я им пользуюсь. Когда быстро набираю иногда по клавишам промахиваюсь не более того.
40 Поросенок Петр
 
23.07.13
✎
14:51
Вообще основная волна вскрытия копрокода прокатилась по мисте после изменения представления типов в 8.2. Что-то вы запоздали.
41 Dethmont
 
23.07.13
✎
14:53
(40) +100500
42 Ненавижу 1С
 
гуру
23.07.13
✎
14:53
не ожидал от Stim
43 Ненавижу 1С
 
гуру
23.07.13
✎
14:54
(40) думаешь в следующей версии они уберут НайтиПоРеквизиту?
44 Maxus43
 
23.07.13
✎
14:55
(43) конфигуратор уберут в следующей версии. Доступ туда будет только после теста IQ
45 Dethmont
 
23.07.13
✎
14:56
(43) Миста взорвется от наплыва =)))
46 Stim
 
23.07.13
✎
14:57
(38) ничего не бред. Бред - это когда Представление значения Истина равно Да
47 Dethmont
 
23.07.13
✎
14:59
(46) Зачем переводить БУЛЕВО в представление?
Завтра ИСТИНА будет = "Угу", ЛОЖЬ = "Неа"
48 Поросенок Петр
 
23.07.13
✎
14:59
(43) НайтиПоРеквизиту очень годная функция для разовых произвольных алгоритмов. Написал, запустил и выбросил.
49 Maxus43
 
23.07.13
✎
14:59
(46) бред опираться на представление...
помню овнокод при ситуации (40), по слову ДокументСсылка в представлении типа определяли док это или справочник
50 Stim
 
23.07.13
✎
15:02
(47) ну как минимум должно быть можно указывать в запросе ГДЕ Условие = Угу.
51 Ненавижу 1С
 
гуру
23.07.13
✎
15:03
(50) он еще и упирается, марш на дубовый!
52 Поросенок Петр
 
23.07.13
✎
15:03
Теперь мы путаем литералы и представления. Уже бы тихо слил ветку...
53 Aprobator
 
23.07.13
✎
15:07
(50) убил - наповал просто.
54 Stim
 
23.07.13
✎
15:07
(52) хотелось бы более однозначной обратной связи между значением и представлением булевного значения.
55 ДенисЧ
 
23.07.13
✎
15:07
(54) Ты что, бухнул уже?
56 Maxus43
 
23.07.13
✎
15:08
(54) представление для пользователей
57 Dethmont
 
23.07.13
✎
15:11
ГДЕ Представление(Условие) = "Угу"
58 Ненавижу 1С
 
гуру
23.07.13
✎
15:13
(54) такого не может быть, ибо эта функция не инъективна на множестве всевозможных значений (всех типов)
59 VitShvets
 
23.07.13
✎
15:16
запрос... ГДЕ " + Формат(Истина, "БЛ=Ложь; БИ=Истина") + "...
Но обычно делают
ГДЕ 1=1
   + " ?(ВПараметреЕстьЧтоТо, " И " + ТекстУсловия, "") + "
60 Stim
 
23.07.13
✎
15:17
(56) почему преобразование в строку любого значения дает тот же визуальный результат, кроме булева?
В чем был смысл отделять булево от остальных значений?
61 VitShvets
 
23.07.13
✎
15:18
(60) Пользуй Формат(ПеременнаяТипаБулево, "БЛ=Ложь; БИ=Истина")
62 Serginio1
 
23.07.13
✎
15:19
XmlСтрока(Истина)="true"
63 Maxus43
 
23.07.13
✎
15:20
(60) не только булево поменялось, представление ссылочных объектов тоже поменялось. Ну и разрабы 1с не могли и представиьт такого копрокода (0) есно
64 Поросенок Петр
 
23.07.13
✎
15:20
Таки ощущение что завтра суббота.
65 Stim
 
23.07.13
✎
15:21
+ почему нельзя было по умолчанию оставить Строка(Истина)= Истина, а представление пользователю оставить в Формат() ?
66 Ненавижу 1С
 
гуру
23.07.13
✎
15:21
(60) приведи пример "любого" такого значения
67 Stim
 
23.07.13
✎
15:24
(66) число, дата, любые ссылки
68 VitShvets
 
23.07.13
✎
15:30
(65) Потому что булево в SQL лежит как 0х00 и 0х01. Как показать пользователю это безобразие выбирает автор прикладного решения. В общем случае платформа 1С показывает булево в виде, понятном человеку далёкому от ИТ, т.е. "Нет" и "Да".
(66) Неправда. число лежит как число, т.е. например 1000. Но Строка(1000) в представлении 1С будет "1 000", что не равно "1000". Про ссылочные типы воопще молчу - в таблицах это фигня вида 0xA162BED7F0A1BFC747ABD582645C3435
69 Serginio1
 
23.07.13
✎
15:30
(67) Которые зависят от региональных настроек. XMLСтрока более дает однозначное представление
70 DS
 
23.07.13
✎
15:31
(67) Ни то, ни другое, ни третье...
71 VitShvets
 
23.07.13
✎
15:31
*(66) -> (67)
72 Maxus43
 
23.07.13
✎
15:31
(67) ты программист или уборщица в конце концов? Работать надо с данными, а не с текстом
73 acsent
 
23.07.13
✎
15:32
(69) за код с использованием представления нужно по рукам бить битой
74 ДенисЧ
 
23.07.13
✎
15:32
(67) Ни число, ни дата - не являются жёстко фиксированными при выводе.
А с 8.3 - и ссылки тоже.
75 Stim
 
23.07.13
✎
15:38
(74) да. И здесь кроется еще одна проблема - в преемственности. Использовать Строка(Истина) плохо, ок. Но в 8.1 оно работает и выдает однозначный результат "Истина". Не должно быть такого, чтобы при смене платформы того же семейства переставал работать функционал.
76 Maxus43
 
23.07.13
✎
15:39
(75) не должно быть быдлокода. в типовых же такого нет? О преемственности думают заранее
77 Starhan
 
23.07.13
✎
15:40
(75) во первых функциональность.
во вторых функциональность работает, не работает твой код :)
78 Stim
 
23.07.13
✎
15:41
(76) типовые - не образец идеального кода. При всех ими принятых стандартов, ошибок у них много, и некоторые довольно критично к тиражируемым решениям
79 Starhan
 
23.07.13
✎
15:42
(76) в типовых тоже пришлось менять перед переходом :)
Где то даже были рекомендации по проверке своего кода перед переходом с 8.1 на 8.2
80 Stim
 
23.07.13
✎
15:42
*критичны
81 Maxus43
 
23.07.13
✎
15:43
(78) конечно типовые не идеальны, но такого откровенного надругательства над здравым смыслом там нет
(79) ну там функционал менялся... тоже лопатил УПП 1.2 всю, чтоб режим совместимости снять)
82 ДенисЧ
 
23.07.13
✎
16:02
А кстати, подскажите, как статья на ИТС называется, про проверку при переходе с 81 на 82?
83 Wobland
 
23.07.13
✎
16:03
(75) по-моему, это физический дефект мозга
84 Wobland
 
23.07.13
✎
16:03
+(83) особенно в сочетании с (0)
85 EvgeniuXP
 
23.07.13
✎
16:08
Да - да? - да-а-а-а :)
86 1s_ivan
 
23.07.13
✎
16:36
Stim, спасибо за тему, кому-то она наверняка сбережет драгоценное время.
Wobland, Вам понравится если после каждого вашего поста или темы кто-то будет писать "иди в сад - учи букварь", "откуда ты такой умный вылез" и прочие уничижения. Я не понимаю причин, разводить тут неадекватный вопросу взрыв эмоций. Мне думается, этот форум нужен для общения и взаимопомощи коллег, а не как ролевая игра "тролли против всех".
Давайте уважать друг друга. Извините что так много букв. Спасибо за внимание.
87 Maxus43
 
23.07.13
✎
16:39
айайай Wobland, веди себя культурно
88 ДенисЧ
 
23.07.13
✎
16:40
(86) А ты кто такой, давайдосвиданье...
89 Wobland
 
23.07.13
✎
16:43
(86) автор фееричен в гуманитарности своего взгляда. никакого оправдания тут быть не может
90 Wobland
 
23.07.13
✎
16:43
+(89) с одной оговоркой: автор считает себя программистом
91 1s_ivan
 
23.07.13
✎
16:53
Ребята, мужчины, господа, товарищи и проч. - вы нарушаете правила форума пункт 1 и 7. Цитирую:
1. Не ругайтесь и не оскорбляйте других.
...
7. Соблюдайте общепринятые нормы морали, права и сетевой этикет.
93 hhhh
 
23.07.13
✎
17:01
(91) ну просто все разбегутся отсюда. Вы ведь предлагаете скукотищу, мертвечину.
95 1s_ivan
 
23.07.13
✎
17:06
(93) Вовсе нет, хотите драйва, можно порешать кто сильнее Чак Н. или 1с 6.0.  Вроде в теме форума, но есть пространство для беседы (кто помнит 1с6).
96 Stim
 
23.07.13
✎
21:01
(91) забей, чувак) это миста. укуси другого, пока не укусили тебя. соревнования по 22см без повторов