Собственно, в описании этой "статьи" написано.
Думаю, тем, кто недостаточно хорошо знает СКД (как я), будет полезно и сэкономит кучу времени в поисках "что я делаю не так".
Столкнулся с тем, что в запросе (упрощенный образец ниже), который должен получать данные из разных годов, второй запрос упорно получает данные из первого периода. И чтобы я ни делал, вплоть до замены имен переменных второго запроса на НачалоПериода1 и т.п. результат был тот же. Думаю, те, кто знает предопределённые параметры СКД, уже смеётся, делает фэйспалм и все, что в таких случаях положено делать...
Да. НачалоПериода и КонецПериода это предопределённые наименования параметров обращения СКД к регистрам и если их значения задать в параметрах, то СКД станет всё равно, на какой стороне у тебя тюбетейка, и они будут подставлены в запросы везде, что бы вы явно ни написали в параметрах.
Но выглядит это совершенно не очевидно.
Используйте ДатаНач,ДатаКон и т.п. и всё будет хорошо.
Как НЕ НАДО делать:
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто1 КАК Субконто,
ХозрасчетныйОбороты.КоличествоКорОборот КАК Количество,
NULL КАК Количество_1
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода,&КонецПериода, , , , , , ) КАК ХозрасчетныйОбороты
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто1,
NULL,
ХозрасчетныйОбороты.КоличествоКорОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(ДобавитьКДате(&НачалоПериода,Год,-1),ДобавитьКДате(&КонецПериода,Год,-1), , , , , , ) КАК ХозрасчетныйОбороты
Текстовые параметры, определяющие дату начала и конца периода, будут проигнорированы, и туда подставятся напрямую значения параметров НачалоПериода, КонецПериода, а поскольку мы сами задействовали их в первом запросе, то они будут заданы.
Правильно:
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто1 КАК Субконто,
ХозрасчетныйОбороты.КоличествоКорОборот КАК Количество,
NULL КАК Количество_1
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач,&ДатаКон, , , , , , ) КАК ХозрасчетныйОбороты
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто1,
NULL,
ХозрасчетныйОбороты.КоличествоКорОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(ДобавитьКДате(&ДатаНач,Год,-1),ДобавитьКДате(&ДатаКон,Год,-1), , , , , , ) КАК ХозрасчетныйОбороты
Для ясности - если во втором примере в параметрах СКД указать использование и заполнить параметры НачалоПериода, КонецПериода, то ДатаНач и ДатаКон и выражения с ними также будут проигнорированы и заменены преопределёнными параметрами, как и в первом случае. Так что, не забудьте выключить использование и отображение параметров НачалоПериода, КонецПериода в настройках параметров в СКД.
Естественно, если у вас в запросах везде один и тот же период, то ничего вышеперечисленного не требуется, и можно с чистой совестью не прописывать период в запросе и использовать предопределённые параметры.