Разрешить открытие внешних обработок 1с. Павел чистов. Запуск внешней обработки в режиме обычного приложения
Всем привет. Через поиск ничего похожего не нашел, если не прав - ткните носом, буду благодарен.
БП 3.0 (3.0.59.54), платформа 8.3.10.2580. Есть необходимость запустить обработку "УниверсальныйОбменДаннымиXML". Она входит в конфигурацию и ее можно открыть через " " но только под ролью администратора. Но есть необходимость делать это под обычным пользователем. Снимать с поддержки и править права очень не хочется. Сохранил её как внешнюю, отключил проверку прав доступа в коде, открываю под обычным пользователем через меню "Файл" - все нормально открывается. Само собой, это не есть удобно и хочется подключить ее через "Дополнительные ". Ок, добавляю описание через процедуру ПриСозданииНаСервере, подключаю, вывожу в интерфейс пользователя и.. получаю болт. Окно обработки не открывается. Вернее открывается на долю секунды и тут же закрывается. Причем происходит это независимо от прав пользователя, в том числе и под администратором. Может кто подскажет, куда копать?
Код проверки модуля формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверка прав доступа должна располагаться самой первой.
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
//ВызватьИсключение НСтр("ru = "Использование обработки в интерактивном режиме доступно только администратору."");
КонецЕсли;
Код функции СведенияОВнешнейОбработке
#Область ОписаниеОбработки
Функция СведенияОВнешнейОбработке() Экспорт
// Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
ПараметрыРегистрации = Новый Структура;
// Объявим еще одну переменную, которая нам потребуется ниже
МассивНазначений = Новый Массив;
// Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
// Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
// Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ
// Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе,
// которые поддерживают механизм ВПФ
МассивНазначений.Добавить("Подсистемы.Администрирование");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
// Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Наименование", "Универсальный обмен данными ");
// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
// Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Обработка для обмена данными между произвольными базами 1С");
// Создадим таблицу команд (подробнее смотрим ниже)
ТаблицаКоманд = ПолучитьТаблицуКоманд();
// Добавим команду в таблицу
ДобавитьКоманду(ТаблицаКоманд, "Универсальный обмен данными XML", "УправляемаяФорма", "ОткрытиеФормы");
// Сохраним таблицу команд в параметры регистрации обработки
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
// Теперь вернем системе наши параметры
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
// Создадим пустую таблицу команд и колонки в ней
Команды = Новый ТаблицаЗначений;
// Как будет выглядеть описание печатной формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
// Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
// Тут задается, как должна вызваться команда обработки
// Возможные варианты:
// - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
// - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
// - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
// Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
// Для печатной формы должен содержать строку ПечатьMXL
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
#КонецОбласти
Бывает, что для работы необходимо воспользоваться внешней обработкой или отчетом, но не всегда это сразу удается. Иногда при попытке открыть внешнюю обработку либо отчет с помощью пункта меню «Файл» и далее - «Открыть» возникает сообщение об ошибке, заключающейся в нарушении прав доступа.
Но сначала рассмотрим, как вообще открываются внешние отчеты и обработки в «1С:Бухгалтерии 8.3 » версии 3.0. Обычно они представляют собой скачанный из Интернета или полученный другим способом архив. После того, как он будет сохранен, например, на рабочий стол, с помощью двойного щелчка мы сможем увидеть его содержимое.
Действия для обычного интерфейса:
- Нажимаем на нужный файл правой кнопкой мышки, выбираем пункт контекстного меню «Копировать».
- Возвращаемся на рабочий стол, нажимаем правой кнопкой на свободное место и выбираем «Вставить» (или просто перетаскиваем файл из архива на рабочий стол).
- Можно также извлечь файл из архива сразу в нужное место на диске (в нашем примере это рабочий стол).
- Теперь выбираем файл с обработкой на рабочем столе и нажимаем «Открыть».
- Обработка будет открыта в программе, и ею можно будет пользоваться.
Действия для управляемого интерфейса (например, «Такси»)
- Открываем непосредственно из файла.
- В меню выбираем пункт «Файл», далее - «Открыть».
- В открывшемся окне переходим на рабочий стол, выбираем файл обработки и нажимаем «Открыть».
Для большего удобства можно создать специальную папку для обработок и все их хранить в ней.
Если же открыть обработку или отчет не получается, можно воспользоваться одним из двух вариантов действий.
Первый способ
Можно зарегистрировать обработку в справочнике, называющемся «Дополнительные отчеты и обработки». Итак, регистрируем обработку в базе.
- Заходим в раздел администрирования, выбираем из списка пункт печатных форм, отчетов и обработок.
- В появившемся окне ставим галочку в пункте «Дополнительные отчеты и обработки» и открываем ссылку с аналогичным названием.
- В новом окне нажимаем на «Создать».
- Читаем предупреждение безопасности и нажимаем «Продолжить».
- В следующем окне выбираем место нахождения файла с обработкой и нажимаем «Открыть».
Важно!
Если на этом этапе появится ошибка с текстом: «Невозможно подключить дополнительную обработку из файла...», придется воспользоваться вторым способом, описанным ниже.
- Если ошибки не возникло, находим в «Командах» пункт «Размещение».
- В окне «Разделы командного интерфейса» отмечаем галочкой раздел операций.
- В таблице находим «Быстрый доступ» и открываем его.
- Выбираем всех пользователей и нажимаем «ОК».
- Нажимаем кнопку «Записать и закрыть».
Обработка успешно зарегистрирована. Чтобы ее открыть, потребуется зайти в раздел операций, выбрать пункт дополнительных обработок, выделить нужную и нажать на «Выполнить».
Второй способ
Если обработка не поддерживает описанную в первом варианте регистрацию, можно поступить по-другому, а именно: снова включить возможность открывать обработки в базе с помощью меню «Файл» правой кнопкой мышки «Открыть».
- Заходим в конфигуратор базы.
- Выбираем в меню «Администрирование», далее - «Пользователи».
- Двойной щелчок по нужному пользователю.
- Переходим на закладку с названием «Прочие».
- Устанавливаем галочку на «Интерактивном открытии внешних отчетов и обработок».
- Нажимаем «ОК».
- Закрываем конфигуратор, а также, если она была открыта, базу.
- Снова заходим в базу и открываем нужный нам отчет в меню «Файл» с помощью команды «Открыть».
В этой статье речь пойдет о настройке прав доступа пользователей к объектам системы 1С.
В 1С 8для управления доступа пользователей используется отдельный объект метаданных, который называется Роли.
Обратите внимание! Эта статья написана в помощь программистам. Настройка прав в пользовательском режиме на примере 1С Бухгалтерия рассмотрена в .
Роль определяет набор прав пользователя, которые он имеет. Механизм ролей очень похож на механизмы прав Windows Active Directory. Для каждого из объектов (справочники, документы) разработчик устанавливает свой набор прав — чтение/запись/добавление/изменение/…
Набор доступных прав — совокупность всех разрешений в ролях пользователя .
Если открыть объект метаданных Роль, мы можем увидеть следующую картину:
У объекта есть две закладки — Права и Шаблоны ограничений. Права — основная закладка, Шаблоны — вкладка для настройки прав на уровне записи в 1С (RLS ). Это очень важная тема, её я постараюсь описать в будущих статьях.
Будем рассматривать только вкладку Права .
- Объекты — список , на которые будут устанавливаться права.
- Права — список возможных для установки настроек прав.
- Ограничение доступа к данным — поля роли для настройки
Следует обратить внимание на галочки в нижней части:
- Устанавливать права для новых объектов — если флаг установлен у роли, на новые объекты метаданных будут автоматически установлены разрешающие права. Рекомендую установить, если Вы часто забываете установить права на новые объекты.
- Устанавливать права для реквизитов и табличных частей по умолчанию — флаг, при установке которого реквизиты и табличные части будут наследовать права владельца(справочника, документа и т.д.)
- Независимые права подчиненных объектов — если флаг установлен, то система при определении права на объект конфигурации учтёт права на родительский объект
Настройки прав на всю конфигурацию
Если открыть Роль и кликнуть на корень конфигурации, мы увидим следующие настройки:
Подробнее о каждом из прав на всю конфигурацию :
Получите 267 видеоуроков по 1С бесплатно:
- Администрирование — администрирование информационной базы (требуется наличие права «Администрирование данных»)
- Администрирование данных — право на административные действия над данными
- Обновление конфигурации базы данных — право на
- Монопольный режим — использование монопольного режима
- Активные пользователи — просмотр списка активных пользователей
- — журнал регистрации
- — право запуска тонкого клиента
- — право запуска веб-клиента
- Толстый клиент — право роли запуска толстого клиента
- Внешнее соединение — право запуска внешнего соединения
- Automation — право на использование automation
- Режим «Все функции» — в режиме управляемого приложения
- Сохранение данных пользователя — разрешение или запрет на сохранение данных пользователя (настроек, избранного, истории). Особенно актуально для 1С управляемых форм.
- Интерактивное открытие внешних обработок — открытие внешних обработок
- Интерактивное открытие внешних отчетов — открытие внешних отчетов
- Вывод — вывод на печать, запись и копирование в буфер обмена
Настройка прав 1С 8.2 на другие объекты метаданных
Для остальных основных объектов (справочники, константы, документы, регистры…), набор прав у роли достаточно стандартен:
- Чтение — чтение (программное)
- Добавление — добавление (программное)
- Изменение — изменение (программное)
- Удаление — удаление (программное)
- Просмотр — просмотр
- Интерактивное добавление — интерактивное добавление
- Редактирование — редактирование
- Интерактивная пометка удаления — интерактивная пометка на удаление
- Интерактивное снятие пометки удаления — снятие пометки на удаление
- Интерактивное удаление помеченных — удаление помеченных объектов
- Ввод по строке — использование режима ввода по строке
- Интерактивное удаление — непосредственное удаление (shift +del)
Права только для документов :
- Интерактивное проведение — проведение
- Отмена проведения — отмена проведения документов
- Интерактивное проведение неоперативное — проведение (стандартными командами форм) документа в неоперативном режиме
- Интерактивная отмена проведения — интерактивная отмена проведения
- Интерактивное изменение проведенных — редактирование проведенного документа. Если право у роли не установлено, то пользователь не может удалить проведенный документ, установить пометку удаления, перепровести или сделать непроведенным. Форма такого документа открывается в режиме просмотра
P.S.
Если у Вас все же не получилось разобраться в ролях пользователей, Вы можете заказать .
Видео с примером настройки прав в 1С бухгалтерии 3.0:
Загрузите последную версию обработок 1С
Программа IT Audit поддерживает несколько платформ 1С. Поэтому при выборе файла внешней обработки необходимо учитывать используемую конфигурацию и платформу 1С. В наименовании файла внешней обработки приводится информация о номере конфигурации, для которой предназначена обработка.
Внешние обработки 1С загружаются на странице Загрузить
Проверьте, поддерживается ли разработчиками IT Audit используемая конфигурация 1С
При открытии внешней обработки в 1С возникает ошибка "Нарушение прав доступа"
Использование внешних обработок требует наличия у пользователя 1С установленного права Использование в качестве OLE Automation сервера . При отсутствии прав может возникать ошибка "Нарушение прав доступа" или иная аналогичная ошибка.
Режим 1С: Предприятие
- В списке пользователей откройте учетную запись необходимого пользователя.
- В учетной записи пользователя нажмите на кнопку Права доступа . Установите флажок на значении Открытие внешних отчетов и обработок .
- Сохраните внесенные изменения. Выйдите из программы и заново откройте программу в режиме "1С: Предприятие". Затем откройте необходимую обработку.
Режим Конфигуратор
- Зайдите в программу в режиме Конфигуратор .
- В учетной записи пользователя перейдите на закладку "Прочие". В списке "Доступные роли" установите флажок на значении Интерактивное открытие внешних отчетов и обработок .
- Сохраните внесенные изменения. Откройте программу в режиме "1С: Предприятие" и откройте необходимую обработку.
В пункте "Администрирование" откройте список пользователей и откройте учетную запись необходимого пользователя.
При отсутствии пользователей 1С необходимо создать пользователя (например, "Администратор")
Ошибка загрузки файла внешней обработки в результате настроек защиты 1С от опасных действий
Начиная с платформы 1С 8.3.9.x в настройках пользователя программы 1С по умолчанию включен запрет на выполнение опасных действий. Поэтому перед выполнением обращения к платформе 1С для пользователя 1С необходимо выполнить следующие настройки в конфигурации 1С.
- В программе 1С: Предприятие откройте необходимую конфигурацию в режиме Конфигуратор .
- В открывшейся форме выберите пользователя 1С от имени которого производится подключение к базе 1С из программы IT Audit. Двойным кликом левой кнопки мыши откройте форму Пользователь с настройками выбранного пользователя.
- В открывшейся форме снимите флажок в поле Защита от опасных действий
. Затем нажмите на кнопку ОК
для сохранения внесенных изменений.
×
Подключение к 1С в режиме интеграции занимает длительное время
Если подключение к 1С: Предприятие занимает длительное время (более 2-3 минут), то по всей видимости, программа 1С: Предприятие в отдельном окне выводит информационное сообщение, содержащее причину невозможности подключения.
Чтобы ознакомиться с сообщением программы 1С: Предприятие, нажмите на клавиатуре клавиши Alt+Tab . По мере нажатия клавиши "Tab"" будет открыто сообщение программы 1С: Предприятие. Ознакомьтесь с данным сообщение и выполните его. Например, достаточно часто выводится сообщение о необходимости пересчета остатков на определенную дату.
При открытии отчета 1С в режиме интеграции возникает ошибка: "недопустимая строка с указанием класса", "не удалось подключить фабрику класса COM для компонента" и т.п.
Если в системе установлено несколько версий одной и той же платформы 1С, то для подключения к базе 1С будет использоваться последняя корректно установленная версия (версия платформы 1С, которая зарегистрирована в качестве OLE-сервера).
Если необходимо указать другую платформу, то в командной строке Windows от имени администратора выполните команду для регистрации 1С: Предприятия в качестве OLE-сервера: например,
"C:\Program Files\1cv83\bin\1cv8.exe" /regserver
regsvr32 "C:\Program Files\1cv83\bin\comcntr.dll"
Аналогичные действия необходимо провести, если платформа 1С вообще не зарегистрирована в качестве OLE-сервера (например, в результате некорректной установки платформы или запуска программы 1С из скопированного каталога с программой), то есть возникает ошибка "Недопустимая строка с указанием класса...".
Отсутствует лицензия на использование 1С
При невозможности подключения к базе данных программы 1С: Предприятие 8.3 (8.2) по причине отсутствия права на работу с программой (отсутствует USB-ключ защиты программы 1С: Предприятие) будет выведено информационное сообщение: "Не обнаружен ключ защиты программы (не найдена лицензия)".
В строке меню открывшейся конфигурации 1С нажмите Администрирование и выберите пункт Пользователи . Откроется форма Список пользователей .
При отсутствии пользователей 1С необходимо создать пользователя (например, "Администратор")
Программное открытие внешней обработки осуществляется с помощью объекта глобального контекста ВнешниеОбработки, который имеет тип ВнешниеОбработкиМенеджер . Для каждого режима работы платформы 1С (режим обычного приложения и режим управляемого приложения) используются различные методы объекта для работы с внешними обработками.
Запуск внешней обработки в режиме обычного приложения
В обычном приложении необходимо использовать метод Создать() объекта ВнешниеОбработки, в который передается полное имя файла внешней обработки. Метод возвращает объект типа ВнешняяОбработка , этот объект и есть открываемая внешняя обработка. Если требуется открыть форму внешней обработки, то у полученного объекта вызываем метод ПолучитьФорму(), который вернет основную форму, а затем вызываем метод Открыть() для её открытия.Обработка = ВнешниеОбработки.Создать(ПолноеИмяФайла);
Обработка.ПолучитьФорму().Открыть();
Во внешних обработках основной формой всегда должна быть обычная, а управляемая дополнительной, иначе не будет работать метод ПолучитьФорму() в режиме обычном приложения.
Запуск внешней обработки в режиме управляемого приложения
В режиме управляемых форм появляется разделение алгоритма по контексту выполнения. На клиенте получаем двоичные данные по полному имени файла внешней обработки. Передаем полученные двоичные данные на сервер и помещаем их во временное хранилище. Далее необходимо вызвать метод Подключить() объекта ВнешниеОбработки, в который передается адрес на временное хранилище. Метод возвращает имя подключенной внешней обработки. Возвращаем имя внешней обработки на клиент, формируем строковый путь к форме обработки и с помощью метода ОткрытьФорму() открываем форму внешней обработки.
&НаСервере
Функция ПолучитьИмяВнешнейОбработки(ДвоичныеДанные)
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Возврат ВнешниеОбработки.Подключить(АдресВоВременномХранилище);
КонецФункции
&НаКлиенте
ПолноеИмяФайла = ""; // Полное имя файла внешней обработки.
ДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
ИмяВнешнейОбработки = ПолучитьИмяВнешнейОбработки(ДанныеФайла);
ОткрытьФорму("ВнешняяОбработка." + ИмяВнешнейОбработки + ".Форма");
Безопасный режим для внешних обработок
Методы Создать() и Подключить() объекта ВнешниеОбработки имеют входящий параметр БезопасныйРежим - признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.Безопасный режим работы предназначен для защиты системы от выполнения на сервере «ненадежного» программного кода. Потенциальную опасность представляют внешние обработки или программный код, вводимый пользователем для использования в методах Выполнить() и Вычислить().
В безопасном режиме накладываются следующие ограничения:
- привилегированный режим отменяется, если он был установлен;
- попытки перехода в привилегированный режим игнорируются;
- запрещены операции с COM-объектами;
- запрещена загрузка и подключение внешних компонентов;
- запрещен доступ к файловой системе (кроме временных файлов);
- запрещен доступ к Интернету.
Для запрета интерактивного открытия обработок, во всех ролях, назначенных пользователю, необходимо снять право "Интерактивное открытие внешних обработок" (см. рисунок 1).
Рисунок 1. Права интерактивного открытия внешних обработок/отчетов |
Программное открытие внешних отчетов, аналогично внешним обработкам, только следует использовать объект глобального контекста ВнешниеОтчеты, который имеет тип ВнешниеОтчетыМенеджер .