Имя: Пароль:
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) Озвучьте текущий код. Вероятно Вы не обратили внимание на моё изменение предпоследней строки процедуры ЗаказПозицияПриИзменении().
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.