В настоящей статье приведены требования, предъявляемые к дополнительным отчетам и обработкам, которые должны работать в модели сервиса.
В сервисе 1cfresh.kz соблюдение требований, описанных в этой статье, проверяется сотрудниками фирмы «1С» при аудите, который дополнительные отчеты и обработки должны успешно пройти для того, чтобы быть допущенными к использованию в сервисе.
Рекомендуем ознакомиться со статьей о наиболее распространенных ошибках и затруднениях при подготовке расширений конфигурации, дополнительных отчетов и обработок.
Дополнительный отчет или обработка создаются на локальном компьютере разработчика с помощью конфигуратора «1С:Предприятие 8» как внешние отчеты и обработки и сохраняются в файл. Стандартное расширение имени этого файла:
epf — для дополнительных обработок;
erf — для дополнительных отчетов.
Дополнительный отчет или обработка, предназначенные для работы в модели сервиса по облачной технологии 1сFresh, должны быть разработаны в соответствии с требованиями подсистемы ДополнительныеОтчетыИОбработки библиотеки стандартных подсистем (БСП). Подробно с этими требованиями можно ознакомиться здесь и здесь.
Для дополнительного отчета или обработки должны соблюдаться стандарты и методики разработки конфигураций для технологической платформы «1С:Предприятие 8», доступные по ссылке.
2. Использование безопасного режима
В функции СведенияОВнешнейОбработке() модуля объекта дополнительного отчета или обработки для параметра ПараметрыРегистрации.БезопасныйРежим необходимо установить значение Истина.
При необходимости использования в дополнительном отчете или обработке операций, не разрешенных в безопасном режиме, следует запрашивать в функции СведенияОВнешнейОбработке нужные разрешения с помощью вызовов функций:
как это показано в обработке _ДемоЗагрузкаНоменклатурыИзПрайсЛистаПрофилиБезопасности из Демонстрационной конфигурации «Библиотека стандартных подсистем» версии 2.4.
Не допускается выполнение кода сторонними, т. е. не входящими в состав конфигурации, средствами.
Не допускается использование COM-объектов, поскольку они не будут функционировать на рабочих серверах сервиса, работающих под управлением Linux.
Допускается использовать только внешние компоненты, входящие в виде макетов в состав конфигурации, для которой разработан дополнительный отчет/обработка.
3. Требования для проведения аудита
Не допускается использование каких-либо средств, затрудняющих или делающих невозможным анализ исходных текстов модулей дополнительного отчета или обработки. В частности, не допускается:
поставлять модули без исходных текстов или с установленным паролем на модуль;
использовать средства запутывания (обфускации) исходных текстов.
4. Требования к ресурсоемкости
Дополнительный отчет/обработка не должны приводить к чрезмерной нагрузке на компоненты сервиса или клиентское приложение.
Предельные значения для каждого серверного вызова в дополнительном отчете или обработке в сервисе 1cfresh.kz:
Параметр
Предельное значение
Длительность серверного вызова
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. О безопасности данных пользователя
Не предоставляйте конечному пользователю такие обработки, с помощью которых он сможет испортить данные в своем приложении. Примеры:
универсальные «перенумераторы» и «перепрефиксаторы»;
поиск и замена значений;
универсальные редакторы значений реквизита;
удаление помеченных объектов без контроля ссылочной целостности.
Желательно четко ограничивать функциональность дополнительных обработок, которые меняют данные пользователя. Например, если пользователю нужно перенумеровать кассовые документы, сделайте дополнительную обработку, которая будет делать именно это, без лишней универсальности.
Ваша личная информация под надежной защитой. Ваш браузер соединяется с сайтом по защищенному протоколу HTTPS. Сайт использует SSL-шифрование для всех передаваемых данных.
Ваше приложение готовится к использованию. Пожалуйста, подождите.