Данный код работает в моей конфигурации ЗИК ГУ 3.1, релиз 3.1.17.94
Так же будет работать в БГУ 2.0 и ЗУП 3.1.
Платформа версии 8.3.17, в теории должно работать и на более старых.
Работа интуитивна - открыть обработку, нажать кнопку выбора каталога, нажать кнопку отправки
Обработчики назначены на кнопки управляемой формы.
Команда 3 выбирает каталог с файлами
Команда 1 начинает отправку
Остальные команды служебные, и их на форме можно не отображать
&НаКлиенте
Перем Форм1;
&НаКлиенте
Перем Форм2;
&НаКлиенте
Перем ФайлыОтч;
&НаКлиенте
Перем i;
&НаКлиенте
Процедура ПослеЗакрытияПредупреждения(Результат, ДополнительныеПараметры) Экспорт
//Сообщить("После закрытия предупреждения");
КонтекстЭДОКлиент = Результат.КонтекстЭДО;
//Сообщить(Результат.ТекстОшибки);
ДополнительныеПараметры = Новый Структура("Адрес, ФайлыИмпорта", "1", ФайлыОтч[i].ПолноеИмя);
КонтекстЭДОКлиент.ПолучениеФайловДляИмпортаНачало(ДополнительныеПараметры.Адрес, ДополнительныеПараметры.ФайлыИмпорта);
ПодключитьОбработчикОжидания("МойШаг", 3, Истина);
КонецПроцедуры
&НаКлиенте
Процедура МойШаг()
Команда2(0);
КонецПроцедуры
&НаКлиенте
Процедура Команда1(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияПредупреждения", ЭтотОбъект, Неопределено);
ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
КонецПроцедуры
// Окна = ПолучитьОкна();
//Для Каждого Окно Из Окна Цикл
// Если Не Окно.Основное Тогда
// Форма = Окно.ПолучитьСодержимое();
// Форма.Закрыть();
// КонецЕсли;
//КонецЦикла;
&НаКлиенте
Процедура ОбработатьОжидание()
Форм1.Активизировать();
Форм1.ПолучитьСодержимое().Закрыть();
Форм2.Активизировать();
Для каждого Форма из Форм2.Содержимое Цикл
Форма.Закрыть(0);
КонецЦикла;
Если i<ФайлыОтч.Количество()-1 Тогда
i=i+1;
Команда4(0);
Команда1(0);
КонецЕсли
КонецПроцедуры
&НаКлиенте
Процедура Команда2(Команда)
// Вставить содержимое обработчика.
// Получение всех открытых окон приложения
ОкнаПриложения = ПолучитьОкна();
Для каждого ОкноПриложения Из ОкнаПриложения Цикл
// Анализ заголовка окна
Если Найти(ОкноПриложения.Заголовок, "Загруженный отчет (создание) *") > 0 Тогда
// Получение формы
НайденнаяФорма = ОкноПриложения.Содержимое[0];
Форм2 = ОкноПриложения;
// Анализ реквизита формы
//Если НЕ ЗначениеЗаполнено(НайденнаяФорма.Контрагент) Тогда
// ОкноПриложения.Активизировать();
// Возврат;
//КонецЕсли;
//Сообщить(НайденнаяФорма.Заголовок);
//НайденнаяФорма.КоманднаяПанель.ПодчиненныеЭлементы.Отправить.Заголовок = "dddd";
ОкноПриложения.Активизировать();
ОкноПриложения.ПолучитьСодержимое().Записать();
РегламентированнаяОтчетностьКлиент.ПриНажатииНаКнопкуОтправкиВКонтролирующийОрган(НайденнаяФорма, "ФНС");
ОкнаПриложения2 = ПолучитьОкна();
Для каждого ОкноПриложения2 Из ОкнаПриложения2 Цикл
Если Найти(ОкноПриложения2.Заголовок, "Подтверждение отправки отчета") > 0 Тогда
//НайденнаяФорма2 = ОкноПриложения2.Содержимое[0];
ОкноПриложения2.ПолучитьСодержимое().Закрыть(КодВозвратаДиалога.ОК);
ОкнаПриложения3 = ПолучитьОкна();
Для каждого ОкноПриложения3 Из ОкнаПриложения3 Цикл
Если Найти(ОкноПриложения3.Заголовок, "Пожалуйста, подождите...") > 0 Тогда
//Пока ОкноПриложения3.Заголовок<>"Успешно!" Цикл
// Продолжить;
//Sleep(1);
//КонецЦикла;
Форм1 = ОкноПриложения3;
ПодключитьОбработчикОжидания("ОбработатьОжидание", 8, Истина);
//ОкноПриложения3.ПолучитьСодержимое().Закрыть();
КонецЕсли
КонецЦикла
КонецЕсли
КонецЦикла;
//ОкноПриложения.ПолучитьСодержимое().Закрыть();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Команда3(Команда)
i = 0;
Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытия.Каталог = "c:\\";
ДиалогОткрытия.МножественныйВыбор = False;
ДиалогОткрытия.Заголовок = "Выберите каталог";
Если ДиалогОткрытия.Выбрать() Тогда
ПутьККаталогу = ДиалогОткрытия.Каталог;
// Сообщить(ПутьККаталогу);
КонецЕсли;
ФайлыОтчетности = Новый Массив;
ФайлыОтч = НайтиФайлы(ПутьККаталогу,"*.xml");
Для Каждого ФайлXLS Из ФайлыОтч Цикл
Сообщить(ФайлXLS.ПолноеИмя);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Команда4(Команда)
// Вставить содержимое обработчика.
Окна1 = ПолучитьОкна();
Для Каждого Окно2 Из Окна1 Цикл
Если Не Окно2.НачальнаяСтраница И Не Окно2.Основное Тогда
Форма1 = Окно2.ПолучитьСодержимое();
//Сообщить(Форма1.ИмяФормы);
Если Форма1 <> ЭтаФорма И Форма1.ИмяФормы="Справочник.ЭлектронныеПредставленияРегламентированныхОтчетов.Форма.ФормаЭлемента" Тогда
Форма1.Закрыть();
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры