Frequently Asked Questions | Write an email | close |
В этой статье даны советы о том, как следует подготавливать расширения конфигурации, дополнительные отчеты и обработки для работы в сервисе, чтобы обеспечить их надлежащее качество и чтобы они могли быстро пройти аудит.
1. Рекомендации по подготовке расширений конфигурации
2. Рекомендации по подготовке дополнительных отчетов и обработок
3. Как использовать методы, запрещенные в безопасном режиме
5. Универсальные обработки и расширения
В расширениях конфигурации, не прошедших аудит, в большинстве случаев обнаруживается, что:
В дополнительных отчетах и обработках, не прошедших аудит, в большинстве случаев обнаруживается, что:
Регистрация дополнительного отчета или обработки в информационной базе происходит на основании параметров регистрации, которые поставляет отчет/обработка. Эти параметры регистрации должны формироваться в виде структуры как результат выполнения функции СведенияОВнешнейОбработке модуля отчета/обработки:
Описание полей структуры параметров регистрации приведено в документации БСП по ссылке.
Параметры регистрации включают таблицу команд, поставляемых дополнительным отчетом (дополнительной обработкой):
Вид дополнительного отчета/обработки, тип использования поставляемых команд должен соответствовать замыслу дополнительного отчета/обработки.
Следует учесть, что нельзя обращаться к дополнительному отчету/обработке по имени, например:
ВнешняяОбработка.ПерепроведениеДокументовПоследовательно
Дополнительный отчет/обработка подключается информационной базе с другим именем (уникальным идентификатором). Поэтому для формирования обращения к дополнительному отчету/обработке следует в обработчике ПриСозданииНаСервере определить полное имя подключенного отчета/обработки следующим образом:
ПолноеИмяОбъекта = РеквизитФормыВЗначение("Объект").Метаданные().ПолноеИмя();
И далее обращаться к дополнительному отчету/обработке следующим образом:
ПолноеИмяОбъекта + ".ПерепроведениеДокументов"
При отладке дополнительного отчета или обработки открывайте его не через главное меню: Файл — Открыть, а через интерфейс подсистемы дополнительных отчетов и обработок БСП.
Открывайте и проверяйте обработку не c правами администратора, а с набором прав тех пользователей, которые будут использовать обработку.
Все расширения конфигурации, дополнительные отчеты/обработки выполняются в сервисе в безопасном режиме с использованием профилей безопасности.
В безопасном режиме запрещены следующие операции:
Некоторые действия, запрещенные в безопасном режиме, могут быть разрешены с помощью профилей безопасности.
Профиль безопасности — это набор явно заданных разрешений на выполнение определенных действий, который можно назначать информационным базам, расширениям конфигурации, дополнительным отчетам и обработкам. Профили безопасности хранятся в кластере серверов «1С:Предприятия».
Профили безопасности автоматически формируются (при необходимости) для расширений конфигурации, дополнительных отчетов и обработок, загружаемых в сервис:
Подробнее о профилях безопасности можно прочесть в документации по «1С:Предприятию» по ссылке и в разделах Профили безопасности глав «Настройка и использование подсистем при разработке конфигурации» и «Программный интерфейс» документации Библиотеки стандартных подсистем (БСП), см. здесь и здесь.
В расширениях конфигурации, дополнительных отчетах и обработках, предназначенных для использования в сервисе 1cfresh.com, можно использовать следующие небезопасные операции:
Запрещается использовать:
Учтите, что небезопасные операции запрещены только на сервере!
Если в расширении конфигурации используются операции, не разрешенные в безопасном режиме, то при загрузке версии расширения в сервис необходимо указать необходимые разрешения на выполнение небезопасных операций (подробнее см. в статье по ссылке):
Разрешения на доступ к внешним компонентам, входящим в состав конфигурации, запрашивать не надо, они будут предоставлены автоматически.
При необходимости использования в дополнительном отчете или обработке операций, не разрешенных в безопасном режиме:
Запрашивайте в функции СведенияОВнешнейОбработке дополнительного отчета или обработки нужные разрешения с помощью вызовов функций:
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса
Описания указанных выше функций см. по ссылке. Пример использования вызовов этих функций показан в обработке _ДемоЗагрузкаНоменклатурыИзПрайсЛистаПрофилиБезопасности из Демонстрационной конфигурации «Библиотека стандартных подсистем».
Расширения конфигурации, дополнительные отчеты и обработки не должны вызывать деградацию производительности сервиса. Поэтому используемые запросы на встроенном языке должны быть оптимально построены и соответствовать стандартам (подробнее см. здесь и здесь). Типичные причины неоптимальной работы запросов и методы оптимизации запросов рассмотрены в статье 1С:ИТС по ссылке.
Особое внимание следует уделить оптимизации:
Частые формулировки отказа:
При написании расширения конфигурации, дополнительного отчета и обработки необходимо избегать кода, выполнение которого может привести к неоправданно повышенному потреблению процессорного времени. В первую очередь это касается «пустых» циклов:
Следует избегать универсальных расширений конфигурации, дополнительных обработок, особенно если они могут изменять данные пользователей. Следует создавать расширения и обработки, направленные на решение конкретных задач. Универсальные расширения и обработки опасны по следующим причинам:
Частые формулировки отказа:
При доступе к временным файлам необходимо следовать требованиям стандартов, описанным по ссылке. В частности, неправильно писать:
ТемпФайл = "/tmp/temx.txt"
Правильно:
ТемпФайл = ПолучитьИмяВременногоФайла("txt")
При этом:
Также необходимо обеспечить удаление временных файлов после использования.
Частые формулировки отказа:
При разработке расширений конфигурации, дополнительных отчетов и обработок необходимо учитывать следующие требования.
Не должна нарушаться штатная логика работы прикладных решений (конфигураций). Не следует отключать штатные механизмы и проверки, например с помощью конструкций вида:
ОбменДанными.Загрузка = Истина
Аудит расширений конфигурации, дополнительных отчетов и обработок
Требования к дополнительным отчетам и обработкам
Требования к расширениям конфигурации
Как добавить для своего клиента расширение, дополнительный отчет или обработку?
Примеры дополнительных отчетов и обработок
Доработка прикладных решений с помощью расширений конфигурации