Разработка внешних обработок для облачных сервисов, таких как 1С:Фреш, требует строгого соблюдения стандартов БСП (Библиотеки стандартных подсистем). Ошибки в описании метаданных обработки или попытки использовать запрещенные методы (например, модальные окна) приводят к тому, что обработка не проходит автоматический аудит. Рассмотрим пошагово, как правильно настроить вашу обработку.
Для корректной регистрации необходимо использовать стандартизированный подход. Главное правило: не пытайтесь создавать отдельные функции для команд, если это не предусмотрено архитектурой, а описывайте всё внутри основной функции СведенияОВнешнейОбработке. Важно также использовать методы объекта ДополнительныеОтчетыИОбработки.
Рассмотрим современный шаблон, который успешно проходит аудит:
Функция СведенияОВнешнейОбработке Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.7.10");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка;
ПараметрыРегистрации.Наименование = НСтр("ru = 'Наименование вашей обработки'");
ПараметрыРегистрации.Версия = "1.4";
ПараметрыРегистрации.БезопасныйРежим = Истина; // Обязательно для Фреш!
ПараметрыРегистрации.Информация = НСтр("ru = 'Краткое описание функционала'");
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Название команды'");
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗагрузкаДанныхИзФайла;
Команда.Идентификатор = "Сформировать";
Команда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
ПараметрыРегистрации.БезопасныйРежим = Истина является обязательной. Если вы укажете Ложь, обработка будет отклонена аудитором, так как это несет риски безопасности сервера.ОткрытьМодально запрещено. В облачной архитектуре потоки исполнения должны быть асинхронными. Любые попытки заблокировать интерфейс приведут к ошибкам при выполнении кода.ПолучитьФорму. Вся логика должна выполняться исключительно серверными методами в модуле объекта.Если обработка работает по расписанию, ее логика должна быть вынесена в процедуру ВыполнитьКоманду в модуле объекта. Никаких директив &НаКлиенте в таких модулях быть не должно.
Правильный шаблон для обработки команды:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполнения = Неопределено) Экспорт
Если ИдентификаторКоманды = "ИмяВашейКоманды" Тогда
// Вызов серверной логики
ВыполнитьОсновнуюЛогику();
КонецЕсли;
КонецПроцедуры
ДокументОбъект. Используйте методы Заполнить() или прямую установку реквизитов, после чего вызывайте метод Записать() или Провести().СведенияОВнешнейОбработке. Это помогает системе правильно интерпретировать структуру регистрационных данных.Следуя этим рекомендациям и перенося бизнес-логику из модулей форм в независимые методы модуля объекта, вы сможете создавать качественные и безопасные обработки, которые без проблем пройдут любые проверки в 1С:Фреш.