Часто задаваемые вопросы
Все темы Напишите письмо Закрыть
?
Круглосуточная поддержка8 (800) 333-72-27
× Логин или пароль введены неправильно. Попробуйте еще раз.

Как быстро пройти аудит расширения, дополнительного отчета или обработки?

В этой статье даны советы о том, как быстро пройти аудит расширения, дополнительного отчета или обработки, каковы наиболее распространенные ошибки при их подготовке.

Содержание

1. Основные причины отказа для дополнительных отчетов и обработок

2. Основные причины отказа для расширений конфигурации

3. Использование безопасного режима

4. Вопросы производительности

5. Универсальные обработки и расширения

6. Использование временных файлов

7. Прочие вопросы

1. Основные причины отказа для дополнительных отчетов и обработок

90% дополнительных отчетов и обработок не проходят аудит по следующим причинам:

  1. Не заполнена справочная информация.
  2. Неправильное подключение дополнительного отчета/обработки к БСП.
  3. Дополнительный отчет или обработка не предназначены для выполнения в безопасном режиме.
  4. Дополнительный отчет или обработка не подготовлены к использованию в  сервисе.
  5. Неверное обращение к дополнительному отчету/обработке из кода.

1.1. Справочная информация дополнительного отчета и обработки

Справочная информация дополнительного отчета и обработки необходима:

  1. Для пользователя дополнительного отчета и обработки. В частности, в справочной информации должны быть указаны:

    • все ограничения дополнительного отчета/обработки, например, работа только в тонком клиенте;
    • порядок заполнения реквизитов, использования команд дополнительного отчета/обработки.
  2. Для аудитора дополнительного отчета и обработки:

    • без подробно заполненной справочной информации аудитору будет труднее разобраться в дополнительном отчете/обработке, поэтому аудит будет выполняться дольше;
    • дополнительные отчеты и обработки бывают очень большими и сложными, и тогда без подробного и тщательного описания деталей реализации их аудит будет затруднен.

Пожалуйста, отнеситесь к справочной информации дополнительного отчета и обработки, как к проектному документу. Из нее должно быть понятно отличие от штатного функционала и детали реализации.

Частые формулировки отказа:

  • Не заполнена справочная информация обработки.
  • Справочная информация обработки заполнена формально.

1.2. Подключение дополнительного отчета/обработки к БСП

Регистрация дополнительного отчета или обработки в информационной базе происходит на основании параметров регистрации, которые поставляет отчет/обработка. Эти параметры регистрации должны формироваться в виде структуры как результат выполнения функции СведенияОВнешнейОбработке модуля отчета/обработки:

Описание полей структуры параметров регистрации приведено в документации БСП по ссылке.

Параметры регистрации включают таблицу команд, поставляемых дополнительным отчетом (дополнительной обработкой):

  • для глобальных дополнительных отчетов/обработок эти команды размещаются в глобальном командном интерфейсе;
  • для назначаемых дополнительных отчетов/обработок эти команды размещаются в контексте тех объектов, для которых они предназначаются, при этом в параметрах регистрации дополнительного отчета/обработки должны быть указаны объекты назначения (массив строк имен объектов метаданных).

Вид дополнительного отчета/обработки, тип использования поставляемых команд должен соответствовать замыслу дополнительного отчета/обработки.

1.3. Обращение к дополнительному отчету/обработке из кода

Следует учесть, что нельзя обращаться к дополнительному отчету/обработке по имени, например:

ВнешняяОбработка.ПерепроведениеДокументовПоследовательно

Дополнительный отчет/обработка подключается информационной базе с другим именем (уникальным идентификатором). Поэтому для формирования обращения к дополнительному отчету/обработке следует в обработчике ПриСозданииНаСервере определить полное имя подключенного отчета/обработки следующим образом:

ПолноеИмяОбъекта = РеквизитФормыВЗначение("Объект").Метаданные().ПолноеИмя();

И далее обращаться к дополнительному отчету/обработке следующим образом:

ПолноеИмяОбъекта + ".ПерепроведениеДокументов"

2. Основные причины отказа для расширений конфигурации

Большинство расширений конфигурации не проходят аудит по следующим причинам:

  • Расширение не предназначено для выполнения в безопасном режиме.
  • Расширение не подготовлено к использованию в  сервисе.
  • Не задана версия расширения

2.1. Особенности расширений конфигурации

  • У расширения должны быть заданы уникальное имя и версия расширения.
  • Разработка должна выполняться на той же версии платформы.
  • Необходима адаптация к безопасному режиму и режиму разделения данных.

3. Использование безопасного режима

Все расширения конфигурации, дополнительные отчеты/обработки выполняются в сервисе в безопасном режиме (подробнее см. по ссылке). Запрещенные операции:

  • Выполнение методов Выполнить() и Вычислить()
  • Привилегированный режим
  • Работа с внешними компонентами
  • Работа с файловой системой, кроме временных файлов
  • COM-объекты (серверный код может выполняться на Linux, мы не можем гарантировать наличие COM-объектов на сервере)
  • Доступ к Интернету

Частые формулировки отказа:

  • К сожалению, в сервисе пока не используются профили безопасности. А без использования профилей в безопасном режиме обработка неработоспособна…
  • УстановитьПривилегированныйРежим(Истина) в безопасном режиме не имеет смысла.

3.1. Запрос разрешений на выполнение небезопасных операций

  • Учтите, что небезопасные операции запрещены только на сервере!
  • При необходимости использования в дополнительном отчете или обработке операций, не разрешенных в безопасном режиме:

    1. запрашивайте в функции СведенияОВнешнейОбработке нужные разрешения с помощью вызовов функций:

      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнегоМодуля
      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты
      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса
      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов
      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаПрограммы
      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы
      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима
      • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПриложенияОперационнойСистемы
      • РаботаВБезопасномРежиме.РазрешениеНаСозданиеCOMКласса

      как это показано в обработке _ДемоЗагрузкаНоменклатурыИзПрайсЛистаПрофилиБезопасности из Демонстрационной конфигурации «Библиотека стандартных подсистем» версии 2.4.

      Описания указанных выше функций см. по ссылке;

    2. указывайте режим работы дополнительного отчета или обработки Безопасный.
  • При отладке дополнительного отчета или обработки открывайте его не через главное меню: ФайлОткрыть, а через интерфейс подсистемы дополнительных отчетов и обработок БСП. Открывайте и проверяйте обработку не c правами администратора, а с набором прав тех пользователей, которые будут использовать обработку.

Примеры запроса разрешений на выполнение небезопасных операций в дополнительных отчетах и обработках вы можете посмотреть по ссылке.

4. Вопросы производительности

Расширения конфигурации, дополнительные отчеты и обработки не должны вызывать деградацию производительности сервиса. Поэтому используемые запросы на встроенном языке должны быть оптимально построены и соответствовать стандартам (подробнее см. здесь и здесь). Типичные причины неоптимальной работы запросов и методы оптимизации запросов рассмотрены в статье 1С:ИТС по ссылке.

Особое внимание следует уделить оптимизации:

  • cоединений с виртуальными таблицами, подзапросами (они могут привести к значительному замедлению запроса);
  • отборов с «ИЛИ»;
  • запросов с получением данных через точку от полей составного ссылочного типа (при выполнении такого запроса будет выполняться соединение со всеми таблицами объектов, входящими в составной тип).

Частые формулировки отказа:

  • Запрос построен неоптимально.
  • Необходимо руководствоваться рекомендациями https://its.1c.ru/db/metod8dev/content/4050/1

При написании расширения конфигурации, дополнительного отчета и обработки необходимо избегать кода, выполнение которого может привести к неоправданно повышенному потреблению процессорного времени. В первую очередь это касается «пустых» циклов:

5. Универсальные обработки и расширения

Следует избегать универсальных расширений конфигурации, дополнительных обработок, особенно если они могут изменять данные пользователей. Следует создавать расширения и обработки, направленные на решение конкретных задач. Универсальные расширения и обработки опасны по следующим причинам:

  • для их использования может быть необходим высокий уровень квалификации пользователей, а его гарантировать невозможно;
  • пользователь может изменить реквизиты служебных объектов или объектов, которые он не собирался менять;
  • возможно нарушение бизнес-логики прикладного решения.

Частые формулировки отказа:

  • Мы не можем разрешить использование универсальных обработок, так как их применение предполагает высокий уровень квалификации пользователей, а гарантировать эту квалификацию невозможно.

6. Использование временных файлов

При доступе к временным файлам необходимо следовать требованиям стандартов, описанным по ссылке. В частности, неправильно писать:

ТемпФайл = "/tmp/temx.txt"

Правильно:

ТемпФайл = ПолучитьИмяВременногоФайла("txt")

При этом:

  • гарантируется уникальность имени временного файла;
  • выполняется автоматическая очистка при рестарте рабочего процесса.

Также необходимо обеспечить удаление временных файлов после использования.

Частые формулировки отказа:

  • Для получения имени временного файла необходимо использовать метод ПолучитьИмяВременногоФайла();
  • Необходимо удалять временные файлы после использования.

7. Прочие вопросы

При разработке расширений конфигурации, дополнительных отчетов и обработок необходимо учитывать следующие требования.

  1. Длительные операции необходимо выполнять в фоновом режиме (подробнее см. по ссылке).
  2. Если пользовательские данные покидают сервис, то пользователь должен дать на это согласие.
  3. Не должна нарушаться штатная логика работы прикладных решений (конфигураций). Не следует отключать штатные механизмы и проверки, например с помощью конструкций вида:

    ОбменДанными.Загрузка = Истина
  4. Не следует скрывать от пользователя системную информацию об ошибках, полученную в операторе ПопыткаИсключение. Без этой информации службе поддержки сервиса будет значительно труднее разбираться в причинах возникновения ошибки.

См. также:

Другие сайты фирмы "1С"

© 2011-2018 ООО "1С-Софт"
Все права защищены. Все торговые марки являются собственностью их правообладателей.
Круглосуточная поддержка:
8 (800) 333-72-27
support@1cfresh.com
Партнерам фирмы "1С":
info@1cfresh.com
RSS
Ваша личная информация под надежной защитой. Ваш браузер соединяется с сайтом по защищенному протоколу HTTPS.
Сайт использует SSL-шифрование для всех передаваемых данных.
Иконка ожидания Ваше приложение готовится к использованию. Пожалуйста, подождите.
Наверх