Как разрешить интерактивное открытие внешних отчетов и обработок? (1С:Бухгалтерия 8.3. редакция 3.0)
2016-12-08T15:52:26+00:00Если при открытии внешней обработки или отчёта через меню Файл->Открыть
появляется ошибка "Нарушение прав доступа":
То вариантов для использования обработки всего два.
Первый вариант, это регистрация обработки в справочнике "Дополнительные отчёты и обработки" (об этом ).
Но, что если обработка не поддерживает такую регистрацию? А обработка очень полезная и открыть её очень хочется.
В этом случае можно пойти по второму варианту и вновь включить возможность открытия обработок в базе через меню Файл->Открыть.
Инструкция для этого ниже.
Зайдите в конфигуратор базы:
Выполните команду меню "Администрирование"->"Пользователи":
Двойным щелчком откройте своего пользователя:
Перейдите на закладку "Прочие", установите галку "Интерактивное открытие внешних отчетов и обработок" и нажмите "ОК":
Теперь закройте конфигуратор и базу (если она у вас была открыта).
Вновь зайдите в базу и попытайтесь открыть отчёт через меню "Файл"->"Открыть".
Теперь всё получится
Есть нюансы...
Способ, который я описал в этой инструкции на 100% рабочий, но при его использовании право на "Интерактивное открытие внешних обработок" спустя время может снова пропасть.
Чтобы этого избежать установите эту же галку в режиме 1С:Предприятия в текущем для вашего пользователя профиле групп доступа.
При использовании этого способа могут возникать различные нюансы (например, если вы используете встроенный профиль, который нельзя редактировать), поэтому подробной инструкции для этого случая я приводить не буду.
С уважением, Владимир Милькин (преподаватель и разработчик ).
Главная Для начинающих разработчиков Учимся программироватьКак программно открыть внешнюю обработку?
В версии 8.2 приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
- передать файл внешней обработки на сервер,
- подключить внешнюю обработку,
- открыть форму внешней обработки.
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, функцией ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этой функции указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина , то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь , а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре функции.
При вызове функции ПоместитьФайл() первым её параметром, АдресХранилища , мы указываем пустую строку. После выполнения функции в эту переменную будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища . Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки , - которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется функция ОткрытьФорму() , в которую передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма" . В приведенном варианте открывается основная форма обработки. Можно открыть также и неосновную форму обработки - об этом рассказывается в вопросе Как получить неосновную форму обработки? .
При работе в внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации.
Бывает, что для работы необходимо воспользоваться внешней обработкой или отчетом, но не всегда это сразу удается. Иногда при попытке открыть внешнюю обработку либо отчет с помощью пункта меню «Файл» и далее - «Открыть» возникает сообщение об ошибке, заключающейся в нарушении прав доступа.
Но сначала рассмотрим, как вообще открываются внешние отчеты и обработки в «1С:Бухгалтерии 8.3 » версии 3.0. Обычно они представляют собой скачанный из Интернета или полученный другим способом архив. После того, как он будет сохранен, например, на рабочий стол, с помощью двойного щелчка мы сможем увидеть его содержимое.
Действия для обычного интерфейса:
- Нажимаем на нужный файл правой кнопкой мышки, выбираем пункт контекстного меню «Копировать».
- Возвращаемся на рабочий стол, нажимаем правой кнопкой на свободное место и выбираем «Вставить» (или просто перетаскиваем файл из архива на рабочий стол).
- Можно также извлечь файл из архива сразу в нужное место на диске (в нашем примере это рабочий стол).
- Теперь выбираем файл с обработкой на рабочем столе и нажимаем «Открыть».
- Обработка будет открыта в программе, и ею можно будет пользоваться.
Действия для управляемого интерфейса (например, «Такси»)
- Открываем непосредственно из файла.
- В меню выбираем пункт «Файл», далее - «Открыть».
- В открывшемся окне переходим на рабочий стол, выбираем файл обработки и нажимаем «Открыть».
Для большего удобства можно создать специальную папку для обработок и все их хранить в ней.
Если же открыть обработку или отчет не получается, можно воспользоваться одним из двух вариантов действий.
Первый способ
Можно зарегистрировать обработку в справочнике, называющемся «Дополнительные отчеты и обработки». Итак, регистрируем обработку в базе.
- Заходим в раздел администрирования, выбираем из списка пункт печатных форм, отчетов и обработок.
- В появившемся окне ставим галочку в пункте «Дополнительные отчеты и обработки» и открываем ссылку с аналогичным названием.
- В новом окне нажимаем на «Создать».
- Читаем предупреждение безопасности и нажимаем «Продолжить».
- В следующем окне выбираем место нахождения файла с обработкой и нажимаем «Открыть».
Важно!
Если на этом этапе появится ошибка с текстом: «Невозможно подключить дополнительную обработку из файла...», придется воспользоваться вторым способом, описанным ниже.
- Если ошибки не возникло, находим в «Командах» пункт «Размещение».
- В окне «Разделы командного интерфейса» отмечаем галочкой раздел операций.
- В таблице находим «Быстрый доступ» и открываем его.
- Выбираем всех пользователей и нажимаем «ОК».
- Нажимаем кнопку «Записать и закрыть».
Обработка успешно зарегистрирована. Чтобы ее открыть, потребуется зайти в раздел операций, выбрать пункт дополнительных обработок, выделить нужную и нажать на «Выполнить».
Второй способ
Если обработка не поддерживает описанную в первом варианте регистрацию, можно поступить по-другому, а именно: снова включить возможность открывать обработки в базе с помощью меню «Файл» правой кнопкой мышки «Открыть».
- Заходим в конфигуратор базы.
- Выбираем в меню «Администрирование», далее - «Пользователи».
- Двойной щелчок по нужному пользователю.
- Переходим на закладку с названием «Прочие».
- Устанавливаем галочку на «Интерактивном открытии внешних отчетов и обработок».
- Нажимаем «ОК».
- Закрываем конфигуратор, а также, если она была открыта, базу.
- Снова заходим в базу и открываем нужный нам отчет в меню «Файл» с помощью команды «Открыть».
При работе с 1С в платформе 8.2 может появиться такое окно: «Внешняя обработка не может быть прочитана текущей версией программы». Давайте попробуем разобраться, с чем связано появление этого окна и как устранить ошибку.
Суть проблемы
Программа 1С время от времени выполняет обновление платформы. Это происходит с выходом новых релизов. Причина ошибки проста: программа обновила платформу и теперь некоторые файлы внешней обработки , которые легко открывались в версии 8.1, на платформе 8.2 читаться отказываются.
Исправляем ошибку
Чтобы устранить ошибку, необходимо:
- Открыть «1С:Предприятие» в режиме конфигуратора;
- Запустить обработку по пути «Файл – Открыть» (или нажать сочетание клавиш «Сtrl+O»);
- Появится сообщение: «Требуется конвертация. Конвертировать?». Необходимо подтвердить конвертацию (этот процесс называется переконвертацией обработки из 8.1 в 8.2);
- Закрыть конфигуратор.
Затем внешняя обработка преобразуется в формат, понятный обновлённой платформе, и вы сможете открывать файлы внешней обработки. Чтобы проверить, удалось ли преобразование, после закрытия конфигуратора запустите обработку в режиме «1С:Предприятие».
В 99% случаев данный алгоритм действий помогает устранить проблему. Если внешняя обработка не запускается после переконвертации, рекомендуется пригласить специалиста 1С.
Для работы с внешними обработками (а внешняя печатная форма тоже является внешней обработкой) существует объект ВнешниеОбработки.
Рассмотрим два возможных случая:
Внешняя обработка хранится на диске отдельно от информационной базы
Для программного открытия внешней обработки в 1С нужно знать адрес ее файла. Зная его, можно либо открыть форму обработки, либо получить объект обработки для проведения с ним дальнейших действий (например, для вызова экспортных функций из модуля объекта).
Открытие формы внешней обработки
Для программного открытия формы внешней обработки в 1С используется функция ПолучитьФорму() объекта ВнешниеОбработки. Функция имеет несколько параметров. Рассмотрим простое открытие основной формы обработки:
Форма=
ВнешниеОбработки.
ПолучитьФорму(АдресФайла)
;
Форма.
Открыть()
;
Для открытия неосновной формы внешней обработки необходимо указать ее имя.
//В переменной АдресФайла находится полный путь к файлу внешней обработки
Форма=
ВнешниеОбработки.
ПолучитьФорму(АдресФайла,
"НеосновнаяФорма"
)
;
Форма.
Открыть()
;
Открытие внешней обработки как объекта
Для того чтобы получить внешнюю обработку как объект используется функция Создать() объекта ВнешниеОбработки.
//В переменной АдресФайла находится полный путь к файлу внешней обработки
ОбъектОбработки=
ВнешниеОбработки.
Создать(АдресФайла)
;
По умолчанию все обработки открываются в безопасном режиме. Чтобы его отключить, используются следующие параметры:
//В переменной АдресФайла находится полный путь к файлу внешней обработки
Внешняя обработка или печатная форма сохранена в информационной базе
Во многих конфигурациях существует возможность сохранять внешние печатные формы и обработки непосредственно в информационной базе. Для этого используется справочник ВнешниеОбработки. Сама внешняя обработка хранится в виде двоичных данных либо в реквизите ХранилищеВнешнейОбработки , либо в табличной части Принадлежность в реквизите ХранилищеВнешнейОбработки .
Для открытия внешней обработки нужно:
- Получить ее из хранилища.
- Сохранить файл с обработкой на диск.
- Открыть форму или получить объект обработки.
- Если мы имеем дело с внешней печатной формой, то можно заполнить стандартный реквизит СсылкаНаОбъект и вызвать экспортную функцию Печать.
//В переменной СпрСсылка находится ссылка на элемент справочника ВнешниеОбработки
ДвДанные=
СпрСсылка.
ХранилищеВнешнейОбработки.
Получить()
;
АдресФайла=
ПолучитьИмяВременногоФайла()
;
ДвДанные.
Записать(АдресФайла)
;
ОбъектОбработки=
ВнешниеОбработки.
Создать(АдресФайла,
Ложь
)
;