Добрый день, подскажите может кто-то сталкивался с такой задачей: у меня есть две внешние обработки, они делают одно и тоже, единственное отличие - одна вызывается из документа, с помощью кнопки печать, другая вызывается в одной из подсистем. Т.е. у одной ("Вид","ДополнительнаяОбработка"), у другой ("Вид", "ПечатнаяФорма"), стоит задача объединить эти обработки в одну, но с сохранением вызова обработки из подсистемы и из документа. Есть ли какой-то способ в одной обработке прописать два вида обработки?
---
в итоге сделала пустую обработку, которая вызывает рабочую обработку....

```1c
    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт

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

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

    &НаСервере
    Функция ПолучитьИмяОбработки()

    ВыполняемаяКомандаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Имя Нужной Обработки");
    Если НЕ ПустаяСтрока(ВыполняемаяКомандаСсылка.Наименование) Тогда
    Возврат ВыполняемаяКомандаСсылка;
    КонецЕсли;

    КонецФункции
```
---
задача решается размещением исполняемого кода в общем модуле конфигурации/обработке, а из внешних обработок должна вызываться процедура/функция общего модуля/обработки
---
т.е решение возможно только через расширение общего модуля? других путей решения нет
---
да, потому что одна и та же дополнительная обработка не может прикидываться разными видами обработок(ПечатнаяФорма/обработка заполнентия ТЧ/.....)
---
получается, все равно будет 2 внешние обработки? А как сделать чтобы одна внешняя обработка могла вызываться и из формы документа, и из раздела дополнительных обработок подсистем?
---
говорю же, никак, нужно 2 разных внешних обработки, т.к см. (5)
---
(6)
---
помещаете все в одну обработку, в зависимости от контекста вызова выполняете ту или иную обработку... ;)
---
А что если в процедуре печать просто вызывать встроенную обработку?
Саму же обработку - печатную форму сделать вообще без полезного кода. Только открывание встроенной.
---
Ну или вызов процедуры Печать из дополнительной обработки.
---
(5)
(7)получается все равно несколько обработок. Руководство хочет именно, чтобы была одна обработка. Смотрела вариант через несколько кнопок, но он тоже не реализуем, т.к. кнопки появляются одинаково в одних и тех же документах, код да можно прописать разный, но вызов прописывается в начале обработки
---
Объясните руководству, что совсем одну обработку сделать невозможно технически, либо придется вносить изменения в конфигурацию вместо использования типового механизма дополнительных обработок
---
еще как вариант,
делаете ТРЕТЬЮ обработку и переносите туда полезный/рабочий функционал
а в первых двух переделываете вызов этой третьей обработки.
---
Это сарказм, да?
---
нет, просто пока писал свой ответ, уже предложили похожий...
---
Извините. Я что-то перевозбудился)))
---
в итоге сделала пустую обработку, которая вызывает рабочую обработку....

```1c
    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт

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

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

    &НаСервере
    Функция ПолучитьИмяОбработки()

    ВыполняемаяКомандаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Имя Нужной Обработки");
    Если НЕ ПустаяСтрока(ВыполняемаяКомандаСсылка.Наименование) Тогда
    Возврат ВыполняемаяКомандаСсылка;
    КонецЕсли;

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