По теме из базы знаний
Найденные решения
Вот оригинальный запрос из СКД формирования этого вида цен (если запустить программу в режиме толстого клиента, то можно его отредактировать):
Вам, чтоб выбиралась максимальная цена на товар за всю жизнь, а не действующая на момент установки надо источник выборки подменить: заменить срез последних на физическую таблицу регистра сведений с условием
ГДЕ рег.Период <= КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Но только работать будет медленнее.
Разумно, наверно, было бы параметр еще добавить, что-то вроде "глубина анализа", тогда при установке цен номенклатуры можно будет его регулировать. Условие тогда будет навроде
ГДЕ рег.Период МЕЖДУ ДобавитьКДате(&ДатаДокумента, МЕСЯЦ, - &ГлубинаАнализа) И КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Как-то так.
ВЫБРАТЬ РАЗЛИЧНЫЕ
Сегменты.Номенклатура КАК Номенклатура,
Сегменты.Характеристика КАК Характеристика,
ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
Сегменты.Сегмент.* КАК СегментНоменклатуры,
Сегменты.Номенклатура.* КАК Номенклатура,
Сегменты.Характеристика.* КАК Характеристика}
ИНДЕКСИРОВАТЬ ПО
Сегменты.Номенклатура,
Сегменты.Характеристика,
ИспользуетсяОтборПоСегментуНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
Сегменты.Партнер КАК Партнер,
ИСТИНА КАК ИспользуетсяОтборПоСегментуПартнеров
ПОМЕСТИТЬ ОтборПоСегментуПартнеров
{ВЫБРАТЬ
Партнер.*}
ИЗ
РегистрСведений.ПартнерыСегмента КАК Сегменты
{ГДЕ
Сегменты.Сегмент.* КАК СегментПартнеров,
Сегменты.Партнер.* КАК Партнер}
ИНДЕКСИРОВАТЬ ПО
Сегменты.Партнер
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка,
&Валюта КАК Валюта,
1 КАК Коэффициент,
(ВЫРАЗИТЬ(ВЫБОР
КОГДА ВидыЦен.ЦенаВключаетНДС
И ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС
И НЕ ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
КОГДА ВидыЦен.ЦенаВключаетНДС
И НЕ ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена + ЦеныНоменклатурыСрезПоследних.Цена * ВЫБОР
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
ТОГДА 0.2
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
ТОГДА 0.18
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
ТОГДА 0.1
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)
ТОГДА 0.2
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
ТОГДА 0.18
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
ТОГДА 0.1
ИНАЧЕ 0
КОНЕЦ
КОГДА НЕ ВидыЦен.ЦенаВключаетНДС
И ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена - ЦеныНоменклатурыСрезПоследних.Цена * ВЫБОР
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
ТОГДА 20 / 120
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
ТОГДА 18 / 118
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
ТОГДА 10 / 110
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)
ТОГДА 20 / 120
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
ТОГДА 18 / 118
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
ТОГДА 10 / 110
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК ЧИСЛО(15, 2))) * ВЫБОР
КОГДА &Валюта <> ЦеныНоменклатурыСрезПоследних.Валюта
ТОГДА ВЫБОР
КОГДА ЕСТЬNULL(КурсыВалютыЦены.Кратность, 0) > 0
И ЕСТЬNULL(КурсыВалютыЦены.Курс, 0) > 0
И ЕСТЬNULL(КурсыВалюты.Кратность, 0) > 0
И ЕСТЬNULL(КурсыВалюты.Курс, 0) > 0
ТОГДА КурсыВалютыЦены.Курс * КурсыВалюты.Кратность / (КурсыВалюты.Курс * КурсыВалютыЦены.Кратность)
ИНАЧЕ 0
КОНЕЦ
ИНАЧЕ 1
КОНЕЦ КАК Цена
ПОМЕСТИТЬ ЦеныНоменклатурыПоставщиковСрезПоследних
ИЗ
РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних({(КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ))}, Партнер.Поставщик {((Номенклатура, Характеристика) В
(ВЫБРАТЬ
ОтборПоСегментуНоменклатуры.Номенклатура,
ОтборПоСегментуНоменклатуры.Характеристика
ИЗ
ОтборПоСегментуНоменклатуры
ГДЕ
ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)), (Партнер В
(ВЫБРАТЬ
ОтборПоСегментуПартнеров.Партнер
ИЗ
ОтборПоСегментуПартнеров
ГДЕ
ОтборПоСегментуПартнеров.ИспользуетсяОтборПоСегментуПартнеров = &ИспользуетсяОтборПоСегментуПартнеров))}) КАК ЦеныНоменклатурыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних({(КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ))}, ) КАК КурсыВалютыЦены
ПО ЦеныНоменклатурыСрезПоследних.Валюта = КурсыВалютыЦены.Валюта
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних({(КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ))}, Валюта = &Валюта) КАК КурсыВалюты
ПО (ИСТИНА)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
ПО (ВидыЦен.Ссылка = &ВидЦены)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта КАК Валюта,
1 КАК Коэффициент,
МАКСИМУМ(ЦеныНоменклатурыПоставщиковСрезПоследних.Цена / ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, 1)) КАК Цена
ИЗ
ЦеныНоменклатурыПоставщиковСрезПоследних КАК ЦеныНоменклатурыПоставщиковСрезПоследних
СГРУППИРОВАТЬ ПО
ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура,
ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика,
ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта
ПоказатьВам, чтоб выбиралась максимальная цена на товар за всю жизнь, а не действующая на момент установки надо источник выборки подменить: заменить срез последних на физическую таблицу регистра сведений с условием
ГДЕ рег.Период <= КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Но только работать будет медленнее.
Разумно, наверно, было бы параметр еще добавить, что-то вроде "глубина анализа", тогда при установке цен номенклатуры можно будет его регулировать. Условие тогда будет навроде
ГДЕ рег.Период МЕЖДУ ДобавитьКДате(&ДатаДокумента, МЕСЯЦ, - &ГлубинаАнализа) И КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Как-то так.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Всё отлично и нормально работает. И платформа здесь не причем.
Типовой запрос, который выбирает максимальные цены поставщиков, тянет данные не из документов приобретения.
Он выгребает данные из регистра сведений "ЦеныНоменклатурыПоставщиков". А туда, в свою очередь, попадают данные только из документов приобретения, в которых установлен признак "Регистрировать цены поставщика автоматически".
Скорее всего в Вашем случае в двух последних документах этот признак стоит, а в остальных, по-видимому, не стоит. Вот и возникло такое впечатление.
Типовой запрос, который выбирает максимальные цены поставщиков, тянет данные не из документов приобретения.
Он выгребает данные из регистра сведений "ЦеныНоменклатурыПоставщиков". А туда, в свою очередь, попадают данные только из документов приобретения, в которых установлен признак "Регистрировать цены поставщика автоматически".
Скорее всего в Вашем случае в двух последних документах этот признак стоит, а в остальных, по-видимому, не стоит. Вот и возникло такое впечатление.
Да всё же правильно!!
Так и должно быть.
Авторы имели ввиду, что выбирается самая высокая цена на товар из всех действующих поставщиков на момент установки.
Т.е. есть на сегодня у Поставщика1 - 100 руб, а у Поставщика2 - 110 руб. Выберется 110 руб. - цена Поставщика2. А у Вас только один поставщик, на нем действует последняя цена, всегда и будет выбираться последняя, если поставщик один.
Об этом и в справке написано.
Так и должно быть.
Авторы имели ввиду, что выбирается самая высокая цена на товар из всех действующих поставщиков на момент установки.
Т.е. есть на сегодня у Поставщика1 - 100 руб, а у Поставщика2 - 110 руб. Выберется 110 руб. - цена Поставщика2. А у Вас только один поставщик, на нем действует последняя цена, всегда и будет выбираться последняя, если поставщик один.
Об этом и в справке написано.
Прикрепленные файлы:
Вот оригинальный запрос из СКД формирования этого вида цен (если запустить программу в режиме толстого клиента, то можно его отредактировать):
Вам, чтоб выбиралась максимальная цена на товар за всю жизнь, а не действующая на момент установки надо источник выборки подменить: заменить срез последних на физическую таблицу регистра сведений с условием
ГДЕ рег.Период <= КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Но только работать будет медленнее.
Разумно, наверно, было бы параметр еще добавить, что-то вроде "глубина анализа", тогда при установке цен номенклатуры можно будет его регулировать. Условие тогда будет навроде
ГДЕ рег.Период МЕЖДУ ДобавитьКДате(&ДатаДокумента, МЕСЯЦ, - &ГлубинаАнализа) И КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Как-то так.
ВЫБРАТЬ РАЗЛИЧНЫЕ
Сегменты.Номенклатура КАК Номенклатура,
Сегменты.Характеристика КАК Характеристика,
ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
Сегменты.Сегмент.* КАК СегментНоменклатуры,
Сегменты.Номенклатура.* КАК Номенклатура,
Сегменты.Характеристика.* КАК Характеристика}
ИНДЕКСИРОВАТЬ ПО
Сегменты.Номенклатура,
Сегменты.Характеристика,
ИспользуетсяОтборПоСегментуНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
Сегменты.Партнер КАК Партнер,
ИСТИНА КАК ИспользуетсяОтборПоСегментуПартнеров
ПОМЕСТИТЬ ОтборПоСегментуПартнеров
{ВЫБРАТЬ
Партнер.*}
ИЗ
РегистрСведений.ПартнерыСегмента КАК Сегменты
{ГДЕ
Сегменты.Сегмент.* КАК СегментПартнеров,
Сегменты.Партнер.* КАК Партнер}
ИНДЕКСИРОВАТЬ ПО
Сегменты.Партнер
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка,
&Валюта КАК Валюта,
1 КАК Коэффициент,
(ВЫРАЗИТЬ(ВЫБОР
КОГДА ВидыЦен.ЦенаВключаетНДС
И ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС
И НЕ ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
КОГДА ВидыЦен.ЦенаВключаетНДС
И НЕ ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена + ЦеныНоменклатурыСрезПоследних.Цена * ВЫБОР
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
ТОГДА 0.2
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
ТОГДА 0.18
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
ТОГДА 0.1
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)
ТОГДА 0.2
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
ТОГДА 0.18
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
ТОГДА 0.1
ИНАЧЕ 0
КОНЕЦ
КОГДА НЕ ВидыЦен.ЦенаВключаетНДС
И ЦеныНоменклатурыСрезПоследних.ВидЦеныПоставщика.ЦенаВключаетНДС
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена - ЦеныНоменклатурыСрезПоследних.Цена * ВЫБОР
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
ТОГДА 20 / 120
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
ТОГДА 18 / 118
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
ТОГДА 10 / 110
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
ТОГДА 0
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)
ТОГДА 20 / 120
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
ТОГДА 18 / 118
КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
ТОГДА 10 / 110
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК ЧИСЛО(15, 2))) * ВЫБОР
КОГДА &Валюта <> ЦеныНоменклатурыСрезПоследних.Валюта
ТОГДА ВЫБОР
КОГДА ЕСТЬNULL(КурсыВалютыЦены.Кратность, 0) > 0
И ЕСТЬNULL(КурсыВалютыЦены.Курс, 0) > 0
И ЕСТЬNULL(КурсыВалюты.Кратность, 0) > 0
И ЕСТЬNULL(КурсыВалюты.Курс, 0) > 0
ТОГДА КурсыВалютыЦены.Курс * КурсыВалюты.Кратность / (КурсыВалюты.Курс * КурсыВалютыЦены.Кратность)
ИНАЧЕ 0
КОНЕЦ
ИНАЧЕ 1
КОНЕЦ КАК Цена
ПОМЕСТИТЬ ЦеныНоменклатурыПоставщиковСрезПоследних
ИЗ
РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних({(КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ))}, Партнер.Поставщик {((Номенклатура, Характеристика) В
(ВЫБРАТЬ
ОтборПоСегментуНоменклатуры.Номенклатура,
ОтборПоСегментуНоменклатуры.Характеристика
ИЗ
ОтборПоСегментуНоменклатуры
ГДЕ
ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)), (Партнер В
(ВЫБРАТЬ
ОтборПоСегментуПартнеров.Партнер
ИЗ
ОтборПоСегментуПартнеров
ГДЕ
ОтборПоСегментуПартнеров.ИспользуетсяОтборПоСегментуПартнеров = &ИспользуетсяОтборПоСегментуПартнеров))}) КАК ЦеныНоменклатурыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних({(КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ))}, ) КАК КурсыВалютыЦены
ПО ЦеныНоменклатурыСрезПоследних.Валюта = КурсыВалютыЦены.Валюта
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних({(КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ))}, Валюта = &Валюта) КАК КурсыВалюты
ПО (ИСТИНА)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
ПО (ВидыЦен.Ссылка = &ВидЦены)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта КАК Валюта,
1 КАК Коэффициент,
МАКСИМУМ(ЦеныНоменклатурыПоставщиковСрезПоследних.Цена / ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, 1)) КАК Цена
ИЗ
ЦеныНоменклатурыПоставщиковСрезПоследних КАК ЦеныНоменклатурыПоставщиковСрезПоследних
СГРУППИРОВАТЬ ПО
ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура,
ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика,
ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта
ПоказатьВам, чтоб выбиралась максимальная цена на товар за всю жизнь, а не действующая на момент установки надо источник выборки подменить: заменить срез последних на физическую таблицу регистра сведений с условием
ГДЕ рег.Период <= КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Но только работать будет медленнее.
Разумно, наверно, было бы параметр еще добавить, что-то вроде "глубина анализа", тогда при установке цен номенклатуры можно будет его регулировать. Условие тогда будет навроде
ГДЕ рег.Период МЕЖДУ ДобавитьКДате(&ДатаДокумента, МЕСЯЦ, - &ГлубинаАнализа) И КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ).
Как-то так.
(15) Я Вас понял, но даже если мы имеем несколько поставщиков, то Максимальная цена товара у каждого поставщика находится в интервале отличным от последних документов.
ведь приравнивая максимальную цену товара, клиент хочет иметь ее как постоянно максимальную, тем более, что у нее есть зависимые цены.
в другом случае, мы можем просто запрашивать цену поставщика на дату.
вероятно происходит искажение понятия Максимальная цена.
1. среди поставщиков.
2. среди номенклатуры.
Да спасибо за совет, непременно воспользуюсь.
ведь приравнивая максимальную цену товара, клиент хочет иметь ее как постоянно максимальную, тем более, что у нее есть зависимые цены.
в другом случае, мы можем просто запрашивать цену поставщика на дату.
вероятно происходит искажение понятия Максимальная цена.
1. среди поставщиков.
2. среди номенклатуры.
Да спасибо за совет, непременно воспользуюсь.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот