|
Как получить цену на дату документа | ☑ | ||
---|---|---|---|---|
0
AnisaL
23.03.21
✎
11:03
|
Добрый день!
Есть запрос, нужно чтобы он получал стоимость часа из регистра сведений на дату документа, а не на дату окончания. Как это сделать? ВЫБРАТЬ ЗаданияНаРаботу.Контрагент КАК Контрагент, ЗаданияНаРаботу.Номенклатура КАК Номенклатура, ЗаданияНаРаботу.Сотрудник КАК Сотрудник, ЗаданияНаРаботу.Комментарий КАК Комментарий, ЗаданияНаРаботу.ЗагрузкаФакт КАК ЗагрузкаФакт, ТабЦен.Период КАК Дата, ТабЦен.БесплатноЧасов КАК ЗначениеЧасы, ТабЦен.Сопр КАК ЗначениеСопр, ТабЦен.Разраб КАК ЗначениеРазраб, ЗаданияНаРаботу.Период КАК Период, ЗаданияНаРаботу.ВремяНачала КАК ВремяНачала, ДанныеПроизводственногоКалендаря.ВидДня КАК ВидДня ИЗ РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Расш1_Прайс.СрезПоследних(&ДатаОкончания, ) КАК ТабЦен ПО (ЗаданияНаРаботу.Контрагент = ТабЦен.Контрагент) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря ПО (ЗаданияНаРаботу.Период = ДанныеПроизводственногоКалендаря.Дата) ГДЕ ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И ВЫБОР КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &Сотрудник <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Сотрудник = &Сотрудник ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &Договор <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Договор = &Договор ИНАЧЕ ИСТИНА КОНЕЦ УПОРЯДОЧИТЬ ПО Контрагент, Период ИТОГИ СУММА(ЗагрузкаФакт), МАКСИМУМ(ЗначениеЧасы), МАКСИМУМ(ЗначениеСопр), МАКСИМУМ(ЗначениеРазраб) ПО Контрагент, Номенклатура, Сотрудник |
|||
1
zuza
23.03.21
✎
11:17
|
Запрос.УстановитьПараметр("ДатаОкончания", ЗдесьДатаДокумента)
|
|||
2
AnisaL
23.03.21
✎
11:28
|
(1) Я не правильно выразилась: на данный момент запрос выдает например данные за 2 года и цену везде подставляет на дату окончания, а нужно чтобы он брал цену на тот момент, какая была тогда
|
|||
3
JeHer
23.03.21
✎
11:32
|
Запрос.УстановитьПараметр("ДатаОкончания", ЗдесьДатаКакаяБылаТогда)
|
|||
4
azernot
23.03.21
✎
11:36
|
||||
5
AnisaL
23.03.21
✎
12:00
|
(4) Сделала запрос как в этой статье, но почему-то вывелось 2 строки и со старой ценой и с новой, а нужно только с новой https://a.radikal.ru/a18/2103/de/4f11bd83bdeb.jpg
|
|||
6
AnisaL
23.03.21
✎
12:00
|
(4) запрос:
ВЫБРАТЬ Таб1.Контрагент КАК Контрагент, Таб1.Номенклатура КАК Номенклатура, Таб1.Сотрудник КАК Сотрудник, Таб1.ЗагрузкаФакт КАК ЗагрузкаФакт, Таб1.ЗначениеЧасы КАК ЗначениеЧасы, Таб1.ЗначениеСопр КАК ЗначениеСопр, Таб1.ЗначениеРазраб КАК ЗначениеРазраб, Таб1.Период КАК Период, Таб1.ВремяНачала КАК ВремяНачала, Таб1.Дата КАК Дата ИЗ (ВЫБРАТЬ ЗаданияНаРаботу.Контрагент КАК Контрагент, ЗаданияНаРаботу.Номенклатура КАК Номенклатура, ЗаданияНаРаботу.Сотрудник КАК Сотрудник, ЗаданияНаРаботу.ЗагрузкаФакт КАК ЗагрузкаФакт, ТабЦен.БесплатноЧасов КАК ЗначениеЧасы, ТабЦен.Сопр КАК ЗначениеСопр, ТабЦен.Разраб КАК ЗначениеРазраб, ЗаданияНаРаботу.Период КАК Период, ЗаданияНаРаботу.ВремяНачала КАК ВремяНачала, МАКСИМУМ(ТабЦен.Период) КАК Дата ИЗ РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Расш1_Прайс КАК ТабЦен ПО (ТабЦен.Период <= ЗаданияНаРаботу.Период) И ЗаданияНаРаботу.Контрагент = ТабЦен.Контрагент ГДЕ ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И ВЫБОР КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент ИНАЧЕ ИСТИНА КОНЕЦ СГРУППИРОВАТЬ ПО ЗаданияНаРаботу.Контрагент, ЗаданияНаРаботу.Номенклатура, ЗаданияНаРаботу.Сотрудник, ЗаданияНаРаботу.ЗагрузкаФакт, ТабЦен.БесплатноЧасов, ТабЦен.Сопр, ТабЦен.Разраб, ЗаданияНаРаботу.Период, ЗаданияНаРаботу.ВремяНачала) КАК Таб1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Расш1_Прайс КАК Таб2 ПО (Таб1.Дата = Таб2.Период) И (Таб1.Контрагент = Таб2.Контрагент) УПОРЯДОЧИТЬ ПО Таб2.Контрагент, Таб1.Период ИТОГИ СУММА(ЗагрузкаФакт), МАКСИМУМ(ЗначениеЧасы), МАКСИМУМ(ЗначениеСопр), МАКСИМУМ(ЗначениеРазраб) ПО Таб2.Контрагент, Номенклатура, Сотрудник |
|||
7
AnisaL
23.03.21
✎
12:06
|
||||
8
AnisaL
23.03.21
✎
13:37
|
Вот что выдает запрос из (6) https://d.radikal.ru/d18/2103/e3/1b16df7ed306.jpg , т.е. там 2 строки, которая выделена красным - ее не должно быть, как быть?
|
|||
9
azernot
23.03.21
✎
13:46
|
(5) Значит неправильно запрос сделали.
Ваша задача №1 получить максимальную из меньших дату установки цены в разрезе задания на работу и контрагента. Ваша задача №2 соединить задания на работу с результатом из №1 |
|||
10
azernot
23.03.21
✎
13:53
|
Как-то так:
ВЫБРАТЬ ЗаданияНаРаботу.Контрагент КАК Контрагент, ЗаданияНаРаботу.Период КАК Период, МАКСИМУМ(ТабЦен.Период) КАК ДатаУстановкиЦены ПОМЕСТИТЬ ДатаУстановкиЦенПоКонтрагенту ИЗ РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Расш1_Прайс КАК ТабЦен ПО (ТабЦен.Период <= ЗаданияНаРаботу.Период) И ЗаданияНаРаботу.Контрагент = ТабЦен.Контрагент ГДЕ ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И ВЫБОР КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент ИНАЧЕ ИСТИНА КОНЕЦ СГРУППИРОВАТЬ ПО ЗаданияНаРаботу.Контрагент, ЗаданияНаРаботу.Период ; ВЫБРАТЬ ЗаданияНаРаботу.Контрагент КАК Контрагент, ЗаданияНаРаботу.Номенклатура КАК Номенклатура, ЗаданияНаРаботу.Сотрудник КАК Сотрудник, ЗаданияНаРаботу.Комментарий КАК Комментарий, ЗаданияНаРаботу.ЗагрузкаФакт КАК ЗагрузкаФакт, ТабЦен.Период КАК Дата, ТабЦен.БесплатноЧасов КАК ЗначениеЧасы, ТабЦен.Сопр КАК ЗначениеСопр, ТабЦен.Разраб КАК ЗначениеРазраб, ЗаданияНаРаботу.Период КАК Период, ЗаданияНаРаботу.ВремяНачала КАК ВремяНачала, ДанныеПроизводственногоКалендаря.ВидДня КАК ВидДня ИЗ РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу ЛЕВОЕ СОЕДИНЕНИЕ ДатаУстановкиЦенПоКонтрагенту КАК ДатаУстановкиЦенПоКонтрагенту ПО ЗаданияНаРаботу.Контрагент = ДатаУстановкиЦенПоКонтрагенту.Контрагент И ЗаданияНаРаботу.Период = ДатаУстановкиЦенПоКонтрагенту.Период ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Расш1_Прайс КАК ТабЦен ПО (ДатаУстановкиЦенПоКонтрагенту.Контрагент = ТабЦен.Контрагент) И ДатаУстановкиЦенПоКонтрагенту.ДатаУстановкиЦены = ТабЦен.Период ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря ПО (ЗаданияНаРаботу.Период = ДанныеПроизводственногоКалендаря.Дата) ГДЕ ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И ВЫБОР КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &Сотрудник <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Сотрудник = &Сотрудник ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &Договор <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) ТОГДА ЗаданияНаРаботу.Договор = &Договор ИНАЧЕ ИСТИНА КОНЕЦ УПОРЯДОЧИТЬ ПО Контрагент, Период ИТОГИ СУММА(ЗагрузкаФакт), МАКСИМУМ(ЗначениеЧасы), МАКСИМУМ(ЗначениеСопр), МАКСИМУМ(ЗначениеРазраб) ПО Контрагент, Номенклатура, Сотрудник |
|||
11
AnisaL
23.03.21
✎
14:08
|
(10) Спасибо большое!!! Все получилось)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |