Имя: Пароль:
1C
1С v8
Построитель отчета добавление отбора по ТипЗнч(Регистратор)
,
0 Coldboy
 
25.09.13
21:54
Здравствуйте. Не работал с построителями отчета, обычно обходился СКД. Но тута наткнулся на отчет, сделанный построителем, хочется, добавить или сделать вывод и группировку еще по полю следующего вида ТипЗнч(Регистратор), чтобы знать, что допустим приход данной номенклатуры дают тока документы типа Поступления, а этой документы типа Перемещение товаров. Как такое сделать и реально ли?
1 Лефмихалыч
 
25.09.13
21:55
(0) берешь запрос из построителя, суёшь его в компоновку. А построитель - в печь.
2 Coldboy
 
25.09.13
21:58
(1) там очень серьезный запрос и построитель такое лучше сразу переделать, но переделывать не надо, просто хочется добавить поле, по которому можно было еще группироват ьи выводить его, оно же ТипЗнч(регистратор) как его добавить, вот что я хочу, а не снести построитель отчета)
3 Лефмихалыч
 
25.09.13
22:05
(2) отчет просто на построителе или на так называемом унивесральном отчете, страдающем альцгеймером и недержаниями прадедушке СКД?
4 Franchiser
 
гуру
25.09.13
23:48
Добавь динамический кусок кода циклом по метаданным типа:
Выбор когда ... Ссылка документ.поступлениетоваровуслуг тогда '"пту" когда ... Тогда .. Иначе конец
5 Franchiser
 
гуру
25.09.13
23:50
Еще в запросе есть функция Ти() если не ошибаюсь. Результат один и тот же.
6 Coldboy
 
26.09.13
09:15
хм получается надо ломать запрос? а если не ломая запрос добавить измерение в построитель как нибудь?
7 Лефмихалыч
 
26.09.13
09:24
(6) если нет поля в запросе, то в измерение его не добавишь
8 Coldboy
 
26.09.13
09:28
(7) Регистратор это поле есть, а мне нужно сгрупировать по типу регистратора
9 Coldboy
 
26.09.13
10:44
up!
10 Coldboy
 
26.09.13
11:26
Вверх
11 Franchiser
 
гуру
26.09.13
14:57
(10) но ты же знаешь какие типы тебе нужны: поступления и перемещения,добавь их в запрос не ломая...
12 Franchiser
 
гуру
26.09.13
15:03
Еще можешь сделать менеджер временных таблиц, в отдельной функции создать ВТ, где будет создана необходимая информация по типам, а потом в запросе соединишь с данными этой ВТ. Тоже будет не ломая запрос. Смотри примеры в типовой бухе 8.2 (например, книга покупок)
13 Franchiser
 
гуру
26.09.13
15:06
еще вариант: пишешь некое условное поле, например 99999 как Тип (соответственно в  итогах и группировках). Затем после запроса делаешь стрзаменить этого поля на тот динамический текст выбора поля.
14 catena
 
26.09.13
15:14
На сколько я помню, в 8.2 в функции запроса добавили ТипЗначения()? Что мешает добавить это поле в выборку, раз сам Регистратор там уже есть?
15 Franchiser
 
гуру
26.09.13
15:22
ТипЗначения() выводит тип вида описание типов кажется, мне не очень нравится ее представление в отчете, или же ее нужно приводить к более красивому виду после обработки. Так то можно.
16 catena
 
26.09.13
15:27
(15)По-моему очень красиво все выводит, через Представление() вообще строка

http://i021.radikal.ru/1309/0b/18a8305bf038.jpg
17 Coldboy
 
26.09.13
15:58
а как эт в построителе отчета сделать?
18 Coldboy
 
26.09.13
15:59
(11) нет не знаю могут быть разные.
19 catena
 
26.09.13
16:01
(17)А построитель на чем?
20 Coldboy
 
26.09.13
16:07
да там запрос полуручной.
21 Coldboy
 
26.09.13
16:10
я имел виду, в самом построителе настройку сделать, добавить измерение.
22 Coldboy
 
26.09.13
16:50
(16) добавил в запрос построителя еще выбирать поле по регистратор как представление(типЗначения), но че то в отбор не добавляется.
23 Coldboy
 
26.09.13
17:17
вставил как вы в запрос, в отбор построителя не заходит.
24 Coldboy
 
26.09.13
22:27
{Отчет.ОбщепитОстаткииОборотыТМЦ.МодульОбъекта(91)}: Ошибка при вызове метода контекста (Выбрать)
    Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, ИзмерениеСтроки.Имя);
по причине:
Измерение не найдено "ТипДокумента"


Дошел до такого, вроде везде указывале в массивах, и построителе отчета, что это измерение, думаю в запросе, где то пропустил в каком месте надо метить, что это измерение?
25 catena
 
27.09.13
05:44
(24)Если показать запрос, ответ может быть придет быстрее...

В запросе должны быть поля в фигурных скобках, надо найти
{ВЫБРАТЬ...
{ГДЕ...
{ИТОГИ...
26 catena
 
27.09.13
05:45
Обход по группировкам это ИТОГИ.
27 Coldboy
 
27.09.13
10:20
(26) хорошо я понял, тока вопрос а ИТОГИ надо сделать по ТипДокумента или Представление(ТИПЗНАЧЕНИЙ(Хозрасчетный.Регистратор)) ?
ибо я в выбрать я писал Представление(ТИПЗНАЧЕНИЙ(Хозрасчетный.Регистратор)) Как ТипДокумента
28 catena
 
27.09.13
10:24
(27)В запросе однояйцево, а для построителя лучше так же писать:

Представление(ТИПЗНАЧЕНИЙ(Хозрасчетный.Регистратор)) Как ТипДокумента
29 Coldboy
 
27.09.13
10:39
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ОстаткиИОбороты.Субконто2 КАК Субконто2,
    ОстаткиИОбороты.Субконто1 КАК Субконто1,
    ОстаткиИОбороты.Регистратор КАК Регистратор,
   Представление(ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Регистратор)) КАК ТипДокумента,
    ОстаткиИОбороты.КоличествоОборотДт КАК КоличествоПриход,
    ОстаткиИОбороты.КоличествоОборотКт КАК КоличествоРасход,
    ОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ОстаткиИОбороты.КоличествоКонечныйОстаток  КАК КоличествоКонечныйОстаток,
    ОстаткиИОбороты.СуммаОборотДт КАК СуммаПриход,
    ОстаткиИОбороты.СуммаОборотКт КАК СуммаРасход,
    ОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ОстаткиИОбороты.СуммаКонечныйОстаток  КАК СуммаКонечныйОстаток
{ВЫБРАТЬ
    ОстаткиИОбороты.Субконто1.* КАК Субконто1,
    ОстаткиИОбороты.Субконто2.* КАК Субконто2,
    ОстаткиИОбороты.Субконто3.* КАК Субконто3,
    ОстаткиИОбороты.Регистратор.* КАК Регистратор,
   Представление(ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Регистратор)) КАК ТипДокумента}
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНачала, &ДатаКонца, Регистратор, , Счет В (&СписокСчетов), &МассивСубконто, Организация = &Организация {(Субконто1).* КАК Субконто1, (Субконто2).* КАК Субконто2, (Субконто3).* КАК Субконто3 }) КАК ОстаткиИОбороты
{ГДЕ
   Представление(ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Регистратор)) КАК ТипДокумента,
    ОстаткиИОбороты.Регистратор.* КАК Регистратор}
    
ИТОГИ
    СУММА(КоличествоПриход),
    СУММА(КоличествоРасход),
    СУММА(КоличествоНачальныйОстаток),
    СУММА(КоличествоКонечныйОстаток),
    СУММА(СуммаПриход),
    СУММА(СуммаРасход),
    СУММА(СуммаНачальныйОстаток),
    СУММА(СуммаКонечныйОстаток)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Субконто1.* КАК Субконто1,
    Субконто2.* КАК Субконто2,
    Субконто3.* КАК Субконто3,
   Представление(ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Регистратор)) КАК ТипДокумента,
    Регистратор.* КАК Регистратор}
АВТОУПОРЯДОЧИВАНИЕ
30 Coldboy
 
27.09.13
10:44
сам запрос, который я направил.
31 Franchiser
 
гуру
27.09.13
11:00
(30) вроде бы все правильно написано, и всевно ошибка?
32 Franchiser
 
гуру
27.09.13
11:02
Только в выбрать ты 2 раза написал типдокумента. Один раз в начале а затем в фигурных скобках, убери в первом случае.
33 Franchiser
 
гуру
27.09.13
11:07
В условии Где представление нужно убрать по-моему
34 Franchiser
 
гуру
27.09.13
11:09
думаю тебе вообще надо 2 поля: 1. Тип 2. Представление.
35 Coldboy
 
27.09.13
11:59
(31) пишет ошибку нет измерения типа.
36 catena
 
27.09.13
12:17
(35)Точно ошибка и когда получается?
Если вот так же:

{Отчет.ОбщепитОстаткииОборотыТМЦ.МодульОбъекта(91)}: Ошибка при вызове метода контекста (Выбрать)
    Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, ИзмерениеСтроки.Имя);
по причине:
Измерение не найдено "ТипДокумента"

То вопрос следующий: а вы параметры построителя перед выборкой задаете?
37 GANR
 
27.09.13
12:21
(28) Представление-то зачем???
38 Franchiser
 
гуру
27.09.13
12:27
(31) а ты типдокумента выбрал в полях построителя на форме? То что в фигурных строках указано - необязательные поля
39 Franchiser
 
гуру
27.09.13
12:30
Что такое измерениестроки? Структура какая-то?
40 Franchiser
 
гуру
27.09.13
12:32
Убери из раздела Выбрать Разрешенные строчку с полем типдокумента...
41 Coldboy
 
27.09.13
12:58
убирал. в обходе мозг греет.
    Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, ИзмерениеСтроки.Имя);
по причине:
Измерение не найдено "ТипДокумента"
при таком запросе:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ОстаткиИОбороты.Субконто2 КАК Субконто2,
    ОстаткиИОбороты.Субконто1 КАК Субконто1,
    ОстаткиИОбороты.Регистратор КАК Регистратор,
    ОстаткиИОбороты.КоличествоОборотДт КАК КоличествоПриход,
    ОстаткиИОбороты.КоличествоОборотКт КАК КоличествоРасход,
    ОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ОстаткиИОбороты.КоличествоКонечныйОстаток  КАК КоличествоКонечныйОстаток,
    ОстаткиИОбороты.СуммаОборотДт КАК СуммаПриход,
    ОстаткиИОбороты.СуммаОборотКт КАК СуммаРасход,
    ОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ОстаткиИОбороты.СуммаКонечныйОстаток  КАК СуммаКонечныйОстаток
{ВЫБРАТЬ
    ОстаткиИОбороты.Субконто1.* КАК Субконто1,
    ОстаткиИОбороты.Субконто2.* КАК Субконто2,
    ОстаткиИОбороты.Субконто3.* КАК Субконто3,
    ОстаткиИОбороты.Регистратор.* КАК Регистратор,
   Представление(ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Регистратор)) КАК ТипДокумента}
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНачала, &ДатаКонца, Регистратор, , Счет В (&СписокСчетов), &МассивСубконто, Организация = &Организация {(Субконто1).* КАК Субконто1, (Субконто2).* КАК Субконто2, (Субконто3).* КАК Субконто3 }) КАК ОстаткиИОбороты
{ГДЕ
   Представление(ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Регистратор)) КАК ТипДокумента,
    ОстаткиИОбороты.Регистратор.* КАК Регистратор}
    
ИТОГИ
    СУММА(КоличествоПриход),
    СУММА(КоличествоРасход),
    СУММА(КоличествоНачальныйОстаток),
    СУММА(КоличествоКонечныйОстаток),
    СУММА(СуммаПриход),
    СУММА(СуммаРасход),
    СУММА(СуммаНачальныйОстаток),
    СУММА(СуммаКонечныйОстаток)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Субконто1.* КАК Субконто1,
    Субконто2.* КАК Субконто2,
    Субконто3.* КАК Субконто3,
   Представление(ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Регистратор)) КАК ТипДокумента,
    Регистратор.* КАК Регистратор}
АВТОУПОРЯДОЧИВАНИЕ
42 catena
 
27.09.13
13:04
(41)РРРРР!
Ты к этому обращаешься как к запросу или через построитель???
43 Franchiser
 
гуру
27.09.13
13:08
Хорошо что убрал, но не работает потому что  не видит Итоги. А не видит итоги потому что ты не установил параметры построителя в коде или на форме....
44 Coldboy
 
30.09.13
10:39
(43) все параметры выставил. по каким полям делать группировки и тд.
(42) через построитель все идет.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс