Имя: Пароль:
1C
1С v8
v8: Приведение УникальногоИдентификатора к типу Строка в запросе
0 Fedor-1971
 
23.04.14
10:20
Доброго дня!
В документе при оплате необходимо различать строки табличной части, для чего используется УникальныйИдентификатор
Наступил на грабли, там где не ожидал:
тип УникальныйИдентификатор - замечательно сохраняется в регистре сведений, а в регистре накопления может храниться только в виде строки.
При попытке запросом соединить ТЧ и регистр накопления получаем следующую ошибку:
"Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И (Усл.УслУникИД <<?>>= ОстаткиДляОплатыУслугОстатки.УникИД"
Что логично: Усл.УслУникИД - уникальный идентификатор, а ОстаткиДляОплатыУслугОстатки.УникИД - строка, но привести уникальный диентификатор к типу СТРОКА через Выразить(тэоУслугаРеальныеУслуги.УникИД как строка(50)), получаем ошибку "несовместимые типы данных".
Есть ли возможность преобразовать УникальныйИдентификатор в строку прямо в запросе или придётся изменить саму логику получения данных? например, через разбиение одного запроса на 2.

Текст запроса:
   "ВЫБРАТЬ
   |    ОстаткиДляОплатыУслугОстатки.Услуга КАК Услуга,
   |    ОстаткиДляОплатыУслугОстатки.ОстатокОстаток КАК Осталось,
   |    ОстаткиДляОплатыУслугОстатки.УникИД КАК УникИД,
   |    Усл.ВидУслуги КАК ВидУслуги,
   |    Усл.Валюта КАК Валюта,
   |    Усл.Ставка КАК Ставка,
   |    Усл.СтавкаПриведенная КАК СтавкаПриведенная,
   |    Усл.Описание КАК Описание,
   |    Усл.Ссылка
   |ИЗ
   |    РегистрНакопления.ОстаткиДляОплатыУслуг.Остатки(&ТекДата, Услуга В (&масУслуг)) КАК ОстаткиДляОплатыУслугОстатки
   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            тэоУслугаРеальныеУслуги.Ссылка КАК Ссылка,
   |            тэоУслугаРеальныеУслуги.ВидУслуги КАК ВидУслуги,
   |            тэоУслугаРеальныеУслуги.Описание КАК Описание,
   |            тэоУслугаРеальныеУслуги.Валюта КАК Валюта,
   |            тэоУслугаРеальныеУслуги.Ставка КАК Ставка,
   |            тэоУслугаРеальныеУслуги.СтавкаПриведенная КАК СтавкаПриведенная,
   |            тэоУслугаРеальныеУслуги.УникИД КАК УслУникИД
   |        ИЗ
   |            Документ.тэоУслуга.РеальныеУслуги КАК тэоУслугаРеальныеУслуги) КАК Усл
   |        ПО (Усл.Ссылка = ОстаткиДляОплатыУслугОстатки.Услуга.Ссылка)
   |            И (Усл.УслУникИД = ОстаткиДляОплатыУслугОстатки.УникИД)
   |ГДЕ
   |    ОстаткиДляОплатыУслугОстатки.ОстатокОстаток > 0
   |
   |УПОРЯДОЧИТЬ ПО
   |    Услуга,
   |    УникИД";
1 ДенисЧ
 
23.04.14
10:21
возможности нет
2 DexterMorgan
 
23.04.14
10:24
сохраняй в рс тоже строку
3 Fedor-1971
 
23.04.14
10:29
(1) спасибо, буду думать, как выбрать данные
(2) в РС - без проблем сохраняется как УникальныйИдентификатор, а в РО как строка, была мысль в документе сохранить УникальныйИдентификатор как строку, но так делать как-то коряво