Имя: Пароль:
1C
1С v8
Функция ПРЕДСТАВЛЕНИЕ в запросе возвращает какую-то "особенную" строку?
0 Симпатяшка
 
29.05.15
12:43
Если верить справке 1С, функция Представление возвращает тип Строка. Ну понятно, что неограниченной длины. Вопрос в том, почему же тогда я с этим значением не могу работать как со строкой?
Например:
ВЫБРАТЬ
    Номенклатура.НаименованиеПолное,
    ПРЕДСТАВЛЕНИЕ(Номенклатура.Ссылка)
ИЗ
    Справочник.Номенклатура КАК Номенклатура

И полное наименование, и представление ссылки по идее строки. Я могу написать
ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК СТРОКА(100))
или
ПОДСТРОКА(Номенклатура.НаименованиеПолное, 5, 15).
Делаю то же самое с представлением: ПОДСТРОКА(ПРЕДСТАВЛЕНИЕ(Номенклатура.Ссылка), 5, 15) - выдает ошибку, что параметр неверный.
Почему так?
1 ДенисЧ
 
29.05.15
12:44
В запросе с представлением ты работать не можешь.
Прими и смирись. Можешь с горя напиться, если поможет
2 чувак
 
29.05.15
12:46
а какой смысл переделать представленеи в строку?
3 Симпатяшка
 
29.05.15
12:48
Потому что строки неограниченной длины нельзя между собой сравнивать. А если выразить как строку с заданной длиной, уже другой разговор )
4 ДенисЧ
 
29.05.15
12:49
(3) Всё-таки тебе придётся бежать в винный магазин...
5 Симпатяшка
 
29.05.15
12:50
(4) Это я уже поняла :(
6 Симпатяшка
 
29.05.15
12:51
Всё же выходит, что "Представление" какую-то волшебную строку возвращает
7 Ёпрст
 
29.05.15
12:54
(6) представление получается потом, не в самом запросе. Поентому в самом запросе с ним сделать ничего нельзя. Смирись
8 Rovan
 
гуру
29.05.15
13:21
(6)(+7) да, она строкой становится только на выходе запроса, а внутри него это видимо некая виртуальная функция.
Не парься! Наверняка у тебя в номенклатуре представление идет по Наименованию - вот их и сравнивай
9 Cyberhawk
 
29.05.15
13:42
(0) "Если верить справке 1С, функция Представление возвращает тип Строка"
Покажи на картинке, где это такое написано
10 Fragster
 
гуру
29.05.15
13:45
представление в запросе разворачивается в список полей, необходимых для формирования представления (автоматом делаются необходимые левые соединения, причем иногда достаточно много), а потом уже в обходе выборки результата или в выгрузке - получается строка из этих полей.
11 Jonny_Khomich
 
29.05.15
13:47
(0) что ты хочешь?
12 Симпатяшка
 
01.06.15
06:11
13 Симпатяшка
 
01.06.15
06:13
(10) если я помещу результат запроса во временную таблицу, а потом дальше в следующих запросах хочу использовать, всё равно не работает.
14 Симпатяшка
 
01.06.15
06:14
(11) Да не важно. Со своей задачей я разобралась как обойтись без представления. Просто хочу понять ПОЧЕМУ всё так.
15 Любопытная
 
01.06.15
06:15
(12) Там же написано, что результат нигде нельзя использовать. Справку же до конца надо дочитывать)
16 GROOVY
 
01.06.15
06:15
Потому что работа этой функции = пост обработка запроса. В запросе невозможно использовать результат этой функции.
17 Симпатяшка
 
01.06.15
06:16
(15) Точно. Только сейчас увидела
Закон Брукера: Даже маленькая практика стоит большой теории.