По теме из базы знаний
- Минимализмы 3
- 1С: Розница 2.2: Помощник закупки - анализ запасов товара на определенное количество дней
- Продажи по номенклатуре с расчетом прибыли без закрытия месяца и без расчета себестоимости - опт и розница - валовая прибыль по номенклатуре и себестоимость без закрытия месяца
- Cкорость продаж и ABC-анализ. УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4, ERP 2.5
- МС: Интеграция 1С с маркетплейсами Wildberries, Ozon, Яндекс.Маркет и МегаМаркет - обмен 1С с маркетплейсами остатками, ценами, заказами и аналитика продаж
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Можно, я б делал как-то так:
1. Получил таблицу продаж(Т1) за определенный период, по определенному товару
2. Присоединил к ней саму же себя(Т2) по условию
Т1.Период<Т2.Период (получается таблица Т3, со всеми полями Т1 и из Т2 только период)
3. Сгрупировал бы по всем полям Т1, Т2.Период брать минимум. (Таблица Т4)
4. Соединил бы Т4 с Т1 по
Т4.ПериодТ2=Т1.Период в итоге получится таблица продаж
Период Товар Цена ПериодСледующейПродажи ЦенаСледПродаж
Далее вычитаем из ПериодСледующейПродажи Период, получаем кол-во Дней без Продаж. Далее находим Максимальное, Тут думаю разберётесь.
Если я правильно понял задачу) Хотя можно и без пункта 4, если надо только кол-во дней)
1. Получил таблицу продаж(Т1) за определенный период, по определенному товару
2. Присоединил к ней саму же себя(Т2) по условию
Т1.Период<Т2.Период (получается таблица Т3, со всеми полями Т1 и из Т2 только период)
3. Сгрупировал бы по всем полям Т1, Т2.Период брать минимум. (Таблица Т4)
4. Соединил бы Т4 с Т1 по
Т4.ПериодТ2=Т1.Период в итоге получится таблица продаж
Период Товар Цена ПериодСледующейПродажи ЦенаСледПродаж
Далее вычитаем из ПериодСледующейПродажи Период, получаем кол-во Дней без Продаж. Далее находим Максимальное, Тут думаю разберётесь.
Если я правильно понял задачу) Хотя можно и без пункта 4, если надо только кол-во дней)
Тогда ещё проще:
1. Берёшь заполненный календарь (у меня это РегистрСведений.РегламентированныйПроизводственныйКалендарь) за этот период (в итоге получает тупо список дат) добавляешь к нему нужный товар.
2. Присоединяешь к нему левым соединением таблицу продаж за период и отбираешь по любое поле из продаж есть NULL
3. Группируешь по товару, а дату как кол-во различных :)
Получается как-то так:
1. Берёшь заполненный календарь (у меня это РегистрСведений.РегламентированныйПроизводственныйКалендарь) за этот период (в итоге получает тупо список дат) добавляешь к нему нужный товар.
2. Присоединяешь к нему левым соединением таблицу продаж за период и отбираешь по любое поле из продаж есть NULL
3. Группируешь по товару, а дату как кол-во различных :)
Получается как-то так:
ВЫБРАТЬ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
&Товар КАК Товар
ПОМЕСТИТЬ СписокДат
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачПериод И &КонПериод
;
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Период
ПОМЕСТИТЬ ПродажиСП
ИЗ
РегистрНакопления.Продажи.Обороты(&НачПериод, &КонПериод, День, Номенклатура = &Товар) КАК ПродажиОбороты
;
ВЫБРАТЬ
СписокДат.ДатаКалендаря,
СписокДат.Товар,
ПродажиСП.Номенклатура,
ПродажиСП.Период
ПОМЕСТИТЬ ДатыБезПродажи
ИЗ
СписокДат КАК СписокДат
ЛЕВОЕ СОЕДИНЕНИЕ ПродажиСП КАК ПродажиСП
ПО СписокДат.ДатаКалендаря = ПродажиСП.Период
И СписокДат.Товар = ПродажиСП.Номенклатура
ГДЕ
ПродажиСП.Номенклатура ЕСТЬ NULL
;
ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДатыБезПродажи.ДатаКалендаря) КАК ДатаКалендаря,
ДатыБезПродажи.Товар
ИЗ
ДатыБезПродажи КАК ДатыБезПродажи
СГРУППИРОВАТЬ ПО
ДатыБезПродажи.Товар
Показать
Мне без учета выходных.
Думаю сделать так:
1.Взять номенклатуру
2.Взять общее количество дней
3.Присоединить продажи и получить количество дней с продажами
4.Отнять от общего количества дней количество дней с продажами. Получится количество дней без продажи.
Как что думаете о таком решении? :)
ВЫБРАТЬ
Номенклатура.Ссылка КАК спрНоменклатура,
РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) + 1 КАК КоличествоДней,
ЕСТЬNULL(Продажи.ДнейСПродажами, 0) КАК ДнейСПродажами,
РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) - ЕСТЬNULL(Продажи.ДнейСПродажами, 0) + 1 КАК ДнейБезПродаж
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Ном,
СУММА(ВЫБОР
КОГДА ПродажиОбороты.КоличествоОборот > 0
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК ДнейСПродажами
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура) КАК Продажи
ПО Номенклатура.Ссылка = Продажи.Ном
ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ
Думаю сделать так:
1.Взять номенклатуру
2.Взять общее количество дней
3.Присоединить продажи и получить количество дней с продажами
4.Отнять от общего количества дней количество дней с продажами. Получится количество дней без продажи.
Как что думаете о таком решении? :)
ВЫБРАТЬ
Номенклатура.Ссылка КАК спрНоменклатура,
РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) + 1 КАК КоличествоДней,
ЕСТЬNULL(Продажи.ДнейСПродажами, 0) КАК ДнейСПродажами,
РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) - ЕСТЬNULL(Продажи.ДнейСПродажами, 0) + 1 КАК ДнейБезПродаж
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Ном,
СУММА(ВЫБОР
КОГДА ПродажиОбороты.КоличествоОборот > 0
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК ДнейСПродажами
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура) КАК Продажи
ПО Номенклатура.Ссылка = Продажи.Ном
ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот