1с скд остатки на каждый день периода

1с скд остатки на каждый день

also Что-то вроде FAQ Отзывов (29) 1с скд остатки на каждый день периода1с скд остатки на каждый день периодаВ закладки

С задачей получения среза последних на каждую дату рано или поздно сталкиваются все. Безусловно, это задача достаточно просто решается запросом с соединением по максимальной дате из меньших или равных дат. Но эту же задачу можно решить и с помощью компоновки данных. Не будем рассуждать о том, какой из способов более производителен, все может зависеть от конкретной задачи.

Первый набор данных:

В качестве примера, создадим отчет по продажам, в котором отдельной колонкой будем выводить цену из прайса на дату продажи.

Создадим набор данных-запрос “ПродажиОбороты”:

1с скд остатки на каждый день периода

Рис. 1 Вкладка ресурсы набора данных ПродажиОбороты

1с скд остатки на каждый день периода

Рис. 2 Настройки отчета

Сейчас наш отчет будет иметь следующий вид:

1с скд остатки на каждый день периода

Рис. 3 Формирование отчета с одним набором данных

Теперь необходимо добавить в отчет колонку “Цена по прайсу”, которая будет подтягиваться из регистра сведений “Цены номенклатуры” на дату продажи.

Второй набор данных:

Добавим второй набор данных-запрос “Цены”, цены будем брать для фиксированного типа цен:

В данном наборе данных три параметра: Дата, Номенклатура и тип цен. Из низ самые интересные Дата и Номенклатура. Они будут использованы при соединении наборов данных, причем параметр данных присутствует как в параметрах виртуальной таблицы, так и в выбранных полях.

Соединения наборов:

Приступим к основной “фишке” данного метода – соединениям наборов:

1с скд остатки на каждый день периода

Рис. 4 Соединение наборов данных

Здесь самое основное правильно настроить параметры. Если указан параметр,то СКД передает в приемник связи параметры, указанные в соединении. Значениями этих параметров будут значения соответствующих полей источника связи.

Далее добавим поле цена в ресурсы и в выбранные поля.

1с скд остатки на каждый день периода

Рис. 5 Вкладка ресурсы

1с скд остатки на каждый день периода

Рис. 6 Выбранные поля

Результат:

Теперь можно формировать отчет. Проверим правильность работы отчета на примере “Дивана для отдыха”.

1с скд остатки на каждый день периода

Рис. 7 Итоговый отчет

В запросе:

По просьбе andreo рассмотрим решение этой же задачи в запросе. Данная задача может быть решена как с использованием вложенных запросов, так и с помощью. временных таблиц. Попробуем решить задачу, используя временные таблицы. Сначала приведем весь текст запроса, а потом кратко разберем по частям принцип его работы.

Данный пакетный запрос содержит три подзапроса. Рассмотрим их подробнее.

Первый запрос пакета группирует данные по периоду, контрагенту и номенклатуре и помещает их во временную таблицу втБезЦены. Далее мы будем соединять эту таблицу с таблицей цен номенклатуры и получим небольшой выигрыш в том, что соединять будем уже сгруппированные данные.

Во втором подзапросе мы соединяем временную таблицу с регистром сведений “ЦеныНоменклатуры” при этом из регистра сведений мы выбираем МАКСИМАЛЬНУЮ дату из меньших или равных дат. Результат этого подзапроса также помещаем во временную таблицу (втМаксПериод). Посмотрим, какие данные попадают в эту таблицу:

1с скд остатки на каждый день периода

Рис. 8 Временная таблица втМаксПериод

В последнем запросе пакета, мы еще раз соединяем временную таблицу с таблицей цен номенклатуры. На этот мы соединяем таблице по номенклатуре и периоду.

Итоговый результат запроса:

1с скд остатки на каждый день периода

Рис. 9 Итоговый результат запроса

Как мы видим результаты вывода цен в обоих случаях (через СКД и через запрос) оказались одинаковы.

Примеры по программированию в 1с 7.7, 8.1, 8.2

понедельник, 9 февраля 2015 г.

1с Запрос 8.2 Остатки на каждый день периода, без движений

Пример запроса 1с 8.2, когда не было движения за период, а необходимо вывести остатки.

Где «ВремТз» — это таблица значений, заполненная датами за месяц:

ВремТз = Новый ТаблицаЗначений;
ВремТз.Колонки.Добавить(«Период»,Новый ОписаниеТипов(«Дата»));

Для сч =0 по Разница Цикл
День_=НачПериода+сч*86400;
ВремТз.Добавить().период = День_;
КонецЦикла;

Вот только запросом:
ВЫБРАТЬ РАЗЛИЧНЫЕ
0 КАК Период
ПОМЕСТИТЬ Дни
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 5
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 7
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 8
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 9;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(&Началопериода, ДЕНЬ, ДНИ.Период) КАК Период,
Движения.Склад,
СУММА(ВЫБОР
КОГДА Движения.Период = &НачалоПериода
ТОГДА Движения.КоличествоКонечныйОстаток
ИНАЧЕ ВЫБОР
КОГДА Движения.Период

Источник

Как получить остатки на каждый день по регистру накопления?

Как Вы обычно решаете эту проблему?

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

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

X
ВЫБРАТЬ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
ВложенныйЗапрос.Субконто1,
ВложенныйЗапрос.Субконто2,
ВложенныйЗапрос.Валюта
ПОМЕСТИТЬ ВТ_Календарь
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь,
(ВЫБРАТЬ
ВТ_Остатки.Субконто1 КАК Субконто1,
ВТ_Остатки.Субконто2 КАК Субконто2,
ВТ_Остатки.Валюта КАК Валюта
ИЗ
ВТ_Остатки КАК ВТ_Остатки

СГРУППИРОВАТЬ ПО
ВТ_Остатки.Субконто1,
ВТ_Остатки.Субконто2,
ВТ_Остатки.Валюта) КАК ВложенныйЗапрос
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНачала И &ДатаОкончания
;

X
ВЫБРАТЬ
ВложенныйЗапрос.Субконто1 КАК Контрагент,
ВложенныйЗапрос.Субконто2 КАК Договор,
ВложенныйЗапрос.Дата КАК Дата,
ЕСТЬNULL(ВТ_Остатки.ВалютнаяСуммаНачальныйОстатокДт, 0) КАК ВалютныйОстатокНачалоДт,
ЕСТЬNULL(ВТ_Остатки.ВалютнаяСуммаНачальныйОстатокКт, 0) КАК ВалютныйОстатокНачалоКт,
ЕСТЬNULL(ВТ_Остатки1.ВалютнаяСуммаКонечныйОстатокДт, 0) КАК ВалютныйОстатокКонецДт,
ЕСТЬNULL(ВТ_Остатки1.ВалютнаяСуммаКонечныйОстатокКт, 0) КАК ВалютныйОстатокКонецКт,
ЕСТЬNULL(ВТ_Остатки.СуммаНачальныйОстатокДт, 0) КАК РублевыйОстатокНачалоДт,
ЕСТЬNULL(ВТ_Остатки.СуммаНачальныйОстатокКт, 0) КАК РублевыйОстатокНачалоКт,
ЕСТЬNULL(ВТ_Остатки1.СуммаКонечныйОстатокДт, 0) КАК РублевыйОстатокКонецДт,
ЕСТЬNULL(ВТ_Остатки1.СуммаКонечныйОстатокКт, 0) КАК РублевыйОстатокКонецКт
ИЗ
(ВЫБРАТЬ
МИНИМУМ(ВТ_Остатки.Период) КАК ПериодНач,
МАКСИМУМ(ВТ_Остатки1.Период) КАК ПериодКон,
ВТ_Календарь.ДатаКалендаря КАК Дата,
ВТ_Календарь.Субконто1 КАК Субконто1,
ПРЕДСТАВЛЕНИЕ(ВТ_Календарь.Субконто1) КАК Субконто1Представление,
ВТ_Календарь.Субконто2 КАК Субконто2,
ПРЕДСТАВЛЕНИЕ(ВТ_Календарь.Субконто2) КАК Субконто2Представление,
ВТ_Календарь.Валюта КАК Валюта,
ПРЕДСТАВЛЕНИЕ(ВТ_Календарь.Валюта) КАК ВалютаПредставление
ИЗ
ВТ_Календарь КАК ВТ_Календарь
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
ПО ВТ_Календарь.ДатаКалендаря = ВТ_Остатки1.Период
И ВТ_Календарь.Субконто2 >= ВТ_Остатки1.Субконто2

СГРУППИРОВАТЬ ПО
ВТ_Календарь.ДатаКалендаря,
ВТ_Календарь.Субконто1,
ВТ_Календарь.Субконто2,
ВТ_Календарь.Валюта) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
ПО ВложенныйЗапрос.ПериодНач = ВТ_Остатки.Период
И ВложенныйЗапрос.Субконто2 = ВТ_Остатки.Субконто2
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки1
ПО ВложенныйЗапрос.ПериодКон = ВТ_Остатки1.Период
И ВложенныйЗапрос.Субконто2 = ВТ_Остатки1.Субконто2

УПОРЯДОЧИТЬ ПО
Контрагент,
Договор,
Дата

Источник

Запрос для получения остатков по дням даже если не было движений

ПериодНоменклатураКоличество
01.05.2016Товар 014
11.05.2016Товар 013
16.05.2016Товар 012
31.05.2016Товар 012

Нам же в рамках нашей задачи нужна таблица, показывающая остаток на каждый день месяца:

ПериодНоменклатураКоличество
01.05.2016Товар 014
02.05.2016Товар 014
03.05.2016Товар 014
04.05.2016Товар 014
05.05.2016Товар 014
06.05.2016Товар 014
07.05.2016Товар 014
08.05.2016Товар 014
09.05.2016Товар 014
10.05.2016Товар 014
11.05.2016Товар 013
12.05.2016Товар 013
13.05.2016Товар 013
14.05.2016Товар 013
15.05.2016Товар 013
16.05.2016Товар 012
17.05.2016Товар 012
18.05.2016Товар 012
19.05.2016Товар 012
20.05.2016Товар 012
21.05.2016Товар 012
22.05.2016Товар 012
23.05.2016Товар 012
24.05.2016Товар 012
25.05.2016Товар 012
26.05.2016Товар 012
27.05.2016Товар 012
28.05.2016Товар 012
29.05.2016Товар 012
30.05.2016Товар 012
31.05.2016Товар 012

Посмотрим как мы можем это получить. Вот текст самого запроса:

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

НоменклатураПериод (таблица периодов)Период (таблица регистра)
Товар 0115.05.201601.05.2016
Товар 0115.05.201611.05.2016
НоменклатураПериод (таблица периодов)Период (таблица регистра)
Товар 0115.05.201611.05.2016

. и мы получаем полезную таблицу, в которой есть номенклатура, период конкретного дня отчета, и дата максимального периода из таблицы регистра, по которому можно вытащить актуальную для этого дня цифирку.

Источник

Запрос по остаткам регистра накопления на каждый день

Отсюда можно взять очень полезный запрос с календариком » Работаем с датами в запросе «.

(7) ildarovich, Вы поторопились группировать по номенклатуре, ведь движение на дату может быть null, запрос топикастера более верный. Но он не учитывает варианта, когда товар вообще появился на складе после начала периода, во-вторых, остатки обачно нужны на конец дня, а не начало, в этом случае поможет отнимание оборотов от конечного остатка(&КонецПериода оканчивается на 23:59:59):

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

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

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

. здесь также есть недостатки. Окончательный вариант приведен в комментарии (14)

(14) Да, классно, конечно!

Но мне понадобилось выбрать и начальный, и обороты (и приход, и расход) и конечный. Выкрутился так, в подчиненном запросе все кроме начальных остатков, по приниципу как в 14-м комменте у ildarovich, а уже из подчиненного по конечному и обороту вычисляю начальный в «верхнем» запросе, т.е. так:

Но может можно красивее или еще какую критику кто-то выскажет?

(14)
Если в РН по отборам будет пусто. Итоговая таблица тоже будет пустая.

Чуть модифицировал (16) для случая, когда периоды нам нужны исключительно до указанной даты. Так же в запросе добавил выборку регистраторов, которые двигали указанную номенклатуру в пределах дня:

(32) Не много по другому сделал

ВЫБРАТЬ
0 КАК Р
ПОМЕСТИТЬ Разряды

//////////////////////////////////////////////////////////// ­­////////////////////
ВЫБРАТЬ
ТаблицаДат.Период КАК ТДПериод,
МАКСИМУМ(ВТ_Остатки.Период) КАК ПериодРО,
ВТ_Остатки.Номенклатура
ПОМЕСТИТЬ ВТ_БлижайшиеДатыОстатков
ИЗ
ТаблицаДат КАК ТаблицаДат
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
ПО ТаблицаДат.Период >= ВТ_Остатки.Период

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

//////////////////////////////////////////////////////////// ­­////////////////////
ВЫБРАТЬ
ВТ_БлижайшиеДатыОстатков.ТДПериод КАК ТДПериод,
ВТ_Остатки.Номенклатура,
ВЫБОР
КОГДА ТДПериод = ВТ_Остатки.Период
ТОГДА ВТ_Остатки.КоличествоНачальныйОстаток
ИНАЧЕ КоличествоКонечныйОстаток
КОНЕЦ КАК КоличествоНачальныйОстаток,
ВЫБОР
КОГДА ТДПериод = ВТ_Остатки.Период
ТОГДА ВТ_Остатки.КоличествоПриход
ИНАЧЕ 0
КОНЕЦ КАК КоличествоПриход,
ВЫБОР
КОГДА ТДПериод = ВТ_Остатки.Период
ТОГДА ВТ_Остатки.КоличествоРасход
ИНАЧЕ 0
КОНЕЦ КАК КоличествоРасход, ВТ_Остатки.КоличествоКонечныйОстаток,
ТоварыНаСкладахОбороты.Регистратор
ИЗ
ВТ_БлижайшиеДатыОстатков КАК ВТ_БлижайшиеДатыОстатков
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОбороты
ПО ВТ_Остатки.Период = НАЧАЛОПЕРИОДА(ТоварыНаСкладахОбороты.Период, ДЕНЬ)
ПО ВТ_БлижайшиеДатыОстатков.ПериодРО = ВТ_Остатки.Период
И ВТ_БлижайшиеДатыОстатков.Номенклатура = ВТ_Остатки.Номенклатура

Источник

Дополнение периодов в системе компоновки данных

Для некоторых отчетов необходимо получать данные на все периоды в заданном интервале. Например, получать остатки по дням, вне зависимости от того, были ли движения за эти дни. Система компоновки данных позволяет указывать для группировок дополнение периодов с заданной периодичностью в указанном интервале.

Для примера, рассмотрим отчет, который выводит остатки и обороты за указанный период.

Данные будем получать при помощи следующего запроса:

Для отчета будем использовать следующие настройки:

1с скд остатки на каждый день периода

Т.е. в отчет будем выдавать группировку по периоду и диаграмму группировкой по периоду в сериях.

Если мы будем получать отчет с группировкой по периоду без дополнения, то результат отчета будет выглядеть следующим образом:

Параметры данных:НачалоПериода = 01.02.2002 0:00:00
КонецПериода = 28.02.2002 23:59:59
Период деньКоличество начальный остатокКоличество оборотКоличество конечный остаток
01.02189-53136
02.021365141
05.02141-3138
13.02138101239
14.02239-4235
15.02235-25210
18.02210-19191
22.0219130221
24.02221-12209
26.02209-12197
28.02197197
Итого1898197

1с скд остатки на каждый день периода

Как видно, дни, за которые отсутствовали движения, в отчет не выводятся, что не позволяет визуально отслеживать динамику изменения остатков.

Попробуем воспользоваться дополнением периодов, для этого включим у поля группировки тип дополнения День.

1с скд остатки на каждый день периода

Результат отчета с этой настройкой будет выглядеть следующим образом:

Параметры данных:НачалоПериода = 01.02.2002 0:00:00
КонецПериода = 28.02.2002 23:59:59
Период деньКоличество начальный остатокКоличество оборотКоличество конечный остаток
01.02189-53136
02.021365141
03.02141141
04.02141141
05.02141-3138
06.02138138
07.02138138
08.02138138
09.02138138
10.02138138
11.02138138
12.02138138
13.02138101239
14.02239-4235
15.02235-25210
16.02210210
17.02210210
18.02210-19191
19.02191191
20.02191191
21.02191191
22.0219130221
23.02221221
24.02221-12209
25.02209209
26.02209-12197
27.02197197
28.02197197
Итого1898197

1с скд остатки на каждый день периода

В данном результате видно, что остатки выдаются на все дни, даже если в эти дни не было движений.

При необходимости, для поля группировки можно указать интервал, в котором нужно дополнять периоды. Для этого следует ввести даты в колонки «Начальная дата периода» и «Конечная дата периода» поля группировки. При этом дополнение будет происходить не только в интервале дат, полученных из набора данных, но с начальной даты до конечной даты.

Для демонстрации этой возможности воспользуемся отчетом о продажах, в котором будем использовать следующий запрос:

Для примеров будем рассматривать вывод в отчет одной группировки по полю Период.

Результат отчета без дополнения будет выглядеть так:

Параметры данных:НачалоПериода = 01.03.2002 0:00:00
КонецПериода = 31.03.2002 23:59:59
ПериодКоличество оборот
17.03.2002 0:00:0052
20.03.2002 0:00:0020
Итого72

Результат с дополнением по дням без указания интервала будет выглядеть так:

Параметры данных:НачалоПериода = 01.03.2002 0:00:00
КонецПериода = 31.03.2002 23:59:59
ПериодКоличество оборот
17.03.2002 0:00:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
Итого72

Т.е. дополнение произошло в интервале, дат, которые были получены из набора данных.

Если у поля группировки установить начальную и конечную дату периода следующим образом:

1с скд остатки на каждый день периода

То дополнение по дням произойдет в указанном интервале и результат отчета будет выглядеть так:

Параметры данных:НачалоПериода = 01.03.2002 0:00:00
КонецПериода = 31.03.2002 23:59:59
ПериодКоличество оборот
01.03.2002 0:00:00
02.03.2002 0:00:00
03.03.2002 0:00:00
04.03.2002 0:00:00
05.03.2002 0:00:00
06.03.2002 0:00:00
07.03.2002 0:00:00
08.03.2002 0:00:00
09.03.2002 0:00:00
10.03.2002 0:00:00
11.03.2002 0:00:00
12.03.2002 0:00:00
13.03.2002 0:00:00
14.03.2002 0:00:00
15.03.2002 0:00:00
16.03.2002 0:00:00
17.03.2002 0:00:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
21.03.2002 0:00:00
22.03.2002 0:00:00
23.03.2002 0:00:00
24.03.2002 0:00:00
25.03.2002 0:00:00
26.03.2002 0:00:00
27.03.2002 0:00:00
28.03.2002 0:00:00
29.03.2002 0:00:00
30.03.2002 0:00:00
31.03.2002 0:00:00
Итого72

Отметим, что в качестве начальных и конечных дат периода можно использовать не только даты, но и перечисление ТипДополненияПериодаКомпоновкиДанных, а также поле компоновки данных. Для выбора типа следует очистить содержимое поля и воспользоваться кнопкой выбора типа.

1с скд остатки на каждый день периода

1с скд остатки на каждый день периода

Параметры данных:НачалоПериода = 01.03.2002 0:00:00
КонецПериода = 31.03.2002 23:59:59
ПериодКоличество оборот
01.03.2002 0:00:00
02.03.2002 0:00:00
03.03.2002 0:00:00
04.03.2002 0:00:00
05.03.2002 0:00:00
06.03.2002 0:00:00
07.03.2002 0:00:00
08.03.2002 0:00:00
09.03.2002 0:00:00
10.03.2002 0:00:00
11.03.2002 0:00:00
12.03.2002 0:00:00
13.03.2002 0:00:00
14.03.2002 0:00:00
15.03.2002 0:00:00
16.03.2002 0:00:00
17.03.2002 0:00:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
21.03.2002 0:00:00
22.03.2002 0:00:00
23.03.2002 0:00:00
24.03.2002 0:00:00
25.03.2002 0:00:00
26.03.2002 0:00:00
27.03.2002 0:00:00
28.03.2002 0:00:00
29.03.2002 0:00:00
30.03.2002 0:00:00
31.03.2002 0:00:00
Итого72

Как видно в данном примере, дополнение произошло в интервале, указанном в параметрах данных.

Если в качестве границы интервала используется тип ТипДополненияПериодаКомпоновкиДанных, то дополнение будет осуществляться до ближайшей границы выбранного типа периода. Так, если в качестве начальной и конечной дат периода выбрать Месяц, то дополнение будет осуществляться с начала месяца первой даты, присутствующей в группировке и до конца месяца последней даты, присутствующей в группировке. Если выбрать в качестве границ выбрать значение Неделя, то периоды будут дополняться с начала недели и до конца недели. Другие типы дополнения отрабатываются аналогично.

1с скд остатки на каждый день периода

Параметры данных:НачалоПериода = 01.03.2002 0:00:00
КонецПериода = 31.03.2002 23:59:59
ПериодКоличество оборот
11.03.2002 0:00:00
12.03.2002 0:00:00
13.03.2002 0:00:00
14.03.2002 0:00:00
15.03.2002 0:00:00
16.03.2002 0:00:00
17.03.2002 0:00:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
21.03.2002 0:00:00
22.03.2002 0:00:00
23.03.2002 0:00:00
24.03.2002 0:00:00
Итого72

Данная возможность особенно полезна для создания отчетов, в которых группировка по периоду вложена в группировку по объемлющему периоду.

Рассмотрим следующую настройку:

1с скд остатки на каждый день периода

В отчет будут выдаваться периоды, сгруппированные по месяцам.

Если для группировки по периоду установить в качестве начальной и конечной даты конкретные даты, то дополнение произойдет в рамках указанного периода, т.е. в отчет выведутся периоды, которые вовсе не находятся в текущей группировке по месяцам.

Параметры данных:Начало периода = 01.01.2002 0:00:00
Конец периода = 31.03.2002 23:59:59
Период месяцКоличество оборот
Период
01.01.2002 0:00:0067
01.01.2002 0:00:00
02.01.2002 0:00:00
03.01.2002 0:00:00
04.01.2002 0:00:00
05.01.2002 0:00:00
06.01.2002 0:00:00
07.01.2002 0:00:00
08.01.2002 0:00:00
09.01.2002 0:00:00
10.01.2002 0:00:004
11.01.2002 0:00:0029
12.01.2002 0:00:00
13.01.2002 0:00:00
14.01.2002 0:00:00
15.01.2002 0:00:00
16.01.2002 0:00:0021
17.01.2002 0:00:00
18.01.2002 0:00:003
19.01.2002 0:00:00
20.01.2002 0:00:00
21.01.2002 0:00:001
22.01.2002 0:00:00
23.01.2002 0:00:00
24.01.2002 0:00:00
25.01.2002 0:00:00
26.01.2002 0:00:00
27.01.2002 0:00:00
28.01.2002 0:00:00
29.01.2002 0:00:009
30.01.2002 0:00:00
31.01.2002 0:00:00
01.02.2002 0:00:00
02.02.2002 0:00:00
03.02.2002 0:00:00
04.02.2002 0:00:00
05.02.2002 0:00:00
06.02.2002 0:00:00
07.02.2002 0:00:00
08.02.2002 0:00:00
09.02.2002 0:00:00
10.02.2002 0:00:00
11.02.2002 0:00:00
12.02.2002 0:00:00
13.02.2002 0:00:00
14.02.2002 0:00:00
15.02.2002 0:00:00
16.02.2002 0:00:00
17.02.2002 0:00:00
18.02.2002 0:00:00
19.02.2002 0:00:00
20.02.2002 0:00:00
21.02.2002 0:00:00
22.02.2002 0:00:00
23.02.2002 0:00:00
24.02.2002 0:00:00
25.02.2002 0:00:00
26.02.2002 0:00:00
27.02.2002 0:00:00
28.02.2002 0:00:00
01.03.2002 0:00:00
02.03.2002 0:00:00
03.03.2002 0:00:00
04.03.2002 0:00:00
05.03.2002 0:00:00
06.03.2002 0:00:00
07.03.2002 0:00:00
08.03.2002 0:00:00
09.03.2002 0:00:00
10.03.2002 0:00:00
11.03.2002 0:00:00
12.03.2002 0:00:00
13.03.2002 0:00:00
14.03.2002 0:00:00
15.03.2002 0:00:00
16.03.2002 0:00:00
17.03.2002 0:00:00
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:00
21.03.2002 0:00:00
22.03.2002 0:00:00
23.03.2002 0:00:00
24.03.2002 0:00:00
25.03.2002 0:00:00
26.03.2002 0:00:00
27.03.2002 0:00:00
28.03.2002 0:00:00
29.03.2002 0:00:00
30.03.2002 0:00:00
31.03.2002 0:00:00
01.02.2002 0:00:00128
01.01.2002 0:00:00
02.01.2002 0:00:00
03.01.2002 0:00:00
04.01.2002 0:00:00
05.01.2002 0:00:00
06.01.2002 0:00:00
07.01.2002 0:00:00
08.01.2002 0:00:00
09.01.2002 0:00:00
10.01.2002 0:00:00
11.01.2002 0:00:00
12.01.2002 0:00:00
13.01.2002 0:00:00
14.01.2002 0:00:00
15.01.2002 0:00:00
16.01.2002 0:00:00
17.01.2002 0:00:00
18.01.2002 0:00:00
19.01.2002 0:00:00
20.01.2002 0:00:00
21.01.2002 0:00:00
22.01.2002 0:00:00
23.01.2002 0:00:00
24.01.2002 0:00:00
25.01.2002 0:00:00
26.01.2002 0:00:00
27.01.2002 0:00:00
28.01.2002 0:00:00
29.01.2002 0:00:00
30.01.2002 0:00:00
31.01.2002 0:00:00
01.02.2002 0:00:0053
02.02.2002 0:00:00
03.02.2002 0:00:00
04.02.2002 0:00:00
05.02.2002 0:00:003
06.02.2002 0:00:00
07.02.2002 0:00:00
08.02.2002 0:00:00
09.02.2002 0:00:00
10.02.2002 0:00:00
11.02.2002 0:00:00
12.02.2002 0:00:00
13.02.2002 0:00:00
14.02.2002 0:00:004
15.02.2002 0:00:0025
16.02.2002 0:00:00
17.02.2002 0:00:00
18.02.2002 0:00:0019
19.02.2002 0:00:00
20.02.2002 0:00:00
21.02.2002 0:00:00
22.02.2002 0:00:00
23.02.2002 0:00:00
24.02.2002 0:00:0012
25.02.2002 0:00:00
26.02.2002 0:00:0012
27.02.2002 0:00:00
28.02.2002 0:00:00
01.03.2002 0:00:00
02.03.2002 0:00:00
03.03.2002 0:00:00
04.03.2002 0:00:00
05.03.2002 0:00:00
06.03.2002 0:00:00
07.03.2002 0:00:00
08.03.2002 0:00:00
09.03.2002 0:00:00
10.03.2002 0:00:00
11.03.2002 0:00:00
12.03.2002 0:00:00
13.03.2002 0:00:00
14.03.2002 0:00:00
15.03.2002 0:00:00
16.03.2002 0:00:00
17.03.2002 0:00:00
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:00
21.03.2002 0:00:00
22.03.2002 0:00:00
23.03.2002 0:00:00
24.03.2002 0:00:00
25.03.2002 0:00:00
26.03.2002 0:00:00
27.03.2002 0:00:00
28.03.2002 0:00:00
29.03.2002 0:00:00
30.03.2002 0:00:00
31.03.2002 0:00:00
01.03.2002 0:00:0072
01.01.2002 0:00:00
02.01.2002 0:00:00
03.01.2002 0:00:00
04.01.2002 0:00:00
05.01.2002 0:00:00
06.01.2002 0:00:00
07.01.2002 0:00:00
08.01.2002 0:00:00
09.01.2002 0:00:00
10.01.2002 0:00:00
11.01.2002 0:00:00
12.01.2002 0:00:00
13.01.2002 0:00:00
14.01.2002 0:00:00
15.01.2002 0:00:00
16.01.2002 0:00:00
17.01.2002 0:00:00
18.01.2002 0:00:00
19.01.2002 0:00:00
20.01.2002 0:00:00
21.01.2002 0:00:00
22.01.2002 0:00:00
23.01.2002 0:00:00
24.01.2002 0:00:00
25.01.2002 0:00:00
26.01.2002 0:00:00
27.01.2002 0:00:00
28.01.2002 0:00:00
29.01.2002 0:00:00
30.01.2002 0:00:00
31.01.2002 0:00:00
01.02.2002 0:00:00
02.02.2002 0:00:00
03.02.2002 0:00:00
04.02.2002 0:00:00
05.02.2002 0:00:00
06.02.2002 0:00:00
07.02.2002 0:00:00
08.02.2002 0:00:00
09.02.2002 0:00:00
10.02.2002 0:00:00
11.02.2002 0:00:00
12.02.2002 0:00:00
13.02.2002 0:00:00
14.02.2002 0:00:00
15.02.2002 0:00:00
16.02.2002 0:00:00
17.02.2002 0:00:00
18.02.2002 0:00:00
19.02.2002 0:00:00
20.02.2002 0:00:00
21.02.2002 0:00:00
22.02.2002 0:00:00
23.02.2002 0:00:00
24.02.2002 0:00:00
25.02.2002 0:00:00
26.02.2002 0:00:00
27.02.2002 0:00:00
28.02.2002 0:00:00
01.03.2002 0:00:00
02.03.2002 0:00:00
03.03.2002 0:00:00
04.03.2002 0:00:00
05.03.2002 0:00:00
06.03.2002 0:00:00
07.03.2002 0:00:00
08.03.2002 0:00:00
09.03.2002 0:00:00
10.03.2002 0:00:00
11.03.2002 0:00:00
12.03.2002 0:00:00
13.03.2002 0:00:00
14.03.2002 0:00:00
15.03.2002 0:00:00
16.03.2002 0:00:00
17.03.2002 0:00:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
21.03.2002 0:00:00
22.03.2002 0:00:00
23.03.2002 0:00:00
24.03.2002 0:00:00
25.03.2002 0:00:00
26.03.2002 0:00:00
27.03.2002 0:00:00
28.03.2002 0:00:00
29.03.2002 0:00:00
30.03.2002 0:00:00
31.03.2002 0:00:00
Итого267

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

Результат будет выглядеть так:

Параметры данных:Начало периода = 01.01.2002 0:00:00
Конец периода = 31.03.2002 0:00:00
Период месяцКоличество оборот
Период
01.01.2002 0:00:0067
01.01.2002 0:00:00
02.01.2002 0:00:00
03.01.2002 0:00:00
04.01.2002 0:00:00
05.01.2002 0:00:00
06.01.2002 0:00:00
07.01.2002 0:00:00
08.01.2002 0:00:00
09.01.2002 0:00:00
10.01.2002 0:00:004
11.01.2002 0:00:0029
12.01.2002 0:00:00
13.01.2002 0:00:00
14.01.2002 0:00:00
15.01.2002 0:00:00
16.01.2002 0:00:0021
17.01.2002 0:00:00
18.01.2002 0:00:003
19.01.2002 0:00:00
20.01.2002 0:00:00
21.01.2002 0:00:001
22.01.2002 0:00:00
23.01.2002 0:00:00
24.01.2002 0:00:00
25.01.2002 0:00:00
26.01.2002 0:00:00
27.01.2002 0:00:00
28.01.2002 0:00:00
29.01.2002 0:00:009
30.01.2002 0:00:00
31.01.2002 0:00:00
01.02.2002 0:00:00128
01.02.2002 0:00:0053
02.02.2002 0:00:00
03.02.2002 0:00:00
04.02.2002 0:00:00
05.02.2002 0:00:003
06.02.2002 0:00:00
07.02.2002 0:00:00
08.02.2002 0:00:00
09.02.2002 0:00:00
10.02.2002 0:00:00
11.02.2002 0:00:00
12.02.2002 0:00:00
13.02.2002 0:00:00
14.02.2002 0:00:004
15.02.2002 0:00:0025
16.02.2002 0:00:00
17.02.2002 0:00:00
18.02.2002 0:00:0019
19.02.2002 0:00:00
20.02.2002 0:00:00
21.02.2002 0:00:00
22.02.2002 0:00:00
23.02.2002 0:00:00
24.02.2002 0:00:0012
25.02.2002 0:00:00
26.02.2002 0:00:0012
27.02.2002 0:00:00
28.02.2002 0:00:00
01.03.2002 0:00:0072
01.03.2002 0:00:00
02.03.2002 0:00:00
03.03.2002 0:00:00
04.03.2002 0:00:00
05.03.2002 0:00:00
06.03.2002 0:00:00
07.03.2002 0:00:00
08.03.2002 0:00:00
09.03.2002 0:00:00
10.03.2002 0:00:00
11.03.2002 0:00:00
12.03.2002 0:00:00
13.03.2002 0:00:00
14.03.2002 0:00:00
15.03.2002 0:00:00
16.03.2002 0:00:00
17.03.2002 0:00:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
21.03.2002 0:00:00
22.03.2002 0:00:00
23.03.2002 0:00:00
24.03.2002 0:00:00
25.03.2002 0:00:00
26.03.2002 0:00:00
27.03.2002 0:00:00
28.03.2002 0:00:00
29.03.2002 0:00:00
30.03.2002 0:00:00
31.03.2002 0:00:00
Итого267

Как видно, дополнение внутри группировки по месяцу произошло только в рамках месяца, что и требовалось.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *