Имя: Пароль:
1C
 
Функция ТипЗнч() в 1С 8.2
0 Rlogin
 
14.01.11
15:39
Я чего то не понимаю или на самом деле функция ТипЗнч() начинает работать по другому в 8.2 ? Даже в режиме совместимости.
1 СвинТуз
 
14.01.11
15:42
да по другому ...
2 Mort
 
14.01.11
15:42
От разработчиков 1С 8.2 физкультпривет любителям приведения типов к строке! Ура, товарищи!
3 Rlogin
 
14.01.11
15:43
Хм... а как же с конвертированием типовых ? там ведь достаточно часто она встречается ?
4 Dmitriy_76
 
14.01.11
15:49
проясните...что имеется ввиду...смотрю 8.1...8.2... вроде в СП буква в букву
5 Mort
 
14.01.11
15:54
Проблема не в самом типе или в функции, а в её неявном преобразовании в строку. Т.е. просто поменялось название типов. Б-кодеры часто используют имя типа чтобы вырезать из него информацию о самом типе (чтобы получить менеджер значения и т.п.). Т.к. название поменялось - код работать перестал. В типовых просто таких перлов никто не писал.
6 Rlogin
 
14.01.11
15:55
Вот например:

ТипЗнч(ЭлементСпр)

В 8.1 возвращает:
"СправочникСсылка.Контрагенты"

В 8.2 возвращает:
"Контрагенты"
7 Rlogin
 
14.01.11
15:57
(5) Моя типовая уже слегка была изменена кем-то )))
8 Ненавижу 1С
 
гуру
14.01.11
15:58
(6) а надо было юзать:

ЭлементСпр.Метаданные().Имя
9 Mort
 
14.01.11
15:59
(7) Передай ему горячий привет.
10 Rlogin
 
14.01.11
16:00
(8) ну вообще там анализируется тип.
Т.е. если документ - то одно, если справочник  - то другое.
11 Ненавижу 1С
 
гуру
14.01.11
16:01
и еще так:

Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ЭлементСпр)) Тогда
 Сообщить("Это справочник");
КонецЕсли;
12 Mort
 
14.01.11
16:04
(10)
ЭтоСправочник = Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ссылка));
13 nop
 
14.01.11
16:05
То есть тепер везде надо изменить

Если ТипЗнч(х) = Тип("СправочникСсылка.Контрагенты")

на

Если ТипЗнч(х) = ТипЗнч(Справочники.Контрагенты.ПустаяССылка())
?
14 Rlogin
 
14.01.11
16:06
(11) ага, тут уже даже была тема подобная
v8: Беда с "ТипЗнч" при переходе с 8.1 на 8.2
15 Mort
 
14.01.11
16:06
(13) Нет. В твоём примере тип не приводится к строке.
16 Mort
 
14.01.11
16:07
+(15) Параметр конструктора типа <> строковое представление типа
17 nop
 
14.01.11
16:10
(15) Если ТипЗнч(х) = Тип("СправочникСсылка.Контрагенты")

но это же строка, в Тип() указана
18 Rlogin
 
14.01.11
16:13
В оригинале вот так
Лев(ТипЗнч(Данные.Отбор.Регистратор.Значение),8) = "Документ"
19 Mort
 
14.01.11
16:15
(17) Это параметр конструктора типа, он тут ни при чем.
20 YauheniL
 
14.01.11
16:22
(17) Функция Тип() возвращает тип, а не строку