8.х Запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем TODD22, 18 май 2015.

  1. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Здравствуйте.

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

    Есть точка отсчета. Например это понедельник. С понедельник продавцу устанавливается план продаж 10 ед в день+ у него висит невыполнение плана в 10 ед с прошлой недели. Я строю отчет на пятницу. Получается он берёт -10 что он не продал на прошлой неделе отнимает от этого фактические продажи за период. И выводит пользователю. При этом прибавляется план за последние два дня. А мне нужно что бы прибавлялись за последние дни со дня начала действия плана.
    Например: -10+5*10 = 40 это план. И от него отнимаем фактические продажи например 37 единиц продукции. Итого план продажи 3 единицы продукции на пятницу.

    Не могу придумать как это сделать.... как мне посчитать в запросе.... я так понимаю от даты начала плана мне нужно получить количество дней до текущей даты и умножить на дневной показатель плана.
  2. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Доброго дня,
    не совсем понятно :
    1. Пятница - это пятница прошлой недели или недели в которой продавцу устанавливается план продаж ?
    2. Если с прошлой недели висит остаток по плану и он переносится на текущую неделю то план недели должен быть 10 прошлой + 5 * 10 этой недели, того 60 ?
  3. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Чет я не совсем понял
    Но вот по сути может ка кто так
    1. делаешь запросы (нач эта неделя - кон эат неделя) и получаешь план/факт продаж на текущую неделю т.е это будет у тебя 50 план 37 факт итого остаок 13
    2 Делае такие же запросы только даты у тебя (нач плана или даже без даты, по нач текущей неделе) -высчитвывешь остаток получишь свои -10
    3 Объеденяешь эти два запроса получишь -10 +13 =3
  4. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Например так:
    План устанавливается в понедельник.
    С прошлой недели за продавцом числится невыполнение 10 ед.
    Мне известны только 2 показателя, это дневной план и остаток с прошлой недели.

    Я знаю что он должен продать 10 единиц за прошлую неделю и плюс по 10 единиц каждый день.
    В понедельник ему установили план, а мы смотрим в пятницу.
    Получается: 10(с прошлой недели)+5*10 = 60 ед это план по пятницу. С учётом долга за прошлую неделю.
    Затем я отнимаю фактические продажи.
    60-37 = 23 ед. То есть в пятницу план не выполнен на 23 единицы.

    Вроде разобрался как это подправить в запросе. Теперь только нужно количество в днях передать в запрос как параметр. То есть от даты плана до текущей даты получить количество дней.
    Как это можно в объектной модели сделать? Есть у кого нибудь пример?
    --- Объединение сообщений, 18 май 2015 ---
    Вроде нашёл решение:
  5. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    План продаж в конфе - это документ или справочник, есть в реквизитах периодичность, дата начала действия, окончание периода действия ?
    Например В УТ11 эти реквизиты есть
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    НУ опять же по последнему вопросы то же непонятно
    в чем проблема в запросе получить
    1. можно РАзностьДАт()
    2. Можно взять регламентрованный производственный календарь и запросом из него выбрать количество дней между датами
  7. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    в штатных есть ещё ДеньНедели и НеделяГода
  8. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Конфа рукоблудная. План продаж это регистр сведений в который загружается план из центральной базы. В общем тут всё запутанно :)
    Но я вроде всё победил.
  9. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54

Поделиться этой страницей