Имя: Пароль:
1C
1С v8
автоматическая подстановка значения поля
0 Marry04
 
12.04.16
12:00
В документе хочу добавить автоматическую подстановку спецификации номенклатуры из справочника номенклатуры(реквизит справочника СпецификацияНоменклатуры) при выборе соответствующей продукции.
но почему-то не хочет работать!



&НаКлиенте
Функция ИзвлечьСпецификацию(Номенклатура)
    Если  Номенклатура.СпецификацияНоменклатуры = неопределено   Тогда;
        Сообщить("нет спецификации");
Иначе
Спецификация =  Номенклатура.СпецификацияНоменклатуры;
Конецесли;
Возврат Спецификация;
КонецФункции

&НаКлиенте
Процедура ПродукцияПродукцияПриИзменении(Элемент)
СтрокаТЧ= Элементы.Продукция.ТекущиеДанные;
Наименование_продукции=СтрокаТЧ.Продукция;    
СтрокаТЧ.Спецификация =ИзвлечьСпецификацию(Наименование_продукции);        
КонецПроцедуры
  

ОШИБКА ВОТ ТАКАЯ:
{Документ.ОтчетПроизводства.Форма.ФормаДокумента.Форма(11)}: Поле объекта не обнаружено (СпецификацияНоменклатуры)
    Если  Номенклатура.СпецификацияНоменклатуры = неопределено   Тогда;


Помогите пожалуйста, может как-то не так обращаюсь к реквизиту справочника?
1 AneJIbcuH
 
12.04.16
12:05
Директиву &НаСервереБезКонтекстаПопробуй у Функции ИзвлечьСпецификацию(Номенклатура)
2 AneJIbcuH
 
12.04.16
12:11
И еще, СпецификацияНоменклатуры - это же справочник, тогда скорее проверка такая:

&НаСервереБезКонтекста
Функция ИзвлечьСпецификацию(Номенклатура)

Если  Номенклатура.СпецификацияНоменклатуры.Пустая() Тогда
        Сообщить("нет спецификации");
Спецификация = Неопределено;
Иначе
Спецификация =  Номенклатура.СпецификацияНоменклатуры;
Конецесли;
Возврат Спецификация;
КонецФункции
3 Marry04
 
12.04.16
12:11
AneJIbcuH, спасибо большое, получилось.Но только не понимаю, почему именно эту директиву нужно писать?Все выполнение происходит на клиенте же
4 AneJIbcuH
 
12.04.16
12:13
Обращаешься через .(Разыменование полей) к реквизиту, это своего рода запрос, который доступен только &НаСервере  или  &НаСервереБезКонтекста
5 zladenuw
 
12.04.16
12:14
(3) Нет сударь вы не правы. Учите мать часть. Она есть в синтаксис помощнике в конфигураторе
6 zladenuw
 
12.04.16
12:15
(4) Это не запрос. на клиенте представление объекта. а не весь он. что бы получить его весь или его поле. нужно сходить на сервер
7 AneJIbcuH
 
12.04.16
12:17
(6) Ну да согласен, но если бы Номенклатура.СпецификацияНоменклатуры.Какой_тоРеквизит, то уже запрос.
8 Marry04
 
12.04.16
12:20
То есть обращаться из форм других документов к любому справочнику можно только путем обращения к серверу,но никак не на клиенте.