Добрый вечер, решил подключить типовой отчёт как ВнешнийОтчет - ДополнительныйОтчет. Использование - ОткрытиеФормы.
Но при запуске основная форма сразу же закрывается.
---
Решение: в процедуре ПриСозданииНаСервере была лишняя процедура, которая не давала открыть форму в новом окне
---
Проверьте режим открытия формы, возможно в нем указано значение "Блокировать владельца".
Чуть подробнее здесь: https://forum.infostart.ru/forum9/topic217313/
---
Нельзя просто подключить обычный отчёт как внешний. Необходимо прописать служебную функцию СведенияОВнешнейОбработке для его подключения.
---
Да, конечно, он подключается. Но при запуске форма сразу же закрывается, в чем может быть проблема?
---
Перечитайте (2), пройдите по ссылке в сообщении.
---
служебную функцию прописал, проверил.Запускаю из раздела "Дополнительные отчёты". После запуска Основная форма появляется, но сразу же закрывается
---
У этого отчёта вообще есть форма, или это общая форма отчёта подсистемы "Варианты отчетов"?
---
Какая конфигурация, что за отчёт?
---
Да, есть основная форма. Регламентированный отчет 4ФСС, зуп3.1.

```1c
    Функция СведенияОВнешнейОбработке() Экспорт

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

    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    // Добавим команду в таблицу
    ДобавитьКоманду(ТаблицаКоманд, Синоним, "ОсновнаяФорма" , "ОткрытиеФормы", Истина, );

    // Сохраним таблицу команд в параметры регистрации обработки
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);

    Возврат РегистрационныеДанные;

    КонецФункции

    Функция ПолучитьТаблицуКоманд()

    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;

    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

    // Тут задается, как должна вызваться команда обработки
    // Возможные варианты:
    // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
    // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
    // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

    // Для печатной формы должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;

    КонецФункции

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Истина, Модификатор = "ПечатьMXL")

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

    КонецПроцедуры
```
---
Поставьте точку останова в процедуре ПриОткрытии и пройдитесь пошагово чтобы понять где происходит закрытие формы.
---
https://infostart.ru/public/305037/ п.9
---
Что то у Вас со сведениями о внешней обработке нетое. Вот набросал. Все работает

```1c
    Функция СведенияОВнешнейОбработке() Экспорт
    РегистрационныеДанные = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(");
    РегистрационныеДанные.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет;
    РегистрационныеДанные.Наименование = Метаданные.Представление();
    РегистрационныеДанные.Версия = "1.0";
    РегистрационныеДанные.Информация = "Отчет "+Метаданные.Представление();
    НоваяКоманда = РегистрационныеДанные.Команды.Добавить();
    НоваяКоманда.Представление = Метаданные.Представление();
    НоваяКоманда.Идентификатор = Метаданные.Имя;
    НоваяКоманда.Использование = "ОткрытиеФормы";

    Возврат РегистрационныеДанные;
    КонецФункции
```
---
Сразу же "ЗАКРЫВАЕТСЯ" или "СВОРАЧИВАЕТСЯ"
---
на управляемой форме никаких вкладок не появляется, а форма просто на долю секунды появляется
---
Решение: в процедуре ПриСозданииНаСервере была лишняя процедура, которая не давала открыть форму в новом окне
---
Чтобы уже люди не искали, какая конкретно процедура. Проблема в моем случае была с функцией РегламентированнаяОтчетностьКлиентСервер.ВыборФормыРегламентированногоОтчетаПоУмолчанию(Форма), в которой устанавливался режим открытия окна в "Блокировать окно владельца"