При работе с сервисом 1С:Fresh (1С:Предприятие через Интернет) разработчики часто сталкиваются с жесткими требованиями к структуре внешних отчетов и обработок. Одной из наиболее распространенных проблем при использовании «Помощника подготовки дополнительных отчетов и обработок» является ошибка, сообщающая о том, что поле Информация не заполнено. При этом в интерфейсе помощника данное поле недоступно для ручного редактирования. Разберемся, почему это происходит и как устранить данную ошибку.
Причина кроется в том, что 1С:Fresh работает на базе Библиотеки стандартных подсистем (БСП). Чтобы система могла корректно опубликовать ваш отчет в облачном сервисе, она должна уметь программно «прочитать» свойства вашего файла. Если в модуле объекта внешней обработки отсутствует экспортируемая функция СведенияОВнешнейОбработке, либо она заполнена не по стандарту, «Помощник публикации» не может получить метаданные (наименование, версию, информацию о назначении и команды). Именно эту информацию система ожидает увидеть, а поскольку она не определена в коде, возникает блокирующая ошибка.
Для того чтобы отчет прошел проверку системы, необходимо внести изменения непосредственно в модуль объекта вашего внешнего отчета. Рассмотрим, как это сделать правильно.
Конфигураторе.СведенияОВнешнейОбработке с директивой Экспорт.Пример реализации данной функции для корректной регистрации отчета:
Функция СведенияОВнешнейОбработке() Экспорт
ИмяОтчета = ЭтотОбъект.Метаданные.Имя;
Синоним = ЭтотОбъект.Метаданные.Синоним;
Синоним = ?(ЗначениеЗаполнено(Синоним), Синоним, ИмяОтчета);
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");
РегистрационныеДанные.Вставить("Наименование", Синоним);
РегистрационныеДанные.Вставить("Версия", "1.1");
РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
РегистрационныеДанные.Вставить("Информация", "Отчет " + Синоним + " - описание функционала");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, Синоним, "СформироватьОтчет", "ОткрытиеФормы", Истина);
РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);
Возврат РегистрационныеДанные;
КонецФункции
Для того чтобы структура РегистрационныеДанные успешно заполнилась, необходимо также реализовать дополнительные функции, отвечающие за описание команд, которые будет выполнять ваш отчет. Разберем создание таблицы команд:
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Простого добавления кода недостаточно для того, чтобы пройти финальный аудит сервиса 1С:Fresh. Рассмотрим несколько критических моментов:
БезопасныйРежим в значение Истина. Это стандарт безопасности облачных сервисов 1С. Любые попытки доступа к файловой системе или внешним интернет-ресурсам будут блокироваться, если они не санкционированы через механизмы БСП.Версия. Это помогает пользователям понимать, что именно они используют в текущий момент.Информация должно содержать краткое, но емкое описание назначения отчета. Именно этот текст увидит пользователь в списке дополнительных отчетов.Фреш, попробуйте подключить обработку в локальной версии аналогичной типовой конфигурации через раздел «Дополнительные отчеты и обработки». Если отчет успешно подключается локально, это значительно повышает шансы на успех в облаке.ИТС. С развитием платформы требования к структуре регистрационных данных могут изменяться, поэтому «копипаст» старых примеров может привести к тому, что вы успешно загрузите файл, но получите отказ при прохождении аудита безопасности.Соблюдение этих простых, но строгих правил позволит вам успешно опубликовать ваш отчет и обеспечить его безопасную работу для всех пользователей вашего сервиса.