|
Справочник "Номенклатура" + вывод наименование контрагента | ☑ | ||
---|---|---|---|---|
0
Pavel55555
14.12.16
✎
15:53
|
Доброго дня!
Платформа 8.3 Толстый клиент. УТ 10.3 Данные: Справочник "Номенклатура", созданы колонки "НаименованиеНоменклатурыКонтрагента" "КодНоменклатурыКонтрагента", хочу их заполнить из "РегистрСведений.НоменклатураКонтрагентов. Пытаюсь вывести хотя бы Наименование контрагента. Вот что пока получилось: Функция ПолучитьНоменклатуруКонтрагентов(Номенклатура, НоменклатураКонтрагентов) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураКонтрагентов.Номенклатура, | НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента, | НоменклатураКонтрагентов.КодНоменклатурыКонтрагента |ИЗ | РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов |ГДЕ | НоменклатураКонтрагентов.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("НаименованиеНоменклатурыКонтрагента", НаименованиеНоменклатурыКонтрагента); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.НоменклатураКонтрагентов; Иначе Возврат неопределено КонецЕсли; КонецФункции Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок) Если ЗначениеЗаполнено(ДанныеСтроки.Номенклатура) Тогда НоменклатураКонтрагентов = ПолучитьНоменклатуруКонтрагентов(ДанныеСтроки.Номенклатура); Если НЕ НоменклатураКонтрагентов = Неопределено Тогда ОформлениеСтроки.Ячейки.НоменклатураКонтрагентов.УстановитьТекст(НаименованиеНоменклатурыКонтрагента); КонецЕсли; КонецЕсли; КонецПроцедуры Данный код выдает: {Справочник.Номенклатура.Форма.ФормаСписка.Форма(938,25)}: Недостаточно фактических параметров (ПолучитьНоменклатуруКонтрагентов) МестоХранения = <<?>>ПолучитьНоменклатуруКонтрагентов(ДанныеСтроки.Номенклатура); (Проверка: Толстый клиент (обычное приложение)) Не могу понять, что то не то сделал! Дело в том, что в ТЧ Номенклатуры контрагента несколько, как сделать что бы выводил хотя бы первую строку ТЧ? PS Админам портала можете удалить предыдущею тему? "ВЫВОД НОМЕНКЛАТУРЫ КОНТРАГЕНТА В СПРАВОЧНИКЕ" Спасибо! |
|||
1
Анютик
14.12.16
✎
15:54
|
Вы объявляете функцию с двумя параметрами Функция ПолучитьНоменклатуруКонтрагентов(Номенклатура, НоменклатураКонтрагентов) Экспорт
а вызываете с одним МестоХранения = <<?>>ПолучитьНоменклатуруКонтрагентов(ДанныеСтроки.Номенклатура); (Проверка: Толстый клиент (обычное приложение)) |
|||
2
Анютик
14.12.16
✎
15:55
|
Система же написала русским языком "недостаточно фактических параметров".
з.ы. а еще на пользователей ругаемся, что не читают сообщения системы... |
|||
3
Pavel55555
14.12.16
✎
16:20
|
Функция ПолучитьНоменклатуруКонтрагента(Номенклатура) Экспорт
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураКонтрагентов.Номенклатура, | НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента, | НоменклатураКонтрагентов.КодНоменклатурыКонтрагента |ИЗ | РегистрСведений.НоменклатураКонтрагентов КАК НоменклатурыКонтрагента |ГДЕ | НоменклатураКонтрагентов.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); //Запрос.УстановитьПараметр("НаименованиеНоменклатурыКонтрагента", НаименованиеНоменклатурыКонтрагента); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.НоменклатурыКонтрагента; Иначе Возврат неопределено КонецЕсли; КонецФункции Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок) Если ЗначениеЗаполнено(ДанныеСтроки.Номенклатура) Тогда НоменклатураКонтрагентов = ПолучитьНоменклатуруКонтрагента(ДанныеСтроки.Номенклатура); Если НЕ НоменклатураКонтрагентов = Неопределено Тогда ОформлениеСтроки.Ячейки.НоменклатураКонтрагентов.УстановитьТекст(НоменклатураКонтрагентов); КонецЕсли; КонецЕсли; КонецПроцедуры Вывдает: {Справочник.Номенклатура.Форма.ФормаСписка.Форма(937)}: Значение не является значением объектного типа (Номенклатура) Если ЗначениеЗаполнено(ДанныеСтроки.Номенклатура) Тогда |
|||
4
portowyi
14.12.16
✎
16:21
|
(0) В выборке поля "НоменклатураКонтрагентов" нет, да и количество установленных параметров запроса смущает...
|
|||
5
portowyi
14.12.16
✎
16:22
|
(3) Может так?
Если Выборка.Следующий() Тогда Возврат Выборка.КодНоменклатурыКонтрагента; Иначе Возврат неопределено КонецЕсли; |
|||
6
Михаил Козлов
14.12.16
✎
16:25
|
1. Попробуйте заполнить основного поставщика в справочнике Номенклатура и по паре (Номенклатура, Номенклатура.ОсновнойПоставщик) получить данные из РС "НоменклатураКонтрагентов".
2. Берите первую запись из РС "НоменклатураКонтрагентов" с отбором по номенклатура. (3) ДЛЯ каждого оф ИЗ ОформленияСтрок Цикл Номенклатура = оф.данныеСтроки.Ссылка; |
|||
7
Pavel55555
14.12.16
✎
16:33
|
(6) Основной есть поставщик в Справочнике
|
|||
8
Анютик
14.12.16
✎
16:33
|
(3) значит поле в данных не Номенклатура называется:)
|
|||
9
Анютик
14.12.16
✎
16:33
|
включите остановку по ошибке, посмотрите отладчиком, что там
|
|||
10
Pavel55555
14.12.16
✎
16:38
|
(9) Отладчик в конфигураторе не нашел ошибку!
Это сообщение из 1С |
|||
11
h-sp
14.12.16
✎
16:40
|
(10) а конфигуратор не от 1с у вас?
|
|||
12
Михаил Козлов
14.12.16
✎
16:41
|
(7) Тогда
Запрос.Текст = "ВЫБРАТЬ | РС.НаименованиеНоменклатурыКонтрагента, | РС.КодНоменклатурыКонтрагента |ИЗ РегистрСведений.НоменклатураКонтрагентов КАК РС |ГДЕ РС.Номенклатура = &Номенклатура И РС.Контрагент = &Контрагент"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("Контрагент", Номенклатура.ОсновнойПоставщик); |
|||
13
Fish
14.12.16
✎
16:42
|
(10) "Отладчик в конфигураторе не нашел ошибку! " - Что, прямо такое сообщение 1С выдаёт?
|
|||
14
Pavel55555
14.12.16
✎
16:43
|
(11) Я имею введу что в конфигураторе "Проверка модуля" - Синтаксических ошибок не обнаружено!
А после кнопки "Начать отладку" загрузилать прога, открываю Номенклатуру и тут ошибка. |
|||
15
Pavel55555
14.12.16
✎
16:45
|
(12) Сейчас попробую!
|
|||
16
Анютик
14.12.16
✎
16:51
|
(10) это не отладчик...Отладчик включается отдельно
|
|||
17
Анютик
14.12.16
✎
16:52
|
Отладка - Остановка по ошибке, не забудьте подключить к отладке свой сеанс
|
|||
18
Pavel55555
14.12.16
✎
17:09
|
(12) Что я не то делаю!
Уже крыша едет не спеша... Путаюсь... Функция ПолучитьНоменклатуруКонтрагента(Номенклатура, ОсновнойПоставщик) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РС.НаименованиеНоменклатурыКонтрагента, | РС.КодНоменклатурыКонтрагента |ИЗ РегистрСведений.НоменклатураКонтрагентов КАК РС |ГДЕ РС.Номенклатура = &Номенклатура И РС.Контрагент = &Контрагент"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("Контрагент", Номенклатура.ОсновнойПоставщик); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.НоменклатураКонтрагента; Иначе Возврат неопределено КонецЕсли; КонецФункции Если ЗначениеЗаполнено(ДанныеСтроки.ОсновнойПоставщик) Тогда НоменклатураКонтрагентов = ПолучитьНоменклатуруКонтрагента(Номенклатура); Если НЕ НоменклатураКонтрагентов = Неопределено Тогда ОформлениеСтроки.Ячейки.НоменклатураКонтрагентов.УстановитьТекст(НоменклатураКонтрагента); КонецЕсли; КонецЕсли; |
|||
19
Pavel55555
14.12.16
✎
17:11
|
Номенклатура, ОсновнойПоставщик на Номенклатура, Номенклатура.ОсновнойПоставщик
|
|||
20
Михаил Козлов
14.12.16
✎
17:23
|
(19) Если в качестве Контрагента для РС Вы хотите использовать основного поставщика номенклатуры, тогда 2-ой параметр в ПолучитьНоменклатуруКонтрагента(Номенклатура, ОсновнойПоставщик) не нужен: хватит только ссылки на справочник "Номенклатура". Тем более, вы к этой функции обращаетесь, передавая только 1 параметр.
Проверьте еще, есть ли у Вас в ДанныеСтроки реквизит ОсновнойПоставщик. |
|||
21
Pavel55555
14.12.16
✎
17:29
|
(12) мне кажется что я вызов функции не так делаю!
|
|||
22
mehfk
14.12.16
✎
17:31
|
Функция ПолучитьНоменклатуруКонтрагента(Номенклатура)
|
|||
23
mehfk
14.12.16
✎
17:32
|
Читать любую книгу по программированию про формальные и фактическиепараметры.
|
|||
24
Pavel55555
14.12.16
✎
17:50
|
(20) {Справочник.Номенклатура.Форма.ФормаСписка.Форма(942,33)}: Недостаточно фактических параметров (ПолучитьНоменклатуруКонтрагента)
НоменклатураКонтрагентов = <<?>>ПолучитьНоменклатуруКонтрагента(ДанныеСтроки.Номенклатура); Что еще ему надо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |