Имя: Пароль:
1C
 
Передать данные с обработки формы на форму другой обработки
0 inkvizitr
 
15.10.18
16:24
вот у меня есть синтаксис

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

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

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

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

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

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

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

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

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