ТекстЗапроса ="ВЫБРАТЬ | &КодДистрибьютора КАК КодДистрибьютора, //| Продажи.Контрагент.Код + &Разделитель + Продажи.Контрагент.Код КАК ПродажиКонтрагентКод, | Продажи.Контрагент.Код КАК ПродажиКонтрагентКод, | &ДатаКакДата КАК ДатаКакДата, | Продажи.Период КАК ПродажиПериод, |ЦеныНоменклатурыКонтрагентовСрезПоследних.Период, | Продажи.Номенклатура.Код КАК ПродажиНоменклатураКод, | Продажи.Количество КАК Количество, | Продажи.Стоимость + Продажи.НДС КАК СуммаОтгрузки, | Пользователи.ФизЛицо.Код КАК КодТА, //| Продажи.Номенклатура КАК ПродажиНоменклатура, //отладка | ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена, | Продажи.Регистратор.Номер КАК НомерРТУ |ИЗ | РегистрНакопления.Продажи КАК Продажи | Левое СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи | ПО Продажи.Контрагент.ОсновнойМенеджерПокупателя = Пользователи.Ссылка | | | | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних( | , | ВЫБОР | КОГДА &фНом | ТОГДА Номенклатура В ИЕРАРХИИ (&Группа) | ИНАЧЕ ИСТИНА | КОНЕЦ | И ТипЦен = &выбТипЦен) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних | ПО Продажи.Период >= ЦеныНоменклатурыКонтрагентовСрезПоследних.Период | И Продажи.Номенклатура = ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура | | | |ГДЕ | Продажи.Номенклатура.Ссылка В ИЕРАРХИИ(&Группа) | И Продажи.Период >= &НачПериода | И Продажи.Период <= &КонПериода | |УПОРЯДОЧИТЬ ПО | ПродажиПериод, | ПродажиКонтрагентКод, | СуммаОтгрузки, | ПродажиНоменклатураКод";
Запрос.Текст = ТекстЗапроса; Если НомГруппа.Пустая() Тогда Возврат; КонецЕсли;
Видно, что там где в ЦеныНоменклатурыКонтрагентовСрезПоследних не одна запись то не работает и соответствующий период NULL, а там где ЦеныНоменклатурыКонтрагентовСрезПоследних одна запись за период то работает. Подскажите как исправить.
выборку из ЦеныНоменклатуры - отдельно, сгруппировать по Номенклатура,Период, , цена МАКСИМУМ,() поместить во ВрТабл и в основном запросе уже ее присоединять
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
DiegoLidabo @ Сегодня, 15:13
, если я вас правильно понял, то то что вы хотите получить называется получение цены на дату документа. Привожу пример получения цены на дату документа, адаптируйте под ваш запрос
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ПродажиОбороты.Период, | ПродажиОбороты.Контрагент, | ПродажиОбороты.Номенклатура, | ПродажиОбороты.ХарактеристикаНоменклатуры, | СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК Сумма |ПОМЕСТИТЬ ВтПродажи |ИЗ | РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ПродажиОбороты | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период, | ПродажиОбороты.Контрагент, | ПродажиОбороты.Номенклатура, | ПродажиОбороты.ХарактеристикаНоменклатуры |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВтПродажи.Период, | ВтПродажи.Номенклатура, | ВтПродажи.ХарактеристикаНоменклатуры, | ВтПродажи.Количество, | ВтПродажи.Сумма, | МАКСИМУМ(ЕСТЬNULL(Цены.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))) КАК ДатаЦены |ПОМЕСТИТЬ ВтДатыЦен |ИЗ | ВтПродажи КАК ВтПродажи | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены | ПО ВтПродажи.Номенклатура = Цены.Номенклатура | И ВтПродажи.ХарактеристикаНоменклатуры = Цены.ХарактеристикаНоменклатуры | И (Цены.ТипЦен = &ТипЦен) | И ВтПродажи.Период >= Цены.Период | |СГРУППИРОВАТЬ ПО | ВтПродажи.Период, | ВтПродажи.Номенклатура, | ВтПродажи.ХарактеристикаНоменклатуры, | ВтПродажи.Количество, | ВтПродажи.Сумма |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВтДатыЦен.Период, | ВтДатыЦен.Номенклатура, | ВтДатыЦен.ХарактеристикаНоменклатуры, | ВтДатыЦен.Количество, | ВтДатыЦен.Сумма, | ЕСТЬNULL(Цены.Цена, 0) КАК ЦенаНаДатуДокумента |ИЗ | ВтДатыЦен КАК ВтДатыЦен | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены | ПО ВтДатыЦен.ДатаЦены= Цены.Период | И ВтДатыЦен.Номенклатура = Цены.Номенклатура | И ВтДатыЦен.ХарактеристикаНоменклатуры = Цены.ХарактеристикаНоменклатуры | И (Цены.ТипЦен = &ТипЦен) |";
Сообщение отредактировал Bernet - 27.12.18, 16:57
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!