Внешняя обработка в 1С 8.3
Меню

Внешняя обработка в 1С 8.3

Содержание статьи
  1. Видео эксперта
  2. Создаем внешнюю обработку в 1С 8.3
  3. Подключение внешней обработки в 1С

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

Видео эксперта

  • Создаем внешнюю обработку в 1С 8.3

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

    Создаем внешнюю обработку
    Создаем внешнюю обработку
     

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

    • Реквизит – поле для установки номенклатуры;
    • Кнопку, которая выполнит вызов кода.

    Добавляем реквизит «Номенклатура» с типом данных «СправочникСсылка.Номенклатура» в соответствующем разделе и кнопку «Показать» в меню «Команды» -> «Команды формы».

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

    Создать на клиенте и процедуру на сервере
    Создать на клиенте и процедуру на сервере
     

    Фрагмент 1

    
    &НаКлиенте
    Процедура Показать(Команда)
           ПоказатьНаСервере();
    КонецПроцедуры
    
    &НаСервере
    Процедура ПоказатьНаСервере()
           //Вставить содержимое обработчика.
    КонецПроцедуры
    

    Мы выбрали создание процедуры на сервере, так как хотим в качестве результата получить выборку из базы данных. На клиенте у нас нет такой возможности, поэтому потребуется подключение к серверу, который и обменивается с БД данными. Теперь нам необходимо написать код, который реализует задуманное нами. Будет использоваться запрос и вывод всех документов через функцию «Сообщить()».

    Прописываем код
    Прописываем код
     

    Фрагмент 2

    
    &НаСервере
    Процедура ПоказатьНаСервере()
    	
    	Запрос = Новый Запрос;
    	Запрос.Текст = 
    	"ВЫБРАТЬ
    	|	ЗаказКлиентаТовары.Ссылка КАК Ссылка,
    	|	ЗаказКлиентаТовары.Ссылка.Представление КАК Представление
    	|ИЗ
    	|	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
    	|ГДЕ
    	|	ЗаказКлиентаТовары.Номенклатура = &Номенклатура";
    	
    	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    	
    	РезультатЗапроса = Запрос.Выполнить();
    	
    	ВыборкаЗаказКлиента = РезультатЗапроса.Выбрать();
    	
    	Пока ВыборкаЗаказКлиента.Следующий() Цикл
    
    		Сообщение = Новый СообщениеПользователю;
    		Сообщение.Текст = ВыборкаЗаказКлиента.Представление;
    		Сообщение.Сообщить(); 	
    		
    	КонецЦикла;
    	
    КонецПроцедуры
    
    &НаКлиенте
    Процедура Показать(Команда)
    	ПоказатьНаСервере();
    КонецПроцедуры
    

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

    Чтобы разместить внешнюю обработку в разделе 1С, необходимо ей в модуле объекта прописать процедуру «СведенияОВнешнейОбработке». В основном меню обработки нажмите «Действия» и выберите «Модуль объекта». Здесь необходимо прописать все нужные для 1С настройки, чтобы система поняла, что от нее требуется и что за файл перед ней. На скриншоте изображен код функции «СведенияОВнешнейОбработке».

    Фрагмент 3

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

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

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

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

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

    • Указать размещение объекта. Нажатием на «Не определено» мы открываем окно разделов и укажем, в каких разделах будет доступна операция;
    • Выбрать пользователей, у которых данная команда появится в меню «Дополнительные обработки» выбранных разделов без лишних настроек. Для этого в табличной части нужно выбрать пункт «Быстрый доступ» и добавить в правую половину ответственных пользователей;
    • На вкладке «Дополнительная информация» вы можете указать папку, в которой будет находиться загруженная обработка;
    • После нажатия клавиши «Записать» в выбранном разделе в меню «Дополнительные обработки» пользователи обнаружат нашу команду и смогут ею воспользоваться.
    Создание команды вызова
    Создание команды вызова
     

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

    Если вы используете не типовую или снятую с поддержки базу 1С, то воспользуйтесь возможностью загрузить обработку через конфигуратор. В дереве объектов в разделе «Обработки» создайте новую обработку и через контекстное меню выберите «Заменить на внешнюю обработку, отчет…». Останется лишь настроить запуск внешней обработки из нужного раздела, включив добавленную обработку в нужную подсистему.

    Загрузка обработки через конфигуратор
    Загрузка обработки через конфигуратор
     

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

    Рассказать друзьям
    Предыдущая статья статья
    1С Управление торговлей 11.4
    Следующая статья статья
    Внешняя обработка 1С: запуск, параметры, вызов
    Комментарии