Остатки на каждый день. СКД.

1. XiPyPg 10.08.18 16:11 Сейчас в теме
Ребят может кто подскажет как можно получить остатки на каждый день согласно производственного календаря, ну тоесть получается надо делать запрос на каждую дату из заданного периода по регистру взаиморасчетыподокументамостатки. Можно ли это как-то реализовать в СКД?
По теме из базы знаний
Найденные решения
14. DrZombi 290 13.08.18 09:29 Сейчас в теме
(1) Формируешь запрос с периодичностью на каждый день.

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ДвиженияДенежныхСредствОбороты.Период КАК Период
ПОМЕСТИТЬ Дни

// Тут не важно, откуда брать дни, но это необходимо, поскольку в регистре накопления есть только те дни, в которые были движения. А нам хочется знать остатки, даже если в течении дня они не менялись. Выбирайте способ построения этой таблицы, наиболее быстрый для вашей конфигурации.

ИЗ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ДвиженияДенежныхСредствОбороты ;

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


Материал смотреть тут...
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
8. vadim1011985 99 10.08.18 17:32 Сейчас в теме
(1) создаешь 2 набора записей
в первом по производственному календарю собираешь свои даты (псевдоним поля например ДатаПроизводственногоКалендаря)
Во втором наборе твой регистр с нужными данными , так же во второй набор добавляешь свое поля например &ДатаПроизводственногоКалендаря , и это же поле используешь как параметр виртуальной таблицы остатки.
Соединяешь наборы по этому полю в колонке "Параметр" выбираешь ДатаПроизводственногоКалендаря - Готово , Теперь по каждой дате из первого набора будут получены остатки
9. herfis 498 10.08.18 17:38 Сейчас в теме
(8) Сурово :)
Срезы последних этим способом считает шустрее, чем можно предположить, хотя и медленнее, чем если самому "резать".
А вот получение остатков, боюсь, просядет значительно больше.
10. vadim1011985 99 10.08.18 17:50 Сейчас в теме
(9) Ну не знаю , по мне так способ достаточно простой и понятный. на счет скорости - тут вопрос на сколько она важна - если например в компании 50,100, 200 , 500 человек -и все работаю с 1с - то да критично , а если 3 - 5 человек и формируют этот отчет не часто то думаю что скоростью можно немного пренебречь
12. herfis 498 10.08.18 18:00 Сейчас в теме
(10) Фиг его знает. У меня так и не дошли руки запрофайлить, как именно СКД разруливает такую конструкцию и насколько эффективные оптимизации применяет. Потому как похоже, что она все-таки как-то это оптимизирует. Но все равно пугающая конструкция.
Так как мне в основном приходится с большими нагруженными базами работать, то держусь от нее подальше на всякий случай :)
11. vadim1011985 99 10.08.18 17:53 Сейчас в теме
(9) у меня был вариант хуже когда клиент попросил сделать отчет по остаткам услуг - ОСТАТКАМ УСЛУГ КАРЛ !!! без возможности изменения конфигурации
14. DrZombi 290 13.08.18 09:29 Сейчас в теме
(1) Формируешь запрос с периодичностью на каждый день.

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ДвиженияДенежныхСредствОбороты.Период КАК Период
ПОМЕСТИТЬ Дни

// Тут не важно, откуда брать дни, но это необходимо, поскольку в регистре накопления есть только те дни, в которые были движения. А нам хочется знать остатки, даже если в течении дня они не менялись. Выбирайте способ построения этой таблицы, наиболее быстрый для вашей конфигурации.

ИЗ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ДвиженияДенежныхСредствОбороты ;

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


Материал смотреть тут...
2. harmer 1 10.08.18 16:17 Сейчас в теме
Здесь с десяток публикаций с решением данной задачи. Воспользуйтесь поиском.
3. user652236_dima_-_- 10.08.18 16:32 Сейчас в теме
в скд
настройки
детальные записи
поле группировки- дата
там тип дополнения выбрать нужный день или месяц или год...
5. harmer 1 10.08.18 17:09 Сейчас в теме
(3) А если не было движений в какой-либо день?
6. herfis 498 10.08.18 17:21 Сейчас в теме
(5) Дополнение это решает. Но решает на этапе вывода результата. Проблема возникает, если эти данные влияют на расчет.
7. user652236_dima_-_- 10.08.18 17:26 Сейчас в теме
(5) выведет остаток за прошлый день
4. herfis 498 10.08.18 17:07 Сейчас в теме
Можно самому рассчитать в запросе, имея начальные остатки и обороты.
В минимализмах Ильдаровича есть пример. В качестве концепта должно хватить.
13. Kaspirovsky 215 13.08.18 05:30 Сейчас в теме
Можно запросом, ну а СКД то:
1. В параметрах виртуальной таблицы устанавливает "Периодичность".
2. В настройках отчета, добавляем группировку по полю "ПериодДень" . тип Дополнения "День",
2.1. начальную дату периода очищаем, выбирает поле компоновки данных и указываем НачалоПериода. аналогично с конечной датой
3. Указываем в параметрах период
user1740533; vwsav; user858823; +3 Ответить
15. XiPyPg 28.08.18 11:56 Сейчас в теме
(13)Хороший вариант, но не подходит, в дальнейшем надо делать вычисляемое поле которое на каждый день вычисляет коэффицент, и там где нет движений не считает. Так же в группировку по конце периода надо сумму кон.ост делить на кол-во дней, тоже не работает.
16. user1283468 20.09.19 05:37 Сейчас в теме
Здравствуйте, мы внедряем на работе 1С Предприятие 8.3, у нас тут возникли разногласия по поводу отрицательных остатков товаров на складе на каждый день, я уверена, что нельзя допускать этого, а некоторые говорят, чтобы главное на конец месяца были положительные остатки , а на каждый день не обязательно соблюдать положительные остатки. Кто из нас прав ?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот