Имя: Пароль:
1C
1С v8
Можно ли сгруппировать в запросе поле с типом строка в СКД?
0 AnisaL
 
21.02.18
22:07
Доброго времени суток!
Вопрос такой, почему не дает СКД сгруппировать по полю с типом строка?
Вот начало запроса

ВЫБРАТЬ
    ПРЕДСТАВЛЕНИЕ(ТИПЗНАЧЕНИЯ(ТоварыНаСкладах.Регистратор)) КАК ТипДокумента,
1 nordbox
 
21.02.18
22:28
Просто сгруппируй по регистратору
2 AnisaL
 
21.02.18
22:32
(1) неа, мне надо именно группировку по типу регистратора
3 AnisaL
 
21.02.18
22:34
(1) а может сначала результат запроса запихнуть в виртуальную таблицу, а потом из нее сделать запрос и группировку
4 AnisaL
 
21.02.18
22:46
(3) я бы проверила, но комп начал перезагружаться, т.е. завтра попробую
5 Cyberhawk
 
21.02.18
22:51
Выражение "Представление" в запросе используется только в результирующих полях. Внутри запроса никакого преобразования к строке не происходит - только на выходе.
Используй ВЫРАЗИТЬ, группировать по строке можно.
6 Cyberhawk
 
21.02.18
22:52
Ну или поле добавь ВЫБРАТЬ КОГДА тип такой-то ТОГДА "ТипТакойТо" КОГДА ... ТОГДА "" КОНЕЦ
7 youalex
 
21.02.18
23:09
(2) СГРУППИРОВАТЬ ПО ТИПЗНАЧЕНИЯ(Регистратор)    ?
8 AnisaL
 
22.02.18
08:51
(5) дело в том, что у меня соединение двух наборов данных, один запрос в регистр накопления ТоварыНаСкладах, а второй набор объект, данные загружаются из файла. В таблице значений, которую загружаю из этого файла, поле ТипДокумента, строкового типа, например "ПриходныйОрдерНаТовары". И это поле нужно соединить с соответсвующим полем из запроса по РН ТоварыНаСкладах. Поэтому я и пишу Представление(ТипЗначения(ТоварыНаСкладах.Регистратор)), чтобы из полученного типа получить тип данных строку, а иначе возвращается тип данных Тип
9 AnisaL
 
22.02.18
08:55
(5) а вообще, такой вопрос, можно как то получить список всех типов документов регистраторов у РН ТоварыНаСкладах
10 Мимохожий Однако
 
22.02.18
09:03
(9) через метаданные
11 youalex
 
22.02.18
09:07
(9) где получить, в запросе?
выбрать различные ТипЗначения(регистратор) Из - получишь те которые реально есть.

или из результата запроса - выбрать Первые 0 Регистратор Из ... ГДЕ ЛОЖЬ...
Типы = Запрос.Выполнить().Колонки[0].ТипЗначения.Типы()  - но там еще нужно NULL исключить

или (10)
12 AnisaL
 
22.02.18
15:55
(5) ошибка выдается, при использовании Выразить:
Несовместимые типы Выразить; вот так пишу:

ВЫРАЗИТЬ(ТИПЗНАЧЕНИЯ(ТоварыНаСкладах.Регистратор) КАК Строка(50)) КАК ТипДокумента,
13 AnisaL
 
22.02.18
15:58
(12) + почитала в инете про Выразить, что нельзя штатными методами в запросе преобразовывать одни типы в другие
14 DrShad
 
22.02.18
16:13
(13) в корне не верный подход к решению ибо даже ТИПЗНАЧЕНИЯ() дает такой результат "Приходный ордер на товары"
15 DrShad
 
22.02.18
16:15
лучше использовать Вычисляемые поля с обращением к функции общего модуля и там собирать строку какую нужно из чего угодно
16 Cyberhawk
 
22.02.18
23:10
(8) Тогда (6) сам бог велел
17 Franchiser
 
гуру
22.02.18
23:54
А зачем тут представление? По идее и без него должно работать, можно ещё через вычисляемое поле в СКД
18 AnisaL
 
23.02.18
17:11
(6) С праздником дня защиты отечества! там всего много получается разных регистраторов, неужели по каждому писать ?
ВЫБРАТЬ КОГДА тип такой-то ТОГДА "ТипТакойТо" КОГДА ... ТОГДА "" КОНЕЦ
19 PR
 
23.02.18
17:15
Рукалицо

После (7) ветку можно закрывать
20 AnisaL
 
23.02.18
17:16
(15) а как потом по вычисляемому полю сгруппировать данные в запросе?
21 AnisaL
 
23.02.18
17:19
(19) почему, я же написала, что нужно соединить два запроса: один загружается из внешнего файла, там есть поле ТипДокумента, с типом строка, поэтому мне нужно в запросе по ТоварыНаСкладах из типа документа сделать строку
22 PR
 
23.02.18
17:22
(21) Ну так допетрила бы дальше, что либо через ВЫБОР либо через параметры либо как угодно вместо строки сделала бы тип
Или (что хуже) во второй части через выбор тип превратила бы в строку
23 AnisaL
 
23.02.18
17:26
(22) у меня вопрос про вычисляемое поле, как мне потом по нему данные сгруппировать в запросе?
24 AnisaL
 
23.02.18
17:26
(22) и через параметры как сделать
25 AnisaL
 
23.02.18
17:29
С праздником, всех, кстати!!!
26 DrShad
 
23.02.18
17:41
(23) вычисляемое поле тоже может выступать в качестве группировки в СКД
27 AnisaL
 
23.02.18
17:44
(26) в макете или в запросе самом?
28 PR
 
23.02.18
18:11
(23) Причем здесь вычисляемое поле? Просто поле в запросе через ВЫБОР.
29 DrShad
 
23.02.18
18:56
(27) в структуре настроек, вычисляемые поля не участвуют в запросе
30 AnisaL
 
23.02.18
19:03
(29) ну так вряд ли получится, так как ТипДокумента - поле из внешнего файла, и  там группируются данные по этому полю
в процедуре ПриКомпоновкеРезультата:

"ВЫБРАТЬ
                       |    ТЗ.ТипДокумента КАК ТипДокумента,
                       |    ТЗ.Склад КАК Склад,
                       |    ТЗ.Документ КАК Документ,
                       |    ТЗ.Номенклатура КАК Номенклатура,
                       |    ТЗ.ДатаФайл КАК ДатаФайл,
                       |    ТЗ.КоличествоФайл КАК КоличествоФайл
                       |ПОМЕСТИТЬ ВТ
                       |ИЗ
                       |    &ТЗ КАК ТЗ
                       |;
                       |
                       |////////////////////////////////////////////////////////////////////////////////
                       |ВЫБРАТЬ
                       |    ВТ.ТипДокумента КАК ТипДокумента,
                       |    ВТ.Склад КАК Склад,
                       |    ВТ.Документ КАК Документ,
                       |    ВТ.Номенклатура КАК Номенклатура,
                       |    ВТ.ДатаФайл КАК ДатаФайл,
                       |    СУММА(ВТ.КоличествоФайл) КАК КоличествоФайл
                       |ИЗ
                       |    ВТ КАК ВТ
                       |
                       |СГРУППИРОВАТЬ ПО
                       |    ВТ.ТипДокумента,
                       |    ВТ.Склад,
                       |    ВТ.Документ,
                       |    ВТ.Номенклатура,
                       |    ВТ.ДатаФайл";
31 AnisaL
 
23.02.18
19:05
(30) + потом как будут соединяться два запроса, без этого поля в запросе по регистру, если оно будет в вычисляемых полях
32 Franchiser
 
гуру
23.02.18
21:52
(21) делаешь ВТ из 2 колонок
1. ТипСтрока
2. Тип
Заполняешь через "объединить все"
И дальше через нее все связываешь.
33 Franchiser
 
гуру
23.02.18
21:55
А лучше сразу преобразовать в загружаемой таблице строковый тип в тип 1с, тогда не нужна вспомогательная вт
AdBlock убивает бесплатный контент. 1Сергей