Имя: Пароль:
1C
1С v8
Что не так с контатенацией в запросе ?
,
0 Холст
 
22.06.20
15:28
Простой запрос

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

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

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

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

ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "100500", ТвойВариант);
5 H A D G E H O G s
 
22.06.20
15:34
(3) Ага. Как будто ЛивингСтар сел за штурвал.
6 Fragster
 
гуру
22.06.20
15:34
кстати, у FIXXXL , похоже, тоже
7 H A D G E H O G s
 
22.06.20
15:35
(6) Похетитили (орфография автора сохранена) тел, хопта.
8 Fedor-1971
 
22.06.20
15:41
(0)

"ВЫБРАТЬ ПЕРВЫЕ 100" + ?(Асисяй = Истина, "Хроший Асисяй", "Не асисю") +
"Количество(Файлы.Ссылка) ,
|   Файлы.ВладелецФайла КАК ВладелецФайла
|ИЗ
|   Справочник.ЗаказПокупателяПрисоединенныеФайлы КАК Файлы …";


Второй вариант

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


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

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

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

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

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


т.е. в выборке будут Строковые представления, а не Ссылка и Дата
17 Fedor-1971
 
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".. :)
20 Fragster
 
гуру
22.06.20
16:09
(18) да, но постобработка с конкатенацией в обработке выборки все равно не требует преобразования в строку так что что второй запрос,что представление вместо выразить - оба бесполезны.
21 Волшебник
 
модератор
22.06.20
16:11
Надо использовать условное оформление и/или вызвать функцию общего модуля.
22 Ненавижу 1С
 
гуру
22.06.20
16:16
просто 1С не умеет в преобразование типов в запросе

чистый SQL:

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

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