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

Рекомендации по подготовке расширений конфигурации, дополнительных отчетов и обработок

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

Содержание

1. Рекомендации по подготовке расширений конфигурации

2. Рекомендации по подготовке дополнительных отчетов и обработок

3. Как использовать методы, запрещенные в безопасном режиме

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

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

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

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

1. Рекомендации по подготовке расширений конфигурации

1.1. Основные причины отказа

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

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

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

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

1.3. Полезная информация

  • Необходимо выполнять требования, указанные в Руководстве разработчика «1С:Предприятия 8.3»: глава «Расширение конфигурации» (см. по ссылке).
  • Если расширение содержит формы, разработчик должен обеспечить их работоспособность в веб-клиенте под всеми веб-браузерами, поддерживаемыми технологической платформой «1С:Предприятие 8».

2. Рекомендации по подготовке дополнительных отчетов и обработок

2.1. Основные причины отказа

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.5. Отладка дополнительного отчета/обработки

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

Открывайте и проверяйте обработку не c правами администратора, а с набором прав тех пользователей, которые будут использовать обработку.

3. Как использовать методы, запрещенные в безопасном режиме

3.1. Безопасный режим

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

В безопасном режиме запрещены следующие операции:

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

3.2. Профили безопасности

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

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

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

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

Подробнее о профилях безопасности можно прочесть в документации по «1С:Предприятию» по ссылке и в разделах Профили безопасности глав «Настройка и использование подсистем при разработке конфигурации» и «Программный интерфейс» документации Библиотеки стандартных подсистем (БСП), см. здесь и здесь.

3.3. Какие небезопасные методы можно, и какие нельзя использовать

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

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

Запрещается использовать:

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

Учтите, что небезопасные операции запрещены только на сервере!

3.4. Запрос разрешений для расширений конфигурации

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

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

3.5. Запрос разрешений для дополнительных отчетов и обработок

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

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

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

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

  2. В функции СведенияОВнешнейОбработке дополнительного отчета или обработки указывайте режим работы дополнительного отчета или обработки Безопасный.

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

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

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

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

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

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

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

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-шифрование для всех передаваемых данных.
Иконка ожидания Ваше приложение готовится к использованию. Пожалуйста, подождите.
Наверх