Имя: Пароль:
1C
1С v8
Как заполненить ТЧ из внешней подключаемой обработки( не меняя конфигурацию )?
0 botman4
 
10.03.19
22:07
Розница 2.2
Через администрирование - печ. формы - доп. обработки добавил внешнюю обработку.
Хочется следующее, открыть старый или создать новый документ, вызвать через "Сервис" свою обработку. В обработку выбираю файл, он обрабатывается( ищет номенклатуру ) и потом эту номенклатуру и количество отправляет в этот документ.

У обработки выставил "Блокировать окно владельца"


&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт

Форма = ПолучитьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма");
Форма.Открыть();
    
КонецПроцедуры


Так открывается моя обработка, а как получить данные из основного окна изменить их и вернуть, ума не приложу.?
1 RomanYS
 
10.03.19
22:34
(0) При правильном задании параметров форма и так откроется, причем в параметрах или владельце будет нужный тебе контекст вызывающей формы.

После этого
ПолучитьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма");
про исходную форму и параметры ты уже ничего не узнаешь.
2 botman4
 
10.03.19
22:39
(1) Подскажите пож про какие параметры идет речь и как их задать?
Спасибо.
3 RomanYS
 
11.03.19
00:03
(2) параметры подключения обработки,
Функция СведенияОВнешнейОбработке()

Для подробностей я бы демо БСП поднял и посмотрел варианты. Можно конечно и документацию найти.
4 Сергиус
 
11.03.19
02:02
(0)А почему ты так странно делаешь вызов обработки через другую? Оформи ВнешняяОбработка1 как доп. обработку и работай с ней.
5 botman4
 
11.03.19
09:03
вот модуль:


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

Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений ;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")) ;
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")) ;
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")) ;
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")) ;
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")) ;
    Возврат Команды ;
КонецФункции    

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить() ;
    НоваяКоманда.Представление = Представление ;
    НоваяКоманда.Идентификатор = Идентификатор ;
    НоваяКоманда.Использование = Использование ;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение ;
    НоваяКоманда.Модификатор = Модификатор ;
КонецПроцедуры


Что в нем нужно указать, чтобы открылось окно обработки?
6 sqr4
 
11.03.19
09:07
ВызовКлиентскогоМетода заменить на ОткрытиеФормы
7 botman4
 
11.03.19
09:15
(6) Открылась, спасибо.
А как теперь изменить в основной форме какой-нибудь, любой реквизит?

Делают так


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

    Для каждого  ТекущаяСтрока из ВладелецФормы.Объект.Товары Цикл
        ТекущаяСтрока.Количество = 1;

    КонецЦикла;

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


, но количество как было 0 так и остается.
8 sqr4
 
11.03.19
09:18
мб текущаястрока.КОличествоУпаковок ?
9 botman4
 
11.03.19
09:20
(8) да, действительно, не тот реквизит, спасибо огромное.
Основная теорема систематики: Новые системы плодят новые проблемы.