Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема запроса через скд к виртуальной таблице регистра накопления и использование этих данных во временной таблице
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
redking500
Добрый день, наткнулся на непонятное поведение в СКД(и в консоли отчетов).Может кто поможет найти решение - буду признателен.
УТП стандарт 76 релиз.Есть закрытый полностью заказ, реализация(в более раннем периоде - не входит в период запроса) и оплата(в текущем периоде запроса).Первый запрос и его результат есть одна заполненная строка: заказ и СуммаВзаиморасчетовПриход за период.Остальное 0.
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка КАК Сделка,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход  КАК СуммаВзаиморасчетовПриход,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход   КАК СуммаВзаиморасчетовРасход
//ПОМЕСТИТЬ ТзОстаткиОборотыПоЗаказам
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
            &НачалоПериода,
            &КонецПериода,
            ,
            ,
            Сделка = &Ссылка) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты


Раскомментируем временную табл("ПОМЕСТИТЬ ТзОстаткиОборотыПоЗаказам") и добавляем сюда:
ВЫБРАТЬ
    ТзОстаткиОборотыПоЗаказам.Сделка,
    ТзОстаткиОборотыПоЗаказам.СуммаВзаиморасчетовКонечныйОстаток
ИЗ
    ТзОстаткиОборотыПоЗаказам КАК ТзОстаткиОборотыПоЗаказам


И вдруг результат: нет строк!
Аналогично,пусто если я использую эту таблицу как условие в виртуальной с доп условием:
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка КАК Сделка,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход / 1.2 КАК СуммаВзаиморасчетовПриход,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход / 1.2 КАК СуммаВзаиморасчетовРасход
ПОМЕСТИТЬ ТзОстаткиОборотыПоЗаказам
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Сделка = &Ссылка) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Сделка в (выбрать Тз.сделка из ТзОстаткиОборотыПоЗаказам как Тз где Тз.СуммаВзаиморасчетовКонечныйОстаток = 0)) КАК ВзаиморасчетыСКонтрагентамиОбороты


А вот если забрать в посл. запросе условие "где Тз.СуммаВзаиморасчетовКонечныйОстаток = 0" - есть результат: одна строка с заполненной суммой СуммаВзаиморасчетовПриход
Почему - не пойму.

redking500
redking500 @ Вчера, 15:19 необходимо зарегистрироваться для просмотра ссылки ,
Интересно, что если не через СКД(или консоль отчетов), то такая ситуация не наблюдается
Как победить - не знаю sad.gif
TohaMonster
redking500 @ Вчера, 16:19 необходимо зарегистрироваться для просмотра ссылки ,
СКД славится своими способностями перекомпоновывать данные по своему усмотрению. Попробуйте отключить "Автозаполнение" на закладке "Наборы данных" в СКД и поместите выводимые в отчет поля во вкладке "Компоновка данных"

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка КАК Сделка,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход / 1.2 КАК СуммаВзаиморасчетовПриход,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход / 1.2 КАК СуммаВзаиморасчетовРасход
ПОМЕСТИТЬ ТзОстаткиОборотыПоЗаказам
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Сделка = &Ссылка) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход
{ВЫБРАТЬ
    Сделка.*,
    СуммаВзаиморасчетовПриход,
    СуммаВзаиморасчетовРасход}
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(
            &НачалоПериода,
            &КонецПериода,
            Регистратор,
            Сделка В
                (ВЫБРАТЬ
                    Тз.Сделка
                ИЗ
                    ТзОстаткиОборотыПоЗаказам КАК Тз
                ГДЕ
                    Тз.СуммаВзаиморасчетовКонечныйОстаток = 0)) КАК ВзаиморасчетыСКонтрагентамиОбороты
{ГДЕ
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка.*,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход}
redking500
TohaMonster @ Сегодня, 13:21 необходимо зарегистрироваться для просмотра ссылки ,
К сожалению ничего не изменилось.(Убрал автозаполнение - проставил поля в компоновке данных)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.