УТ 11 произвольный алгоритм #779211


#0 by varyag
Здравствуйте! Стоит задача разработать вид цены с произвольным алгоритмом. По первоначальной постановке задачи всё работало, но уточнения и дополнительные требования к алгоритму привели в тупик. В общем в консоли СКД все работает, а когда загружаю схему компоновки в ВидЦены - там начинаются чудеса. Т.е. в консоли цена из таблицы ЦеныНоменкдатурыСрезПоследних берется на ДатуДокумента, а при расчете  ВидаЦены в прайсе Цена берется самая последняя. Вот история изменения цен: Вот значение в консоли на дату до последнего изменения цены: Вот консоль после последнего изменения цены: А вот что считается в прайсе (специально дату поставил даже до первого ввода цены): Получается что в консоли отрабатывает нормально а реальной ситуации нет. Думал что ДатаДокумента берется просто текущая, но вывел в поле цена параметр ДатаДокумента, выразив как число, и дата оказалась не текущая а та что установлена в прайсе.. Алгоритм делал на основе типового алгоритма "Цены поступления". Но есть товары введенные вводом остатков или посредством сборки из комплектующих, для них цены установили руками и в дальнейшем при расчете если нет документа поступления и соответственно цены поступления, необходимо брать текущую цену на дату документа установки цен. Код запроса сюда лепить не стал, т.к. не знаю как сделать его сворачиваемым, а без этого он всю страницу займет.
#1 by varyag
Никто не поможет? у меня кончились мысли куда копать, что проверять
#2 by Cyberhawk
Так там же два столбика - цена на дату и новая цена. В качестве ноыой цены он тебе пишет последнюю актуальную. В качестве цены на дату - пусто. Что не так?
#3 by varyag
Ты внимательно посмотри. 1й столбец - действующая цена на 23.07 - её нет, т.к. первая установка цен только 25.07. Мы расчитываем цену на 24.07 - и она соответственно тоже должна равняться нулю. Если я ставлю дату например 26.07 тогда в 1м столбце(текущая цена) получаем 44000, и во втором тоже должно быть 44000, т.к. 45000 действует с 28.07. Но получаю вот что:
#4 by varyag
поле Цена прописал как в итоге в прайсе выводится:
#5 by varyag
Уже удалил из запроса все лишнее и оставил так:     ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,     ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,                     ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС                         И НЕ ТоварыДокумента.Ссылка.ЦенаВключаетНДС                     И НЕ ТоварыДокумента.Ссылка.ЦенаВключаетНДС                 ТОГДА (ТоварыДокумента.Сумма + ТоварыДокумента.СуммаНДС) / ТоварыДокумента.КоличествоУпаковок             КОГДА НЕ ВидыЦен.ЦенаВключаетНДС             ИЗ                     ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС                         И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС             КОГДА ВидыЦен.ЦенаВключаетНДС                     И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС                 ТОГДА (ТоварыДокументаВводНаОсновании.Сумма + ТоварыДокументаВводНаОсновании.СуммаНДС) / ТоварыДокументаВводНаОсновании.КоличествоУпаковок             КОГДА НЕ ВидыЦен.ЦенаВключаетНДС             ИЗ                     ИЛИ НЕ ВидыЦен.ЦенаВключаетНДС                         И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС             КОГДА ВидыЦен.ЦенаВключаетНДС                     И НЕ ТоварыДокументаВводНаОсновании.Ссылка.ЦенаВключаетНДС                 ТОГДА (ТоварыДокументаВводНаОсновании.Сумма + ТоварыДокументаВводНаОсновании.СуммаНДС) / ТоварыДокументаВводНаОсновании.КоличествоУпаковок             КОГДА НЕ ВидыЦен.ЦенаВключаетНДС             ИЗ     ТоварыДокументаВводНаОсновании.Количество,     1,             ИЗ             ИЗ     ВТ_ЦеныПоступления.Упаковка,     ВТ_ЦеныСрезПоследних.Характеристика, ГДЕ     ВТ_ЦеныПоступления.Номенклатура ЕСТЬ NULL
#6 by Cyberhawk
Я правильно понял, что поведение первого столбца (цена на дату) тебя полностью устраивает?
#7 by varyag
Правильно - это типовой механизм куда я не лез. Там просто отображается предыдущая цена, если она была задана. Косяк предполагаю в том, что в параметрах виртуальной таблицы Период я задаю на вкладке "Компоновка данных"
#8 by Cyberhawk
Теперь второй вопрос: почему считаешь, что в столбике "Новая цена" (который второй и тебя не устраивает) должна подставляться не последняя цена на конец времен, а цена на дату среза?
#9 by varyag
в общем похоже я все таки выяснил - если я задаю параметр период для ЦеныНоменклатурыСрезПоследних только на вкладке КомпоновкаДанных - то при расчете этот параметр игнорируется, если задаю только на вкладке Таблицы и поля - то появляется стандартный параметр Период на вкладке Параметры в СКД. Задал на обейх вкладка этот параметр как ДатаДокумента и все заработало.
#10 by varyag
Потому что в параметрах таблицы я задавал параметр период, равный &ДатаДокумента. И в консоли СКД все нормально отрабатывало - посмотри скрин. Но в прайсе этот параметр игнгрировался
#11 by varyag
А форум действительно волшебный - сколько раз решались здесь проблемы, когда казалось же только бубен поможет)))
#12 by Cyberhawk
Поздравляю
#13 by varyag
Спасибо)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С