Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Пакетный запрос из виртуальных оборотных регистров

Пакетный запрос из виртуальных оборотных регистров
Я
   Stanislav_134
 
27.10.19 - 15:54
Всем привет!

Подскажите, делаю через СКД пакетный запрос (решаю билеты по Спецу БП). Сначала достаю из регистра бухгалтерии .ОборотныйДтКт определенные данные за период, установленный параметрами &НачалоПериода и &КонецПериода. Далее к полученным данным присоединяю опять же виртуальный регистр бухгалтерии .ОборотныйДтКт, но в параметрах второй виртуальной таблицы сразу задаю &КонПериода (допустим 31.12.2100) или вообще оставляю без указания параметров периода. Смысл в том, что из второй таблицы мне нужно выбрать данные грубо говоря за всё время вообще. Но результат СКД выдаёт, ограничивая данные по второй виртуальной таблице такими же параметрами (&НачалоПериода и &КонецПериода).

При написании такого же запроса через консоль результат получается именно такой какой нужно, то есть данные из второй таблицы берутся за всё время. Я так понимаю где-то в СКД настройку какую поправить надо? Или специальные параметры периода использовать?

[1c]
ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.Период КАК ДатаПередачиВПереработку,
    ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента КАК ДоговорНаПереработку,
    ХозрасчетныйОборотыДтКт.Регистратор.Контрагент КАК Подрядчик,
    ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента.ас_НаименованиеСырья КАК НаименованиеСырья,
    ХозрасчетныйОборотыДтКт.КоличествоОборотДт КАК КоличествоСырья,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СтоимостьСырья,
    ХозрасчетныйОборотыДтКт1.Регистратор.ДоговорКонтрагента.ас_ПолучаемыйПолуфабрикат КАК Полуфабрикат,
    ХозрасчетныйОборотыДтКт1.КоличествоОборотДт КАК КоличествоПолуфабриката,
    ХозрасчетныйОборотыДтКт1.СуммаОборот КАК СтоимостьПолуфабриката
ПОМЕСТИТЬ вт_ПоступлениеПереработка
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.МатериалыПереданныеВПереработку), , СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы), , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонПер, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Полуфабрикаты), , СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство), , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт1
        ПО ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента = ХозрасчетныйОборотыДтКт1.Регистратор.ДоговорКонтрагента
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_ПоступлениеПереработка.ДоговорНаПереработку КАК ДоговорНаПереработку,
    вт_ПоступлениеПереработка.Подрядчик КАК Подрядчик,
    вт_ПоступлениеПереработка.НаименованиеСырья КАК НаименованиеСырья,
    вт_ПоступлениеПереработка.КоличествоСырья КАК КоличествоСырья,
    вт_ПоступлениеПереработка.СтоимостьСырья КАК СтоимостьСырья,
    вт_ПоступлениеПереработка.ДатаПередачиВПереработку КАК ДатаПередачиВПереработку,
    ЕСТЬNULL(вт_ПоступлениеПереработка.Полуфабрикат, "-") КАК Полуфабрикат,
    ЕСТЬNULL(вт_ПоступлениеПереработка.КоличествоПолуфабриката, "-") КАК КоличествоПолуфабриката,
    ЕСТЬNULL(вт_ПоступлениеПереработка.СтоимостьПолуфабриката + ХозрасчетныйОборотыДтКт.СуммаОборот, "-") КАК СтоимостьПолуфабриката
ИЗ
    вт_ПоступлениеПереработка КАК вт_ПоступлениеПереработка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонПер, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство), , СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками)), , ) КАК ХозрасчетныйОборотыДтКт
        ПО вт_ПоступлениеПереработка.ДоговорНаПереработку = ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента
[/1c]
 
 
   shuhard
 
1 - 27.10.19 - 15:56
(0)[Или специальные параметры периода использовать?]
угу
экранировку {}
   Stanislav_134
 
2 - 27.10.19 - 15:56
Всем привет!

Подскажите, делаю через СКД пакетный запрос (решаю билеты по Спецу БП). Сначала достаю из регистра бухгалтерии .ОборотныйДтКт определенные данные за период, установленный параметрами &НачалоПериода и &КонецПериода. Далее к полученным данным присоединяю опять же виртуальный регистр бухгалтерии .ОборотныйДтКт, но в параметрах второй виртуальной таблицы сразу задаю &КонПериода (допустим 31.12.2100) или вообще оставляю без указания параметров периода. Смысл в том, что из второй таблицы мне нужно выбрать данные грубо говоря за всё время вообще. Но результат СКД выдаёт, ограничивая данные по второй виртуальной таблице такими же параметрами (&НачалоПериода и &КонецПериода).

При написании такого же запроса через консоль результат получается именно такой какой нужно, то есть данные из второй таблицы берутся за всё время. Я так понимаю где-то в СКД настройку какую поправить надо? Или специальные параметры периода использовать?

[1с]ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.Период КАК ДатаПередачиВПереработку,
    ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента КАК ДоговорНаПереработку,
    ХозрасчетныйОборотыДтКт.Регистратор.Контрагент КАК Подрядчик,
    ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента.ас_НаименованиеСырья КАК НаименованиеСырья,
    ХозрасчетныйОборотыДтКт.КоличествоОборотДт КАК КоличествоСырья,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СтоимостьСырья,
    ХозрасчетныйОборотыДтКт1.Регистратор.ДоговорКонтрагента.ас_ПолучаемыйПолуфабрикат КАК Полуфабрикат,
    ХозрасчетныйОборотыДтКт1.КоличествоОборотДт КАК КоличествоПолуфабриката,
    ХозрасчетныйОборотыДтКт1.СуммаОборот КАК СтоимостьПолуфабриката
ПОМЕСТИТЬ вт_ПоступлениеПереработка
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.МатериалыПереданныеВПереработку), , СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы), , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонПер, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Полуфабрикаты), , СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство), , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт1
        ПО ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента = ХозрасчетныйОборотыДтКт1.Регистратор.ДоговорКонтрагента
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_ПоступлениеПереработка.ДоговорНаПереработку КАК ДоговорНаПереработку,
    вт_ПоступлениеПереработка.Подрядчик КАК Подрядчик,
    вт_ПоступлениеПереработка.НаименованиеСырья КАК НаименованиеСырья,
    вт_ПоступлениеПереработка.КоличествоСырья КАК КоличествоСырья,
    вт_ПоступлениеПереработка.СтоимостьСырья КАК СтоимостьСырья,
    вт_ПоступлениеПереработка.ДатаПередачиВПереработку КАК ДатаПередачиВПереработку,
    ЕСТЬNULL(вт_ПоступлениеПереработка.Полуфабрикат, "-") КАК Полуфабрикат,
    ЕСТЬNULL(вт_ПоступлениеПереработка.КоличествоПолуфабриката, "-") КАК КоличествоПолуфабриката,
    ЕСТЬNULL(вт_ПоступлениеПереработка.СтоимостьПолуфабриката + ХозрасчетныйОборотыДтКт.СуммаОборот, "-") КАК СтоимостьПолуфабриката
ИЗ
    вт_ПоступлениеПереработка КАК вт_ПоступлениеПереработка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонПер, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство), , СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками)), , ) КАК ХозрасчетныйОборотыДтКт
        ПО вт_ПоступлениеПереработка.ДоговорНаПереработку = ХозрасчетныйОборотыДтКт.Регистратор.ДоговорКонтрагента[/1с]
   Stanislav_134
 
3 - 27.10.19 - 15:57
(1) Можно поподробнее как это выглядит в параметрах таблицы?

И еще вопрос - как этот код вставить красиво. Что-то
 не прокатывает
   Stanislav_134
 
4 - 27.10.19 - 15:58
 тест

   hhhh
 
5 - 27.10.19 - 16:11
(4) {&КонПер}
   Stanislav_134
 
6 - 27.10.19 - 16:37
(1), (5)  Спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.