Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 21:55

СКД, запросы по 2-м периодам

Автор TrigubovichL, 06 ноя 2015, 11:22

0 Пользователей и 1 гость просматривают эту тему.

vitasw

Цитата: TrigubovichL от 06 ноя 2015, 12:46ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач,&ДатаКон) КАК ПродажиОбороты2

Такие ваши попытки установить свой период платформе абсолютно до фени.
Правильная установка:
РегистрНакопления.Продажи.Обороты(({&ДатаНач}),({&ДатаКон}),) КАК ПродажиОбороты2

TrigubovichL

:)
Собственно, в консоли-то я его и сделал.
У меня такая привычка - сначала в консоли отчеты делать, а потом в конфигу добавлять или менять существующие.

Но в принципе, вопрос таков:
Можно ли заставить СКД получать итоги по виртуальным таблицам регистров не по тем параметрам, которые она сама создает для виртуальных таблиц остатков и оборотов ("Период", "НачалоПериода", "КонецПериода"), а по другим, которые программист сам напишет?

vitasw

Цитата: vitasw от 06 ноя 2015, 13:47Правильная установка:
РегистрНакопления.Продажи.Обороты(({&ДатаНач}),({&ДатаКон}),) КАК ПродажиОбороты2


TrigubovichL

А вот это сработало:
{&ДатаНач},{&ДатаКон}
И даже наружные скобки ({&ДатаНач}) оказались не нужны.

Огромное всем спасибо!


Vladimir_Sh

Цитата: vitasw от 06 ноя 2015, 14:23
Цитата: vitasw от 06 ноя 2015, 13:47Правильная установка:
РегистрНакопления.Продажи.Обороты(({&ДатаНач}),({&ДатаКон}),) КАК ПродажиОбороты2

vitasw, а можете прокомментировать как данная конструкция работает?
Заранее спасибо!
Если я Вам помог, нажми - Спасибо!

cska-fanat-kz

Цитата: TrigubovichL от 06 ноя 2015, 14:20
:)
Собственно, в консоли-то я его и сделал.
У меня такая привычка - сначала в консоли отчеты делать, а потом в конфигу добавлять или менять существующие.

Но в принципе, вопрос таков:
Можно ли заставить СКД получать итоги по виртуальным таблицам регистров не по тем параметрам, которые она сама создает для виртуальных таблиц остатков и оборотов ("Период", "НачалоПериода", "КонецПериода"), а по другим, которые программист сам напишет?

Для этого существует снятие флага "Автозаполнение".
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Vladimir_Sh

cska-fanat-kz, спасибо конешн, но это как показать пальцем в горизонт. Я знаю про компановщик, но насколько я понимаю он позволяет указать параметр, который не обязателен к заполнению и отработает только в случае заполненности. Мой вопрос в другом почему данная конструкция отрабатывает, а определение явного параметра нет?
Если я Вам помог, нажми - Спасибо!

cska-fanat-kz

Цитата: Vladimir_Sh от 06 ноя 2015, 15:16Мой вопрос в другом почему данная конструкция отрабатывает, а определение явного параметра нет?

вот это мне тоже интересно, потому что обычно отрабатывает ))
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Цитата: Vladimir_Sh от 06 ноя 2015, 14:57
vitasw, а можете прокомментировать как данная конструкция работает?
Заранее спасибо!

Платформа автоматом создает свои параметры периода, например НачалоПериода и КонецПериода. Когда у вас используется один регистр в запросе со своими параметрами вида
РегистрНакопления.Продажи.Обороты(&ДатаНач,&ДатаКон,)
то это означает что параметр ДатаНач передает свое значение в системный параметр НачалоПериода. Аналогично для пары ДатаКон-КонецПериода.
Когда в запросе есть 2 региситра с разнаыми параметрами периода вида:
РегистрНакопления.Продажи.Обороты(&ДатаНач1,&ДатаКон1,)
...
РегистрНакопления.Продажи.Обороты(&ДатаНач2,&ДатаКон2,)
Система по первому регистру уже определили свои системные параметры НачалоПериода и КонецПериода и все остальные телодвижения тупо игнорируются.

Если же периоды задавать в виде

РегистрНакопления.Продажи.Обороты({&ДатаНач1},{&ДатаКон1},)
...
РегистрНакопления.Продажи.Обороты({&ДатаНач2},{&ДатаКон2},)

то периоды задаются не для запроса, а для компоновки данных. Грубо говоря компоновка данных имеет более высокий приоритет и системные параметры периода НачалоПериода и КонецПериода заменяются параметрами, пришедшими из компоновки. При этом СКД понимает, что параметры компоновки вообще могут не устанавливаться. Например конструкция вида
РегистрНакопления.Продажи.Обороты(,,Организация=&Организация) - означает, что пользователь обязан выбрать на форме организацию иначе получит ошибку выполнения отчета. А конструкция вида
РегистрНакопления.Продажи.Обороты(,,{Организация=&Организация}) - означает, что пользователь может выбрать организацию, тогда получит информацию только по одной организации, а если не выбрал - то получит информацию в по всем организациям.

Теги: скд Параметры 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск