Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Май 2018, 00:24
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Подставление контрагента в 8.2  (Прочитано 6662 раз)

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

Оффлайн Nail2010

  • ****
  • Сообщений: 325
  • РЕПУТАЦИЯ: 18
  • КПД: 6%
  • Регистрация: 2010-10-27
  • Сайт: 
Доброго дня!

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

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

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

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


Оффлайн ***Vjacheslav***

  • ***
  • Сообщений: 156
  • РЕПУТАЦИЯ: 35
  • КПД: 22%
  • Регистрация: 2010-08-16
  • Сайт: 
  • Профессия: Программист 1С
Нужно добавить
Выборка.следующий()  перед ИскДок=Выборка.Владелец;, но она будет выбирать владельца из первого документа в выборке.

Оффлайн Nail2010

  • ****
  • Сообщений: 325
  • РЕПУТАЦИЯ: 18
  • КПД: 6%
  • Регистрация: 2010-10-27
  • Сайт: 
Не помешает, но Ошибка выходит та же - поле объекта КОНТРАГЕНТ не доступно для записи

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Элементы.Контрагент=ИскДок;

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

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

Оффлайн Tata86

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-11-25
  • Сайт: 
  • Профессия: Программист
Попробуйте поставить директиву на &НаСервере

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Чисто методический вопрос: а может надо наоборот?
обычно сперва контрагента выбирают, а потом контактное лицо, к нему относящееся...

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

Оффлайн Nail2010

  • ****
  • Сообщений: 325
  • РЕПУТАЦИЯ: 18
  • КПД: 6%
  • Регистрация: 2010-10-27
  • Сайт: 
Спасибо за предложения! Теперь ошибку не выдает, го и ничего не подставляет - строка Контрагента так и остается пустой.. порядок выбора имено такой - какбы условие задания - выбираешь контактное лицо - подставляется конрагент.
Замечание насчет источника выборки верное- выбирается из справочника, подчиненного справочнику Контрагнеты. осталось понять, почему же выборка не работает...

Оффлайн Nail2010

  • ****
  • Сообщений: 325
  • РЕПУТАЦИЯ: 18
  • КПД: 6%
  • Регистрация: 2010-10-27
  • Сайт: 
Исправил код на соответствующий моим условиям:

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

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

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

Оффлайн Nail2010

  • ****
  • Сообщений: 325
  • РЕПУТАЦИЯ: 18
  • КПД: 6%
  • Регистрация: 2010-10-27
  • Сайт: 
Условие чего?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
"Но подставляется один и тот же котрагент, хотя по записям владельцы разные"

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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
152 Сообщений
oleg-x
64 Сообщений
alex0402
60 Сообщений
AIFrame AIFrame
52 Сообщений
wise wise
37 Сообщений
KOI8-R
33 Сообщений
buketov.av buketov.av
28 Сообщений
Alter
22 Сообщений
BuhRust
19 Сообщений
alexandr_ll
19 Сообщений

* Кто онлайн

  • Точка Гостей: 209
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal