Есть стандартная обработка ЗагрузкаДанныхИзВнешнихФайлов
Мне необходимо загружать данные из отчетов комиссионера. Пришлось основательно переваять код, элементы формы...
Сохранила получившуюся обработку как внешнюю. Хотелось бы все же ее использовать в расширении, не меняя конфигурацию. Подскажите, возможно ли это? Если да, то как?
Идея руками переносить изменения в расширение меня не радует :-(
---
Просто добавьте функцию СведенияОВнешнейОбработке в модуль внешней обработки и зарегистрируйте ее в справочнике ДополнительныеОтчетыИОбработки и выведете ее в нужный раздел. Зачем тут расширение.
```1c
    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.БезопасныйРежим = Ложь;

    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Идентификатор = Метаданные().Имя;
    НоваяКоманда.Представление = Метаданные().Синоним;
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();

    Возврат ПараметрыРегистрации;

    КонецФункции
```
---
Более подробно про внешние обработки https://infostart.ru/1c/articles/558559/
Вариант открытия https://infostart.ru/1c/articles/145381/, возможно с развитием механизма можно сделать проще, с ходу не нашел.

Если нет требования обновления "на лету", то добавьте в расширение.
---
```1c
    &НаКлиенте
    Процедура ЗагрузитьИзВнешнегоФайла(Команда)

    ПараметрыФормы = Новый Структура();
    МассивТиповНоменклатуры = Новый Массив();
    ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТаре(Ложь)));
    ПараметрыФормы.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
    ПараметрыФормы.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
    ПараметрыФормы.Вставить("ЗагружатьЦены", Истина);

    ИмяОбработки = ПодключитьОбработкуНаСервере();

    ОткрытьФорму(
    "ВнешняяОбработка." + ИмяОбработки + ".Форма",
    ПараметрыФормы,
    ЭтаФорма,
    УникальныйИдентификатор);

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

    &НаСервереБезКонтекста
    Функция ПодключитьОбработкуНаСервере()

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

    КонецФункции
```
---
Добавить как внешнюю и переопределить вызов на нее, если нужно оперативное обновление. Не так часто обновляю на рабочей чтобы было неудобно пользователям, но в рамках всего расширения храню в хранилище конфигураций.
---
Просто добавьте функцию СведенияОВнешнейОбработке в модуль внешней обработки и зарегистрируйте ее в справочнике ДополнительныеОтчетыИОбработки и выведете ее в нужный раздел. Зачем тут расширение.
```1c
    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.БезопасныйРежим = Ложь;

    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Идентификатор = Метаданные().Имя;
    НоваяКоманда.Представление = Метаданные().Синоним;
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();

    Возврат ПараметрыРегистрации;

    КонецФункции
```
---
Она при том заменит стандартную ЗагрузкаДанныхИзВнешнихФайлов? Или просто использовать ее вместо стандартной в документе ОтчетКомиссионера?

```1c
    &НаКлиенте
    Процедура ЗагрузитьИзВнешнегоФайла(Команда)

    ПараметрыФормы = Новый Структура();
    МассивТиповНоменклатуры = Новый Массив();
    ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТаре(Ложь)));
    ПараметрыФормы.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
    ПараметрыФормы.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
    ПараметрыФормы.Вставить("ЗагружатьЦены", Истина);

    ОткрытьФорму(
    "Обработка.ЗагрузкаДанныхИзВнешнихФайлов.Форма.Форма",
    ПараметрыФормы,
    ЭтаФорма,
    УникальныйИдентификатор);

    КонецПроцедуры
```
---
Не заменит. Судя по всему, вашу внешнюю обработку следует зарегистрировать с видом "ЗаполнениеОбъекта" с указанием документа назначения. Запускаться она будет из стандартного подменю дополнительных обработок заполнения.
---
Добавить в расширение дополнитеьлно (не заменяя), в документе ОтчетКомиссионера переопределить вызов на нужную.
---
И в случае доработки, каждый раз обновлять расширение?
---
Вообще не критично, динамически обновляю каждый день.
На сколько понял нужно заменить типовую кнопку
---
Для пользователей не комфортно – приходится перезаходить. Зачем выходить на уровень расширений, если всё можно решить на самом "легком" уровне подключаемых обработок?
---
Добавить как внешнюю и переопределить вызов на нее, если нужно оперативное обновление. Не так часто обновляю на рабочей чтобы было неудобно пользователям, но в рамках всего расширения храню в хранилище конфигураций.
---
В принципе вариант. Плюс в том, что обработка будет вызываться из привычного места. Минус в том, что придётся хардкодить при поиске ссылки на обработку.
---
Остался вопрос, как вызывать внешнюю обработку? Это стандартный вызов

```1c
    ОткрытьФорму(
    "Обработка.ЗагрузкаДанныхИзВнешнихФайлов.Форма.Форма",
    ПараметрыФормы,
    ЭтаФорма,
    УникальныйИдентификатор);
```
---
Спасибо большое!!!
---
Более подробно про внешние обработки https://infostart.ru/1c/articles/558559/
Вариант открытия https://infostart.ru/1c/articles/145381/, возможно с развитием механизма можно сделать проще, с ходу не нашел.

Если нет требования обновления "на лету", то добавьте в расширение.
---
```1c
    &НаКлиенте
    Процедура ЗагрузитьИзВнешнегоФайла(Команда)

    ПараметрыФормы = Новый Структура();
    МассивТиповНоменклатуры = Новый Массив();
    ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТаре(Ложь)));
    ПараметрыФормы.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
    ПараметрыФормы.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
    ПараметрыФормы.Вставить("ЗагружатьЦены", Истина);

    ИмяОбработки = ПодключитьОбработкуНаСервере();

    ОткрытьФорму(
    "ВнешняяОбработка." + ИмяОбработки + ".Форма",
    ПараметрыФормы,
    ЭтаФорма,
    УникальныйИдентификатор);

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

    &НаСервереБезКонтекста
    Функция ПодключитьОбработкуНаСервере()

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

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