Добрый день.
Подскажите как допилиnь обработку.
В "локальной базе" - работает хорошо.
В перенесенную базу в "облако" - выдает: В обработчике печати не был сформирован табличный документ для: ВнешняяОбработка.

```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    УказатьНаименованиеКомандыПечати(),
    УказатьНаименованиеВнешнейПечатнойФормы(),
    ПечатьФормы(МассивОбъектов, ОбъектыПечати, КоллекцияПечатныхФорм, ПараметрыВывода));

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

    Функция ПечатьФормы(МассивОбъектов, ОбъектыПечати, КомплектыПечати, ПараметрыПечати)

    Макет = ПолучитьМакет("МакетОтчета");

    ТабличныйДокумент = Новый ТабличныйДокумент;

    Первый = Истина;

    Для ИндексМассива = 0 По МассивОбъектов.Количество()-1 Цикл

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

    Документ = МассивОбъектов[ИндексМассива];

    // ВЫВОД ШАПКИ ******************************************************
    Область = Макет.ПолучитьОбласть("Шапка");
    Организация = Документ.Организация;

    Область.Параметры.НазваниеОрганизации = Организация.НаименованиеПолное;
    Область.Параметры.КодОКПО = Организация.КодПоОКПО;

    НомерДок = СокрЛП(ЗарплатаКадрыОтчеты.НомерНаПечать(Документ.Номер));
    Область.Параметры.НомерДок = ?(ЗначениеЗаполнено(НомерДок),НомерДок,СокрЛП(Документ.Номер));

    Область.Параметры.ДатаДок = Формат(Документ.Дата,"ДЛФ=Д");
    Область.Параметры.Начисление = Документ.Начисление;
    ПриказО = "поощрении работников";
    ВШапкуПриказа = ";
    МотивПоощрения = ";
    ГлавномуБухгалтеру = ";
    Для каждого СтрокаТЧ из Документ.ДополнительныеРеквизиты Цикл
    Если СтрокаТЧ.Свойство.Имя = "ПриказО" Тогда
    ПриказО = СтрокаТЧ.Значение;
    ИначеЕсли СтрокаТЧ.Свойство.Имя = "ВШапкуПриказа" Тогда
    ВШапкуПриказа = СтрокаТЧ.Значение;
    ИначеЕсли СтрокаТЧ.Свойство.Имя = "МотивПоощрения" Тогда
    МотивПоощрения = СтрокаТЧ.Значение;
    ИначеЕсли СтрокаТЧ.Свойство.Имя = "ГлавномуБухгалтеру" Тогда
    ГлавномуБухгалтеру = СтрокаТЧ.Значение;
    КонецЕсли;
    КонецЦикла;
    Область.Параметры.ПриказО = ПриказО;
    Область.Параметры.ВШапкуПриказа = ВШапкуПриказа;
    Область.Параметры.МотивПоощрения = МотивПоощрения;

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

    ТабличныйДокумент.Вывести(Область);

    // ВЫВОД СОТРУДНИКОВ *************************************************
    Для Каждого ТекСтрока Из Документ.Сотрудники Цикл
    Сотрудник = ТекСтрока.Сотрудник;
    ИдентификаторСтрокиСотрудника = ТекСтрока.ИдентификаторСтрокиСотрудника;
    Величина = 0;
    Для каждого СтрокаПоказатели Из Документ.ПоказателиСотрудников Цикл
    Если ИдентификаторСтрокиСотрудника = СтрокаПоказатели.ИдентификаторСтрокиСотрудника Тогда
    Величина = СтрокаПоказатели.Значение;
    Прервать;
    КонецЕсли;
    КонецЦикла;

    ЗапросСотр = Новый Запрос;
    ЗапросСотр.Текст =
    "ВЫБРАТЬ
    | КадроваяИсторияСотрудниковИнтервальный.Сотрудник КАК Сотрудник,
    | КадроваяИсторияСотрудниковИнтервальный.Подразделение КАК Подразделение,
    | КадроваяИсторияСотрудниковИнтервальный.Должность КАК Должность
    |ИЗ
    | РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК КадроваяИсторияСотрудниковИнтервальный
    |
    |ГДЕ
    | КадроваяИсторияСотрудниковИнтервальный.ГоловнаяОрганизация = &ГоловнаяОрганизация
    | И КадроваяИсторияСотрудниковИнтервальный.Сотрудник = &Сотрудник
    | И &ДатаПриказа МЕЖДУ КадроваяИсторияСотрудниковИнтервальный.ДатаНачала И КадроваяИсторияСотрудниковИнтервальный.ДатаОкончания
    |";
    ЗапросСотр.УстановитьПараметр("ГоловнаяОрганизация", Организация.ГоловнаяОрганизация);
    ЗапросСотр.УстановитьПараметр("Сотрудник", Сотрудник);
    ЗапросСотр.УстановитьПараметр("ДатаПриказа", Документ.Дата);
    Попытка
    РезультатЗапросаСотр = ЗапросСотр.Выполнить();
    Исключение
    Сообщить("Не удалось выполнить запрос по сотр");
    КонецПопытки;
    ТаблицаЗначений = РезультатЗапросаСотр.Выгрузить();
    Должность = Справочники.Должности.ПустаяСсылка();
    Подразделение = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
    Для каждого СтрокаТабл Из ТаблицаЗначений Цикл
    Должность = СтрокаТабл.Должность;
    Подразделение = СтрокаТабл.Подразделение;
    КонецЦикла;

    Область = Макет.ПолучитьОбласть("Сотр");
    Область.Параметры.ФИО = Сотрудник.Наименование;

    ТабНомер = СокрЛП(ЗарплатаКадрыОтчеты.ТабельныйНомерНаПечать(Сотрудник.Код));
    ТабНомер = ТабНомБезНулей(ТабНомер);
    Область.Параметры.ТабНомер = СокрЛП(ТабНомер);
    Область.Параметры.Подразделение = СокрЛП(Подразделение.Наименование);
    Область.Параметры.Должность = СокрЛП(Должность.Наименование);

    Область.Параметры.Период = " " + Формат(ТекСтрока.ДатаНазначения,"ДЛФ=Д") + " - " + Формат(ТекСтрока.ДатаОкончания,"ДЛФ=Д");

    ТабличныйДокумент.Вывести(Область);

    КонецЦикла;

    // ВЫВОД ПОДВАЛА **************************************************************
    Область = Макет.ПолучитьОбласть("Подвал");
    Область.Параметры.ГлавномуБухгалтеру = СокрЛП(ГлавномуБухгалтеру);
    Область.Параметры.ФИОРуководителя = ФизическиеЛицаЗарплатаКадры.РасшифровкаПодписи(ОтветственныеЛица.Руководитель);
    ТабличныйДокумент.Вывести(Область);

    КонецЦикла;

    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОтображатьСетку = Ложь;

    Возврат ТабличныйДокумент;

    КонецФункции
```
---
ОК. Тогда такое предложение. Верните назад ПолноеИмя(), Но в функции СведенияОВнешнейОбработке замените строку

```1c
    ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL");
```

на чтото типо такого:

```1c
    ДобавитьКоманду(ТаблицаКоманд, Наименование, "ИмяКомандыПечатнойФормы", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
```
---
Уже лучше

Еще тут надо поменять:

```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "ИмяКомандыПечатнойФормы",
    УказатьНаименованиеВнешнейПечатнойФормы(),
    ПечатьФормы(МассивОбъектов, ОбъектыПечати, КоллекцияПечатныхФорм, ПараметрыВывода));

    КонецПроцедуры
```
---
Как неудобно читать код не обрамленный в соответствующие тэги :-(

А входящие данные одни и те же в облаке и локально? Проверяли локально как? В отладочной форме или в подключенном к подсистеме дополнительных печатных форм виде? Есть предположение, что не хватает данных для нормальной публикации.

ПС: запрос в цикле... не красиво так делать :-)
---
ПС: запрос в цикле... не красиво так делать :-)
Их там даже два со вложенными циклами ;-)
---
данные идентичные.

```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    УказатьНаименованиеКомандыПечати(),
    УказатьНаименованиеВнешнейПечатнойФормы(),
    ПечатьФормы(МассивОбъектов, ОбъектыПечати, КоллекцияПечатныхФорм, ПараметрыВывода));

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

```1c
    Функция ПечатьФормы(МассивОбъектов, ОбъектыПечати, КомплектыПечати, ПараметрыПечати)

    Макет = ПолучитьМакет("МакетОтчета");

    ТабличныйДокумент = Новый ТабличныйДокумент;

    Первый = Истина;

    Для ИндексМассива = 0 По МассивОбъектов.Количество()-1 Цикл

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

    Документ = МассивОбъектов[ИндексМассива];

    // ВЫВОД ШАПКИ ******************************************************
    Область = Макет.ПолучитьОбласть("Шапка");
    Организация = Документ.Организация;

    Область.Параметры.НазваниеОрганизации = Организация.НаименованиеПолное;
    Область.Параметры.КодОКПО = Организация.КодПоОКПО;

    НомерДок = СокрЛП(ЗарплатаКадрыОтчеты.НомерНаПечать(Документ.Номер));
    Область.Параметры.НомерДок = ?(ЗначениеЗаполнено(НомерДок),НомерДок,СокрЛП(Документ.Номер));

    Область.Параметры.ДатаДок = Формат(Документ.Дата,"ДЛФ=Д");
    Область.Параметры.Начисление = Документ.Начисление;
    ПриказО = "поощрении работников";
    ВШапкуПриказа = ";
    МотивПоощрения = ";
    ГлавномуБухгалтеру = ";
    Для каждого СтрокаТЧ из Документ.ДополнительныеРеквизиты Цикл
    Если СтрокаТЧ.Свойство.Имя = "ПриказО" Тогда
    ПриказО = СтрокаТЧ.Значение;
    ИначеЕсли СтрокаТЧ.Свойство.Имя = "ВШапкуПриказа" Тогда
    ВШапкуПриказа = СтрокаТЧ.Значение;
    ИначеЕсли СтрокаТЧ.Свойство.Имя = "МотивПоощрения" Тогда
    МотивПоощрения = СтрокаТЧ.Значение;
    ИначеЕсли СтрокаТЧ.Свойство.Имя = "ГлавномуБухгалтеру" Тогда
    ГлавномуБухгалтеру = СтрокаТЧ.Значение;
    КонецЕсли;
    КонецЦикла;
    Область.Параметры.ПриказО = ПриказО;
    Область.Параметры.ВШапкуПриказа = ВШапкуПриказа;
    Область.Параметры.МотивПоощрения = МотивПоощрения;

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

    ТабличныйДокумент.Вывести(Область);

    // ВЫВОД СОТРУДНИКОВ *************************************************
    Для Каждого ТекСтрока Из Документ.Сотрудники Цикл
    Сотрудник = ТекСтрока.Сотрудник;
    ИдентификаторСтрокиСотрудника = ТекСтрока.ИдентификаторСтрокиСотрудника;
    Величина = 0;
    Для каждого СтрокаПоказатели Из Документ.ПоказателиСотрудников Цикл
    Если ИдентификаторСтрокиСотрудника = СтрокаПоказатели.ИдентификаторСтрокиСотрудника Тогда
    Величина = СтрокаПоказатели.Значение;
    Прервать;
    КонецЕсли;
    КонецЦикла;

    ЗапросСотр = Новый Запрос;
    ЗапросСотр.Текст =
    "ВЫБРАТЬ
    | КадроваяИсторияСотрудниковИнтервальный.Сотрудник КАК Сотрудник,
    | КадроваяИсторияСотрудниковИнтервальный.Подразделение КАК Подразделение,
    | КадроваяИсторияСотрудниковИнтервальный.Должность КАК Должность
    |ИЗ
    | РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК КадроваяИсторияСотрудниковИнтервальный
    |
    |ГДЕ
    | КадроваяИсторияСотрудниковИнтервальный.ГоловнаяОрганизация = &ГоловнаяОрганизация
    | И КадроваяИсторияСотрудниковИнтервальный.Сотрудник = &Сотрудник
    | И &ДатаПриказа МЕЖДУ КадроваяИсторияСотрудниковИнтервальный.ДатаНачала И КадроваяИсторияСотрудниковИнтервальный.ДатаОкончания
    |";
    ЗапросСотр.УстановитьПараметр("ГоловнаяОрганизация", Организация.ГоловнаяОрганизация);
    ЗапросСотр.УстановитьПараметр("Сотрудник", Сотрудник);
    ЗапросСотр.УстановитьПараметр("ДатаПриказа", Документ.Дата);
    Попытка
    РезультатЗапросаСотр = ЗапросСотр.Выполнить();
    Исключение
    Сообщить("Не удалось выполнить запрос по сотр");
    КонецПопытки;
    ТаблицаЗначений = РезультатЗапросаСотр.Выгрузить();
    Должность = Справочники.Должности.ПустаяСсылка();
    Подразделение = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
    Для каждого СтрокаТабл Из ТаблицаЗначений Цикл
    Должность = СтрокаТабл.Должность;
    Подразделение = СтрокаТабл.Подразделение;
    КонецЦикла;

    Область = Макет.ПолучитьОбласть("Сотр");
    Область.Параметры.ФИО = Сотрудник.Наименование;

    ТабНомер = СокрЛП(ЗарплатаКадрыОтчеты.ТабельныйНомерНаПечать(Сотрудник.Код));
    ТабНомер = ТабНомБезНулей(ТабНомер);
    Область.Параметры.ТабНомер = СокрЛП(ТабНомер);
    Область.Параметры.Подразделение = СокрЛП(Подразделение.Наименование);
    Область.Параметры.Должность = СокрЛП(Должность.Наименование);
    Если Документ.ПоказателиСотрудников.Количество() > 0 Тогда
    Если ПерваяСтрокаПоказателиСотрудников.Показатель.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный Тогда
    Область.Параметры.Величина = Формат(Величина, "ЧЦ=10; ЧДЦ=2");
    Иначе
    Область.Параметры.Величина = Формат(Величина) + " %";
    КонецЕсли;
    Иначе
    СведенияОСтажах = КадровыйУчетРасширенныйВызовСервера.СведенияОСтажахСотрудника(Сотрудник, Документ.Дата);
    Для Каждого ТекСтрокаСтажа Из СведенияОСтажах Цикл
    Если ТекСтрокаСтажа.Ключ.Наименование = "Стаж непрерывной работы" Тогда
    Область.Параметры.Величина = Формат(ТекСтрокаСтажа.Значение.Лет) + " лет " + Формат(ТекСтрокаСтажа.Значение.Месяцев) + " месяцев " + Формат(ТекСтрокаСтажа.Значение.Дней) + " дней";
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;

    Область.Параметры.Период = " " + Формат(ТекСтрока.ДатаНазначения,"ДЛФ=Д") + " - " + Формат(ТекСтрока.ДатаОкончания,"ДЛФ=Д");

    ТабличныйДокумент.Вывести(Область);

    КонецЦикла;

    // ВЫВОД ПОДВАЛА **************************************************************
    Область = Макет.ПолучитьОбласть("Подвал");
    Область.Параметры.ГлавномуБухгалтеру = СокрЛП(ГлавномуБухгалтеру);

    ДолжностьОтветственного = ";
    ФИООтветственного = ";
    Ответственный = Документ.Ответственный;
    ДатаОтчета = Документ.Дата;

    ОтветственныеЛица = Новый Структура("Организация,Руководитель,ДолжностьРуководителя,РуководительКадровойСлужбы,ДолжностьРуководителяКадровойСлужбы,ГлавныйБухгалтер", Документ.Организация);
    ЗарплатаКадры.ПолучитьЗначенияПоУмолчанию(ОтветственныеЛица, ДатаОтчета);
    МассивФизЛиц = Новый Массив;
    МассивФизЛиц.Добавить(ОтветственныеЛица.Руководитель);
    МассивФизЛиц.Добавить(ОтветственныеЛица.ГлавныйБухгалтер);
    МассивФизЛиц.Добавить(ОтветственныеЛица.РуководительКадровойСлужбы);
    Если ЗначениеЗаполнено(Ответственный) Тогда
    МассивФизЛиц.Добавить(Ответственный);
    КонецЕсли;

    ФИОФизЛиц = ЗарплатаКадры.СоответствиеФИОФизЛицСсылкам(ДатаОтчета, МассивФизЛиц);
    ФИОРуководителя = ФИОФизЛиц[ОтветственныеЛица.Руководитель];
    ФИОГлавногоБухгалтера = ФИОФизЛиц[ОтветственныеЛица.ГлавныйБухгалтер];
    ФИОРуководителяКадровойСлужбы = ФИОФизЛиц[ОтветственныеЛица.РуководительКадровойСлужбы];
    ДолжностьРуководителя = ?(ОтветственныеЛица.ДолжностьРуководителя = Неопределено, ", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОтветственныеЛица.ДолжностьРуководителя, "Наименование"));
    ДолжностьРуководителяКадровойСлужбы = ?(ОтветственныеЛица.ДолжностьРуководителяКадровойСлужбы = Неопределено, ", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОтветственныеЛица.ДолжностьРуководителяКадровойСлужбы, "Наименование"));
    Если ЗначениеЗаполнено(Ответственный) Тогда
    СтруктураФИО = Новый Структура("Фамилия,Имя,Отчество");
    ЗаполнитьЗначенияСвойств(СтруктураФИО, Ответственный.ФизическоеЛицо);
    ФИООтветственного = ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы(СтруктураФИО);
    КонецЕсли;

    ФИОГлавногоБухгалтераВДатПадеже = ";
    ФИОГлавногоБухгалтера = ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы(ФИОГлавногоБухгалтера);
    Пол = ОтветственныеЛица.ГлавныйБухгалтер.Пол;
    РезультатСклонения = ";
    Если ФизическиеЛицаЗарплатаКадры.Просклонять(ОтветственныеЛица.ГлавныйБухгалтер, 5, РезультатСклонения, Пол) Тогда
    ФИОГлавногоБухгалтераВДатПадеже = ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы(РезультатСклонения);
    КонецЕсли;
    Область.Параметры.ФИОГлавногоБухгалтераВДатПадеже = ФИОГлавногоБухгалтераВДатПадеже;
    Область.Параметры.ФИОРуководителяКадровойСлужбы = ФизическиеЛицаЗарплатаКадры.РасшифровкаПодписи(ОтветственныеЛица.РуководительКадровойСлужбы);
    Область.Параметры.ДолжностьРуководителя = СокрЛП(ДолжностьРуководителя);
    Область.Параметры.ФИОРуководителя = ФизическиеЛицаЗарплатаКадры.РасшифровкаПодписи(ОтветственныеЛица.Руководитель);
    ТабличныйДокумент.Вывести(Область);

    КонецЦикла;

    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабличныйДокумент.ПолеСверху = 5;
    ТабличныйДокумент.ПолеСнизу = 5;
    ТабличныйДокумент.ПолеСлева = 10;
    ТабличныйДокумент.ПолеСправа = 5;

    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОтображатьСетку = Ложь;

    Возврат ТабличныйДокумент;

    КонецФункции
```
---
Судя по исключению, при формировании печатной формы из БСП обработчик даже не доходит до функции ПечатьФормы, Проверьте функцию модуля объекта СведенияОВнешнейОбработке. в частности строки формирования таблицы команд и добавления команды.

что-то типа такого: должно быть:

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

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    МассивНазначений.Добавить("Документ.АвансовыйОтчет");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

    ПараметрыРегистрации.Вставить("Наименование", "Акт об оказании услуг");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Версия", "1.0.5.1");
    ПараметрыРегистрации.Вставить("Информация", ");

    // Создадим таблицу команд (подробнее смотрим ниже)
    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    // Добавим команду в таблицу
    ДобавитьКоманду(ТаблицаКоманд, "Акт об оказании услуг", "АктОбОказанииУслуг", "ВызовСерверногоМетода", Истина, "ПечатьMXL");

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

    Возврат ПараметрыРегистрации;
    КонецФункции

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

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

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

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

Особенно обратите внимание на процедуру ДобавитьКоманду, чтобы все колонки таблицы команд были заполнены
---
данные есть

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

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;

    Наименование = УказатьНаименованиеВнешнейПечатнойФормы();

    МассивНазначений.Добавить(ПолучитьМетаданныеДокументаПечати());
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", Наименование);
    ПараметрыРегистрации.Вставить("Версия", "1.1.1.1");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", Наименование);

    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL");

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

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

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

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

    Возврат Команды;
    КонецФункции

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

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

    КонецФункции
```
---
Что возвращает функция УказатьНаименованиеКомандыПечати()?
---
УказатьНаименованиеКомандыПечати

```1c
    Функция УказатьНаименованиеКомандыПечати()

    Наименование = ЭтотОбъект.Метаданные().ПолноеИмя();
    Возврат Наименование;

    КонецФункции
```
---
попробуйте исправить на такой код. мне кажется может помочь:

```1c
    Функция УказатьНаименованиеКомандыПечати()

    Наименование = ЭтотОбъект.Метаданные().Имя;
    Возврат Наименование;

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

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

на стадии загрузки в облако по Вашему предложению: Неизвестный идентификатор формы
---
ОК. Тогда такое предложение. Верните назад ПолноеИмя(), Но в функции СведенияОВнешнейОбработке замените строку

```1c
    ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL");
```

на чтото типо такого:

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

при изменении

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

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;

    Наименование = УказатьНаименованиеВнешнейПечатнойФормы();

    МассивНазначений.Добавить(ПолучитьМетаданныеДокументаПечати());
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", Наименование);
    ПараметрыРегистрации.Вставить("Версия", "11111");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", Наименование);

    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    //ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, Наименование, "ИмяКомандыПечатнойФормы", "ВызовСерверногоМетода", Истина, "ПечатьMXL");

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

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

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

    Функция УказатьНаименованиеВнешнейПечатнойФормы()

    //Наименование = ЭтотОбъект.Метаданные().Представление();

    Наименование = ЭтотОбъект.Метаданные().ПолноеИмя();

    Возврат Наименование;

    КонецФункции
```
---
Уже лучше

Еще тут надо поменять:

```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "ИмяКомандыПечатнойФормы",
    УказатьНаименованиеВнешнейПечатнойФормы(),
    ПечатьФормы(МассивОбъектов, ОбъектыПечати, КоллекцияПечатныхФорм, ПараметрыВывода));

    КонецПроцедуры
```
---
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ИмяКомандыПечатнойФормы",
УказатьНаименованиеВнешнейПечатнойФормы(),
ПечатьФормы(МассивОбъектов, ОбъектыПечати, КоллекцияПечатныхФорм, ПараметрыВывода));

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

! Спасибо. заработало.
---
В "локальной базе" - работает хорошо.
В перенесенную базу в "облако" - выдает: Вообще не типичная ошибка. Возможно, в модуле обработки какие-то кривые инструкции препроцессора типа #Если ТолстыйКлиентУправляемоеПриложение ..., но это маловероятно.
---
Ну в данном коде я вижу одно подозрительное место:

```1c
    Область.Параметры.ФИОРуководителя = ФизическиеЛицаЗарплатаКадры.РасшифровкаПодписи(ОтветственныеЛица.Руководитель);
```

ОтветственныеЛица вроде раньше нигде не объявляются.
---
Они есть, я их убрал из вопроса.

```1c
    ОтветственныеЛица = Новый Структура("Организация,Руководитель,ДолжностьРуководителя,РуководительКадровойСлужбы,ДолжностьРуководителяКадровойСлужбы,ГлавныйБухгалтер", Документ.Организация);
    ......
    КонецЕсли;
```
---
В функции СведенияОВнешнейОбработке() модуля объекта дополнительного отчета или обработки для параметра ПараметрыРегистрации.БезопасныйРежим необходимо установить значение Истина.

https://1cfresh.com/articles/so_addprocess_req
---
не помогает.

такой шаблон у меня во всех обработках и работает

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

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;

    Наименование = УказатьНаименованиеВнешнейПечатнойФормы();

    МассивНазначений.Добавить(ПолучитьМетаданныеДокументаПечати());
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", Наименование);
    ПараметрыРегистрации.Вставить("Версия", "3.2 от 01.09.2020");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", Наименование);

    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL");

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

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

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