Имя: Пароль:
1C
 
Проанализировать строку в запросе
0 San1
 
04.11.07
14:10
Всем доброго времени суток. Появилась нужда сравнить содержимое поля со строковой константой. Нужно че-то вроде
...
ВЫБОР КОГДА (ВЫРАЗИТЬ(ИмяДокумента КАК Строка(5)) = "Прием") ТОГДА
...
или
...
ВЫБОР КОГДА (ИмяДокумента ПОДОБНО "Прием%") ТОГДА
...
где ИмяДокумента - Представление документа.
Как это сделать?
Можно, конечно, разбить запрос на неск ОБЪЕДИНИТЬ и вставить это условие в секцию ГДЕ, включив в кажд часть нужный вариант выбора, но тогда получается прилично объединений, время выполнения вырастет... Коряво вообщем. Может есть другие варианты?
1 ТелепатБот
 
гуру
04.11.07
14:10
2 San1
 
04.11.07
14:12
Ёклмн.. вроде ставил раздел 8... Вопрос по восьмерке, перенесите тему, пожалуйста.
3 Wladimir_spb
 
04.11.07
14:29
Попробуй сделать простеньки запрос с ВЫБОР и такой же через ОБЪЕДИНИТЬ. Скорее всего время выполнения запроса с объединить будет гораздо меньше...
4 San1
 
04.11.07
15:09
Блин, чет ниче у меня с ПОДОБНО вообще не выходит( Выбираю данные из регистра сведений, у кт есть регистратор. Собственно, он  меня и интересует.
Может, это из-за того, что  поле Регистратор имеет составной тип.. Уж как я его только к строке не преобразовывал, и ВЫБРАТЬ ИЗ ВЫБРАТЬ делал, все одно, пишет неверные параметры ПОДОБНО, и все. С полем, кт есть просто строка - все отрабатывает.
5 PR
 
04.11.07
15:14
ССЫЛКА
6 San1
 
04.11.07
15:53
Не совсем понятно, что делать со ссылкой.. Я получал "имя" документа так: Регистратор.Представление, и так: ПРЕДСТАВЛЕНИЕ(Регистратор). Возможно, ПОДОБНО не работает, т.к. ему нужно строку неограниченной длины. Но на ВЫРАЗИТЬ(Регистратор.Представление КАК Строка) - ругается, мол несовместимые типы. Регистратор.Представление - строка, и в чем дело никак не пойму. С регистром, у кт единственный регистратор тоже самое, дело не в составном типе. 8|
7 San1
 
04.11.07
16:03
Все.
"Каждая объектная таблица в информационной базе имеет виртуальное поле - "Представление". Это поле содержит текстовое представление объекта. В запросе возможно получать данное поле точно также как и другие поля таблиц, однако никакие операции с данным полем выполнять нельзя. Данная особенность связана с тем, что это поле является виртуальным, и, на самом деле, при получении данного поля из базы данных, запрос получает несколько полей, а при получении значения поля из результата запроса преобразовывает полученные значения в строку. Таким образом, единственное, что можно сделать с полем "Представление", это получить его в результат запроса."
Вопрос №3: Как в запросе преобразовать ДокументСсылка в строку..)
8 Wladimir_spb
 
04.11.07
16:19
9 San1
 
04.11.07
16:27
Наверно проще будет крутить полученную в результате работы запроса ТЗ, чем получить представление документа в запросе так, чтобы с ним можно было работать, если это вообще возможно. На этом, пока и остановлюсь. Всем спасибо.
10 San1
 
04.11.07
16:29
(8) Ух ты! Спасибо, а я про это дело и не знал совсем!