Имя: Пароль:
1C
1C 7.7
v7: Передача параметра форме
0 Wiklyink
 
09.02.12
18:35
Доброго времени суток.

Есть такая проблема:
Имеется форма заказ наряда, на ней есть кнопка "Оформить реализацию" по которой открывается форма нового документа "Реализация розница". Нужно сделать так чтоб при открытии формы документа "Реализация розница" в него вставлялось На основании заказ наряд.текущий документ..

Сделал чтоб открывалась новая форма Реализации, но чтоб автоматом в основании было значение Заказ-наряда, додуматься не могу. Передаю параметр форме реализации ДокОснование, тогда форма вообще не открывается...
если дне отправлять параметр ДокОснование, тогда форма открывается и вручную можно указать на основании Заказ-наряд, но необходимо чтоб этот параметр заполнялся автоматом при открытии формы.. в чем причина, чего делаю не так, понять не могу..

доп. информация:
1С версия 7
конфигурация: Торговля и склад редакция 9.2

код модуля заказ-наряда открытия реализации:

Код

Процедура ОформРеализРозн()
  Если (Проведен() =1 ) Тогда
  Конт = 0;  
  ДокОснование1 = ТекущийДокумент();
  ОткрытьФормуМодально("Документ.РеализацияРозница",Конт,ДокОснование1);  
  Иначе
      Предупреждение("Заказ-наряд не проведен. Реализацию можно проводить только на основании проведенного Заказ-Наряда!");
  КонецЕсли;  
КонецПроцедуры
1 Джинн
 
09.02.12
18:40
ПараметрыФормы = Новый Структура("Основание", Какая-то-хрень);
ОткрытьФорму("Документ.xxxx.ФормаОбъекта", ПараметрыФормы);
2 le_
 
09.02.12
18:52
(1) У него семерка.
А в 8-ке, лучше через ОбработкаЗаполнения делать.
3 Wiklyink
 
09.02.12
19:06
Процедура ОформРеализРозн()
  Если (Проведен() =1 ) Тогда
  Конт = 0;  
  ДокОснование = ТекущийДокумент();
  ОткрытьФормуМодально("Документ.РеализацияРозница",Конт,ДокОснование);  
  Иначе
      Предупреждение("Заказ-наряд не проведен. Реализацию можно проводить только на основании проведенного Заказ-Наряда!");
  КонецЕсли;  
КонецПроцедуры

если делаю так, то переменная докоснование передается, но форма реализации почему то не открывается..

У меня правда 1С 7, наверное случайно не в тот раздел написал. А как переделать не знаю...
4 Джинн
 
09.02.12
19:09
(2) Хм. А в сабже v8 было.
5 Wiklyink
 
09.02.12
19:11
ну ошибся маленько, переместить как не знаю, а дублировать тему не хочеться...
6 mvgfirst
 
09.02.12
19:16
(2) В семерке если поставить 1С++ тоже можно так сделать)))
Но даже если и не ставить то структуру заменяем на СписокЗначений и работает
7 Wiklyink
 
09.02.12
19:32
Пишет переменная не определена "СписокЗначений "
8 Wiklyink
 
09.02.12
19:32
Если не сильно затруднит, может набросаешь примерный исходничек?
9 2S
 
09.02.12
19:33
в поиск
10 Wiklyink
 
09.02.12
19:35
"в поиск" - да уже все облазил... голова уже дымит, никак понять не могу...,
прошу помощи!
11 mvgfirst
 
09.02.12
22:28
Хреново ты лазишь :) И, к слову, все облазить невозможно.!
Вот тебе пример

ПараметрФормы = СоздатьОбъект("СписокЗначений");
ПараметрФормы.Установить("ПараметрРаз", РабочаяДата());

ОткрытьФормуМодально("Обработка.ПоказатьПараметрРаз", ПараметрФормы);
Если ПараметрФормы.Получить("Результат") = "Все афигенно" Тогда
  Предупрждение("Таки все офигенно господа!");
КонецЕсли;
12 zak555
 
09.02.12
22:29
(11) с чего ты взял, что всегда передаются списки значений ?
13 mvgfirst
 
09.02.12
22:59
(12) а где написано что всегда?
Просто из личного опыта - так удобнее :)
14 monsterZE
 
10.02.12
17:23
СписПередЗнач = СоздатьОбъект("СписокЗначений");
СписПередЗнач.УдалитьВсе();
СписПередЗнач.ДобавитьЗначение(Контекст,"Конт");
СписПередЗнач.ДобавитьЗначение(Парам1,"Парам1");
СписПередЗнач.ДобавитьЗначение(Парам2,"Парам2");
ОткрытьФорму("Отчет", СписПередЗнач,"внеш_отчет.ert");    
по аналогии..
15 takefive
 
10.02.12
17:58
можно передать контекст...
Процедура ВыборИзСписка()
   Перем Путь, Имя;
   РасположениеФайла(Путь, Имя);
   //Передаем в форму выбора контекст формы приемника - эту форму
   ОткрытьФорму("Отчет",Контекст,"" + Путь + "\ТЗДляНемодальногоВыбора.ERT");
КонецПроцедуры
и установить значение в форме выбора -подбора
Процедура Выбор()
   Если ТЗ.ТекущаяСтрока() <> 0 Тогда
       Выбор = ТЗ.ПолучитьЗначение(ТЗ.ТекущаяСтрока(),"Накладная");
       Приемник = Форма.Параметр;
       Если Приемник.ВыбДокументы.Принадлежит(Выбор) = 0 Тогда
           //Добавляем на форму приемника. значения появляются сразу после выбора
           Приемник.ВыбДокументы.ДобавитьЗначение(Выбор);
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры
16 sapphire
 
11.02.12
05:06
В клюшках можно вообще передавать что угодно, хочешь контекст, хоть ежа с ужом :)
17 zak555
 
11.02.12
13:58
(14)

СписПередЗнач = СоздатьОбъект("СписокЗначений");
СписПередЗнач.УдалитьВсе();



зачем удалять ?
18 mvgfirst
 
13.02.12
17:29
(17) Ну мало ли туда записалось после создания :)
Может он создался прям из кучи значений и при создании их в себя вобрал?!
19 YF
 
13.02.12
17:31
Процедура ОформРеализРозн()
  Если (Проведен() =1 ) Тогда
  Конт = 0;  
  ДокОснование1 = ТекущийДокумент();
  ОткрытьФорму("Документ.РеализацияРозница",Конт,ДокОснование1);
Конт.Основание = ДокОснование1;  
  Иначе
      Предупреждение("Заказ-наряд не проведен. Реализацию можно проводить только на основании проведенного Заказ-Наряда!");
  КонецЕсли;  
КонецПроцедуры
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан