Куперс

Бухучет и анализ

Установлен безопасный режим выполнение операции запрещено 1С

Содержание

При запуске программы Загрузка документов под обычным пользователем возникает ошибка «Установлен безопасный режим. Выполнение операции запрещено».

Эта сложность возникает т.к. для запуска внешней обработки недостаточно прав. Для настройки прав доступа зайдите в базу в режиме 1С Предприятие от имени Администратора и перейдите в раздел Настройки пользователей и прав / Профили групп доступа, нажмите Создать группу.

Введите название группы и отметьте галочками доступные пользователям этой группы роли —

  • Интерактивное открытие внешних отчетов и обработок
  • Использование дополнительных отчетов и обработок

Нажмите Записать и закрыть

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

Чтобы пользователи могли запустить обработку рекомендуется добавить Загрузку документов к списку внешних обработок. Для этого в меню Администрирование / Печатные формы и обработки / Дополнительные отчеты и обработки создайте новую обработку. Укажите путь к файлу ‘ЗагрузкаДокументов.epf’ и присвойте имя. Укажите размещение обработки в меню, откуда пользователь сможет запустить ее в дальнейшем, например выберите меню Справочники

Нажав на пункт Быстрый доступ вы указываете, кому из пользователей доступна обработка:

После настройки нажмите Записать и закрыть. Для запуска обработки пользователям достаточно будет заново зайти в базу и открыть ее из меню доступа (в примере — Справочники) и нажать Выполнить.

Откройте Меню — Все функции… и найдите в списке параметр «Используются профили безопасности» .

Достаточно снять флаг с опции «Используются профили безопасности».

После этого программа будет запускаться успешно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Открывайте и проверяйте обработку не 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С:ИТС .

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

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

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

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

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

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

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

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

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

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

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

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

Правильно:

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

При этом:

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

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

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

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

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

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

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

    ОбменДанными.Загрузка = Истина

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

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. Все действия в процедурах-обработчиков событий ПередЗаписью, ПриЗаписи, ПередУдалением должны выполняться после проверки на ОбменДанными.Загрузка :

Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

// код обработчика
// .
КонецПроцедуры

Это необходимо для того, чтобы никакая бизнес-логика объекта не выполнялась при записи объекта через механизм обмена данными, поскольку она уже была выполнена для объекта в том узле, где он был создан. В этом случае все данные загружаются в ИБ «как есть», без искажений (изменений), проверок или каких-либо других дополнительных действий, препятствующих загрузке данных.

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

Например, требуется загрузить всю базу из XML «как есть». Для этого должно быть достаточно установить записываемым объектам ОбменДанными.Загрузка = Истина и все данные должны загрузиться без искажений, проверок и дополнительных действий, т. е. так же как и при пустом обработчике.

2. Исключение составляет механизм обмена данными, который в ходе загрузке данных в базу регистрирует эти данные к выгрузке на других узлах плана обмена.

В тех случаях, когда в конфигурации используется подсистема «Обмен данными» БСП, и возникла необходимость отключить ее, следует устанавливать дополнительное свойство ОтключитьМеханизмРегистрацииОбъектов :

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

3. Требования выше также распространяются на обработчики подписок на эти события.

4. При этом вызывающая сторона, выставляя записываемому объекту признак ОбменДанными.Загрузка в Истина , берет на себя ответственность за целостность данных этого объекта.

Например, при записи объекта через механизм обмена данными в РИБ это обеспечивается корректным состоянием объекта в том узле, где он был создан (или изменен).

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

Что такое ОбменДанными.Загрузка = Истина, как использовать ОбменДанными.Загрузка.

ОбменДанными.Загрузка

ОбменДанными.Загрузка — атрибут любого объекта в системе 1С предприятие. Он позволяет обозначить при записи объекта, что необходимо отключить любые проверки (в т.ч проверки на уровне платформы 1С). Сделано это было для того, чтобы избежать конфликтов при обмене данных.

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

Если ОбменДанными.Загрузка = Истина Тогда
Возврат;
КонецЕсли;

Получите 267 видеоуроков по 1С бесплатно:

Это является хорошим тоном среди разработчиков 1С.

Контроль записи в стандартных обработках 1С

Если Вы когда-либо пользовались стандартными обработками 1С (например, Поиск и замена значений, Групповая обработка данных, Универсальный обмен данных и т.п), Вы наверное замечали настройку, которая называется обычно «Контроль записи». Эта настройка как раз отвечает за включение/выключение атрибута «ОбменДанными.Загрузка».

Как установить режим ОбменДанными Загрузка

Использовать этот атрибут очень удобно в программном коде, для отключения всех проверок. Например, данный атрибут необходим, если Вам нужно записать объект, но он имеет незаполненные обязательные реквизиты. Это можно также использовать как способ увеличить скорость массовой обработки данных — если Вы отключаете все проверки, система записывает объект быстрее.

КонтрагентСсылка = Справочники.Контрагенты.НайтиПоНаименованию(«Рога и копыта»);

КонтрагенОбъект.Наименование = «Рога и копыта LTD.»

Азы настройки обмена данными в 1С с помощью конфигурации «1С Конвертации данных» на примере смотрите в видео:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, в среднем: 0 из 5)

Поддержите нас, расскажите друзьям!

СПРОСИТЕ в комментариях!

В случае восстановления последовательности не отрабатывает. К документам программного доступа нет. Косяк.

Игорь Косяк, в типовых конфигурациях в процедурах «ПередЗаписью» и «ПриЗаписи» сначала проверяется условие «ОбенДанными.Загрузка = Истина» и если условие соблюдается происходит отрабатывает оператор «Возврат», т.е. не выполняются дальнейшие операторы (а это могут быть проверки, формирование движений по регистрам, изменение последовательностей и др.). Другими словами при таком режиме только сохраняются реквизиты объекта и его табличные части

Однако, есть подводный кирпич.
Если вдруг, случайно, вам возжелалось по-быстрому грохнуть пару-тройку тысяч неудачно загруженных документов, то можно получить неприятный побочный эффект. К примеру:
Имеем бух, документы поступление товаров+ дополнительные сведения у каждого документа. При включенном режиме загрузка = истина документы шустренько так удаляются, раза в 4…6 быстрее чем по нормальному, Однако, в регистре сведений Дополнительные сведения остаются записи . А пачемушта? А патамушта, в р.с. Доп.св. Измерение Объект ( со ссылкой на поступление товара) является ведущим и при удалении объекта (в смысле приходной накладной) должно само удаляться, а загрузка = истина отключает эту системную фичу. Так что приходится подчищать хвосты врукопашную.

Подстава №2: В режиме загрузки документы не проводятся. Пишет что
«Действие не может выполняться в режиме загрузки данных».

В некоторых типовых конфигурациях фирмы 1С существует возможность ручной корректировки движений документа по регистрам. В конфигурации 1С: Бухгалтерия 8 для этого, при наличии соответствующих прав, нужно открыть движения документа и установить флаг «Ручная корректировка”. Однако, иногда возникает необходимость выполнить корректировку движений большого количества документов. В этом случае нам понадобится обработка, которая изменит движения документов без перепроведения.

Рассмотрим как изменить движения документа на примере конфигурации 1С: Бухгалтерия 8. Менять будем движения по регистру бухгалтерии «Хозрасчетный”. Пусть перед нами стоит задача заполнить суммы налогового учета по данным бухгалтерского. Предположим, что у нас уже есть обработка, которая выбирает необходимые нам документы и последовательно обрабатывает их с помощью описанной нами процедуры «ИзменитьДвиженияДокумента”. Посмотрим как должна выглядеть эта процедура.

Хотелось бы отметить, что без проверки ведения налогового учета на счёте, при попытке записать набор, содержащий проводку с ненулевой суммой по счёту на котором не ведется налоговый учет, возникнет ошибка следующего содержания:

Запись не верна! Поле «Сумма (налоговый учет)” должно быть пустым! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)

Режим обмена данными устанавливается следующими строками:

Это необходимо для того, чтобы не выполнялся программный код, находящийся в обработчиках событий «ПередЗаписью” модуля набора записей регистра бухгалтерии «Хозрасчетный” и модуля корректируемого документа. В каждом из них (для типовых конфигураций) есть проверка следующего вида:

Признак ручной корректировки документа (ДокументОбъект.РучнаяКорректировка = Истина) необходимо устанавливать для того, чтобы изменения сохранились при повторном проведении документа. При проведении такого документа в конфигурации 1С:Бухаглерия 8 выдается следующее сообщение:

Движения документа отредактированы вручную и не могут быть автоматически актуализированы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх