Приветствую, форумчане!
1с8.3.6, УФ, самописная.
Пытаюсь вывести отчет по взаиморасчетам с покупателем из регистра накопления с остатками и оборотами. Нашел в инете шаблон похожего отчета (правда по остаткам), попытался сделать с двумя наборами данных (даты, чтобы выводились периоды по которым нет движения, собственно сам запрос):
НаборДанных1:
ВЫБРАТЬ
0 КАК Цифра
ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
5
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
6
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
7
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
8
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
9
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра КАК Период
ПОМЕСТИТЬ Числа
ИЗ
Цифры КАК Сотни,
Цифры КАК Десятки,
Цифры КАК Единицы
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Числа.Период), МЕСЯЦ) КАК Даточка
ИЗ
Числа КАК Числа
ГДЕ
КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Числа.Период), МЕСЯЦ) <= &КонецПериода
И КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Числа.Период), МЕСЯЦ) > &НачалоПериода
УПОРЯДОЧИТЬ ПО
Даточка
ВЫБРАТЬ
&Период КАК Месяц,
ВзаиморасчетыСПокупателямиОстаткиИОбороты.Заказ КАК Заказ,
ВзаиморасчетыСПокупателямиОстаткиИОбороты.Заказ.Подразделение КАК ЗаказПодразделение,
ВзаиморасчетыСПокупателямиОстаткиИОбороты.Заказ.ПолнаяСтоимостьСоСкидкой КАК Стоимость,
ВзаиморасчетыСПокупателямиОстаткиИОбороты.СуммаНачальныйОстаток,
ВзаиморасчетыСПокупателямиОстаткиИОбороты.СуммаКонечныйОстаток,
ВзаиморасчетыСПокупателямиОстаткиИОбороты.СуммаПриход,
ВзаиморасчетыСПокупателямиОстаткиИОбороты.СуммаРасход
ИЗ
РегистрНакопления.ВзаиморасчетыСПокупателями.ОстаткиИОбороты(, &Период, Авто, , ) КАК ВзаиморасчетыСПокупателямиОстаткиИОбороты
Constantus @ Вчера, 10:46
,
Когдато на УТП делал запрос по получению остатков за период на каждый день с использованием производственного календаря:
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) КАК Период
ПОМЕСТИТЬ ПериодПоДням
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПериодПоДням.Период КАК Период,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
ТоварыНаСкладахОстатки.Склад
ПОМЕСТИТЬ НачальныйОстатокПоДням
ИЗ
ПериодПоДням КАК ПериодПоДням,
РегистрНакопления.ТоварыНаСкладах.Остатки(
&ДатаНач,
Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
И Склад В (&Склады)) КАК ТоварыНаСкладахОстатки
СГРУППИРОВАТЬ ПО
ПериодПоДням.Период,
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыНаСкладахОстатки.Склад
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПериодПоДням.Период,
ТоварыНаСкладахОбороты.Номенклатура,
СУММА(0),
ТоварыНаСкладахОбороты.Склад
ИЗ
ПериодПоДням КАК ПериодПоДням,
РегистрНакопления.ТоварыНаСкладах.Обороты(
&ДатаНач,
&ДатаКон,
,
Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
И Склад В (&Склады)) КАК ТоварыНаСкладахОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
&ДатаНач,
Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
И Склад В (&Склады)) КАК ТоварыНаСкладахОстатки
ПО ТоварыНаСкладахОбороты.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
И ТоварыНаСкладахОбороты.Склад = ТоварыНаСкладахОстатки.Склад
ГДЕ
ТоварыНаСкладахОстатки.Номенклатура ЕСТЬ NULL
СГРУППИРОВАТЬ ПО
ПериодПоДням.Период,
ТоварыНаСкладахОбороты.Номенклатура,
ТоварыНаСкладахОбороты.Склад
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОбороты.Период,
ТоварыНаСкладахОбороты.Номенклатура,
СУММА(ТоварыНаСкладахОбороты.КоличествоОборот) КАК КоличествоОборот,
ТоварыНаСкладахОбороты.Склад
ПОМЕСТИТЬ ОборотыЗаПериод
ИЗ
РегистрНакопления.ТоварыНаСкладах.Обороты(
&ДатаНач,
&ДатаКон,
День,
Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ (&ТорговыеМарки)
И Склад В (&Склады)) КАК ТоварыНаСкладахОбороты
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОбороты.Номенклатура,
ТоварыНаСкладахОбороты.Период,
ТоварыНаСкладахОбороты.Склад
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НачальныйОстатокПоДням.Период КАК Период,
НачальныйОстатокПоДням.Номенклатура КАК Номенклатура,
МАКСИМУМ(НачальныйОстатокПоДням.КоличествоОстаток) КАК КоличествоОстаток,
СУММА(ОборотыЗаПериод.КоличествоОборот) КАК КоличествоОборот,
НачальныйОстатокПоДням.Склад
ПОМЕСТИТЬ ОстаткиИОбороты
ИЗ
НачальныйОстатокПоДням КАК НачальныйОстатокПоДням
ЛЕВОЕ СОЕДИНЕНИЕ ОборотыЗаПериод КАК ОборотыЗаПериод
ПО НачальныйОстатокПоДням.Номенклатура = ОборотыЗаПериод.Номенклатура
И (ОборотыЗаПериод.Период МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(НачальныйОстатокПоДням.Период, ДЕНЬ))
И НачальныйОстатокПоДням.Склад = ОборотыЗаПериод.Склад
СГРУППИРОВАТЬ ПО
НачальныйОстатокПоДням.Период,
НачальныйОстатокПоДням.Номенклатура,
НачальныйОстатокПоДням.Склад
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОстаткиИОбороты.Период КАК Период,
ОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ОстаткиИОбороты.КоличествоОстаток + ЕСТЬNULL(ОстаткиИОбороты.КоличествоОборот, 0)) КАК Остаток
ИЗ
ОстаткиИОбороты КАК ОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ОстаткиИОбороты.Номенклатура,
ОстаткиИОбороты.Период
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua