Я создал функцию которая вытягивает данные из справочника номенклатура цену Товара. И при вызове функции цена не записывается в Табличную часть а остаётся пустой. Если использую метод Сообщить, то цена появляется.
&НаКлиенте
Процедура ТоварыТоварПриИзменении(Элемент)
ТекущиеДанныеТовары = Элементы.Товары.ТекущиеДанные;
ЦенаТовара = ПолучитьЦену(ТекущиеДанныеТовары.Товар);
ТекущиеДанныеТовары.Цена = ЦенаТовара;
КонецПроцедуры
Функция ПолучитьЦену(Товар)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.РозничнаяЦена КАК РозничнаяЦена,
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка = &Товар";
Запрос.УстановитьПараметр("Товар",Товар);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Цена = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("РозничнаяЦена");
Возврат Цена;
КонецЦикла;
КонецФункции
ПоказатьПо теме из базы знаний
- Табличная часть как поле ввода
- Ручное редактирование реквизитов и табличных частей объектов и их движений в обход формы
- Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0
- Загрузка в табличную часть (БСП)
- РеСольДо. Действие 1: Динамическое отражение структуры и значений табличных частей документа
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Розничная цена - конкретный реквизит справочника?
Ну если побаловаться, то можно так
Хотя логичнее получать цену из регистра, а не из справочника. В справочнике это так... Пример побаловаться, чтоб вы понимали, что есть Серверный и клиентский контекст.
Метод запрос.Выгрузить() я бы рекомендовала использовать его чисто в процессе отладки.
На малых объемах данных оно не имеет значения, но в крупной базе - вы просто повесите компьютер и базу.
Ну если побаловаться, то можно так
&НаСервере
Функция ПолучитьЦену(Номенклатура)
Возврат Номенклатура.РозничнаяЦена;
КонецФункции
&НаКлиенте
Процедура ТоварыТоварПриИзменении(Элемент)
ТекущиеДанныеТовары = Элементы.Товары.ТекущиеДанные;
ЦенаТовара = ПолучитьЦену(ТекущиеДанныеТовары.Номенклатура);
КонецПроцедуры
ПоказатьХотя логичнее получать цену из регистра, а не из справочника. В справочнике это так... Пример побаловаться, чтоб вы понимали, что есть Серверный и клиентский контекст.
Метод запрос.Выгрузить() я бы рекомендовала использовать его чисто в процессе отладки.
На малых объемах данных оно не имеет значения, но в крупной базе - вы просто повесите компьютер и базу.
А розничная цена , это число или ...? В отладчике надо проверить, что запрос выдает.
Если розничная цена это число, то ошибка в цикле. Зачем городить выгрузить колонку?!
Перед циклом
Цена = 0
Цена = выборка.РозничнаяЦена
И уже вне цикла
Возврат Цена;
Если розничная цена это число, то ошибка в цикле. Зачем городить выгрузить колонку?!
Перед циклом
Цена = 0
Цена = выборка.РозничнаяЦена
И уже вне цикла
Возврат Цена;
Для учебы существует специальное приспособление, называется "преподаватель". Они разработаны и существуют ровно для того, чтобы объяснять, показывать, растолковывать, в общем - учить.
Почему бы не воспользоваться такой замечательной возможностью? Это намного эффективнее, чем выкладывать свои страдания на форумы...
Почему бы не воспользоваться такой замечательной возможностью? Это намного эффективнее, чем выкладывать свои страдания на форумы...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот