Имя: Пароль:
1C
1С v8
регистры сведений
, ,
0 Dmitry017
 
19.03.13
13:53
Необходимо обработать заполнение поля "Цена" в документе ПриходнаяНакладная. Цена находится в регистре сведений.
Я написал код, но выскакивает ошибка
&НаКлиенте
Процедура ТоварыНаименованиеТовараПриИзменении(Элемент)
       ТекущиеДанные = ТекущийЭлемент.ТекущиеДанные;
   ТекущиеДанные.Цена = ПолучитьЦену();
КонецПроцедуры




&НаСервере
Функция ПолучитьЦену()
    Отбор = Новый Структура;
    Отбор.Вставить("Номенклатура", Объект.Товары.НаименованиеТовара);
    РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор);    
КонецФункции // ПолучитьЦену() //



Ошибка:
ладная.Форма.ФормаДокумента.Форма(14)}: Поле объекта не обнаружено (НаименованиеТовара)
    Отбор.Вставить("Номенклатура", Объект.Товары.НаименованиеТовара);
1 ДенисЧ
 
19.03.13
13:54
не... тут ошибка не в коде...
2 ДенисЧ
 
19.03.13
13:54
Точнее в коде, но не том, что приведён выше...
3 Dmitry017
 
19.03.13
13:56
А это весь код обработки. и ошибка на этой строке:
Отбор.Вставить("Номенклатура", Объект.Товары.НаименованиеТовара);
Вот скрин объекта формы http://i51.fastpic.ru/big/2013/0319/01/964c3db0fadf639768e80a03b33d1801.png
4 НафНаф
 
19.03.13
13:57
феерический пипец
5 Dmitry017
 
19.03.13
14:01
(4) Я сделал как написано в книжке Радченко: я создал структуру Отбор, в которой есть 2 поля:
"Номенклатура" - поле типа Строка, которое совпадает с названием измерения
второе поле - ссылка на тип измерения.
6 Defender aka LINN
 
19.03.13
14:01
(3) Ошибка - не в коде. Она даже не в компьютере, а перед ним, скорее.
7 DexterMorgan
 
19.03.13
14:01
ЭЭЭЭЭЭЭЭЭЭЭ
8 DexterMorgan
 
19.03.13
14:02
Да ну даже объяснять лень)
9 Михаил Козлов
 
19.03.13
14:03
(5) Объект.Товары - это табличная часть (скорее всего).
10 Dmitry017
 
19.03.13
14:04
(8) Объект не передался на сервер и там недоступен?
11 Dmitry017
 
19.03.13
14:04
Да, объект.Товары - табличная часть, а НаименованиеТовара - название столбца в этой табличной части
12 Dmitry017
 
19.03.13
14:07
так тоже не работает

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




&НаСервере
Функция ПолучитьЦену(СсылкаНаТовар)
    Отбор = Новый Структура;
    Отбор.Вставить("Номенклатура", СсылкаНаТовар);
    РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор);    
КонецФункции // ПолучитьЦену() //
13 DexterMorgan
 
19.03.13
14:11
&НаКлиенте
Процедура ТоварыНаименованиеТовараПриИзменении(Элемент)
 ТекущиеДанные = Объект.Товары.ТекущиеДанные;

   ТекущиеДанные.Цена = ПолучитьЦену(ТекущиеДанные.НаименованиеТовара);
КонецПроцедуры




&НаСервере
Функция ПолучитьЦену(СсылкаНаТовар)
    Отбор = Новый Структура;
    Отбор.Вставить("Номенклатура", СсылкаНаТовар);
    РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор);    
КонецФункции // ПолучитьЦену() //
14 Ткачев
 
19.03.13
14:11
(0)А "017" это что ? Возраст ? Регион ?
15 DexterMorgan
 
19.03.13
14:12
Тьфу
16 DexterMorgan
 
19.03.13
14:12
&НаКлиенте
Процедура ТоварыНаименованиеТовараПриИзменении(Элемент)
 ТекущиеДанные = Элементы.Товары.ТекущиеДанные;

   ТекущиеДанные.Цена = ПолучитьЦену(ТекущиеДанные.НаименованиеТовара);
КонецПроцедуры
17 DexterMorgan
 
19.03.13
14:14
И это..функция как бы значение возвращает
18 Dmitry017
 
19.03.13
14:19
(14) 017 - Random Value=)
19 Dmitry017
 
19.03.13
14:20
(17) да я пока что недописал
20 Dmitry017
 
19.03.13
14:26
(16) Спасибо большое, всё заработало. Это.. если тебе не трудно, можешь пояснить, почему через Объект.Товары не получалось обратиться?
21 Defender aka LINN
 
19.03.13
14:45
(20) И к чему ты обращался, по-твоему?
Вот давай. В табличной части 100500 строк. Что должна программа сделать, увидев "Объект.Товары.НаименованиеТовара"?
22 Dmitry017
 
19.03.13
14:48
Я понял. Спасибо
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан