Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Что не так с контатенацией в запросе ?

Что не так с контатенацией в запросе ?
Я
   Холст
 
22.06.20 - 15:28
Простой запрос

ВЫБРАТЬ ПЕРВЫЕ 100
    " "+Количество(Файлы.Ссылка) ,
    Файлы.ВладелецФайла КАК ВладелецФайла
ИЗ
    Справочник.ЗаказПокупателяПрисоединенныеФайлы КАК Файлы
СГРУППИРОВАТЬ ПО
    Файлы.ВладелецФайла

через выразить также даёт ошибку

ВЫБРАТЬ ПЕРВЫЕ 100
     Выразить(Количество(Файлы.Ссылка) как строка(10)) КАК Ссылка,
    Файлы.ВладелецФайла КАК ВладелецФайла
ИЗ
    Справочник.ЗаказПокупателяПрисоединенныеФайлы КАК Файлы
СГРУППИРОВАТЬ ПО
    Файлы.ВладелецФайла

Требуется писать предопределенную строку перед количество файлов по заявке
Подскажите, пожалуйста, как исправить запрос ?
   H A D G E H O G s
 
1 - 22.06.20 - 15:29
Никак
   ДенисЧ
 
2 - 22.06.20 - 15:30
Во-первых - число в строку в запросе ты не выразишь.
А во-вторых - формат используй, чтобы на пробелы не нарваться
   Fragster
 
3 - 22.06.20 - 15:32
странно. кажется, у Холст угнали аккаунт
   FIXXXL
 
4 - 22.06.20 - 15:33
ВЫБРАТЬ ПЕРВЫЕ 100500
....

ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "100500", ТвойВариант);
   H A D G E H O G s
 
5 - 22.06.20 - 15:34
(3) Ага. Как будто ЛивингСтар сел за штурвал.
   Fragster
 
6 - 22.06.20 - 15:34
кстати, у FIXXXL , похоже, тоже
   H A D G E H O G s
 
7 - 22.06.20 - 15:35
(6) Похетитили (орфография автора сохранена) тел, хопта.
   Fedor-1971
 
8 - 22.06.20 - 15:41
(0)
 "ВЫБРАТЬ ПЕРВЫЕ 100" + ?(Асисяй = Истина, "Хроший Асисяй", "Не асисю") + 
 "Количество(Файлы.Ссылка) , 
 |   Файлы.ВладелецФайла КАК ВладелецФайла 
 |ИЗ 
 |   Справочник.ЗаказПокупателяПрисоединенныеФайлы КАК Файлы …";


Второй вариант
"ВЫБРАТЬ ПЕРВЫЕ 100 
 |&НечтоОченьНужное Как ШляпаНеведома
 |Количество(Файлы.Ссылка) , 
 |   Файлы.ВладелецФайла КАК ВладелецФайла 
 |ИЗ 
 |   Справочник.ЗаказПокупателяПрисоединенныеФайлы КАК Файлы …";
  Запрос.УстановитьПравметр("НечтоОченьНужное", ВотТакуюСтрокуПрисобюачитьНужно");


Если и так не айс, Запрос.Текст = СтрЗаменить(Запрос.Текст, "&НечтоОченьНужное", "ЧтоТебе хочется");
   Дык ё
 
9 - 22.06.20 - 15:44
а че, представление(количество(*)) не во всех версиях платформы работает?
   H A D G E H O G s
 
10 - 22.06.20 - 15:45
Люди больше не услышат ваши юные смешные голоса...
https://youtu.be/1rmFz4B5slo
   Fedor-1971
 
11 - 22.06.20 - 15:47
8+ Если хочешь получить в одном поле запроса 
"Количество файлов: " + Количество(Файлы.Ссылка) КАК СколькоФайлов - это вряд ли получится, не предназначен запрос для подобных проделок
   Волшебник
 
Модератор
12 - 22.06.20 - 15:47
Запрос должен выдавать чистые данные, а всё представление надо делать в экранной/печатной форме или условным оформлением СКД
   Fedor-1971
 
13 - 22.06.20 - 15:53
(9) Представление - это чисто преобразование к Строке всего (!!!) содержимого поля,
"Нечто "+Представление(???) - должно выдавать ошибку, т.к. нельзя дальше использовать результат от Представления
   ДенисЧ
 
14 - 22.06.20 - 15:54
(13) ""Представление - это чисто преобразование к Строке"
Wat>
   Fragster
 
15 - 22.06.20 - 15:59
(9) оно работает после запроса, т.е. в самом запросе результат функции представление нельзя использовать.
   Fedor-1971
 
16 - 22.06.20 - 16:03
(14) Вот из Хелпа:
Функция ПРЕДСТАВЛЕНИЕ
Данная функция предназначена для получения строкового представления значения произвольного типа.

Параметр функции – выражение любого типа.

Возвращаемое значение – представление значения, тип СТРОКА.

Результат работы функции не может быть использован внутри других функций, за исключением функции ПРЕДСТАВЛЕНИЕ.

Пример:
ВЫБРАТЬ
   ПРЕДСТАВЛЕНИЕ(РасхНакл.Получатель) КАК Получатель,
   ПРЕДСТАВЛЕНИЕ(РасхНакл.Дата) КАК Дата
ИЗ
   Документ.РасхНакл КАК РасхНакл


т.е. в выборке будут Строковые представления, а не Ссылка и Дата
   Fedor-1971
 
17 - 22.06.20 - 16:05
16+ даже если запихнуть во временную таблицу, а потом попытаться что-то приклеить к полученной строке получим ошибку при выполнении запроса
   Дык ё
 
18 - 22.06.20 - 16:06
(15) для второго запроса из (0) должно подойти
   Дык ё
 
19 - 22.06.20 - 16:08
+(18) если в заказе не больше десятка файлов, можно наговнокодить что-то вроде
выбор количество(*) когда 1 тогда "1" когда 2 тогда "2".. :)
   Fragster
 
20 - 22.06.20 - 16:09
(18) да, но постобработка с конкатенацией в обработке выборки все равно не требует преобразования в строку так что что второй запрос,что представление вместо выразить - оба бесполезны.
   Волшебник
 
Модератор
21 - 22.06.20 - 16:11
Надо использовать условное оформление и/или вызвать функцию общего модуля.
   Ненавижу 1С
 
22 - 22.06.20 - 16:16
просто 1С не умеет в преобразование типов в запросе

чистый SQL:

select 'всего '||count(*)||' записей'
from books

>>всего 12 записей


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.