1C облако. Требования к отчетам и внешним обработкам
Руководство разработчика / Владельцам аккаунтов в 1С Cloud / 1C облако. Требования к внешним обработкам1C облако. Требования к отчетам и внешним обработкам
В настоящей статье приведены требования, предъявляемые к дополнительным отчетам и обработкам, которые должны работать в модели сервиса.
1. В сервисе e-Cont.md cоблюдение требований, описанных в этой статье, проверяется сотрудниками фирмы «1С» при аудите, который дополнительные отчеты и обработки должны успешно пройти для того, чтобы быть допущенными к использованию в сервисе.
2. Рекомендуем ознакомиться со статьей о наиболее распространенных ошибках и затруднениях при подготовке расширений конфигурации, дополнительных отчетов и обработок.
Содержание
2. Использование безопасного режима
3. Требования для проведения аудита
4. Требования к ресурсоемкости
5. Требования к работоспособности
6. Требования к передаче данных за пределы сервиса
9.1. Примеры дополнительных отчетов и обработок
9.2. Рекомендации по разработке
9.3. Имена метаданных дополнительного отчета или обработки
9.4. О копировании кода из типовой конфигурации
9.7. О безопасности данных пользователя
1. Общие требования
- Дополнительный отчет или обработка создаются на локальном компьютере разработчика с помощью конфигуратора «1С:Предприятие 8» как внешние отчеты и обработки и сохраняются в файл. Стандартное расширение имени этого файла:
- epf — для дополнительных обработок;
- erf — для дополнительных отчетов.
- Дополнительный отчет или обработка, предназначенные для работы в модели сервиса по облачной технологии e-Cont.md, должны быть разработаны в соответствии с требованиями подсистемы ДополнительныеОтчетыИОбработки библиотеки стандартных подсистем (БСП). Подробно с этими требованиями можно ознакомиться здесь и здесь.
- Для дополнительного отчета или обработки должны соблюдаться стандарты и методики разработки конфигураций для технологической платформы «1С:Предприятие 8», доступные по ссылке.
2. Использование безопасного режима
- В функции СведенияОВнешнейОбработке() модуля объекта дополнительного отчета или обработки для параметра ПараметрыРегистрации.БезопасныйРежим необходимо установить значение Истина.
- При необходимости использования в дополнительном отчете или обработке операций, не разрешенных в безопасном режиме, следует запрашивать в функции СведенияОВнешнейОбработке нужные разрешения с помощью вызовов функций:
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнегоМодуля
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаПрограммы
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПриложенияОперационнойСистемы
РаботаВБезопасномРежиме.РазрешениеНаСозданиеCOMКласса
- Не допускается выполнение кода сторонними, т.е. не входящими в состав конфигурации, средствами.
- Не допускается использование COM-объектов, поскольку они не будут функционировать на рабочих серверах сервиса, работающих под управлением Linux.
- Допускается использовать только внешние компоненты, входящие в виде макетов в состав конфигурации, для которой разработан дополнительный отчет/обработка.
3. Требования для проведения аудита
- Не допускается использование каких-либо средств, затрудняющих или делающих невозможным анализ исходных текстов модулей дополнительного отчета или обработки. В частности, не допускается:
- поставлять модули без исходных текстов или с установленным паролем на модуль;
- использовать средства запутывания (обфускации) исходных текстов.
4. Требования к ресурсоемкости
- Дополнительный отчет/обработка не должны приводить к чрезмерной нагрузке на компоненты сервиса или клиентское приложение.
- Предельные значения для каждого серверного вызова в дополнительном отчете или обработке в сервисе e-Cont.md:
Параметр Предельное значение Длительность серверного вызова 2 400 c Процессорное время серверного вызова 600 c Длительность вызовов СУБД 1 200 с Длительность вызовов сервисов 600 с Объем используемой памяти 4 194 304 Кбайт Объем информации, записанной на диск 20 971 520 Кбайт
5. Требования к работоспособности
- Дополнительный отчет или обработка не должны нарушать корректную работу приложения, в котором они установлены.
- Все длительные операции в дополнительном отчете или обработке должны использовать механизм длительных операций из БСП (при длительности 10 секунд и более).
- Если дополнительный отчет или обработка предназначены только для использования в тонком клиенте, то при запуске в веб-клиенте они должны корректно уведомлять пользователя об этом ограничении, а не завершаться с ошибками.
6. Требования к передаче данных за пределы сервиса
- Если в дополнительном отчете или обработке выполняется передача любых данных за пределы сервиса, эти операции должны подтверждаться пользователем.
- Если на этапе разработки дополнительного отчета или обработки существует возможность определить ресурсы сети Интернет, к которым будет выполняться обращение, необходимо реализовать запрос разрешений в программном интерфейсе дополнительного отчета и обработки. Такой запрос должен дать возможность пользователю еще перед установкой отчета или обработки ознакомиться, к каким ресурсам будет выполняться передача данных этим отчетом или обработкой.
- Если определить ресурсы сети Интернет, к которым будет выполняться обращение, невозможно, то:
- для дополнительных отчетов или обработок, содержащих формы, перед выполнением операции следует запрашивать разрешение у пользователя (возможно, с сохранением полученного ответа). При запросе разрешения следует явно указывать, к каким ресурсам сети Интернет будет осуществляться обращение;
- для дополнительных отчетов/обработок, не содержащих форм (например, предназначенных для использования в качестве регламентного задания), рекомендуется:
- по умолчанию не выполнять операцию в коде серверной команды;
- создавать дополнительную команду с типом вызова Открытие формы, в которой реализовывать запрос подтверждения;
- начинать выполнение операции в серверном коде только после подтверждения пользователем выполнений операций.
7. Юридические требования
Дополнительный отчет или обработка не должны содержать:
- Кода, который может повлечь порчу данных или дестабилизировать работоспособность сервиса.
- Кода и данных, которые могут нарушать права третьих лиц, в том числе их авторское право.
- Охраняемые законом сведения, в том числе коммерческую тайну или персональные данные третьих лиц.
8. Требования к тестированию
После того, как дополнительный отчет или обработка разработаны, разработчик должен их проверить. Для проверки необходимо:
- Развернуть сервер «1С:Предприятия 8» той же версии, которая используется в сервисе.
- Развернуть клиент-серверную информационную базу той конфигурации, для которой предназначен дополнительный отчет или обработка, и той версии конфигурации, которая используется в сервисе.
- Выполнить веб-публикацию этой информационной базы (кроме случая, когда дополнительный отчет или обработка предназначены только для работы в тонком клиенте).
- Для каждого профиля пользователя, под которым в модели сервиса будет выполняться дополнительный отчет или обработка, необходимо создать в информационной базе пользователя с таким же набором ролей, но без роли АдминистраторСистемы (эта роль при работе в модели сервиса у обычных, т. е. разделенных, пользователей недопустима).
- Запускать дополнительный отчет или обработку в тонком клиенте и в веб-клиенте (если дополнительный отчет или обработка содержит формы, кроме случая, когда дополнительный отчет или обработка предназначены только для работы в тонком клиенте), под созданными в п. 4 пользователями. Для запуска следует использовать не главное меню (команду Файл — Открыть), а интерфейс дополнительных отчетов и обработок БСП.
Для каждого пользователя, созданного в п. 4, необходимо проверить:
- загружается ли вообще дополнительный отчет или обработка в локальную информационную базу;
- работоспособность и корректность выполнения функционала, заложенного в дополнительный отчет или обработку.
9. Методические рекомендации
9.1. Примеры дополнительных отчетов и обработок
Примеры дополнительных отчетов и обработок можно получить:
- В статье по ссылке.
- В демонстрационной информационной базе БСП:
- открыв ее в режиме 1С:Предприятие — в справочнике Дополнительные отчеты и обработки;
- открыв ее Конфигуратором — в ветке конфигурации Общие / Общие макеты (например, _ДемоЗаполнениеКонтрагентов, _ДемоОтчетПоСчетамНаОплатуГлобальный и др.
При необходимости, вы можете сохранить эти примеры в файлы и разрабатывать дополнительные отчеты и обработки на их основе.
9.2. Рекомендации по разработке
- При разработке дополнительного отчета или обработки рекомендуется использовать:
- ту же версию платформы «1С:Предприятие 8», которая используется в сервисе;
- ту же версию конфигурации прикладного решения, для которого разрабатывается дополнительный отчет или обработка, которая используется в сервисе;
- библиотеку стандартных подсистем (БСП) той версии, которая внедрена в испольуемую версию конфигурации прикладного решения, или более новую. Версии БСП можно скачать по ссылке.
- Используйте программный интерфейс БСП и прикладных конфигураций. При этом вам не придется переписывать код дополнительного отчета или обработки каждый раз после обновления типовых конфигураций.
- Если дополнительный отчет или обработка содержит формы, «выдерживайте» их в стиле типовой конфигурации. Например, если в конфигурации принято команду «Записать и закрыть» располагать в верхней части формы, не размещайте ее в нижней части формы дополнительного отчета или обработки.
- Соблюдайте стандарты разработки (см. по ссылке).
9.3. Имена метаданных дополнительного отчета или обработки
- При разработке дополнительных отчетов и обработок для модели сервиса следует учитывать что имя метаданных дополнительного отчета и обработки может быть произвольным, а соответственно и полные имена всех форм дополнительного отчета и обработки.
- Получить имя объекта метаданных можно на сервере методом РеквизитФормыВЗначение(ИмяОсновногоРеквизита).Метаданные().ПолноеИмя()
- Если при работе в модели сервиса при открытии дочерней формы дополнительного отчета или обработки возникает ошибка Неизвестное имя формы, то это скорее всего связано с неправильным использованием имен форм в дополнительном отчете или обработке.
9.4. О копировании кода из типовой конфигурации
- Если в типовой конфигурации есть готовая функция, которую можно вызвать, копировать ее в дополнительный отчет или обработку не нужно.
- Если код, который есть в типовой конфигурации, подходит не полностью, очень осмотрительно подходите к вопросу копирования существующего кода:
- при обнаружении и исправлении ошибки в скопированном коде эта ошибка у пользователей дополнительного отчета или обработки не будет исправлена. В этом случае ответственность за своевременное исправление ошибок для пользователей вы берете на себя;
- по мере развития конфигурации ранее скопированный код может испортить данные пользователей.
9.5. Работа с базой данных
- При связанном изменении нескольких элементов данных, которое должно происходить атомарно, используйте транзакции.
- При изменении данных, которые могут редактироваться пользователями параллельно с выполнением дополнительного отчета или обработки, устанавливайте объектные блокировки.
- Обязательно уделяйте внимание оптимальности запросов: учитывайте, что, в отличие от локального режима, информационная база в сервисе используется большим количеством пользователей. Подробнее об оптимизации запросов см. в статьях 1С:ИТС по ссылке.
9.6. Работа в веб-клиенте
- Если действия на сервере могут выполняться продолжительное время, используйте механизм длительных операций БСП. В противном случае приложение может закрыться по ошибке таймаута веб-сервера.
- Если дополнительный отчет или обработка могут вызываться при работе в веб-клиенте, то все ключевые возможности дополнительного отчета или обработки должны быть доступны пользователям без использования расширения работы с файлами.
9.7. О безопасности данных пользователя
- Не предоставляйте конечному пользователю такие обработки, с помощью которых он сможет испортить данные в своем приложении. Примеры:
- универсальные «перенумераторы» и «перепрефиксаторы»;
- поиск и замена значений;
- универсальные редакторы значений реквизита;
- удаление помеченных объектов без контроля ссылочной целостности.
- Желательно четко ограничивать функциональность дополнительных обработок, которые меняют данные пользователя. Например, если пользователю нужно перенумеровать кассовые документы, сделайте дополнительную обработку, которая будет делать именно это, без лишней универсальности.