Внешние обработки

1. user1908445 05.10.23 09:34 Сейчас в теме
Добрый день, подскажите может кто-то сталкивался с такой задачей: у меня есть две внешние обработки, они делают одно и тоже, единственное отличие - одна вызывается из документа, с помощью кнопки печать, другая вызывается в одной из подсистем. Т.е. у одной ("Вид","ДополнительнаяОбработка"), у другой ("Вид", "ПечатнаяФорма"), стоит задача объединить эти обработки в одну, но с сохранением вызова обработки из подсистемы и из документа. Есть ли какой-то способ в одной обработке прописать два вида обработки?
По теме из базы знаний
Найденные решения
17. user1908445 18.10.23 16:53 Сейчас в теме
в итоге сделала пустую обработку, которая вызывает рабочую обработку....

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

&НаСервере
Функция ПолучитьИмяОбработки() 
	
	ВыполняемаяКомандаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Имя Нужной Обработки");
	Если НЕ ПустаяСтрока(ВыполняемаяКомандаСсылка.Наименование) Тогда
		Возврат ВыполняемаяКомандаСсылка;
	КонецЕсли;  
	
КонецФункции 
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 05.10.23 10:02 Сейчас в теме
(1)задача решается размещением исполняемого кода в общем модуле конфигурации/обработке, а из внешних обработок должна вызываться процедура/функция общего модуля/обработки
3. user1908445 05.10.23 10:10 Сейчас в теме
(2) т.е решение возможно только через расширение общего модуля? других путей решения нет
5. nomad_irk 76 05.10.23 10:16 Сейчас в теме
(3)да, потому что одна и та же дополнительная обработка не может прикидываться разными видами обработок(ПечатнаяФорма/обработка заполнентия ТЧ/.....)
4. dmitrixru 05.10.23 10:15 Сейчас в теме
(2) получается, все равно будет 2 внешние обработки? А как сделать чтобы одна внешняя обработка могла вызываться и из формы документа, и из раздела дополнительных обработок подсистем?
6. nomad_irk 76 05.10.23 10:17 Сейчас в теме
(4)говорю же, никак, нужно 2 разных внешних обработки, т.к см. (5)
dmitrixru; +1 Ответить
14. user1908445 05.10.23 12:04 Сейчас в теме
16. lefthander 05.10.23 12:33 Сейчас в теме
(1)помещаете все в одну обработку, в зависимости от контекста вызова выполняете ту или иную обработку... ;)
7. TokarevV 32 05.10.23 10:50 Сейчас в теме
А что если в процедуре печать просто вызывать встроенную обработку?
Саму же обработку - печатную форму сделать вообще без полезного кода. Только открывание встроенной.
8. TokarevV 32 05.10.23 10:54 Сейчас в теме
(7) Ну или вызов процедуры Печать из дополнительной обработки.
13. user1908445 05.10.23 12:02 Сейчас в теме
(2)
(5)
(7)получается все равно несколько обработок. Руководство хочет именно, чтобы была одна обработка. Смотрела вариант через несколько кнопок, но он тоже не реализуем, т.к. кнопки появляются одинаково в одних и тех же документах, код да можно прописать разный, но вызов прописывается в начале обработки
15. nomad_irk 76 05.10.23 12:05 Сейчас в теме
(13)Объясните руководству, что совсем одну обработку сделать невозможно технически, либо придется вносить изменения в конфигурацию вместо использования типового механизма дополнительных обработок
user1908445; +1 Ответить
9. soft_wind 05.10.23 11:00 Сейчас в теме
еще как вариант,
делаете ТРЕТЬЮ обработку и переносите туда полезный/рабочий функционал
а в первых двух переделываете вызов этой третьей обработки.
10. TokarevV 32 05.10.23 11:04 Сейчас в теме
11. soft_wind 05.10.23 11:21 Сейчас в теме
(10) нет, просто пока писал свой ответ, уже предложили похожий...
12. TokarevV 32 05.10.23 11:22 Сейчас в теме
(11) Извините. Я что-то перевозбудился)))
17. user1908445 18.10.23 16:53 Сейчас в теме
в итоге сделала пустую обработку, которая вызывает рабочую обработку....

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

&НаСервере
Функция ПолучитьИмяОбработки() 
	
	ВыполняемаяКомандаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Имя Нужной Обработки");
	Если НЕ ПустаяСтрока(ВыполняемаяКомандаСсылка.Наименование) Тогда
		Возврат ВыполняемаяКомандаСсылка;
	КонецЕсли;  
	
КонецФункции 
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот