Вывести остатки по товару на каждый день заданного периода
В базе есть регистр накопления АктивыСтоимость с видом регистра Остатки:
Измерения: Актив
Ресурсы: Количество
Движения:
Приход 02.01.2020 Акция Газпром 100
Расход 10.01.2020 Акция Ленэнерго 10
Приход 11.01.2020 Акция Газпром 50
Нужно сделать отчет на СКД, выводящий остатки по заданному активу (может быть и не указан) на каждый день заданного периода, даже если движений за этот день не было.
Например, задан месяц январь 2008, Актив: Акция Газпром
Результат:
01.01.2008 – 0
02.01.2008 – 100
03.01.2008 – 100
04.01.2008 – 100
…
11.01.2008 – 150
…
31.01.2008 – 150
Как это сделать?
Измерения: Актив
Ресурсы: Количество
Движения:
Приход 02.01.2020 Акция Газпром 100
Расход 10.01.2020 Акция Ленэнерго 10
Приход 11.01.2020 Акция Газпром 50
Нужно сделать отчет на СКД, выводящий остатки по заданному активу (может быть и не указан) на каждый день заданного периода, даже если движений за этот день не было.
Например, задан месяц январь 2008, Актив: Акция Газпром
Результат:
01.01.2008 – 0
02.01.2008 – 100
03.01.2008 – 100
04.01.2008 – 100
…
11.01.2008 – 150
…
31.01.2008 – 150
Как это сделать?
По теме из базы знаний
- Пример технического задания
- Управление резервами товаров в УТ 11 и ERP. Особенности и нюансы
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
- API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3
- Быстродействие типовой 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) решение не мое, идея давно взята отсюда, сам пользуюсь для остатков за период
адаптируйте под свою задачу уже самостоятельно, тут главная мысль получение таблицы периода дат
адаптируйте под свою задачу уже самостоятельно, тут главная мысль получение таблицы периода дат
тзнСЦифрами = Новый ТаблицаЗначений();
// Создание описателя типов для таблицы значений
КЧ = Новый КвалификаторыЧисла(12,2);
Массив = Новый Массив;
Массив.Добавить(Тип("Число"));
ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);
тзнСЦифрами.Колонки.Добавить("Цифра", ОписаниеТиповЧ);
Для Счетчик = 0 по лМаксимальноеЧислоДней Цикл
НоваяСтрока = тзнСЦифрами.Добавить();
НоваяСтрока.Цифра = Счетчик;
КонецЦикла;
лЗапрос.Текст = "ВЫБРАТЬ
| ТБДаты.Цифра
|ПОМЕСТИТЬ Единицы
|ИЗ
| &ТБДаты КАК ТБДаты
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), ДЕНЬ, Единицы.Цифра) КАК Период
|ПОМЕСТИТЬ Дни
|ИЗ
| Единицы КАК Единицы
|ГДЕ
| Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| Движения.Номенклатура КАК Номенклатура,
| ДНИ.Период КАК Период,
| СУММА(ВЫБОР
| КОГДА Движения.Период = &НачалоПериода
| ТОГДА Движения.КоличествоКонечныйОстаток
| ИНАЧЕ ВЫБОР
| КОГДА Движения.Период <= ДНИ.Период
| ТОГДА Движения.КоличествоОборот
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ) КАК СвободныйОстаток,
| Движения.Склад КАК Склад
|ИЗ
| Дни КАК ДНИ,
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, ,Номенклатура В ИЕРАРХИИ (&отборНомеклатуры)) КАК Движения
|
|
|СГРУППИРОВАТЬ ПО
| ДНИ.Период,
| Движения.Склад,
| Движения.Номенклатура
|
|ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА Движения.Период = &НачалоПериода
| ТОГДА Движения.КоличествоКонечныйОстаток
| ИНАЧЕ ВЫБОР
| КОГДА Движения.Период <= ДНИ.Период
| ТОГДА Движения.КоличествоОборот
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ) <> 0
|
|УПОРЯДОЧИТЬ ПО
| Период,
| Склад,
| Номенклатура";
лЗапрос.УстановитьПараметр("КонецПериода", КонецДня(ДатаОкончанияПериода));
лЗапрос.УстановитьПараметр("НачалоПериода", НачалоДня(ДатаНачалаПериода));
лЗапрос.УстановитьПараметр("ТБДаты", тзнСЦифрами);
лЗапрос.УстановитьПараметр("отборНомеклатуры", данныеОтбораНомеклатуры);
лТЗнДанные = лЗапрос.Выполнить().Выгрузить();
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот