8.х Непонятки с СКД

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем mialord, 8 авг 2010.

  1. TopicStarter Overlay
    mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Пишу отчет по деятельности организации в ценах себестоимости (Возвраты, Оплаты, Корректировки).
    Сложность возникает в следующем.
    Когда проверяю первый запрос
    Код:
    ВЫБРАТЬ
    ОстаткиПоВзаиморасчетам.Организация КАК Организация,
    ОстаткиПоВзаиморасчетам.Контрагент КАК Контрагент,
    ВЫБОР
    КОГДА ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток >= 0
    ТОГДА ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток
    ИНАЧЕ 0
    КОНЕЦ КАК ОтгруженоНаСуммуБезОплатНачалоПериода,
    ВЫБОР
    КОГДА ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток < 0
    ТОГДА -1 * ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток
    ИНАЧЕ 0
    КОНЕЦ КАК ПредоплатаНачалоПериода,
    NULL КАК Проект,
    NULL КАК ДокументРасчетов,
    NULL КАК ОтгруженоСебестоимостьПоДокументуНачалоПериода,
    NULL КАК СуммаОтгрузкиПоДокументуНачалоПериода,
    NULL КАК ОтгруженоНаСуммуБезОплатКонецПериода,
    NULL КАК ПредоплатаКонецПериода,
    NULL КАК ОтгруженоСебестоимостьПоДокументуКонецПериода,
    NULL КАК СуммаОтгрузкиПоДокументуКонецПериода,
    NULL КАК Отгружено,
    NULL КАК ОтгруженоСебестоимость
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&НачалоПериода, ) КАК ОстаткиПоВзаиморасчетам
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ДокументДвижения.Организация,
    ДокументДвижения.Контрагент,
    NULL,
    NULL,
    ДокументДвижения.Регистратор.Проект,
    ДокументДвижения.Регистратор,
    Себестоимость.СтоимостьОборот,
    ДокументДвижения.СуммаВзаиморасчетов,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &НачалоПериода, , ) КАК Оплата
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов КАК ДокументДвижения
    ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ПродажиСебестоимостьОбороты.Регистратор КАК Регистратор,
    ПродажиСебестоимостьОбороты.СтоимостьОборот КАК СтоимостьОборот
    ИЗ
    РегистрНакопления.ПродажиСебестоимость.Обороты(, , Регистратор, ) КАК ПродажиСебестоимостьОбороты) КАК Себестоимость
    ПО ДокументДвижения.Регистратор = Себестоимость.Регистратор
    ПО (ДокументДвижения.Регистратор = Оплата.ДокументРасчетовСКонтрагентом)
    ГДЕ
    ДокументДвижения.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    И ДокументДвижения.Период <= &НачалоПериода
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ОстаткиПоВзаиморасчетам.Организация,
    ОстаткиПоВзаиморасчетам.Контрагент,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    ВЫБОР
    КОГДА ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток >= 0
    ТОГДА ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток
    ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
    КОГДА ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток < 0
    ТОГДА -1 * ОстаткиПоВзаиморасчетам.СуммаВзаиморасчетовОстаток
    ИНАЧЕ 0
    КОНЕЦ,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&КонецПериода, ) КАК ОстаткиПоВзаиморасчетам
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ДокументДвижения.Организация,
    ДокументДвижения.Контрагент,
    NULL,
    NULL,
    ДокументДвижения.Регистратор.Проект,
    ДокументДвижения.Регистратор,
    NULL,
    NULL,
    NULL,
    NULL,
    Себестоимость.СтоимостьОборот,
    ДокументДвижения.СуммаВзаиморасчетов,
    NULL,
    NULL
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &КонецПериода, , ) КАК Оплата
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов КАК ДокументДвижения
    ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ПродажиСебестоимостьОбороты.Регистратор КАК Регистратор,
    ПродажиСебестоимостьОбороты.СтоимостьОборот КАК СтоимостьОборот
    ИЗ
    РегистрНакопления.ПродажиСебестоимость.Обороты(, , Регистратор, ) КАК ПродажиСебестоимостьОбороты) КАК Себестоимость
    ПО ДокументДвижения.Регистратор = Себестоимость.Регистратор
    ПО (ДокументДвижения.Регистратор = Оплата.ДокументРасчетовСКонтрагентом)
    ГДЕ
    ДокументДвижения.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    И ДокументДвижения.Период <= &КонецПериода
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    Продажи.Организация,
    Продажи.Контрагент,
    NULL,
    NULL,
    Продажи.Регистратор.Проект,
    Продажи.Регистратор,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    Продажи.СуммаВзаиморасчетов,
    ОтгруженоПоСебестоимости.ОтгруженоСебестоимость
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов КАК Продажи
    ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ПродажиСебестоимостьОбороты.Регистратор КАК Регистратор,
    ПродажиСебестоимостьОбороты.СтоимостьОборот КАК ОтгруженоСебестоимость
    ИЗ
    РегистрНакопления.ПродажиСебестоимость.Обороты(, , Регистратор, ) КАК ПродажиСебестоимостьОбороты) КАК ОтгруженоПоСебестоимости
    ПО Продажи.Регистратор = ОтгруженоПоСебестоимости.Регистратор
    ГДЕ
    Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    
    всё отрабатывает кучеряво. Кидаю в СКД соединяю ещё с одним набором данных, и данные на начало периода не собирает, а на конец периода всё собирает в аккурат, у кого есть идеи буду признателен за их озвучивание.
    Посмотреть вложение 5019

    Вложения:

  2. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Почему в этой строчке НачалоПериода стоит на месте параметра КонецПериода?
    Код:
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &НачалоПериода, , ) КАК Оплата
    
    
    
  3. TopicStarter Overlay
    mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Потому что так задумано, срез производится с самого начала ведения учета до начала формирования отчета.
  4. TopicStarter Overlay
    mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Однако условие
    Код:
    И ДокументДвижения.Период <= &;НачалоПериода
    
    неверно, благодарю натолкнули на мысль

Поделиться этой страницей