|
v7: Открыть форму подбора из формы открытой модально |
☑ |
0
MaxStarkov
21.11.11
✎
10:56
|
Ситуация такая. Есть внешняя обработка, которая открывается модально, в этой обработке предусмотрено заполнение таблицы значений данными справочников. При использовании ОткрытьПодбор() он открывается, но так как форма обработки открыта модально, то выбрать из подбора не получается.
В итоге надо из внешней обработки получить таблицу значений для которой надо как то организовать подбор. Не получается у меня
|
|
1
andrewks
21.11.11
✎
10:56
|
модальность - зло
|
|
2
MaxStarkov
21.11.11
✎
10:56
|
Вопрос по 1С 7.7. Случайно проглядел и запостил его в раздел по 1С 8. Перенесите пожалуйста
|
|
3
LAAry
21.11.11
✎
10:57
|
(0) и не получится. Модально, значит модально.
|
|
4
Defender aka LINN
21.11.11
✎
10:57
|
Зачем открывать ее модально?
|
|
5
MaxStarkov
21.11.11
✎
10:58
|
Чтобы потом получить из нее в качестве параметра таблицу значений. Или можно получить и не при модальном открытии?
|
|
6
Rie
21.11.11
✎
11:00
|
(5) Можно и не при модальном открытии. Посмотри, как в типовой ТиС сделан подбор номенклатуры в документах.
|
|
7
MaxStarkov
21.11.11
✎
11:01
|
Спасибо, гляну и попробую
|
|
8
MaxStarkov
21.11.11
✎
11:08
|
блин. нет ТиС по рукой сейчас.
ОткрытьФорму("Обработка.ФормированиеУсловий",СписокПараметров);
Сообщить(ЗначениеВСтроку(СписокПараметров));
Форма открывается, но сразу же выдается пустая строка. А вот при:
ОткрытьФормуМодально("Обработка.ФормированиеУсловий",СписокПараметров);
Сообщить(ЗначениеВСтроку(СписокПараметров));
Выдется уже значение
|
|
9
MaxStarkov
21.11.11
✎
11:09
|
В форме "Обработка.ФормированиеУсловий" есть код:
Процедура Сформировать()
СписокПараметровУсловия=СоздатьОбъект("СписокЗначений");
СписокПараметровУсловия.ДобавитьЗначение(ТипЗначенияУсловия);
СписокПараметровУсловия.ДобавитьЗначение(ВидЗначенияУсловия);
СписокПараметровУсловия.ДобавитьЗначение(ВидУсловия);
Если ПустоеЗначение(ЭлементУсловия)=0 Тогда
СписокПараметровУсловия.ДобавитьЗначение(ЭлементУсловия);
КонецЕсли;
Если ЭлементыУсловия.КоличествоСтрок()>0 Тогда
СписокПараметровУсловия.ДобавитьЗначение("Список");
КонецЕсли;
Форма.Параметр=СписокПараметровУсловия;
Форма.Закрыть();
КонецПроцедуры
|
|
10
Rie
21.11.11
✎
11:14
|
(8) Форму открой в режиме подбора.
В открытой форме - ОбработкаВыбораСтроки(0);
А как надо вернуть значение - ВыполнитьВыбор(ЧегоТамТебеНужноПередать);
Вызывающая форма получмт это значение через ОбработкаПодбора.
|
|
11
MaxStarkov
21.11.11
✎
11:57
|
Работает! В итоге надо делать так:
в первую обработку надо добавить процедуру ОбработкаПодбора()
вызов обработки в которой подбираются значения осуществляется через ОткрытьПодбор()
в вызываемой обработке надо выключить предопределенную процедуру обработки выбора через
ОбработкаВыбораСтроки(0)
вызвать подбор элементов справочника (или еще чего) через ОткрытьПодбор(), а возврат значения осуществить через ВыполнитьВыбор()
Спасибо!
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший