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

Не работает автоматически подстановка Цены

Автор TruthMan19, 20 окт 2018, 22:42

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

TruthMan19

Уже часо 6 мучаюсь. Была задача сделать так, чтобы цена и сумма рассчитывалась автоматически. Делал, все по книге сначала, потом все по видео с инета, но не работает. Вот фото и коды, где я накосячил?





&НаКлиенте
Процедура КоличествоПриИзменении(Элемент)
   
   Стр = Элементы.Товары.ТекущиеДанные;
   Стр.Сумма=Стр.Количество*Стр.Цена ;
   
КонецПроцедуры

&НаСервереБезКонтекста

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

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

   КоличествоПриИзменении(Элемент);
   
КонецПроцедуры

&НаКлиенте   
Процедура КонтактноеЛицоПриИзменении(Элемент)
   // 5 практикум
           Объект.Контрагент =
         ПолучитьКонтрагентаПоКонтактномуЛицу (Объект.КонтактноеЛицо) ;
   
КонецПроцедуры

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



Памагите!!!Сил уже нет...

AIFrame

Ты эти события на элементы то повесил?
Где проверки и уведомления о пустых запросах? Ты как без отладки и ключа дебага поймешь, что запрос вернул ничего?
Добавлено: 21 окт 2018, 11:32


ПолучитьКонтрагентаПоКонтактномуЛицу (КонтактноеЛицо)
Ужасно.
Возврат КонтактноеЛицо.Владелец;
Далее.
Стр = Элементы.Товары.ТекущиеДанные;
Ужасно. Где проверка на null?

Теги: цена 

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

Рейтинг@Mail.ru

Поиск