1. XiPyPg 10.08.18 16:11 Сейчас в теме

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

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

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

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

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

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

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


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

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

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

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

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

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


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

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день

Руководитель группы сервисов ЭДО, ЭЦП и криптографии
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы интеграций (1С)
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы сервисов FRM на 1С
Москва
зарплата от 150 000 руб.
Полный день

Консультант-аналитик 1С (ЗУП)
Санкт-Петербург
Полный день