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

Доступ к реквизитам номенклатуры в форме документа

Автор Disbat_77, 31 авг 2015, 22:14

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

Disbat_77

Место действия: ПоступлениеТоваров / ФормаДокумента
В Номенклатуре добавлен числовой реквизит ВУпаковке, в форме документа колонка Упак, обработчик события для колонки выглядит так:


Процедура УпакПриИзменении(Элемент)

ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ТекущаяНоменклатура = ТекущаяСтрока.Номенклатура;
ТекВУп = ТекущаяНоменклатура.ВУпаковке;

        ТекущаяСтрока.КоличествоУпаковок = ТекущаяСтрока.Упак * ТекВУп;
ПриИзмененииТоварыКоличестваУпаковок();

КонецПроцедуры


Выполнение приводит к ошибке
Цитировать{Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(2674)}: Поле объекта не обнаружено (ВУпаковке)
   ТекВУп = ТекущаяНоменклатура.ВУпаковке;

Не могу понять как получить этот реквизит (да и вообще любые другие реквизиты в подобном случае) хотя-бы для чтения?

Kironten

Тема уже мусолилась тысячи раз.
На клиенте недоступно ничего кроме ссылок.
Через ссылку на клиенте вы не сможете ничего получить.
Передавайте ссылку номенклатуры в серверную безконтекстную функцию и там уже получайте количество вупаковке.
Посмотрите, как это реализовано в типовых решениях.

ferrari314

В вашем коде правим:
ТекВУп  = ПолучитьВУпак(ТекущаяНоменклатура);

Добавляем:

&НаСервере
Функция ПолучитьВУпак(Номенклатура)
   Возврат  Номенклатура.ПолучитьОбъект().ВУпаковке;
КонецФункции;
   
Как то так получим реквизит.

vitasw

Цитата: ferrari314 от 01 сен 2015, 11:05Добавляем:

Код: [Выделить]

&НаСервере
Функция ПолучитьВУпак(Номенклатура)
   Возврат  Номенклатура.ПолучитьОбъект().ВУпаковке;
КонецФункции;

   
Как то так получим реквизит.

Зачем получать объект? Вполне достаточно:
&НаСервереБезКонтекста
Функция ПолучитьВУпак(Номенклатура)
   Возврат  Номенклатура.ВУпаковке;
КонецФункции;

Теги:

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

Рейтинг@Mail.ru

Поиск