Вызов дополнительной обработки средствами БСП

16.01.22

Разработка - БСП (Библиотека стандартных подсистем)

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Вызов дополнительной обработки средствами БСП:
.epf 7,65Kb
5
5
1 SM
Скачать Купить за 1 850 руб.

Вызов дополнительной обработки средствами БСП

Поддерживает тип команды: ВызовКлиентскогоМетода, ВызовСерверногоМетода,ОткрытиеФормы,СценарийВБезопасномРежиме

Механизм взят из штатного механизма вызова доп.обработок и доработан, как отдельная функция.

 

 

В публикации лежит готовая обработка

 

 

Для чего этот вариант запуска внешней обработки? Пытливые умы напишут, что можно сделать проще и т.п. Моя цель была сделать универсальную функцию, максимально использующую функционал БСП по работе с доп. обработками. Я сделал так. Кто имеет свое мнение – можете сделать свою публикацию – хуже точно не будет!

Проверялось на 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.106.40).

См. также

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример шаблона для многопоточного выполнения фонового задания на основе БСП. Шаблоны сделаны для процедуры и функции.

2 стартмани

03.05.2024    1253    18    Hitcher    3    

13

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    3542    dimanich70    8    

16

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    1134    FilippovRI    0    

17

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

07.02.2024    3444    YA_418728146    11    

52
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. quazare 3728 16.01.22 15:11 Сейчас в теме
На самом деле не обязательно указывать, что это через БСП. По-умолчанию дополнительные обработки и работа с ними - это и есть БСП. Достаточно сделать обработку- «точку входа» с указанием того, что нужно начать выполнять по расписанию. Так можно выполнять любую обработку или отчет - вообще все что угодно практически…
2. AlexHelmer 1766 16.01.22 15:17 Сейчас в теме
(1). Добрый вечер если не трудно выложите в этой ветке пример пускай всё будет лежать в кучке
3. quazare 3728 16.01.22 15:19 Сейчас в теме
(2) чуть позже, делал год назад, там код - несколько строк
4. quazare 3728 16.01.22 15:45 Сейчас в теме
в модуле внешней обработки достаточно прописать экспортную функцию "ВыполнитьКоманду". (внешнюю обработку повесить на расписание)

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

Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
	Если ИдентификаторКоманды = "Автоотправка" Тогда
	// Здесь поставьте выполнение вашей команды
	КонецЕсли;
КонецФункции

Показать


с вашего позволения я дам здесь ссылку на одну из своих статей по Длительным операциям в фоновом режиме
5. AlexHelmer 1766 16.01.22 16:03 Сейчас в теме
Как это устроено в самой обработке которую необходимо вызвать всё понятно. сюда бы ещё добавить код как вызывать эту внешнюю обработку зарегистрированную в справочнике дополнительных обработок из другой обработки кликнув кнопку на форме. Тогда бы был законченный фрагмент который можно было бы использовать в своих целях
8. maraty 450 16.01.22 21:32 Сейчас в теме
(5)
ОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта", "ИмяНашейОбработки");
ОбработкаОбъект = ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(ОбработкаСсылка);


У обработки объекта соответственно можем вызывать экспортные процедуры и функции.

Есть еще одна возможность. Просто открываем форму подключенной обработки. Без каких либо ссылок.
ОткрытьФорму("ВнешняяОбработка.ПодключеннаяОбработка.Форма.Форма",
			Новый Структура, 
			ЭтаФорма,,,, 
			Новый ОписаниеОповещения("ОткрытиеПодключеннаяОбработкаЗавершение", ЭтаФорма));
10. maraty 450 17.01.22 16:28 Сейчас в теме
(8) Поправлю себя. Во втором варианте ссылка все таки нужна.
Необходимо на сервере предварительно инициализировать обработку.
ОбработкаЗаполнения = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта", ИмяОбработки);
ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ОбработкаЗаполнения);

А потом уже ОткрытьФорму(...), как написал ранее.
6. quazare 3728 16.01.22 16:14 Сейчас в теме
(5) честно сказать, пару лет наверное не писал внешних обработок (когда ушел с УПП) - сейчас, обычно использую общие модули в расширениях
7. quazare 3728 16.01.22 17:43 Сейчас в теме
должно это работать так - вы получаете обработку из справочника внешних обработок - сохраняете ее "в темп" и запускаете ее от туда.
9. quazare 3728 17.01.22 04:47 Сейчас в теме
ВнешняяФорма = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Имя обработки");
    
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = ВнешняяФорма.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
    
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
Форма.Открыть();
Показать
Оставьте свое сообщение