|
|
Поле остается пустым |
☑ |
|
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) Решение было настолько верным, что комп перезагружать пришлось. Спасибо! Действительно через Значение удалось.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший