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

Ошибка Значение не является значением объектного типа

Автор Дмитрий357, 31 окт 2021, 12:11

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

Дмитрий357

Добрый день! Подскажите как исправить ошибку Значение не является значением объектного типа (Цена)

&НаСервере
Функция ТоварыНоменклатураПриИзмененииНаСервере(Номенклатура, ВидЦены)
  //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаПолучаемая
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &Дата,
| ВидЦены = &ВидЦены
| И Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних";

Запрос.УстановитьПараметр("ВидЦены", Объект.ВидЦены);
Запрос.УстановитьПараметр("Дата", Объект.Дата);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Цена=0;
Сообщить ("Цена "+Объект.ВидЦены+" для "+Номенклатура+" не установлена!");
Иначе
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Цена=ВыборкаДетальныеЗаписи.ЦенаПолучаемая;
КонецЦикла;
КонецЕсли;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
Возврат Цена;
КонецФункции

&НаСервереБезКонтекста
Функция ПолучитьЗначенияКонстанты()
Возврат Константы.РассчитыватьСтоимостьАвтоматически.Получить();
КонецФункции



&НаКлиенте
Процедура ТоварыНоменклатураКоличествоВалютаПриИзменении(Элемент)
Рассчитывать=ПолучитьЗначенияКонстанты ();
СтрокаТЧ=Элементы.Товары.ТекущиеДанные;
СтрокаТЧ.Цена=ТоварыНоменклатураПриИзмененииНаСервере (СтрокаТЧ.Номенклатура, Объект.ВидЦены);
Если Рассчитывать=Истина Тогда
РасчетСтоимостиКлиентСервер.РассчитатьСтоимость(СтрокаТЧ);
КонецЕсли;
КонецПроцедуры

Ошибка ссылается на эту строку:
СтрокаТЧ.Цена=ТоварыНоменклатураПриИзмененииНаСервере (СтрокаТЧ.Номенклатура, Объект.ВидЦены);

LexaK

Дмитрий357, попробуйте что бы у вас процедуре ПриИзмененииНоменклатуры был такой код
СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
Если СтрокаТЧ <> Неопределено Тогда
СтрокаТЧ.Цена=ТоварыНоменклатураПриИзмененииНаСервере (СтрокаТЧ.Номенклатура, Объект.ВидЦены);
КонецЕсли;
если помогло нажмите: Спасибо!

Дмитрий357

LexaK, Начало ругаться  "Значение не является значением объектного типа (Стоимость)" на функцию общего модуля расчета стоимости:
РасчетСтоимостиКлиентСервер.РассчитатьСтоимость(СтрокаТЧ);. Вогнал ее в ваше предложенное условие, перестало считать автоматически стоимость. Как решить?

Дмитрий357

LexaK, Добрый день! Есть возможность решить данную проблему?

LexaK

Цитата: Дмитрий357 от 03 ноя 2021, 13:14LexaK, Добрый день! Есть возможность решить данную проблему?
эээ, а я так и не нашел проблемы! загрузил вашу базу, поработал с документами, ошибки не возникают.
в одном месте при изменении Количества, не пересчитывается Стоимость,
так это потому что элементу/полю Количество не задан обработчик ПриИзменении (там какое то название процедуры есть, а самой ее нет)
 
если помогло нажмите: Спасибо!

Дмитрий357

LexaK, Да спасибо разобрался. Еще вопрос: как сделать так, чтобы цены для номенклатуры могли обновляться не чаще чем раз в день и начинали действовать с начала дня? Достаточно будет поставить периодичность регистра сведений Цены номенклатуры в пределах дня или еще что-то надо сделать?

LexaK

Дмитрий357, в типовой периодичность цен, настроена с точностью до секунды, и ни кто не заморачивается сколько раз в день вы меняете цены, с тура продаете по одной цене, в обед выставляете другую, а вечером продаете по третьей!
в своей базе, в своем бизнес процессе, конечно вы можете, ценообразование кроить как вам угодно, (и именно так как ВЫ себе это представляете, какие тут могут быть советы?  :dfbsdfbsdf:  )
если помогло нажмите: Спасибо!

Дмитрий357

LexaK, А как сделать чтобы я не мог ту же позицию номенклатуры с определенным видом цены обновлять не более раза в день? Тоже касается ранее созданной номенклатуры

Теги:

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

Рейтинг@Mail.ru

Поиск