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

Подставление контрагента в 8.2

Автор Nail2010, 04 апр 2011, 07:25

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

Nail2010

Доброго дня!

&НаКлиенте
Процедура КонтактноеЛицоПриИзменении(Элемент)
ИскДок=ВыборКонтрагента();
    Элементы.Контрагент=ИскДок;
КонецПроцедуры


&НаСервереБезКонтекста 
  Функция ВыборКонтрагента()
  Запрос=Новый запрос;
Запрос.Текст="ВЫБРАТЬ
             | ПоступлениеТоваров.КонтактноеЛицо.Владелец КАК Владелец
             |ИЗ
             | Документ.ПоступлениеТоваров КАК ПоступлениеТоваров";
Выборка=Запрос.Выполнить().Выбрать();
ИскДок=Выборка.Владелец;
Возврат(ИскДок);
КонецФункции


задача простая  - при выборе контактного лица должен подставлятьсяконтрагент - владелец.

в 8.1 без проблем решил, здесь не могу понять, в чем загвоздка... пишет - Поле объекта недоступно.
Подскажите в чем фокус?

***Vjacheslav***

Нужно добавить
Выборка.следующий()  перед ИскДок=Выборка.Владелец;, но она будет выбирать владельца из первого документа в выборке.

Nail2010

Не помешает, но Ошибка выходит та же - поле объекта КОНТРАГЕНТ не доступно для записи

cska-fanat-kz

Элементы.Контрагент=ИскДок;

Если Контрагент - реквизит например документа - основного реквизита формы, то
обращаться к нему

Объект.Контрагент = ИскДок;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Tata86

Попробуйте поставить директиву на &НаСервере

cska-fanat-kz

Чисто методический вопрос: а может надо наоборот?
обычно сперва контрагента выбирают, а потом контактное лицо, к нему относящееся...

Через какой объект у вас связь контрагента и контактного лица осуществляется?
Обычно это регистр сведений...
А вы почему-то эту связь через документ ищете...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Nail2010

Спасибо за предложения! Теперь ошибку не выдает, го и ничего не подставляет - строка Контрагента так и остается пустой.. порядок выбора имено такой - какбы условие задания - выбираешь контактное лицо - подставляется конрагент.
Замечание насчет источника выборки верное- выбирается из справочника, подчиненного справочнику Контрагнеты. осталось понять, почему же выборка не работает...

Nail2010

Исправил код на соответствующий моим условиям:

&НаКлиенте
Процедура КонтактноеЛицоПриИзменении(Элемент)
Объект.Контрагент = ПолучитьКонтрагента(Объект.КонтактноеЛицо);
КонецПроцедуры


&НаСервереБезКонтекста
Функция ПолучитьКонтрагента(КонтактноеЛицо);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | КонтактныеЛица.Владелец КАК Владелец
               |ИЗ
               | Справочник.КонтактныеЛица КАК КонтактныеЛица";
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Возврат ВыборкаДетальныеЗаписи.Владелец;
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецЦикла;
КонецЕсли;
КонецФункции


Но подставляется один и тот же котрагент, хотя по записям владельцы разные

Nail2010


cska-fanat-kz

"Но подставляется один и тот же котрагент, хотя по записям владельцы разные"

Судя по коду выше - как он вообще подставляется если всегда возвращается пустая ссылка...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск