Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Передача параметров из произвольной формы в ТЧ формы документа, как это сделать в УФ?

Передача параметров из произвольной формы в ТЧ формы документа, как это сделать в УФ?
Я
   Босечка
 
26.06.19 - 16:37
Передача параметров из произвольной формы в ТЧ формы документа, как это сделать в УФ?
 
 
   zuza
 
1 - 26.06.19 - 16:49
(0) произвольная форма из документа открывается?
   Ц_У
 
2 - 26.06.19 - 16:52
Например, так:

Глобальный контекст (Global context)
Оповестить (Notify)
Синтаксис:

Оповестить(<ИмяСобытия>, <Параметр>, <Источник>)
Параметры:

<ИмяСобытия> (необязательный)

Тип: Строка.
Имя события. Может быть использовано для идентификации сообщений принимающими их формами.
<Параметр> (необязательный)

Тип: Произвольный.
Параметр сообщения. Могут быть переданы любые необходимые данные. 
<Источник> (необязательный)

Тип: Произвольный.
Источник события. Например, в качестве источника может быть указана другая форма.
Описание:

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

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение(клиент).
Пример:

Оповестить("ЗакрытьФорму");
   Босечка
 
3 - 27.06.19 - 10:40
(1) да, произвольная
   spiller26
 
4 - 27.06.19 - 10:59
(3)
Вот примерно так.

&НаКлиенте
Процедура абтЗаполнитьПозицииИзCRM(Команда)
    
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияВопросаПозицииИзCRM", ЭтотОбъект);
    ПередаваемыеПараметры = Новый Структура;
    ПередаваемыеПараметры.Вставить("ИтогСумма", Объект.Авансы.Итог("Сумма"));
    ПередаваемыеПараметры.Вставить("ИтогСуммаНДС", Объект.Авансы.Итог("СуммаНДС"));
    Если Объект.Авансы.Количество() > 0 Тогда
        ПередаваемыеПараметры.Вставить("СтавкаНДС", Объект.Авансы[0].СтавкаНДС);
    Иначе    
        ПередаваемыеПараметры.Вставить("СтавкаНДС", ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС18_118"));
    КонецЕсли;    
    ПередаваемыеПараметры.Вставить("ВалютаДокумента", Объект.ВалютаДокумента);
    ОткрытьФорму("ОбщаяФорма.абтНоменклатураИзCRM", ПередаваемыеПараметры, ЭтаФорма,,,, ОповещениеОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);    
    
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗакрытияВопросаПозицииИзCRM(ВозвратныеДанные, Параметры) Экспорт
 
    //обработка выбранного

    Если ВозвратныеДанные <> Неопределено Тогда
        ЗаполнитьПозицииАвансов(ВозвратныеДанные);
    КонецЕсли;    
        
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьПозицииАвансов(ДанныеСтруктура)
    
    ТЗ = ПолучитьИзВременногоХранилища(ДанныеСтруктура.АдресТЗ);
    //теперь обработать

    Если ТЗ.Количество() > 0 Тогда
        Объект.Авансы.Очистить();
        Для Каждого СтрТЗ Из ТЗ Цикл
            НовСтрАвансы = Объект.Авансы.Добавить();
            НовСтрАвансы.Содержание = СтрТЗ.НоменклатураПредставление;
            НовСтрАвансы.Сумма      = СтрТЗ.Сумма;
            НовСтрАвансы.СтавкаНДС  = СтрТЗ.СтавкаНДС;
            НовСтрАвансы.СуммаНДС   = СтрТЗ.СуммаНДС;
        КонецЦикла;
        Объект.ИдентификаторГосКонтракта = ДанныеСтруктура.ИГК;
        Модифицированность = Истина;
    КонецЕсли;    
    
КонецПроцедуры    


//////////////////////////////////////////////////////////////

// В форме произвольной

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    //Параметры

    
    СтавкаНДСПоДокументу = Параметры.СтавкаНДС;
    ИтогСуммаПоДокументу = Параметры.ИтогСумма;
    ИтогСуммаНДСПоДокументу = Параметры.ИтогСуммаНДС;
    ВалютаДокумента = Параметры.ВалютаДокумента;
    
КонецПроцедуры

&НаСервере
Функция ПоместитьТаблицуНоменклатурВХранилище()
    Возврат ПоместитьВоВременноеХранилище(ТаблицаНоменклатур.Выгрузить());
КонецФункции    

&НаКлиенте
Процедура КнопкаОК(Команда)
    
    АдресТЗ = ПоместитьТаблицуНоменклатурВХранилище();
    
    ДанныеСтруктура = Новый Структура;
    ДанныеСтруктура.Вставить("АдресТЗ", АдресТЗ);
    ДанныеСтруктура.Вставить("ИГК", ИГК);
    
    ЭтотОбъект.Закрыть(ДанныеСтруктура);//возврат структуры данных на владельца

    
КонецПроцедуры

&НаКлиенте
Процедура КнопкаОтмена(Команда)

    ЭтотОбъект.Закрыть(Неопределено);
    
КонецПроцедуры
   Юрий Лазаренко
 
5 - 27.06.19 - 11:33
(0) А форма с ТЧ документа уже открыта? Или ее надо открыть, передать и заполнить?

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