Имя: Пароль:
1C
 
Выбор Документа в Модуль формы другого документа
0 koshechka
 
02.11.04
12:11
Ситуация: Есть Документ в котором есть реквизит модуля формы, в который надо выбирать другой документ из модальной формы общего журнала документов. Форма открывается
//*******************************************************************************  
Процедура ПриНачалеВыбораЗначения(ЭлементДиалога, Флаг)
   Если ЭлементДиалога = "Заказ" Тогда
       КонтекстЖурнала = СоздатьОбъект("СписокЗначений");
       КонтекстЖурнала.Установить("Заказчик", Контрагент);
       КонтекстЖурнала.Установить("Контрагент", Контрагент);
       ОткрытьФормуМодально("Журнал.ЗаказыДляПодбора", КонтекстЖурнала);
       Заказчик=Контрагент;
       Флаг = 0;
   КонецЕсли;
КонецПроцедуры // ПриНачалеВыбораЗначения()
//
Отбор работает, только вот документ не попадает в поле модуля формы :(((
Процедура ПриВыбореСтроки()
   Форма.Параметр = ТекущийДокумент;
КонецПроцедуры // ПриВыбореСтроки()

Что я делаю не так?
1 Rovan
 
гуру
02.11.04
12:17
А так
ОткрытьФормуМодально("Журнал.ЗаказыДляПодбора", КонтекстЖурнала);
Заказчик = КонтекстЖурнала;
2 koshechka
 
02.11.04
12:20
Да речь не идет о том, что форма не открывается, речь идет о том, что при выборе документа из формы журнала, документ не попадает в другой документ!
Что
Процедура ПриВыбореСтроки()
  Форма.Параметр = ТекущийДокумент;
КонецПроцедуры // ПриВыбореСтроки()
НЕ РАБОТАЕТ!
3 Rovan
 
гуру
02.11.04
12:24
ПриВыбореСтроки включается в форме списка справочника, журнала, счетов, журнала операций, журнала проводок при помощи метода Форма.ОбработкаВыбораСтроки(1)
4 koshechka
 
02.11.04
12:30
ПриВыбореСтроки() размещается в модуле формы журнала, из которого док, который выбирает бух, должен попадать в док, из которого модально открыта форма журнала,
ИНТЕРЕСУЕТ ВОПРОС, ПОЧЕМУ ВЫБРАННЫЙ ДОК, не попадает куда надо, т.е. в Форма.Параметр= и т.д.
5 Rovan
 
гуру
02.11.04
12:47
(4) Отладчик заходит в ПриВыбореСтроки() ?
6 koshechka
 
02.11.04
12:47
//******************************************************************************
// Предопределенная процедура
Процедура ПриОткрытии()
   Заказчик = "";
Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
   Если ТипЗначенияСтр(Форма.Параметр) = "Документ" Тогда
       глАктивизироватьДокумент(Контекст, Форма.Параметр);
   КонецЕсли;
       Если ТипЗначенияСтр(Форма.Параметр) = "Справочник" Тогда
           Если Форма.Параметр.Вид() = "Контрагенты" Тогда
               Заказчик =   Форма.Параметр;
           КонецЕсли;
           
       ИначеЕсли ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
           Заказчик = Форма.Параметр.Получить("Контрагент");
       КонецЕсли;
   КонецЕсли;
   
   Если ПустоеЗначение(Заказчик) = 1 Тогда
       Спр = СоздатьОбъект("Справочник.Контрагенты");
       Если Спр.Выбрать("Укажите КонтрАгента",) = 1 Тогда
           Заказчик = Спр.ТекущийЭлемент();
       Иначе
           СтатусВозврата(0);
           Возврат;
       КонецЕсли;
   КонецЕсли;
   Если Форма.МодальныйРежим() = 1 Тогда
       Форма.ОбработкаВыбораСтроки(1);
   КонецЕсли;
   УстановитьОтбор("Контрагент", Заказчик);
   ВидыОтбора("");
   глСписокОбщихЖурналов.Пометка(глСписокОбщихЖурналов.НайтиЗначение("ЗаказыДляПодбора"), 1);
КонецПроцедуры // ПриОткрытии()

//******************************************************************************

Не работает!!!
7 koshechka
 
02.11.04
12:49
Ща попробую отладчика
8 koshechka
 
02.11.04
12:54
Заходит, а док все равно не выбирается
9 vS
 
02.11.04
13:45
Есть подозрение, что ТекушийДокумент это в Запросе, а в Документе должно быть ТекущийДокумент();
10 vS
 
02.11.04
13:47
сорри
фигню сказал, этож журнал, 5 сек
11 koshechka
 
02.11.04
13:48
Если запустить Сообщить(""+ТекущийДокумент) То как раз таки выбирается то что надо, но не попадает в форму дока
12 vS
 
02.11.04
13:56
Кошечка, мне кажется, что это как то связано с тем, что форма модальная, объяснить не могу, но кажется есть такое дело
попробу просто форму открывать, а в документе обрабатывать обработкой подбора
13 koshechka
 
02.11.04
13:57
vS, лана, попробую немодальную форму
14 Липчанин
 
02.11.04
13:59
Да кстати глюки есть, ну например при закрытии модальной формы счет - фактуры 1С вообще предлагает прервать программу т.к. не может активизировать объект.
15 vS
 
02.11.04
14:00
Как вариант
Форма открытьФорму("Журнал.ДокументКакойНадоВид", конт)

стандартная обработка, вернет то что тебе надо, сама
16 koshechka
 
02.11.04
14:01
vS, ты кстати был абсолютно прав. Что за глюки непонятно. Мож. у кого есть идеи?
Жалко, что нельзя из модальной формы. Очень хотелось.
17 Липчанин
 
02.11.04
14:02
На счет чего идеи-то?
18 GrayT
 
02.11.04
14:04
А при чем тут ПриВыбореСтроки()?
ОбработкаВыбораЗначения
19 NiGMa
 
02.11.04
14:05
А вот глупая мысль.
Может быть, ТекущийДокумент.ТекущийДокумент()
А?
20 Оборотень
 
02.11.04
14:10
А вернуть из модальной формы документ через глобальную переменную?
21 vS
 
02.11.04
14:15
(19) нет
(20) запросто, хоть и со спины
22 GrayT
 
02.11.04
14:17
Тьфу ты ПриВыбореСтроки в журнале? Тормажу....
Форма.ВыполнитьВыбор(ТекущийДокумент)
23 Филолог
 
02.11.04
14:19
Слово Тормаз в русском отсутствует.
24 Оборотень
 
02.11.04
14:24
к (2)

>Процедура ПриВыбореСтроки()
>  Форма.Параметр = ТекущийДокумент;
>КонецПроцедуры // ПриВыбореСтроки()
>НЕ РАБОТАЕТ!

Должно быть
Форма.Параметр = ТекущийДокумент.ТекущийДокумент();

Может прокатит?
25 Оборотень
 
02.11.04
14:25
+ (24)
ТекущийДокумент
...
Поскольку данный атрибут фактически является ссылкой на позиционируемый объект типа «документ», то поэтому для передачи или запоминания самого значения текущего документа журнала рекомендуется использовать конструкцию

ТекущийДокумент.ТекущийДокумент()
26 GrayT
 
02.11.04
14:26
Что вы к параметру пристали? Там список значений, в котором даже нет контекста
27 GrayT
 
02.11.04
14:27
(23)Кто сказал, что я по русски грамотно писать должен? :)
28 YF
 
02.11.04
14:29
А что ОткрытьПодбор() уже отменили?
29 Филолог
 
02.11.04
14:30
Никто и ничего не должен, а просто за державу обидно :(
30 vS
 
02.11.04
14:31
(23) а термоз?
31 Филолог
 
02.11.04
14:32
Смотри 29.
32 Оборотень
 
02.11.04
14:33
(26)
Ну и передать документ в качестве элемента списка, если уж так ... чем плохо?
33 GrayT
 
02.11.04
14:34
(29)Ну, хроническая безграммотность, это одно из меньших зол в нашем государстве.
34 Филолог
 
02.11.04
14:37
Но болбшое состоит из малого.
35 Филолог
 
02.11.04
14:37
Извините промахнулся, большое из малого состоит.
36 Оборотень
 
02.11.04
15:28
(24) работает и с модальной формой журнала.
Однако нашлось одно, НО мы должны получать назад из формы значение того же типа, что и отправляли в форму. Передавали список значений - значит список значений, а уж туда положим что душе угодно, в том числе и документ.
37 koshechka
 
04.11.04
17:08
Из немодальной формы РАБОТАЕТ!!!
38 koshechka
 
04.11.04
17:09
А из модальной НЕ РАБОТАЕТ! Какой еще список значений? Там только один раз выбирать надо, один док!
39 427
 
04.11.04
21:14
А слабо при модальном открытии по полученному контексту отпинать нужный реквизит той формы, контекст которой получен?
40 Синхронизатор
 
04.11.04
22:36
Не играйтесь с открытием модальных окон из "ПриНачалеВыбораЗначения(..)", дети!..
А то при выборе таким макаром в реквизит многострочной яасти, к примеру, можно получить In Start batch nested error / In End batch nested error (гарантированно - если это на новой строке Мн.ч.).
Да и вообще, "ОткрытьФорму(..)" из "ПриНачалеВыбораЗначения(..)" (не забыть только обнулить флаг стандартной обработки надо!) замечательно открывает указанную форму ДЛЯ ВЫБОРА, а выбранное в этой форме значение замечательно можно как надо обработать в "ОбработкаВыбораЗначения(..)".
И ещё "ОткрытьПодбор(..)" - рулит адназначна...
Так шо не шукайте гимор сами же себе на мозги, ребятЫ..
41 Guk
 
04.11.04
22:43
Рекомендовано в базу знаний: koshechka - 04.11.2004 17:11

Интересно, это кошечка типовые когда-нибудь видела?
База знаний отдыхает!...
42 Guk
 
04.11.04
22:44
А вообще писать фигню, а потом добавлять это в БЗ - моветон...
43 Синхронизатор
 
04.11.04
23:42
А кстати, да!..
Нельзя ли добавить фичу типа "настоятельно не рекомендовать в базу знаний" (aka "нунахренизбазызнанийэтотбред")?!.
44 koshechka
 
08.11.04
09:46
Guk ты как всегда отличаешься невоспитанностью
45 427
 
08.11.04
10:13
сия хирень успешно спилена из БЗ....


(40) рулит, рулит... Только кошечка читать не умеет...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший