УТ11: вид цены Себестоимость СКД #798561


#0 by Mikhail Volkov
У клиента в УТ11.2 есть вид цены "Себестоимость", со способом задания "Произвольный запрос к данным ИБ", с СКД "Себестоимость без дополнительных расходов"     Сегменты.Характеристика,     ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры ИЗ     РегистрСведений.НоменклатураСегмента КАК Сегменты     ИспользуетсяОтборПоСегментуНоменклатуры ИЗ     Документ.РасчетСебестоимостиТоваров.Организации КАК ДанныеДокумента ГДЕ     ДанныеДокумента.Ссылка.Проведен     И ДанныеДокумента.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаДокумента, МЕСЯЦ) И КОНЕЦПЕРИОДА(&ДатаДокумента, МЕСЯЦ) ;     КОНЕЦ КАК Цена,     СебестоимостьТоваров.Номенклатура КАК Номенклатура,     Коэффициент,     Цена,     Номенклатура.*,     Характеристика.*,     Упаковка.*,     Валюта.*} ИЗ     (ВЫБРАТЬ         АналитикаНоменклатуры.Номенклатура КАК Номенклатура,         АналитикаНоменклатуры.Характеристика КАК Характеристика,     ГДЕ         СебестоимостьТоваров.Период МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаДокумента, МЕСЯЦ) И КОНЕЦПЕРИОДА(&ДатаДокумента, ДЕНЬ)         И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)         И АналитикаНоменклатуры.Склад ССЫЛКА Справочник.Склады     {ГДЕ         ((АналитикаНоменклатуры.Номенклатура, АналитикаНоменклатуры.Характеристика) В                 (ВЫБРАТЬ                     ОтборПоСегментуНоменклатуры.Номенклатура,                     ОтборПоСегментуНоменклатуры.Характеристика                 ИЗ                     ОтборПоСегментуНоменклатуры                 ГДЕ                     ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры))}              АналитикаНоменклатуры.Номенклатура,         АналитикаНоменклатуры.Характеристика          ОБЪЕДИНИТЬ ВСЕ          ВЫБРАТЬ         АналитикаНоменклатуры.Номенклатура,         АналитикаНоменклатуры.Характеристика,             КОНЕЦ),         СУММА(СебестоимостьТоваров.КоличествоОстаток)     СебестоимостьТоваров.Характеристика,     Константы.ВалютаУправленческогоУчета Бывает полезно от нее рассчитывать цены продаж. Например, когда есть большой запас одного товара, но по случаю удалось купить небольшую партию подешевле этого же товара. Пересчитывать цены по закупочной цене последней партии не совсем правильно (можно в убыток наторговать), надо брать себестоимость всех партий в наличии. Но у клиента не тот случай, последняя партия куплена когда на остатке товара не было. Вроде Себестоимость должна равна быть закупочной цене. А начинаешь считать Цены (прайс-лист) она на порядок выше!? У большинства товаров Себестоимость равна цене Закупочная, а у некоторых в 2-3 раза выше, а то и на порядок!? Откуда берется эта дополнительная составляющая? В общем хотел приведенный выше СКД запрос разбить на более мелкие составляющие. Как это сделать?
#1 by Mikhail Volkov
РегистрСведений.НоменклатураСегмента - пустой, не используется. Запрос упрощается, остается Документ.РасчетСебестоимостиТоваров или РегистрНакопления.СебестоимостьТоваров. Тут и там суммы равные цене Закупочная. Откуда тогда такой завышенный результат?
#2 by PCcomCat
Проверь данные в регистре.
#3 by Mikhail Volkov
РегистрНакопления.СебестоимостьТоваров проверил, а так же движения Документ.РасчетСебестоимостиТоваров!? Как-то переделать СКД, чтобы были видны промежуточные результаты.
#4 by Mikhail Volkov
Когда этот запрос вставил в Консоль запросов для управляемого приложения.epf, то "Цена" в большинстве случаев совпали с тем, что выдает Цены (прайс-лист). Но как раз в сомнительных случаях (в разы отличается "Себестоимость" от "Закупочная") цифры значительно отличаются!? Есть сомнение, что я правильно достал этот запрос. Когда открываешь имеющийся вид цены "Себестоимость", то кнопка "Редактировать" СКД недоступна. Доступна лишь при создании нового вида цены. Создавал путем копирования имеющийся вид цены "Себестоимость". Но не уверен, что запрос тоже с копировался верно. В форме на кнопке РедактироватьСхемуКомпоновкиДанных (на всех 3-х) галка Доступность стоит. В модуле ее Доступность не прописана. Как ее сделать доступной?
#5 by Mikhail Volkov
Наибольший интерес расчета себестоимости представляет эта часть запроса:         СУММА(             ВЫБОР КОГДА ЕСТЬNULL(РасчетыСебестоимости.ПредварительныйРасчет, Ложь) ТОГДА                 ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС ТОГДА                 ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС ТОГДА                     СебестоимостьТоваров.Стоимость         И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)         И АналитикаНоменклатуры.Склад ССЫЛКА Справочник.Склады             ИЗ             )         АналитикаНоменклатуры.Характеристика КАК Характеристика,         СУММА(ВЫБОР КОГДА ВидыЦен.ЦенаВключаетНДС ТОГДА             СебестоимостьТоваров.СтоимостьОстаток         ИНАЧЕ По замыслу его разработчиков, когда есть Документ.РасчетСебестоимостиТоваров.ПредварительныйРасчет, то СтоимостьНоменклатуры берется из РегистрСведений.СтоимостьТоваров. Или из РегистрНакопления.СебестоимостьТоваров. Далее эта Себестоимость объединяется (?!) с себестоимостью из РегистрНакопления.СебестоимостьТоваров.Остатки. Вот оттуда и берутся цифры в разы большие, чем из Документ.РасчетСебестоимостиТоваров (РегистрСведений.СтоимостьТоваров). По моему должно быть что-то одно: если нет Документ.РасчетСебестоимостиТоваров (РегистрСведений.СтоимостьТоваров), тогда брать из РегистрНакопления.СебестоимостьТоваров.Остатки. Или как?
#6 by Mikhail Volkov
Стоимость и Количество вычисленную по остаткам переименовал, по ним считаю Цена, только когда она нулевая:     ВЫБОР КОГДА СУММА(СебестоимостьТоваров.Количество) > 0 ТОГДА         ИНАЧЕ             0         КОНЕЦ     КОНЕЦ КАК Цена, Но как внести мои поправки в существующую вид цены "Себестоимость"? Как сделать кнопку "Редактировать" доступной?
#7 by Mikhail Volkov
Вставил: Форма.Элементы.РедактироватьСхемуКомпоновкиДанных.Доступность = Истина; в процедуру выполняемую &НаКлиентеНаСервереБезКонтекста. Хотелось бы еще проверку на Толстый клиент, иначе открывать СКД бесполезно. Есть такая проверка?
#8 by sFAQer
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение #КонецЕсли
#9 by Mikhail Volkov
Спс, в файловом варианте это работает, а почему в серверном - нет!?
#10 by Mikhail Volkov
СерверТолстыйКлиентУправляемоеПриложение к сожалению нет? Пришлось заменить на #Если Сервер ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда для УТ11.2
#11 by Mikhail Volkov
Хорошо, кнопка "Редактировать" теперь доступна, но у Элементы.СхемаКомпоновкиДанных нет кнопки выбора, добавил: Форма.Элементы.СхемаКомпоновкиДанных.Доступность = Истина; Теперь кнопки выбора есть, но недоступна!?
#12 by Mikhail Volkov
Проверяю в конце процедуры ПриОткрытии Доступность всех Элементы.СхемаКомпоновкиДанных (на форме их 3), у всех Истина. Так же проверяю Элементы.СхемаКомпоновкиДанных.СписокВыбора.Количество - 9 (у Элементы.СхемаКомпоновкиДанных1.СписокВыбора.Количество и Элементы.СхемаКомпоновкиДанных2.СписокВыбора.Количество - по 2). Почему нет доступности, чего еще не хватает?
#13 by Mikhail Volkov
Докопался, кроме Доступность реквизиты имеют еще свойство запрещающих их менять. Они устанавливаются в: ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтаФорма); не блокируются лишь при создании для новых видов цен. Хорошо, теперь могу вносить свои поправки в СКД. Внес, но обработка Цены (прайс-лист) на мои изменения ни как не реагирует, считает все по старому? В ней не нахожу никаких процедур по расчету цен. Откуда она их берет?
#14 by Mikhail Volkov
По кнопке "Сформировать" открывается ФормаНастройки. В ней кнопка ЗакрытьИСформировать. По ней выполняется: Но сама цены она не рассчитывает, только ОповеститьОВыборе(НастройкиПрайсЛиста); А сам расчет цен где?
#15 by Mikhail Volkov
Нашел, в ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора), но и там не считает, а лишь выбирает из РегистрСведений.ЦеныНоменклатуры. Глубже надо копать...
#16 by Mikhail Volkov
Оказывается обработка ПрайсЛист не предназначена для расчета цен, лишь для просмотра и регистрации. А где и как их рассчитывать?
#17 by Mikhail Volkov
В УТ11 нет функции типа ПолучитьЗначениеДополнительныхСведений? Свою написать не проблема, но не хочется дублировать типовые.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям