Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Взаиморасчеты с покупателем: отчет по периодам в столбцах (остатки и обороты)          
Constantus Подменю пользователя
сообщение 25.02.19, 10:46
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!
1с8.3.6, УФ, самописная.

Пытаюсь вывести отчет по взаиморасчетам с покупателем из регистра накопления с остатками и оборотами. Нашел в инете шаблон похожего отчета (правда по остаткам), попытался сделать с двумя наборами данных (даты, чтобы выводились периоды по которым нет движения, собственно сам запрос):

НаборДанных1:

ВЫБРАТЬ
    0 КАК Цифра
ПОМЕСТИТЬ Цифры

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра КАК Период
ПОМЕСТИТЬ Числа
ИЗ
    Цифры КАК Сотни,
    Цифры КАК Десятки,
    Цифры КАК Единицы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Числа.Период), МЕСЯЦ) КАК Даточка
ИЗ
    Числа КАК Числа
ГДЕ
    КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Числа.Период), МЕСЯЦ) <= &КонецПериода
    И КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Числа.Период), МЕСЯЦ) > &НачалоПериода

УПОРЯДОЧИТЬ ПО
    Даточка


НаборДанных2

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


Перепробовал разные варианты, но в итоге за период по всем месяцам дает одинаковые данные (судя по всему итоговые за весь период)

Подскажите, что нужно изменить в коде, чтобы выдавались динамические данные по периоду?

Vidocq05 Подменю пользователя
сообщение 26.02.19, 12:59
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Constantus @ Вчера, 10:46 * ,
Когдато на УТП делал запрос по получению остатков за период на каждый день с использованием производственного календаря:

ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) КАК Период
ПОМЕСТИТЬ ПериодПоДням
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПериодПоДням.Период КАК Период,
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
    ТоварыНаСкладахОстатки.Склад
ПОМЕСТИТЬ НачальныйОстатокПоДням
ИЗ
    ПериодПоДням КАК ПериодПоДням,
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            &ДатаНач,
            Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
                И Склад В (&Склады)) КАК ТоварыНаСкладахОстатки

СГРУППИРОВАТЬ ПО
    ПериодПоДням.Период,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Склад

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПериодПоДням.Период,
    ТоварыНаСкладахОбороты.Номенклатура,
    СУММА(0),
    ТоварыНаСкладахОбороты.Склад
ИЗ
    ПериодПоДням КАК ПериодПоДням,
    РегистрНакопления.ТоварыНаСкладах.Обороты(
            &ДатаНач,
            &ДатаКон,
            ,
            Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
                И Склад В (&Склады)) КАК ТоварыНаСкладахОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
                &ДатаНач,
                Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
                    И Склад В (&Склады)) КАК ТоварыНаСкладахОстатки
        ПО ТоварыНаСкладахОбороты.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И ТоварыНаСкладахОбороты.Склад = ТоварыНаСкладахОстатки.Склад
ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура ЕСТЬ NULL

СГРУППИРОВАТЬ ПО
    ПериодПоДням.Период,
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Период,
    ТоварыНаСкладахОбороты.Номенклатура,
    СУММА(ТоварыНаСкладахОбороты.КоличествоОборот) КАК КоличествоОборот,
    ТоварыНаСкладахОбороты.Склад
ПОМЕСТИТЬ ОборотыЗаПериод
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(
            &ДатаНач,
            &ДатаКон,
            День,
            Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
                И Склад В (&Склады)) КАК ТоварыНаСкладахОбороты

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.Период,
    ТоварыНаСкладахОбороты.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НачальныйОстатокПоДням.Период КАК Период,
    НачальныйОстатокПоДням.Номенклатура КАК Номенклатура,
    МАКСИМУМ(НачальныйОстатокПоДням.КоличествоОстаток) КАК КоличествоОстаток,
    СУММА(ОборотыЗаПериод.КоличествоОборот) КАК КоличествоОборот,
    НачальныйОстатокПоДням.Склад
ПОМЕСТИТЬ ОстаткиИОбороты
ИЗ
    НачальныйОстатокПоДням КАК НачальныйОстатокПоДням
        ЛЕВОЕ СОЕДИНЕНИЕ ОборотыЗаПериод КАК ОборотыЗаПериод
        ПО НачальныйОстатокПоДням.Номенклатура = ОборотыЗаПериод.Номенклатура
            И (ОборотыЗаПериод.Период МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(НачальныйОстатокПоДням.Период, ДЕНЬ))
            И НачальныйОстатокПоДням.Склад = ОборотыЗаПериод.Склад

СГРУППИРОВАТЬ ПО
    НачальныйОстатокПоДням.Период,
    НачальныйОстатокПоДням.Номенклатура,
    НачальныйОстатокПоДням.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстаткиИОбороты.Период КАК Период,
    ОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ОстаткиИОбороты.КоличествоОстаток + ЕСТЬNULL(ОстаткиИОбороты.КоличествоОборот, 0)) КАК Остаток
ИЗ
    ОстаткиИОбороты КАК ОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ОстаткиИОбороты.Номенклатура,
    ОстаткиИОбороты.Период

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 7:40
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!