Вход | Регистрация



Передать данные с обработки формы на форму другой обработки

Передать данные с обработки формы на форму другой обработки
Я
   inkvizitr
 
15.10.18 - 16:24
вот у меня есть синтаксис

&НаКлиенте
Процедура СопроводительноеПисьмо(Команда)
        ОткрытьВнешнийОтчетОбработкуПоИмениСДопПараметрами ("Обработка приемник", Неопределено, ЭтотОбъект);
    КонецПроцедуры
    
&НаКлиенте
Процедура ОткрытьВнешнийОтчетОбработкуПоИмениСДопПараметрами(ИмяОтчетаОбработки, ПараметрыОткрытия, ЭтоОтчет, РодительскаяФорма = Неопределено)
        ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере (ИмяОтчетаОбработки);    
        ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);
        Если ЭтоОтчет Тогда
            ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма", ПараметрыОткрытия, РодительскаяФорма);
        Иначе
            ОткрытьФорму("ВнешняяОбработка." + ИмяОбработкиСлужебное + ".Форма", ПараметрыОткрытия, РодительскаяФорма);
        КонецЕсли; 
    КонецПроцедуры
    
&НаСервере
Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
        Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
    КонецФункции

Форма "Обработки приемник" открывается, как правильно прописать синтаксис в "Обработки приемник" при создании на сервере, чтобы я получил все данные формы источника
 
 
   inkvizitr
 
1 - 15.10.18 - 16:25
владельца передать
   Cyberhawk
 
2 - 15.10.18 - 16:27
1. Владелец недоступен на сервере
2. Форму можно передавать между клиентом и сервером только в контекстном вызове, т.е. в рамках одного и того же модуля формы.
   Cyberhawk
 
3 - 15.10.18 - 16:29
Но что ты ожидаешь открыть, передавая ссылку на элемент справочника? Зачем тебе форма элемента этого справочника?
   Cyberhawk
 
4 - 15.10.18 - 16:29
Посмотри уже интерфейс нужной подсистемы БСП
   inkvizitr
 
5 - 15.10.18 - 16:31
(4) а если вместо ЭтоФорма передать ВладелецФормы
   inkvizitr
 
6 - 15.10.18 - 16:35
(4) если верить справке то у "ОткрытьФорму" третий параметр звучит так ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
   inkvizitr
 
7 - 15.10.18 - 16:35
<Владелец> (необязательный)

Владелец формы - форма или элемент управления другой формы.
   Cyberhawk
 
8 - 15.10.18 - 16:48
Ну, передай
   Cyberhawk
 
9 - 15.10.18 - 16:49
Это будет передача между клиентом и клиентом. Ограничений на такую передачу формы никаких нет.
   inkvizitr
 
10 - 15.10.18 - 16:50
(8) а можно пример синтаксиса?
 
 Рекламное место пустует
   Cyberhawk
 
11 - 15.10.18 - 17:02
Я хз что тебе нужно
   МимохожийОднако
 
12 - 15.10.18 - 17:07
В типовых конфигурациях обычно есть регистр сведений Сохраненные настройки в ресурсом типа Хранилище. Можно через этот регистр передать любые данные, хоть чёрта лысого.
Например.
   inkvizitr
 
13 - 15.10.18 - 17:08
(11) мне нужно передать С формы №1 реквизиты Контрагент, договор, Контактное лицо на форму №2, я думал выгрузить все данные формы №1 на форму №2 и там этими данными возиться
   takefive
 
14 - 15.10.18 - 17:09
&НаКлиенте
Процедура ОповеститьФорму(Команда)
    Данные = Новый Структура("Дата, Реквизит", ТекущаяДата(), Реквизит);
    Оповестить(ИмяФормы, Данные);
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Данные, Источник)
    Если ИмяСобытия <> ИмяФормы Тогда
        Сообщить("Получатель: " + ИмяФормы + " Отправитель: " + ИмяСобытия);
        Реквизит = "" + Данные.Реквизит + " получен " + Данные.Дата;
    КонецЕсли; 
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Заголовок = ИмяФормы;
    Если ВладелецФормы = Неопределено Тогда
        ВладелецФормы = ОткрытьФорму("ВнешняяОбработка.ДиалогФорм.Форма.ФормаПолучатель",,ЭтаФорма);
    КонецЕсли; 
КонецПроцедуры

пример для общения 2 форм. Код одинаковый в формах
   Cyberhawk
 
15 - 15.10.18 - 17:09
Передавай через второй параметр
   inkvizitr
 
16 - 15.10.18 - 17:09
(11) и если нельзя передать все данные, то допустим как эти реквизиты передать?
   Вафель
 
17 - 15.10.18 - 17:10
(16) во временное и адрес
   RomanYS
 
18 - 15.10.18 - 17:12
(13)(16) Параметры! см. (15)
   МимохожийОднако
 
19 - 15.10.18 - 17:13
(13) Передавай через параметры формы
   inkvizitr
 
20 - 15.10.18 - 17:20
я передаю через параметры вот так

Если Параметры.Свойство("Контрагент") Тогда 
        Объект.Контрагент = Параметры.Контрагент; 
КонецЕсли;

А он чего то не передается, делаю при "Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)"
 или его нужно на клиенте получать?
   Вафель
 
21 - 15.10.18 - 17:22
(20) а как вызываешь из первой формы?
   Вафель
 
22 - 15.10.18 - 17:22
кстати у тебя случайно сохранение реквизитов не включено?
   RomanYS
 
23 - 15.10.18 - 17:22
(20) здесь ты читаешь из параметров. Чтобы оттуда что-то взять сначала надо туда это положить
   inkvizitr
 
24 - 15.10.18 - 17:24
&НаКлиенте
    Процедура СопроводительноеПисьмо(Команда)
        Контрагент = ЭтотОбъект.Контрагент;
        ПараметрыОбработки = СопроводительноеПисьмоСервер(Контрагент);
        ОткрытьВнешнийОтчетОбработкуПоИмениСДопПараметрами ("Сопроводительное письмо доходные договора", ПараметрыОбработки, Ложь);
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ОткрытьВнешнийОтчетОбработкуПоИмениСДопПараметрами(ИмяОтчетаОбработки, ПараметрыОткрытия, ЭтоОтчет, РодительскаяФорма = Неопределено)
        ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере (ИмяОтчетаОбработки);    
        ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);
        Если ЭтоОтчет Тогда
            ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма", ПараметрыОткрытия, РодительскаяФорма);
        Иначе
            ОткрытьФорму("ВнешняяОбработка." + ИмяОбработкиСлужебное + ".Форма", ПараметрыОткрытия, РодительскаяФорма);
        КонецЕсли; 
    КонецПроцедуры
    
    &НаСервере
    Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
        Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
    КонецФункции
    
    &НаСервере
    Функция СопроводительноеПисьмоСервер(Контрагент)
        
        СтруктураПараметров = Новый Структура("Контрагент, КонтактноеЛицо, МассивДокументов");
        
        Если ЗначениеЗаполнено(Контрагент) Тогда
            Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ
            |    КонтактныеЛица.Ссылка КАК КонтактноеЛицо
            |ИЗ
            |    Справочник.Контрагенты КАК Контрагенты
            |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица КАК КонтактныеЛица
            |        ПО Контрагенты.ОсновноеКонтактноеЛицо = КонтактныеЛица.Ссылка
            |ГДЕ
            |    Контрагенты.Ссылка = &Ссылка
            |    И Контрагенты.ЭтоГруппа = ЛОЖЬ";
            
            Запрос.УстановитьПараметр("Ссылка", Контрагент); 
            
            Результат = Запрос.Выполнить();
            Если НЕ Результат.Пустой() Тогда
                Выборка = Результат.Выбрать();    
                Выборка.Следующий();
                КонтактноеЛицо = Выборка.КонтактноеЛицо;
            КонецЕсли;
        КонецЕсли;
        
        МассивДокументов = ЭтаФорма.СписокДокументов.Выгрузить(,"ТипДокумента").ВыгрузитьКолонку("ТипДокумента");
        
        СтруктураПараметров.Вставить("Контрагент",          Контрагент);
        СтруктураПараметров.Вставить("КонтактноеЛицо",   "КонтактноеЛицо");
        СтруктураПараметров.Вставить("МассивДокументов", МассивДокументов);
        
        Возврат СтруктураПараметров; 
    КонецФункции// ПолучитьпараметрыПечати()
   inkvizitr
 
25 - 15.10.18 - 17:27
а получаю

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если Параметры.Свойство("Контрагент") Тогда 
        Объект.Контрагент = Параметры.Контрагент; 
    КонецЕсли;
КонецПроцедуры
   Вафель
 
26 - 15.10.18 - 17:28
в отладчике занчения есть?
   inkvizitr
 
27 - 15.10.18 - 17:29
При отправке есть
   inkvizitr
 
28 - 15.10.18 - 17:29
в ПараметрыОткрытия ложится структура
   Вафель
 
29 - 15.10.18 - 17:30
в ПриСозданииНаСервере
   inkvizitr
 
30 - 15.10.18 - 17:31
(29) А там вот думаю как отладчик запустить
   inkvizitr
 
31 - 15.10.18 - 17:31
(29) Обработка добавлена в справочник ДополнительныеОтчетыИОбработки
   inkvizitr
 
32 - 15.10.18 - 17:41
блин, а как проверить пришло ли чего, если обработка добавлена в Справочник "ДополнительныеОтчетыИОбработки"
   inkvizitr
 
33 - 15.10.18 - 17:42
в этом же справочники и первая обработка там же находиться, первая обращается к второй
 
 
   Вафель
 
34 - 15.10.18 - 17:42
через сообщить
   inkvizitr
 
35 - 15.10.18 - 17:43
(34) Точно, щас сделаю
   inkvizitr
 
36 - 15.10.18 - 17:47
(34) незнаю каким чудом, заработало, спасибо всем за участие
А еще маленький вопрос, если у меня будет передаваться в одном из значении структуры массив, то его я так понимаю спокойно смогу перебрать циклом, т.е. все значения передадутся этого массива?
   Вафель
 
37 - 15.10.18 - 17:49
(36) может обработку номер 2 не обновил?
   inkvizitr
 
38 - 15.10.18 - 17:49
(37) может, ппц


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует