Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос продажи по дням за период в ценах контрагента по группе товаров          
DiegoLidabo Подменю пользователя
сообщение 27.12.18, 15:13
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 17
Из: Днепропетровск
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте
необходимо запросом получить продажи по дням за период в ценах контрагента по определенной группе товаров.

УТП 1.2.48.1

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

    Запрос.УстановитьПараметр("КодДистрибьютора", КодДистрибьютора);
    Запрос.УстановитьПараметр("Разделитель", "#");    
    Запрос.УстановитьПараметр("ДатаКакДата", ДатаКакДата);
    Запрос.УстановитьПараметр("Начпериода", НачПериода);        
    Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
    Запрос.УстановитьПараметр("Группа", НомГруппа);
    Запрос.УстановитьПараметр("фНом", ЗначениеЗаполнено(НомГруппа));
    Запрос.УстановитьПараметр("выбТипЦен"            , ТипЦеныНоменклатурыКонтрагентов);
    
    
    ТЗ3 = Запрос.Выполнить().Выгрузить();


далее часть результата


Видно, что там где в ЦеныНоменклатурыКонтрагентовСрезПоследних не одна запись то не работает и соответствующий период NULL,
а там где ЦеныНоменклатурыКонтрагентовСрезПоследних одна запись за период то работает.
Подскажите как исправить.

Сообщение отредактировал Vofka - 27.12.18, 15:35

sava1 Подменю пользователя
сообщение 27.12.18, 15:49
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

выборку из ЦеныНоменклатуры - отдельно, сгруппировать по Номенклатура,Период, , цена МАКСИМУМ,() поместить во ВрТабл
и в основном запросе уже ее присоединять

Bernet Подменю пользователя
сообщение 27.12.18, 16:55
Сообщение #3

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

DiegoLidabo @ Сегодня, 15:13 * ,
если я вас правильно понял, то то что вы хотите получить называется получение цены на дату документа.
Привожу пример получения цены на дату документа, адаптируйте под ваш запрос
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    ПродажиОбороты.Период,
|    ПродажиОбороты.Контрагент,
|    ПродажиОбороты.Номенклатура,
|    ПродажиОбороты.ХарактеристикаНоменклатуры,
|    СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество,
|    СУММА(ПродажиОбороты.СтоимостьОборот) КАК Сумма
|ПОМЕСТИТЬ ВтПродажи
|ИЗ
|    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ПродажиОбороты
|
|СГРУППИРОВАТЬ ПО
|    ПродажиОбороты.Период,
|    ПродажиОбороты.Контрагент,
|    ПродажиОбороты.Номенклатура,
|    ПродажиОбороты.ХарактеристикаНоменклатуры
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    ВтПродажи.Период,
|    ВтПродажи.Номенклатура,
|    ВтПродажи.ХарактеристикаНоменклатуры,
|    ВтПродажи.Количество,
|    ВтПродажи.Сумма,
|    МАКСИМУМ(ЕСТЬNULL(Цены.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))) КАК ДатаЦены
|ПОМЕСТИТЬ ВтДатыЦен
|ИЗ
|    ВтПродажи КАК ВтПродажи
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены
|        ПО ВтПродажи.Номенклатура = Цены.Номенклатура
|            И ВтПродажи.ХарактеристикаНоменклатуры = Цены.ХарактеристикаНоменклатуры
|            И (Цены.ТипЦен = &ТипЦен)
|            И ВтПродажи.Период >= Цены.Период
|
|СГРУППИРОВАТЬ ПО
|    ВтПродажи.Период,
|    ВтПродажи.Номенклатура,
|    ВтПродажи.ХарактеристикаНоменклатуры,
|    ВтПродажи.Количество,
|    ВтПродажи.Сумма
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    ВтДатыЦен.Период,
|    ВтДатыЦен.Номенклатура,
|    ВтДатыЦен.ХарактеристикаНоменклатуры,
|    ВтДатыЦен.Количество,
|    ВтДатыЦен.Сумма,
|    ЕСТЬNULL(Цены.Цена, 0) КАК ЦенаНаДатуДокумента
|ИЗ
|    ВтДатыЦен КАК ВтДатыЦен
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены
|        ПО ВтДатыЦен.ДатаЦены= Цены.Период
|            И ВтДатыЦен.Номенклатура = Цены.Номенклатура
|            И ВтДатыЦен.ХарактеристикаНоменклатуры = Цены.ХарактеристикаНоменклатуры
|            И (Цены.ТипЦен = &ТипЦен)
|";


Сообщение отредактировал Bernet - 27.12.18, 16:57


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Спасибо сказали: Sarm,

DiegoLidabo Подменю пользователя
сообщение 28.12.18, 9:02
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 17
Из: Днепропетровск
Спасибо сказали: 0 раз
Рейтинг: 0

sava1, Bernet,
Спасибо, сейчас начну пробовать

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 23:29
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!