Online-сервисы

Как программно открыть внешнюю обработку? 1с как открыть внешнюю обработку программно

Бывает, что для работы необходимо воспользоваться внешней обработкой или отчетом, но не всегда это сразу удается. Иногда при попытке открыть внешнюю обработку либо отчет с помощью пункта меню «Файл» и далее - «Открыть» возникает сообщение об ошибке, заключающейся в нарушении прав доступа.

Но сначала рассмотрим, как вообще открываются внешние отчеты и обработки в «1С:Бухгалтерии 8.3 » версии 3.0. Обычно они представляют собой скачанный из Интернета или полученный другим способом архив. После того, как он будет сохранен, например, на рабочий стол, с помощью двойного щелчка мы сможем увидеть его содержимое.

Действия для обычного интерфейса:

  1. Нажимаем на нужный файл правой кнопкой мышки, выбираем пункт контекстного меню «Копировать».
  2. Возвращаемся на рабочий стол, нажимаем правой кнопкой на свободное место и выбираем «Вставить» (или просто перетаскиваем файл из архива на рабочий стол).
  3. Можно также извлечь файл из архива сразу в нужное место на диске (в нашем примере это рабочий стол).
  4. Теперь выбираем файл с обработкой на рабочем столе и нажимаем «Открыть».
  5. Обработка будет открыта в программе, и ею можно будет пользоваться.

Действия для управляемого интерфейса (например, «Такси»)

  1. Открываем непосредственно из файла.
  2. В меню выбираем пункт «Файл», далее - «Открыть».
  3. В открывшемся окне переходим на рабочий стол, выбираем файл обработки и нажимаем «Открыть».

Для большего удобства можно создать специальную папку для обработок и все их хранить в ней.

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

Первый способ

Можно зарегистрировать обработку в справочнике, называющемся «Дополнительные отчеты и обработки». Итак, регистрируем обработку в базе.

  1. Заходим в раздел администрирования, выбираем из списка пункт печатных форм, отчетов и обработок.
  2. В появившемся окне ставим галочку в пункте «Дополнительные отчеты и обработки» и открываем ссылку с аналогичным названием.
  3. В новом окне нажимаем на «Создать».
  4. Читаем предупреждение безопасности и нажимаем «Продолжить».
  5. В следующем окне выбираем место нахождения файла с обработкой и нажимаем «Открыть».

Важно!

Если на этом этапе появится ошибка с текстом: «Невозможно подключить дополнительную обработку из файла...», придется воспользоваться вторым способом, описанным ниже.

  1. Если ошибки не возникло, находим в «Командах» пункт «Размещение».
  2. В окне «Разделы командного интерфейса» отмечаем галочкой раздел операций.
  3. В таблице находим «Быстрый доступ» и открываем его.
  4. Выбираем всех пользователей и нажимаем «ОК».
  5. Нажимаем кнопку «Записать и закрыть».

Обработка успешно зарегистрирована. Чтобы ее открыть, потребуется зайти в раздел операций, выбрать пункт дополнительных обработок, выделить нужную и нажать на «Выполнить».

Второй способ

Если обработка не поддерживает описанную в первом варианте регистрацию, можно поступить по-другому, а именно: снова включить возможность открывать обработки в базе с помощью меню «Файл» правой кнопкой мышки «Открыть».

  1. Заходим в конфигуратор базы.
  2. Выбираем в меню «Администрирование», далее - «Пользователи».
  3. Двойной щелчок по нужному пользователю.
  4. Переходим на закладку с названием «Прочие».
  5. Устанавливаем галочку на «Интерактивном открытии внешних отчетов и обработок».
  6. Нажимаем «ОК».
  7. Закрываем конфигуратор, а также, если она была открыта, базу.
  8. Снова заходим в базу и открываем нужный нам отчет в меню «Файл» с помощью команды «Открыть».

Как разрешить интерактивное открытие внешних отчетов и обработок? (1С:Бухгалтерия 8.3. редакция 3.0)

2016-12-08T15:52:26+00:00

Если при открытии внешней обработки или отчёта через меню Файл->Открыть

появляется ошибка "Нарушение прав доступа":

То вариантов для использования обработки всего два.

Первый вариант, это регистрация обработки в справочнике "Дополнительные отчёты и обработки" (об этом ).

Но, что если обработка не поддерживает такую регистрацию? А обработка очень полезная и открыть её очень хочется.

В этом случае можно пойти по второму варианту и вновь включить возможность открытия обработок в базе через меню Файл->Открыть.

Инструкция для этого ниже.

Зайдите в конфигуратор базы:

Выполните команду меню "Администрирование"->"Пользователи":

Двойным щелчком откройте своего пользователя:

Перейдите на закладку "Прочие", установите галку "Интерактивное открытие внешних отчетов и обработок" и нажмите "ОК":

Теперь закройте конфигуратор и базу (если она у вас была открыта).

Вновь зайдите в базу и попытайтесь открыть отчёт через меню "Файл"->"Открыть".

Теперь всё получится

Есть нюансы...

Способ, который я описал в этой инструкции на 100% рабочий, но при его использовании право на "Интерактивное открытие внешних обработок" спустя время может снова пропасть.

Чтобы этого избежать установите эту же галку в режиме 1С:Предприятия в текущем для вашего пользователя профиле групп доступа.

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

С уважением, Владимир Милькин (преподаватель и разработчик ).

Рассмотрим в данной статье пошаговую инструкцию по созданию внешней обработки в 1С 8.3 в режиме управляемого приложения, соответственно, будем использовать управляемые формы. А самое главное — мы научимся подключать её к механизму «внешних обработок» конфигураций 1С, построенных на библиотеке стандартных подсистем версии 2.0 и новее.

Задача будет следующая: создать простейшую внешнюю обработку, которая будет выполнять групповое действие над справочником «Номенклатура», а именно, устанавливать выбранный процент ставки НДС для указанной группы номенклатуры.

Для этого сразу произведем необходимую настройку в программе (рассматривается конфигурация 1С 8.3: «Бухгалтерия предприятия 3.0» на управляемых формах).

Установка данного флажка дает нам возможность использовать внешние обработки.

Создание новой внешней обработки в 1С 8.3 на примере

Теперь переходим в конфигуратор. В меню «Файл» выбираем «Новый…». Откроется окно выбора вида создаваемого файла. Выбираем «Внешняя обработка»:

Откроется окно новой внешней обработки. Сразу зададим ей имя. Оно будет предложено при сохранении обработки на диск:

Добавим новую управляемую форму обработки. Указываем, что это форма обработки и она является основной:

На форме у нас будет два реквизита:

  • ГруппаНоменклатуры – ссылка на справочник «Номенклатура»;
  • ВыбСтавкаНДС – ссылка на перечисление Ставки НДС.

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

Очередность реквизитов можно менять стрелками «Вверх» – «Вниз»:

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

Осталось добавить кнопку «Установить». В управляемых формах нельзя просто так добавить кнопку на форму. Даже если добавить её в структуру элементов формы, на самой форме её видно не будет. Кнопку обязательно нужно связать с командой, которую она будет выполнять. Переходим к закладке «Команды» и добавляем команду «УстановитьСтавкуНДС». В свойствах команды создаем действие. Обработчик команды выбираем «На клиенте». Команду можно добавить на форму также простым «перетаскиванием» в раздел с элементами формы.

В модуле формы будет создана одноименная процедура. В ней вызовем процедуру на сервере:

&НаКлиенте

Процедура УстановитьСтавкуНДС(Команда)

УстановитьСтавкуНДСНаСервере();

КонецПроцедуры

В процедуре на сервере напишем небольшой запрос и действия, связанные с установкой ставки НДС:

&НаСервере

Процедура УстановитьСтавкуНДСНаСервере()

Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаНоменклатуры)
| И НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.ЭтоГруппа»;

Запрос.УстановитьПараметр(«ГруппаНоменклатуры», ГруппаНоменклатуры);
РезЗапроса = Запрос.Выполнить();
ВыбДетЗаписи = РезЗапроса.Выбрать();

Пока ВыбДетЗаписи.Следующий() Цикл

Попытка
СпрНомОбъект.Записать();
Исключение
Сообщить(«Ошибка записи объекта «»» + СпрНомОбъект + «»»!
|» + ОписаниеОшибки());
КонецПопытки;

КонецЦикла;

КонецПроцедуры

Возвращаемся на закладку «Форма», добавляем на форму кнопку и связываем ее с командой:

Как таковая наша обработка готова к использованию. Чтобы ее вызвать, в режиме «1С Предприятия» нужно зайти в меню «Файл» – «Открыть» и выбрать созданный файл.

Однако работа в таком режиме удобна для отладки обработки, а для работы пользователю не совсем подходит. Пользователи привыкли, чтобы у них все было «под рукой», то есть в самой базе данных.

Для этого и служит раздел «Дополнительные отчеты и обработки».

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

Описание функции «Сведения О Внешней Обработке»

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

Функция СведенияОВнешнейОбработке() Экспорт

ДанныеДляРег = Новый Структура();
ДанныеДляРег.Вставить(«Наименование», «Установка ставки НДС»);
ДанныеДляРег.Вставить(«БезопасныйРежим», Истина);
ДанныеДляРег.Вставить(«Версия», «ver.: 1.001»);
ДанныеДляРег.Вставить(«Информация», «Обработка для установки ставки НДС в справочнике Номенклатура»);
ДанныеДляРег.Вставить(«Вид», «ДополнительнаяОбработка»);

ТабЗнКоманды = Новый ТаблицаЗначений;
ТабЗнКоманды.Колонки.Добавить(«Идентификатор»);
ТабЗнКоманды.Колонки.Добавить(«Использование»);
ТабЗнКоманды.Колонки.Добавить(«Представление»);

НовСтрока = ТабЗнКоманды.Добавить();
НовСтрока.Идентификатор = «ОткрытьОбработку»;
НовСтрока.Использование = «ОткрытиеФормы»;
НовСтрока.Представление = «Открыть обработку»;
ДанныеДляРег.Вставить(«Команды», ТабЗнКоманды);

Возврат ДанныеДляРег;

КонецФункции

Чтобы лучше понять, какие поля структуры регистрационных данных нужно использовать, посмотрим реквизиты справочника «Дополнительные отчеты и обработки»:

Как видим, все довольно просто. Не совпадает лишь один реквизит: «ВариантЗапуска» – «Использование». Если посмотреть код одного из общих модулей, то мы увидим, как возникает связка этих полей:

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

Подключение внешней обработки в 1С 8.3

Главная Для начинающих разработчиков Учимся программировать

Как программно открыть внешнюю обработку?

В версии 8.2 приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.

Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:

  • передать файл внешней обработки на сервер,
  • подключить внешнюю обработку,
  • открыть форму внешней обработки.
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) //Помещаем обработку во временном хранилище АдресХранилища = ""; Результат = ПоместитьФайл(АдресХранилища, "C:\ВнешняяОбработка.epf", Ложь); ИмяОбработки = ПодключитьВнешнююОбработку(АдресХранилища); // Откроем форму подключенной внешней обработки ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма"); КонецПроцедуры &НаСервере Функция ПодключитьВнешнююОбработку(АдресХранилища) Возврат ВнешниеОбработки.Подключить(АдресХранилища); КонецФункции

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

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

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

Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища . Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки , - которое мы используем для того, чтобы открыть форму этой обработки.

Для открытия формы внешней обработки используется функция ОткрытьФорму() , в которую передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма" . В приведенном варианте открывается основная форма обработки. Можно открыть также и неосновную форму обработки - об этом рассказывается в вопросе Как получить неосновную форму обработки? .

При работе в внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.

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

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

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

Любая существующая в конфигурации обработка может быть преобразована во внешнюю, и наоборот. Кроме этого внешние обработки 1С могут быть добавлены в структуру прикладного решения как новые объекты.

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

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

Редактирование внешней обработки 1С выполняется в конфигураторе. Чтобы открыть существующую внешнюю обработку, выберите пункт Файл - Открыть. В выданном на экран стандартном диалоге выберите тип файла - Внешняя обработка - и укажите имя открываемого файла внешней обработки. При открытии внешней обработки в конфигураторе автоматически открывается диалог редактирования объекта. В отличии от других объектов конфигурации отладка внешней обработки 1С производиться без перезапуска 1С Предприятия.

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

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

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