PDA

Просмотр полной версии : Получение значения реквизита элемента из справочника в документ



MasterLoma
17.05.2019, 10:54
Доброго времени суток! У меня возникли некоторые трудности с получением значения реквизита из справочника в документ. Мне нужно, чтобы когда я в табличной части (документа) в реквизите "Номенклатура" выбирал какую-то номенклатуру, то в реквизит "Цена" табличной части, записывалась её цена из справочника. Для того, чтобы получить значение из справочника, как я понял, нужно создать функцию....А вот как прописать в функции то, что она должна возвращать цену какой-то номенклатуры?
В справочнике "Номенклатура" у меня хранятся книги. Через предопределённые данные я создал группы (Жанры книг) и в каждом из жанров находятся элементы (книги) с информацией об авторе и тд.

Margofs
17.05.2019, 11:38
Какая конфигурация? на какой платформе?

Fltr
17.05.2019, 11:54
Доброго времени суток! У меня возникли некоторые трудности с получением значения реквизита из справочника в документ. Мне нужно, чтобы когда я в табличной части (документа) в реквизите "Номенклатура" выбирал какую-то номенклатуру, то в реквизит "Цена" табличной части, записывалась её цена из справочника. Для того, чтобы получить значение из справочника, как я понял, нужно создать функцию....А вот как прописать в функции то, что она должна возвращать цену какой-то номенклатуры?
В справочнике "Номенклатура" у меня хранятся книги. Через предопределённые данные я создал группы (Жанры книг) и в каждом из жанров находятся элементы (книги) с информацией об авторе и тд.

Цена - это реквизит справочника "Номенклатура"?
Тогда можно обращаться без функции: Цена=Номенклатура.Цена;
Это должно быть прописано в процедуре "ПриВыбореНоменклатуры", которая назначается колонке "Номенклатура"вашей табличной части

Margofs
17.05.2019, 12:07
на клиенте он заполняет табличную часть..... не обратиться он объектно!

Margofs
17.05.2019, 12:10
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************

&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;

Возврат Товар.Цена;
КонецФункции

Margofs
17.05.2019, 12:20
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************

&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;

Возврат Товар.Цена;
КонецФункции


часть

Fltr
17.05.2019, 13:23
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************

&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;

Возврат Товар.Цена;
КонецФункции

Можно так:
&НаКлиенте
Процедура ТабличнаяЧасть1Номенклату� �аПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТабличнаяЧасть1.Т� �кущиеДанные;
УИ=ТекущиеДанные.Номенклат ура.УникальныйИдентификат� �р();
ТекущиеДанные.Цена=НайтиЦе ну(УИ);
КонецПроцедуры
&Насервере
Функция НайтиЦену(Реквизит)
ТекН=Справочники.Номенклат ура.ПолучитьСсылку(Реквизи т);
Возврат ТекН.Цена;

КонецФункции

MasterLoma
17.05.2019, 15:03
Какая конфигурация? на какой платформе?

1С:Предприятие 8.3, учебная версия (8.3.6.2014)

MasterLoma
17.05.2019, 15:04
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************

&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;

Возврат Товар.Цена;
КонецФункции

Спасибо попозже попробую таким образом сделать.