Получить количество дней без продаж

1. nick_krsk 19 19.06.13 11:08 Сейчас в теме
Добрый день!
УТ 10.3.
Как получить максимальное количество дней без продаж по конкретному товару.
Я вижу только такой вариант: сформировать таблицу с поступлениями/продажами и ее обрабатывать программно.
Можно ли прямо в запросе рассчитать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. wa 19.06.13 11:20 Сейчас в теме
как насчет РазностьДат между периодом последней реализации и датой на которую формируется отчет?(1) Karambol,
5. truba 19.06.13 12:12 Сейчас в теме
(1) Karambol, задача поставлена не точно.
Максимальное количество непрерывных дней без продаж или общая сумма дней без продаж? Максимальное количество дней без продаж когда товар был на складе или когда его не было?
3. unoDosTres 19.06.13 11:21 Сейчас в теме
Чем не устравивает регистр продажи? запросом вроде все вытаскиваются без всяких плясок с бубном, соединяем со всех номенклатурой,если нужно получить нмк по которой вообще не было продаж
4. Sevens 6 19.06.13 11:52 Сейчас в теме
Можно, я б делал как-то так:
1. Получил таблицу продаж(Т1) за определенный период, по определенному товару
2. Присоединил к ней саму же себя(Т2) по условию
Т1.Период<Т2.Период (получается таблица Т3, со всеми полями Т1 и из Т2 только период)
3. Сгрупировал бы по всем полям Т1, Т2.Период брать минимум. (Таблица Т4)
4. Соединил бы Т4 с Т1 по
Т4.ПериодТ2=Т1.Период в итоге получится таблица продаж

Период Товар Цена ПериодСледующейПродажи ЦенаСледПродаж

Далее вычитаем из ПериодСледующейПродажи Период, получаем кол-во Дней без Продаж. Далее находим Максимальное, Тут думаю разберётесь.
Если я правильно понял задачу) Хотя можно и без пункта 4, если надо только кол-во дней)
6. nick_krsk 19 19.06.13 12:32 Сейчас в теме
Да, немного ошибся с формулировкой.
Нужно получить общее количество дней без продаж по номенклатуре за период.
8. truba 19.06.13 13:11 Сейчас в теме
(6) Karambol, тут еще несколько подводных камней:
Учет выходных дней когда продаж не может быть в принципе. Т.е. надо накладывать график работы подразделений.
Учет дней когда товара не было на складе, т.е. продажи были невозможны, хотя спрос присустствовал
7. Sevens 6 19.06.13 13:04 Сейчас в теме
Тогда ещё проще:
1. Берёшь заполненный календарь (у меня это РегистрСведений.РегламентированныйПроизводственныйКалендарь) за этот период (в итоге получает тупо список дат) добавляешь к нему нужный товар.
2. Присоединяешь к нему левым соединением таблицу продаж за период и отбираешь по любое поле из продаж есть NULL
3. Группируешь по товару, а дату как кол-во различных :)
Получается как-то так:
ВЫБРАТЬ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
	&Товар КАК Товар
ПОМЕСТИТЬ СписокДат
ИЗ
	РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачПериод И &КонПериод
;
ВЫБРАТЬ
	ПродажиОбороты.Номенклатура,
	ПродажиОбороты.Период
ПОМЕСТИТЬ ПродажиСП
ИЗ
	РегистрНакопления.Продажи.Обороты(&НачПериод, &КонПериод, День, Номенклатура = &Товар) КАК ПродажиОбороты
;
ВЫБРАТЬ
	СписокДат.ДатаКалендаря,
	СписокДат.Товар,
	ПродажиСП.Номенклатура,
	ПродажиСП.Период
ПОМЕСТИТЬ ДатыБезПродажи
ИЗ
	СписокДат КАК СписокДат
		ЛЕВОЕ СОЕДИНЕНИЕ ПродажиСП КАК ПродажиСП
		ПО СписокДат.ДатаКалендаря = ПродажиСП.Период
			И СписокДат.Товар = ПродажиСП.Номенклатура
ГДЕ
	ПродажиСП.Номенклатура ЕСТЬ NULL 
;
ВЫБРАТЬ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДатыБезПродажи.ДатаКалендаря) КАК ДатаКалендаря,
	ДатыБезПродажи.Товар
ИЗ
	ДатыБезПродажи КАК ДатыБезПродажи

СГРУППИРОВАТЬ ПО
	ДатыБезПродажи.Товар
Показать
9. nick_krsk 19 19.06.13 13:33 Сейчас в теме
Мне без учета выходных.
Думаю сделать так:
1.Взять номенклатуру
2.Взять общее количество дней
3.Присоединить продажи и получить количество дней с продажами
4.Отнять от общего количества дней количество дней с продажами. Получится количество дней без продажи.
Как что думаете о таком решении? :)

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

СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура) КАК Продажи
ПО Номенклатура.Ссылка = Продажи.Ном
ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ
10. unoDosTres 19.06.13 14:37 Сейчас в теме
(9) Karambol вроде все верно
11. Nail2011 10 19.06.13 15:14 Сейчас в теме
Если нужно максимальное количество, не пробовал использовать агрегат Максимум(КоличествоДней)?
Оставьте свое сообщение

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