1С документооборот 2.0.14.4. Требуется создать одну обработку (внешнюю) + вспомогательные (внешние): главная обработка при запуске должна использовать макеты вспомогательных внешних обработок. Причины - модульность (сужение количества пользователей, теряющих доступ к конкретному макету при редактировании этого конкретного макета; если все будет в одной обработке, то при обновлении одного макета будут недоступны все остальные). Плюсы/минусы поставленной задачи не обсуждаются. Такова воля руководства.
Получить ссылку на вспомогательную обработку получается. Но вытянуть из этой обработки макет - ни в какую. Сижу 3-й день. Формы в обработках не использую (запускаю печать с сервера).
Один из не срабатывающих вариантов:

```1c
    СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("ляля"); // тут все срабатывает
    Объектт = СсылкаНаОбъект.ПолучитьОбъект();
    Макет = Объектт.ПолучитьМакет("ИмяМакета"); //Тут ругается: у метода "ПолучитьМакет" неправилен параметр "1".
```

Помогите, кто чем может...
---
Отчитываюсь. К сожалению выяснить причины того, почему не работало, в чистом виде не удалось.
Исходные данные: экспериментировал, создав основную обработку (печатную форму без макета) и вспомогательные обработки(с макетом, с типом этих обработок игрался: то отчет, то внешняя печатная). В итоге остановился на типе вспомогательной "отчет" и строил эксперименты больше от этого (НЕ ДУМАЛ, ЧТО МЕЖДУ ЭТИМИ ОБРАБОТКАМИ БУДЕТ БОЛЬШАЯ РАЗНИЦА В РАБОТЕ).

Текущее состояние: когда вспомогательная обработка (хранилище макета) имеет тип "печатная форма", то все прокатывает, когда "отчет" - не работает.

Что было сделано:
1. Обновлена платформа до 8.3.8.2088
2. Снова, перебирая варианты, попробовал работать с внешней обработкой вида "ВнешняяПечатнаяФорма"
3. Все процедуры вспомогательной внешней обработки сделал экспортными

Таким образом, возможные причины появления сообщения об ошибках (см. выше):
1. Устаревшая версия платформы
2. Возможное несоответствие методов печатной формы и методов отчета как внешних обработок при их вызове из других внешних обработок (еще раз подчеркну: при прочих равных из вспомогательной обработки, если она "печатная форма", вытащить макет удается, а, если она имеет тип "Отчет", то вылезает то же сообщение об ошибке)
3. Собственная криворукость (даешь 3-й пункт на первое место!)

Косяки при работе с отчетом - не существенны. Работает при типе "ПечатнаяФорма" - и этого достаточно.

Данная задача являлась подзадачей,в рамках которой внешняя обработка должна получать табличный документ, сформированный на основе макета и функции формирования ТабДока, принадлежащих вспомогательной обработке. После решения задачи получения макета (согласно вопроса, обозначенного в данной теме), удалось довольно быстро решить и основную задачу.

Табдок получается так (вместо Макет=... надо писать нижеследующее):

```1c
    ТабДок = ОбработкаОбъект.ФункцияПолученияТабдокаВызываемаяИзВспомогательнойОбработки(МассивОбъектов,ОбъектыПечати,ПараметрыВывода);
```

Во вспомогательной внешней обработке данная функция должна быть экспортной.

PerlAmutor, Вам низкий поклон. Вопрос решен.
---
parubetssm, так это, обработка-то в хранилище лежит, её сначала надо оттуда извлечь и на диск записать.
---
```1c
    СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Наименование обработки в справочнике");
    ХранилищеОбработки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект, "ХранилищеОбработки");
    ДвоичныеДанные = ХранилищеОбработки.Получить();
    АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
    ИмяВнОбработки = ВнешниеОбработки.Подключить(АдресХранилища, , Ложь);
    ОбработкаОбъект = ВнешниеОбработки.Создать(ИмяВнОбработки);
    Макет = ОбработкаОбъект.ПолучитьМакет("jsonТекст");
    jsonТекст = Макет.ПолучитьТекст();
    ЧтениеJSON = Новый ЧтениеJSON;

    ЧтениеJSON.УстановитьСтроку(jsonТекст);
    jsonМассив = ПрочитатьJSON(ЧтениеJSON);
    Для каждого ЭлементМассива Из jsonМассив Цикл
    Сообщить(ЭлементМассива);
    КонецЦикла;
```
---
PerlAmutor, то. что тут обозначено как МАКЕТ это то же, что и макет табличного документа? С ним обязательно работать через чтениеjson?
Если да, то как от json-элементов массива перейти к областям макета табличного документа (именно с таким макетом идет работа: извините, если не уточнил).

Пишет ошибку :

{ВнешняяОбработка.ВнешняяОбработкаПечатнаяВнутрДокумента.МодульОбъекта(63)}: Ошибка при вызове метода контекста (ПолучитьМакет)
Макет=ОбработкаОбъект.ПолучитьМакет("МакетСлужебнойЗаписки");
По причине: недопустимое значение параметра (параметр номер '1')

При разных вариантах кода (давно бьюсь, разные варианты кода из разных источников пробую, считаем, это вариант 10-й по счету) 6 из 10 раз выводит такую ошибку... Не подскажете, в чем может быть дело?
---
parubetssm, нет, Json это моя отсебятина. У меня вместо MXL макета там обычный текстовый файл, но принцип тот же. На строке "Макет =" можно остановится и делать с макетом что и планировал. У меня все выполняется на сервере. Платформа 8.3.8.1933.
---
PerlAmutor, Так и почувствовал с самого начала, что макет какой-то другой, и что со слова "макет" надо действовать по своему. Так и тестил (все,что далее определения переменной МАКЕТ - не использовалось). Платформа 8.3.7.1845. В ней ли дело, что думаем? Файловый-серверный вариант, тонкий клиент...
---
parubetssm, попробуй проверить имя макета, может не находит с таким именем. И ПолучитьМакет() "НаСеревере" попробуй вызвать.
---
Таккк, пробуем...
---
Отчитываюсь. К сожалению выяснить причины того, почему не работало, в чистом виде не удалось.
Исходные данные: экспериментировал, создав основную обработку (печатную форму без макета) и вспомогательные обработки(с макетом, с типом этих обработок игрался: то отчет, то внешняя печатная). В итоге остановился на типе вспомогательной "отчет" и строил эксперименты больше от этого (НЕ ДУМАЛ, ЧТО МЕЖДУ ЭТИМИ ОБРАБОТКАМИ БУДЕТ БОЛЬШАЯ РАЗНИЦА В РАБОТЕ).

Текущее состояние: когда вспомогательная обработка (хранилище макета) имеет тип "печатная форма", то все прокатывает, когда "отчет" - не работает.

Что было сделано:
1. Обновлена платформа до 8.3.8.2088
2. Снова, перебирая варианты, попробовал работать с внешней обработкой вида "ВнешняяПечатнаяФорма"
3. Все процедуры вспомогательной внешней обработки сделал экспортными

Таким образом, возможные причины появления сообщения об ошибках (см. выше):
1. Устаревшая версия платформы
2. Возможное несоответствие методов печатной формы и методов отчета как внешних обработок при их вызове из других внешних обработок (еще раз подчеркну: при прочих равных из вспомогательной обработки, если она "печатная форма", вытащить макет удается, а, если она имеет тип "Отчет", то вылезает то же сообщение об ошибке)
3. Собственная криворукость (даешь 3-й пункт на первое место!)

Косяки при работе с отчетом - не существенны. Работает при типе "ПечатнаяФорма" - и этого достаточно.

Данная задача являлась подзадачей,в рамках которой внешняя обработка должна получать табличный документ, сформированный на основе макета и функции формирования ТабДока, принадлежащих вспомогательной обработке. После решения задачи получения макета (согласно вопроса, обозначенного в данной теме), удалось довольно быстро решить и основную задачу.

Табдок получается так (вместо Макет=... надо писать нижеследующее):

```1c
    ТабДок = ОбработкаОбъект.ФункцияПолученияТабдокаВызываемаяИзВспомогательнойОбработки(МассивОбъектов,ОбъектыПечати,ПараметрыВывода);
```

Во вспомогательной внешней обработке данная функция должна быть экспортной.

PerlAmutor, Вам низкий поклон. Вопрос решен.