Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
barracuda1991
1 / 1 / 1
Регистрация: 30.07.2015
Сообщений: 115
Завершенные тесты: 1
1

Подстановка цены в документ из регистра сведений через табличную модель

21.05.2016, 15:57. Просмотров 2021. Ответов 6
Метки нет (Все метки)

Пытаюсь получить из регистра цену на выбираемый в табличной части товар по текущему контрагенту.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Функция ПолучиЦенуПродажи(СсылкаНаТекЭлСправ)
    // табличная модель
    Запрос= новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЦеныПоставщиковСрезПоследних.Цена
                   |ИЗ
                   |    РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
                   |ГДЕ
                   |    ЦеныПоставщиковСрезПоследних.Контрагент.Ссылка = &СсылкаНаКонтрагентаВдокументеПН
                   |    И ЦеныПоставщиковСрезПоследних.Номенклатура.Ссылка = &СсылкаНаТоварВдокументеПН";
    Запрос.УстановитьПараметр("СсылкаНаКонтрагентаВдокументеПН",Объект.Контрагент.Ссылка);
    Запрос.УстановитьПараметр("СсылкаНаТоварВдокументеПН",СсылкаНаТекЭлСправ);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Если Выборка.Следующий() Тогда
        Возврат Выборка;      
    КонецЕсли;
    
КонецФункции
 
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
    // табличная модель
    Стр = Элементы.Товары.ТекущиеДанные;
    Контрагент = Элементы.Контрагент;
    Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура.Ссылка);
КонецПроцедуры
Ругается стр. 14
Значение не является значением объектного типа (Выбрать)
Выборка = Результат.Выбрать();
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2016, 15:57
Ответы с готовыми решениями:

Подстановка цены из регистра сведений
Всем привет! В 1с я новичок, поэтому если что сильно не ругайте. У меня вот какая задача:есть...

Данные из регистра сведений в табличную часть
Здравствуйте. Есть регистр сведений "КоэффициентыНормГСМ" с измерениями Автомобиль и Коэффициент....

Заполнить табличную часть справочника данными из регистра сведений
Здравствуйте! Есть регистр сведений, в который имеет 5 записей: а, б, в, г, д. В табличной части...

Вывод в табличную часть справочника данных из регистра сведений
Здравствуйте! Есть справочник и РС. Надо в табличную часть справочника вывести данные из РС,...

Как заполнить табличную часть справочника данными регистра сведений?
Здравствуйте! Столкнулась с такой проблемой. Платформа 1С 8.2. Есть справочник...

6
GreenkA
Форумчанин
Эксперт 1С
3004 / 1925 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
21.05.2016, 16:59 2
barracuda1991, а где вы выполняете функцию?
И еще: на вот эту строку не ругается?
1C
1
Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура.Ссылка);
а должно бы)
0
barracuda1991
1 / 1 / 1
Регистрация: 30.07.2015
Сообщений: 115
Завершенные тесты: 1
21.05.2016, 18:07  [ТС] 3
функция выполняется &НаСервере

Добавлено через 27 минут
неверно передаю ссылку на текущий товар в функцию?

Добавлено через 31 минуту
1С:Предприятие 8.3, учебная версия (8.3.6.2014)
управляемые формы
Смотрю в отладчике, результат запроса почему то пустой
хотя Объект.Контрагент.Ссылка
и
СсылкаНаТекЭлСправ заполнены
стр 13 Результат = Запрос.Выполнить();
0
GreenkA
Форумчанин
Эксперт 1С
3004 / 1925 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
21.05.2016, 20:37 4
передавайте номенклатура без обращения к ссылке:
1C
1
Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура);
и прописывайте сразу:
1C
1
Выборка = Запрос.Выполнить().Выбрать();
Почему у вас на Выбрать() ругается - непонятно.
Проверьте регистр, по данным отбора информация есть в нем?
1
barracuda1991
1 / 1 / 1
Регистрация: 30.07.2015
Сообщений: 115
Завершенные тесты: 1
21.05.2016, 20:59  [ТС] 5
Цитата Сообщение от GreenkA Посмотреть сообщение
Почему у вас на Выбрать() ругается - непонятно.
Проверьте регистр, по данным отбора информация есть в нем?
Через консоль запросов пробовал, в результирующей таблице есть данные. Теперь пишет:
{Документ.ПостаплениеТоваров.Форма.ФормаДокумента.Форма(56)}: Ошибка при вызове метода контекста (ПолучиЦенуПродажи)
Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'ret':
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ВыборкаИзРезультатаЗапроса'
0
GreenkA
Форумчанин
Эксперт 1С
3004 / 1925 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
21.05.2016, 21:30 6
Лучший ответ Сообщение было отмечено barracuda1991 как решение

Решение

barracuda1991,
1C
1
Возврат Выборка.Цена;
0
barracuda1991
1 / 1 / 1
Регистрация: 30.07.2015
Сообщений: 115
Завершенные тесты: 1
22.05.2016, 21:55  [ТС] 7
Работает! ) Спасибо! )
0
22.05.2016, 21:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2016, 21:55

Подставление вида цены и цены из регистра сведений
Такое дело... Есть док - Продажи. ТЧ - Товары. Нужно, чтобы При Изменении Номенклатуры в ВидЦены...

Вытащить цены из регистра сведений
Добрый день! Прошу подсказать, что не так. Перелопатила кучу тем, так и не нашла решения. Ошибка...

1С 8.3 Подбор цен из регистра сведений Цены
Здравствуйте, нужна ваша помощь. Имеется регистр сведений Цены и документ Установка цен, при помощи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.