Имя: Пароль:
1C
1С v8
Отличия синтаксиса 8.1 и 8.2
0 Arxangel06
 
27.02.13
17:20
А знает ли всезнающий ALL о том, где найти отличия поведения платформ 8.1.15 и 8.2.16 на уровне синтаксиса встроенного языка? При попытке перехода нашел интересный баг:
код вида Лев(Строка(ТипЗнч(ДокументСсылка)),8) = "Документ"
где ДокументСсылка = значение ссылочного типа
в 8.1 возвращает истину, а в 8.2 - ложь. Строковое представление типа документа "заказ покупателя" в 8.2 выглядит таким образом - Строка(ТипЗнч(ДокументСсылка)) = "Заказ покупателя", при этом для 8.1 будет конструкция (ТипЗнч(ДокументСсылка)) = "Документ ссылка: Заказ покупателя".

А еще подобного рода сюрпризы кто-нибудь встречал?
1 ПиН
 
27.02.13
17:22
продолжайте наблюдения...
2 Fragster
 
гуру
27.02.13
17:22
это не баг, это говнокод. правильно
Документы.ТипВсеСсылки.Содержит(ИскомыйТип)
3 GANR
 
27.02.13
17:22
(2) +1
4 rs_trade
 
27.02.13
17:23
ТипЗнч(ДокументСсылка) = Тип("")

будет работать всегда
5 GANR
 
27.02.13
17:26
Баг... тому кто такое пишет
Строка(ТипЗнч(ДокументСсылка)) = "Заказ покупателя"
только платформу и разрабатывать
6 GANR
 
27.02.13
17:27
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ЗаказПокупателя")
7 Arxangel06
 
27.02.13
17:28
(2),(5) А по теме есть что сказать? такого кода - полная конфа, по масштабам эта конфа сравнима с УПП. Вот и вопрос - что еще ждет при попытке перехода?
8 Aleksey
 
27.02.13
17:29
А причем тут синтаксис?
9 Arxangel06
 
27.02.13
17:30
(8) при том, что команда одна, а поведение разное.
10 Reset
 
27.02.13
17:30
(7) Там более чем по теме.
Что ждать от конфы, полной такого хм,кода? Еще больше сюрпризов
11 Fragster
 
гуру
27.02.13
17:30
(7) ну, если у тебя СокрЛП(Реквизит) = "истина" где-то есть - то при снятии режима совместимости тоже не прокатит....

вообще есть статься на ИТС
12 Maxus43
 
27.02.13
17:30
(7) ну значит быдлоконфа это.
По теме - на ИТС есть статья по переходу с 8.1 на 8.2, там часть описана, (0) не описано правда, ибо так не пишут типовые
13 GANR
 
27.02.13
17:32
(7) По теме - (4)(6). Запросы могут по-разному транслироваться. Раньше сортировка в запросе без прямого указания УПОРЯДОЧИТЬ была одна, а может стать другая (лично натыкался при переходе с 8.0 на 8.1).
14 Fragster
 
гуру
27.02.13
17:35
(13) без "упорядочить" сортировки нет
15 GANR
 
27.02.13
17:37
(14) Да... В 8.0 - была, а в 8.1 - не стало.
16 Arxangel06
 
27.02.13
18:06
(12) "эта" конфа была рождена как УТ 10.2 и типовой перестала быть ОЧЕНЬ давно, от типового в ней осталось около 10%. Потому и вопросов столько.
17 GANR
 
27.02.13
18:08
(16) Перед переводом на 8.2 неплохо-бы её очистить от такого кода.
18 GANR
 
27.02.13
18:09
Иначе хуже будет однозначно.
19 Arxangel06
 
27.02.13
18:10
(17) там работы на год...
20 GANR
 
27.02.13
18:14
(19) Если работа разделимая - можно нескольким людям дать. Один, скажем, отчетами занимается, другой - проводками. Тогда, может, получится за 2-4 месяца.
21 zak555
 
27.02.13
18:22
XMLТипЗнч(ДокументСсылка).ИмяТипа
22 Arxangel06
 
28.02.13
10:08
(21) а вот это решение задачки. Спасибо. Осталось выяснить - это единственный такой косяк или будут еще сюрпризы? гугль даже о таком не знает...
23 zak555
 
28.02.13
10:08
(22) это не косяк - это г@вно код

чем не нравится Тип() ?
24 ptiz
 
28.02.13
10:13
(7) Целая конфа овнокода? Соболезную.
25 samozvanec
 
28.02.13
10:14
не слушай никого, это косяки платформы. в 8.3 обещали исправить как было
26 Lama12
 
28.02.13
10:18
(0)В сопроводиловке все есть.
Даже обработка специальная есть которая как может ищеи не совместимости.
27 mzelensky
 
28.02.13
10:38
(26) ага, и сама исправляет...и запросы сама переписывает, а если проплатить ФУЛ версию, даже логику бизнес-процессов правит и сервера настраивает!
28 mzelensky
 
28.02.13
10:38
(25) где-нибудь к 100-тому релизу...
29 bodri
 
28.02.13
10:46
100-го релиза не будет максимум 27 (судя по 1С7,7) или 17 (судя по 8-ке)
30 Arxangel06
 
28.02.13
10:47
(23) тип не нравится тем, что в некоторых случаях не работает. например в функцию передается некий параметр. тип этого параметра может быть ссылка на документ(8 видов документов, соответственно 8 различных типов "ДокументСсылка.?"), может быть ссылка на справочник, а может быть вообще строкой. и заранее это неизвестно, но алгоритм для всех видов документов предусматривает одну и ту же реакцию, для всех справочников - так же одну и ту же, но по сравнению с документами - вторую. а для строк вообще никакой реакции не требуется. Можно конечно перечислить все типы в Если...ИначеЕсли..., но сравнить с началом строкового представления - оно как-то быстрее получается. Так что в данном случае XMLТипЗнч - действительно решает вопрос.
31 Arxangel06
 
28.02.13
10:51
(26)в сопроводиловке к чему? Кстати на дисках ИТС за август-декабрь 2012 я ничего подобного не нашел. Не тот период или не то искал?
32 Maxus43
 
28.02.13
10:54
(30) в (2) ответ на это, и так и надо было писать в 8.1
33 Rovan
 
гуру
28.02.13
11:01
(30) может быть ссылка на справочник - проверять так
Справочники.ТипВсеСсылки().СодержитТип( ТипЗнч( ВхСсылка ))
для документов
Документы.ТипВсеСсылки().СодержитТип( ТипЗнч( ВхСсылка ))
34 Arxangel06
 
28.02.13
11:08
(32),(33) Красиво, буду знать. Что любопытно - эта конструкция еще и работает очень быстро.
35 Maxus43
 
28.02.13
11:09
(34) в этом сама суть и квинтесенция правильного кода, он работает универсально идеально, в отличие от быдлокода
36 Lama12
 
28.02.13
11:10
(31) В сопроводиловке к релизам платформы.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn