Имя: Пароль:
1C
1С v8
Поле объекта не обнаружено, как исправить?
0 LeiaWitch
 
18.01.22
12:12
&НаКлиенте
Процедура ЗаказПозицияПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Заказ.ТекущиеДанные;
    СтрокаТабличнойЧасти.Цена = ПолучитьЦену(СтрокаТабличнойЧасти.Позиция);
    СтрокаТабличнойЧасти = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество;
КонецПроцедуры

&НаСервере
Функция ПолучитьЦену(ЭлементЗначение)
    Спр = Справочники.Пиццы;
    НайденнаяЦена = Спр.НайтиПоНаименованию(ЭлементЗначение).Цена;
    Возврат НайденнаяЦена;
КонецФункции

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

Есть Документ ЗАКАЗ и справочник ПИЦЦЫ, когда в документе выбираю в табличной части что-то из ПИЦЦ, то почему-то не находит цену из этого справочника ПИЦЦ, хотя она там стоит в табличной части.
1 LeiaWitch
 
18.01.22
12:14
А и еще цена во всех справочниках это просто число, вдруг это важно. Я вообще как бы не разбираюсь, но хочу понять, есть ли решение попроще чтобы понять новичку?
2 lubitelxml
 
18.01.22
12:15
Потому что в табличной части цены, а ты просто присваиваешь таблицу   НайденнаяЦена = Спр.НайтиПоНаименованию(ЭлементЗначение).Цена; вместо нужного поля
4 Василий Алибабаевич
 
18.01.22
12:16
(0) Я бы вот это вот переписал так:
&НаСервере
Функция ПолучитьЦену(ЭлементЗначение)
  Спр = Справочники.Пиццы;
  Пицца = Спр.НайтиПоНаименованию(ЭлементЗначение);
  Если Пицца.Пустая() Тогда
    Сообщить("Нифига не нашлось. ЧерезПатамуЧто искать не умею.");
    Возврат 0;
  КонецЕсли;
  Возврат Пицца.Цена;
КонецФункции
5 Bad_Aleks
 
18.01.22
12:17
(0) (1) если ты не разбираешься зачем тебе это? Просто для себя или тебе деньги платят за это?

Ты запускай свой код с отладкой. И смотри, что на каждом шаге ты получаешь
6 Жан Пердежон
 
18.01.22
12:20
(4) а толку? там не скорее всего и наименование вовсе
7 Serg_1960
 
18.01.22
12:26
Процедура ЗаказПозицияПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Заказ.ТекущиеДанные;
    СтрокаТабличнойЧасти.Цена = ПолучитьЦену(СтрокаТабличнойЧасти.Позиция);
    СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество;
КонецПроцедуры

&НаСервере
Функция ПолучитьЦену(ЭлементЗначение)
    Возврат ЭлементЗначение.Цена;
КонецФункции
8 lubitelxml
 
18.01.22
12:39
(7) &НаСервереБезКонтекста тогда
9 LeiaWitch
 
18.01.22
12:41
(4) Мне это нужно на курсовой проект, хочу понять что делаю не так, сделать правильно.
10 LeiaWitch
 
18.01.22
12:43
Теперь цену находит, но сумму не считает :)
11 1Сергей
 
18.01.22
13:13
Разбираться с типами, читать азы
12 pasha_d
 
18.01.22
13:51
&НаКлиенте
Процедура ЗаказПозицияПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Заказ.ТекущиеДанные;
    СтрокаТабличнойЧасти.Цена = ПолучитьЦену(СтрокаТабличнойЧасти.Позиция);
    СтрокаТабличнойЧасти = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество;
КонецПроцедуры

СтрокаТабличнойЧасти = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; - вот это интересный тоже момент)
13 Serg_1960
 
18.01.22
14:45
(10) Озвучьте текущий код. Вероятно Вы не обратили внимание на моё изменение предпоследней строки процедуры ЗаказПозицияПриИзменении().
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший