Имя: Пароль:
1C
1С v8
Поле остается пустым
0 pupurum
 
11.05.16
13:39
На форме поле Договор, которое привязано к реквизиту Договор.
Есть обработчик события поля ОкончаниеВводаТекста.

Код обработчика:

Процедура ДоговорОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
            
ФормаВыбора = Документы.НекийДокумент.ПолучитьФормуВыбора(,Элемент);
ФормаВыбора.Отбор["Номер"].Значение = Текст;
ФормаВыбора.Отбор["Номер"].ВидСравнения = ВидСравнения.Содержит;
ФормаВыбора.Отбор["Номер"].Использование = Истина;
            ФормаВыбора.ЭлементыФормы.ДокументСписок.НастройкаОтбора["Номер"].Доступность = Ложь;
Договор = ФормаВыбора.ОткрытьМодально();
            
Запрос = Новый Запрос;
Запрос.Текст =  "ВЫБРАТЬ
|    НекийРегистр.Контрагент
|ИЗ
|    РегистрСведений.НекийРегистр.СрезПоследних(, Договор = &Договор) КАК НекийРегистр";
            Запрос.УстановитьПараметр("Договор",Договор.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ПолеВвода1 = Выборка.Контрагент;
ПолеВвода2 = Договор.Данные2;
ПолеВвода3 = Выборка.Контрагент;
СтандартнаяОбработка = Ложь;
КонецПроцедуры

При выполнении процедуры заполняются все поля И ПолеВвода1 и ПолеВвода2 и ПолеВвода3. Поле Договор становится пустым. Почему так?
1 Nuobu
 
11.05.16
13:42
Может, поле называется "ДоговорКонтрагента"?
2 pupurum
 
11.05.16
13:44
Нет, имя поля Договор. Соответственно ЭлементыФормы.Договор - поле, Договор - реквизит.
3 zbv
 
11.05.16
13:45
Договор = ФормаВыбора.ОткрытьМодально();

что возвращается из формывыбора ?
4 Nuobu
 
11.05.16
13:46
Стань на точке останова:

ФормаВыбора = Документы.НекийДокумент.ПолучитьФормуВыбора(,Элемент);
ФормаВыбора.Отбор["Номер"].Значение = Текст;
ФормаВыбора.Отбор["Номер"].ВидСравнения = ВидСравнения.Содержит;
ФормаВыбора.Отбор["Номер"].Использование = Истина;

вот тут остановить точкой останова и глянь, что находится в переменной "ДОговор", заодно глянь, что находится в пути к данным в твоём поле.

ФормаВыбора.ЭлементыФормы.ДокументСписок.НастройкаОтбора["Номер"].Доступность = Ложь;

Договор = ФормаВыбора.ОткрытьМодально();
            
Запрос = Новый Запрос;
5 pupurum
 
11.05.16
13:46
ДокументСсылка.Договор. Т.е. реквизит заполняется, имеет значение ссылки конкретного договора.
6 pupurum
 
11.05.16
13:48
Форма возвращает ссылку на конкретный договор, реквизит Договор заполняется. На основании заполненного реквизита делается запрос, который возвращает правильный результат. В ПолеВвода2 заносится правильное значение реквизита этого договора. Все просмотрено по отладке.
7 RomanYS
 
11.05.16
13:51
(0) посмотри описание параметра "Значение" в СП, я бы попробовал засунуть в него твой договор
8 pupurum
 
11.05.16
14:01
(7) Решение было настолько верным, что комп перезагружать пришлось. Спасибо! Действительно через Значение удалось.
Программист всегда исправляет последнюю ошибку.