Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 08:31

Текущая цена на дату документа

Автор Mexxe, 05 окт 2022, 09:30

0 Пользователей и 1 гость просматривают эту тему.

Mexxe

Доброго времени! Ребят, ПРОФИ в 1С, помогите пожалуйста разобраться новичку)
Ситуация следующая 1С УПП 1.3 (1.1.15.1)
Есть документ в котором производится заполнение ТЧ по заказу покупателя, цена падает текущая учетная, а не та, которая была установлена ранее - дата документа ранее даты установки цены номенклатуры (новой цены) - в общем цену берет текущую, а не предыдущую
Кусок кода заполнения:
Процедура УстановитьЦенуУчетную()
СрезЦеныНоменклатуры = РегистрыСведений.ЦеныНоменклатуры.СрезПоследних(ДатаОкончания);
Отбор = Новый Структура;
Для Каждого СтрокаТЧ Из Состав Цикл
Отбор.Очистить();
если число(СтрокаТЧ.ЦенаУчетная)=0 тогда
СтрокаТЧ.ЦенаУчетная=СтрокаТЧ.Заказ.СуммаДокумента*0.85 /СтрокаТЧ.Количество;

// если СтрокаТЧ.Заказ.Контрагент.Код="000901336" тогда
// если СтрокаТЧ.Заказ.ВидЗаказа.Код="000000004" или СтрокаТЧ.Заказ.ВидЗаказа.Код="000000017" или
// СтрокаТЧ.Заказ.ВидЗаказа.Код="000000013" или СтрокаТЧ.Заказ.ВидЗаказа.Код="000000006" тогда

//конецесли;
иначе
Отбор.Вставить("Номенклатура", СтрокаТЧ.НоменклатураПоКонтракту);
Отбор.Вставить("ТипЦен", "Учетная");   //СправочникСсылка.ТипыЦенНоменклатуры
МасивСтрок = СрезЦеныНоменклатуры.НайтиСтроки(Отбор);
Если МасивСтрок.Количество() = 0 Тогда
Продолжить;
Иначе
СтрокаТЧ.ЦенаУчетная = МасивСтрок[0].Цена;
//СтрокаТЧ.УчетнаяСумма = СтрокаТЧ.ЦенаУчетная * СтрокаТЧ.Количество;
КонецЕсли;
КонецЕсли;
КонецЦикла;   
КонецПроцедуры
 

Я так понимаю, здесь тупо цена текущая, ни какой проверки, по дате документа - нет?

Ребят, помогите разобраться) За ранее благодарен!

antoneus

А что в переменной ДатаОкончания?

И вот эта строчка сомнения вызывает:

Отбор.Вставить("ТипЦен", "Учетная");   //СправочникСсылка.ТипыЦенНоменклатуры
"Учетная" - это строка, а никакая не ссылка на элемент справочника.

Mexxe

Цитата: antoneus от 05 окт 2022, 09:49А что в переменной ДатаОкончания?
Это дата окончания периода за который собираются выпущенные с цеха изделия, для наглядности прикрепляю форму
https://ibb.co/Z2dwcDH

Цитата: antoneus от 05 окт 2022, 09:49И вот эта строчка сомнения вызывает:
Что именно она вызывает, заполняет учетную цену номенклатуры, вот и она у менч вызвала недоверие, но как эту учетную цену вытащить согласно "установки цен номенклатуры" на определенную дату, а не текущую?       
 

antoneus

Значит, в метод СрезПоследних надо передавать дату документа. Хотя, посмотрел скрин - и с ДатаОкончания в таком случае должно работать.
А в метод НайтиСтроки надо передавать не строку "Учетная", а ссылку на элемент справочника ТипыЦенНоменклатуры. Это разные сущности и метод НайтиСтроки будет в данном случае всегда возвращать пустой массив.
Ссылку можно получить или с помощью метода НайтиПоНаименованию или (только если это предопределенный элемент) через точку: Справочники.ТипыЦенНоменклатуры.Учетная, а может, она у вас указана в документе - тогда вообще халява и можно вытащить ее, обратившись к реквизиту документа.

Mexxe


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск