К дополнительным отчетам и обработкам, которые должны работать в модели сервиса, предъявляются следующие требования.
Общие требования
-
Дополнительный отчет или обработка создаются на локальном компьютере разработчика с помощью конфигуратора «1С:Предприятие 8» как внешние отчеты и обработки и сохраняются в файл. Стандартное расширение имени этого файла:
- epf — для дополнительных обработок;
- erf — для дополнительных отчетов.
- Дополнительный отчет или обработка, предназначенные для работы в модели сервиса по технологии 1сFresh должны быть разработаны в соответствии с требованиями подсистемы ДополнительныеОтчетыИОбработки библиотеки стандартных подсистем (БСП). Подробно с этими требованиями можно ознакомиться здесь и здесь.
- Для дополнительного отчета или обработки должны соблюдаться стандарты и методики разработки конфигураций для технологической платформы «1С:Предприятие 8», доступные по ссылке.
Справочная информация о дополнительном отчете или обработке
- Обязательно должна быть заполнена справочная информация («Справка») по дополнительному отчету или обработке: назначение, набор реквизитов, порядок заполнения и использования и т. п. Эта информация нужна как для пользователя, так и для аудитора — она является проектным документом для аудитора, с нее он начинает работу над аудитом.
- Если дополнительный отчет или обработка предназначены для использования только в тонком клиенте, то в справочной информации о дополнительном отчете или обработке должно быть явно указано это ограничение.
Использование безопасного режима
- Дополнительный отчет/обработка должны быть полностью работоспособны при исполнении в безопасном режиме. Для работоспособности дополнительного отчета или обработки в безопасном режиме необходимо установить в функции СведенияОВнешнейОбработке() модуля объекта дополнительного отчета или обработки для параметра ПараметрыРегистрации.БезопасныйРежим значение Истина.
- Допускается использование расширения безопасного режима библиотеки стандартных подсистем (возможность работать с файлами, с ресурсами сети Интернет и т.д.) через специализированный программный интерфейс с регистрацией разрешений, необходимых дополнительному отчету/обработке. Подробнее см. раздел «Расширения безопасного режима» в документации к версии 2.1.3 библиотеки стандартных подсистем (ссылка).
- При использовании расширения безопасного режима не допускается выполнение кода сторонними, т.е. не входящими в состав конфигурации, средствами. В частности, любое использование COM-объектов, если от них невозможно отказаться, следует отдельно согласовать с администрацией сервиса.
- Допускается использовать только внешние компоненты, входящие в виде макетов в состав конфигурации, для которой разработан дополнительный отчет/обработка.
Использование форм
-
Если дополнительный отчет или обработка содержит формы, разработчик должен обеспечить их работоспособность в веб-клиенте под всеми веб-браузерами, которые поддерживаются технологической платформой «1С:Предприятие 8».
Исключением могут быть дополнительные отчеты или обработки, предназначенные только для использования в тонком клиенте.
- Дополнительный отчет или обработка не должны использовать модальные формы.
- Дополнительный отчет или обработка не должны использовать синхронные клиентские вызовы.
Требования для проведения аудита
-
Не допускается использование каких-либо средств, затрудняющих или делающих невозможным анализ исходных текстов модулей дополнительного отчета или обработки. В частности, не допускается:
- поставлять модули без исходных текстов или с установленным паролем на модуль;
- использовать средства запутывания (обфускации) исходных текстов.
Требования к ресурсоемкости
- Дополнительный отчет/обработка не должны приводить к чрезмерной нагрузке на компоненты сервиса или клиентское приложение.
Требования к работоспособности
- Дополнительный отчет или обработка не должны нарушать корректную работу приложения, в котором они установлены.
- Все длительные операции в дополнительном отчете или обработке должны использовать механизм длительных операций из БСП (при длительности 10 секунд и более).
- Если дополнительный отчет или обработка предназначены только для использования в тонком клиенте, то при запуске в веб-клиенте они должны корректно уведомлять пользователя об этом ограничении, а не завершаться с ошибками.
Требования к передаче данных за пределы сервиса
- Если в дополнительном отчете или обработке выполняется передача любых данных за пределы сервиса, эти операции должны подтверждаться пользователем.
- Если на этапе разработки дополнительного отчета или обработки существует возможность определить ресурсы сети Интернет, к которым будет выполняться обращение, необходимо реализовать запрос разрешений в программном интерфейсе дополнительного отчета и обработки. Такой запрос должен дать возможность пользователю еще перед установкой отчета или обработки ознакомиться, к каким ресурсам будет выполняться передача данных этим отчетом или обработкой.
-
Если определить ресурсы сети Интернет, к которым будет выполняться обращение, невозможно, то:
- для дополнительных отчетов или обработок, содержащих формы, перед выполнением операции следует запрашивать разрешение у пользователя (возможно, с сохранением полученного ответа). При запросе разрешения следует явно указывать, к каким ресурсам сети Интернет будет осуществляться обращение;
-
для дополнительных отчетов/обработок, не содержащих форм (например, предназначенных для использования в качестве регламентного задания), рекомендуется:
- по умолчанию не выполнять операцию в коде серверной команды;
- создавать дополнительную команду с типом вызова Открытие формы, в которой реализовывать запрос подтверждения;
- начинать выполнение операции в серверном коде только после подтверждения пользователем выполнений операций.
Юридические требования
Дополнительный отчет или обработка не должны содержать:
- Кода, который может повлечь порчу данных или дестабилизировать работоспособность сервиса.
- Кода и данных, которые могут нарушать права третьих лиц, в том числе их авторское право.
- Охраняемые законом сведения, в том числе коммерческую тайну или персональные данные третьих лиц.
Требования к тестированию
После того, как дополнительный отчет или обработка разработаны, разработчик должен их проверить. Для проверки необходимо:
- Развернуть сервер «1С:Предприятия 8» той же версии, которая используется в сервисе.
- Развернуть клиент-серверную информационную базу той конфигурации, для которой предназначен дополнительный отчет или обработка, и той версии конфигурации, которая используется в сервисе.
- Выполнить веб-публикацию этой информационной базы (кроме случая, когда дополнительный отчет или обработка предназначены только для работы в тонком клиенте).
- Для каждого профиля пользователя, под которым в модели сервиса будет выполняться дополнительный отчет или обработка, необходимо создать в информационной базе пользователя с таким же набором ролей, но без роли АдминистраторСистемы (эта роль при работе в модели сервиса у обычных, т. е. разделенных, пользователей недопустима).
- Запускать дополнительный отчет или обработку в тонком клиенте и в веб-клиенте (если дополнительный отчет или обработка содержит формы, кроме случая, когда дополнительный отчет или обработка предназначены только для работы в тонком клиенте), под созданными в п. 4 пользователями. Для запуска следует испольовать не главное меню (команду Файл — Открыть), а интерфейс дополнительных отчетов и обработок БСП.
Для каждого пользователя, созданного в п. 4, необходимо проверить:
- загружается ли вообще дополнительный отчет или обработка в локальную информационную базу;
- работоспособность и корректность выполнения функционала, заложенного в дополнительный отчет или обработку.
Методические рекомендации
Рекомендации по разработке
-
При разработке дополнительного отчета или обработки рекомендуется использовать:
- ту же версию платформы «1С:Предприятие 8», которая используется в сервисе;
- ту же версию конфигурации прикладного решения, для которого разрабатывается дополнительный отчет или обработка, которая используется в сервисе;
- библиотеку стандартных подсистем (БСП) той версии, которая внедрена в испольуемую версию конфигурации прикладного решения, или более новую. Версии БСП можно скачать по ссылке.
- Используйте программный интерфейс БСП и прикладных конфигураций. При этом вам не придется переписывать код дополнительного отчета или обработки каждый раз после обновления типовых конфигураций.
- Если дополнительный отчет или обработка содержит формы, «выдерживайте» их в стиле типовой конфигурации. Например, если в конфигурации принято команду «Записать и закрыть» располагать в верхней части формы, не размещайте ее в нижней части формы дополнительного отчета или обработки.
- В дополнительном отчете или обработке не должно быть неиспользуемых элементов (программного кода, макетов, форм).
- Не «перегружайте» дополнительный отчет или обработку. По возможности, придерживайтесь минимализма: чем больше объектов и кода, тем больше вероятность ошибок.
- Соблюдайте стандарты разработки (см. по ссылке).
Имена метаданных дополнительного отчета или обработки
- При разработке дополнительных отчетов и обработок для модели сервиса следует учитывать что имя метаданных дополнительного отчета и обработки может быть произвольным, а соответственно и полные имена всех форм дополнительного отчета и обработки.
- Получить имя объекта метаданных можно на сервере методом РеквизитФормыВЗначение(ИмяОсновногоРеквизита).Метаданные().ПолноеИмя()
-
Если при работе в модели сервиса при открытии дочерней формы дополнительного отчета или обработки возникает ошибка Неизвестное имя формы, то это скорее всего связано с неправильным использованием имен форм в дополнительном отчете или обработке.
О копировании кода из типовой конфигурации
- Если в типовой конфигурации есть готовая функция, которую можно вызвать, копировать ее в дополнительный отчет или обработку не нужно.
-
Если код, который есть в типовой конфигурации, подходит не полностью, очень осмотрительно подходите к вопросу копирования существующего кода:
- при обнаружении и исправлении ошибки в скопированном коде эта ошибка у пользователей дополнительного отчета или обработки не будет исправлена. В этом случае ответственность за своевременное исправление ошибок для пользователей вы берете на себя;
- по мере развития конфигурации ранее скопированный код может испортить данные пользователей.
Заполнение справочной информации
-
Следует ясно и понятно указывать справочную информацию о дополнительном отчете или обработке. Это необходимо:
- для пользователя — чтобы понять, как следует использовать дополнительный отчет или обработку;
- для аудитора — эта информация является своеобразным «проектным документом», с которого он начинает аудит дополнительного отчета или обработки.
Работа с базой данных
- При связанном изменении нескольких элементов данных, которое должно происходить атомарно, используйте транзакции.
- При изменении данных, которые могут редактироваться пользователями параллельно с выполнением дополнительного отчета или обработки, устанавливайте объектные блокировки.
- Обязательно уделяйте внимание оптимальности запросов: учитывайте, что, в отличие от локального режима, информационная база в сервисе используется большим количеством пользователей. Подробнее об оптимизации запросов см. в статье ИТС по ссылке.
Работа в веб-клиенте
- Если действия на сервере могут выполняться продолжительное время, используйте механизм длительных операций БСП. В противном случае приложение может закрыться по ошибке таймаута веб-сервера.
- Если дополнительный отчет или обработка могут вызываться при работе в веб-клиенте, то все ключевые возможности дополнительного отчета или обработки должны быть доступны пользователям без использования расширения работы с файлами.
О безопасности данных пользователя
-
Не предоставляйте конечному пользователю такие обработки, с помощью которых он сможет испортить данные в своем приложении. Примеры:
- универсальные «перенумераторы» и «перепрефиксаторы»;
- поиск и замена значений;
- универсальные редакторы значений реквизита;
- удаление помеченных объектов без контроля ссылочной целостности.
- Желательно четко ограничивать функциональность дополнительных обработок, которые меняют данные пользователя. Например, если пользователю нужно перенумеровать кассовые документы, сделайте дополнительную обработку, которая будет делать именно это, без лишней универсальности.