Имя: Пароль:
1C
 
Как запустить отладку Внешней обработки на клиент-сервере?
🠗 (Волшебник 26.03.2025 08:04)
0 program345
 
25.03.25
09:23
Хай,
В самой обработке есть:

// Отладка модуля обработки выполняется, при параметрах запуска конфигурации: "/C РежимОтладки".

Установил точку останова, при параметрах запуска написал "/C РежимОтладки" - не работает, подключение к предмету отладки сделал.
1 Somebody
 
20.03.25
09:02
Если подключена как доп. обработка, то внешний файл отлаживать не позволит. Отключить доп. обработку, сделать тестовую форму для отладки,из нее вызывать методы из модуля обработки.
2 PLUT
 
20.03.25
12:15
(0) если внешняя обормотка подключена как дополнительная по феншую БСП, переведи её в справочнике "Дополнительные отчеты и обормотки" в [Режим отладки] [Отключена] см. (10) и тупо открывай через Файл -> Открыть....

предварительно в пофигураторе открыть её из того же месторасположения...
3 evorle145
 
20.03.25
09:05
(0) может у вас внешняя печатная форма, а не внешняя обработка?
4 DiMel_77
 
20.03.25
09:12
(0) Параметр запуска "/C РежимОтладки" используется только для отладки фоновых заданий. Т.е. не запускается фоновое задание при формировании отчета или выполнении обработки.
5 program345
 
20.03.25
10:55
(2) да, все сделано по феншую по БСПшному. В 1с предприятие загрузил внешнюю обработку(установил режим отладки), в конфигураторе открыл её же. Поставил точку останова. Запускаю в 1с предприятие через Файл -> Открыть.... И ничего не останавливается...
6 program345
 
20.03.25
10:59
(3) нет, у меня внешняя обработка по загрузке данных в регистр сведений из эксель файла
7 Александр111
 
20.03.25
11:06
если база серверная то в службах
"C:\Program Files\1cv8\8.3.25.1374\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
8 Somebody
 
20.03.25
11:07
(5) см. (1)
9 Мультук
 
гуру
20.03.25
11:51
(0)

Поставить "отключена"
Запускать из Файл->Открыть и отлаживать как обычную обработку.

Режим отладка означает, что даже если вы откроете эту же обработку из Файл->Открыть, то 1С всё-равно запустит обработку из справочника и вы будете долго заниматься херней.
10 Мультук
 
гуру
20.03.25
11:40
(0)

Используется. Обработку могут запускать все кому ни лень,   у кого есть на это права

Отладка. Обработку "все кому ни лень" уже не видят. Запускать могут только полные права. Удобно когда нужно потестить в боевой базе (например печатную форму), но чтобы  все остальные к ней руки не тянули

Отключена -- 1С перестаёт умничать при запуске этой же обработки через "Файл->Открыть" и честно всегда (не всегда, но почти, были нюансы с com, ole) открывает и запускает обработку из файла.
11 program345
 
20.03.25
11:51
(7) да, серверная, вроде есть дебаг на линуксе.
12 Bigbro
 
20.03.25
11:58
Результат = ВнешниеОбработки.Создать(ИмяФайла, Режим);
13 Gucci76
 
20.03.25
12:33
(4) А что значит "/C РежимОтладки" ????
Я указываю просто "РежимОтладки" и у меня ЗУП не выполняется в фоне
14 Александр111
 
20.03.25
12:46
см (7) -debug
15 program345
 
20.03.25
13:09
(10) делаю по гайду
https://infostart.ru/1c/articles/573461/




Процедура ОтлаживаемаяПроцедура(Параметр1, Параметр2 = Неопределено) Экспорт
	Адрес = "D:\Projects\МояОбработка.epf";
	Если Адрес <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда
		обр = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
		ЗаполнитьЗначенияСвойств(обр, ЭтотОбъект);
		обр.ОтлаживаемаяПроцедура(Параметр1, Параметр2);
		Возврат; 		
	КонецЕсли; 

    //...код...
КонецПроцедуры



у меня ошибка "файл не обнаружен!" база клиент-серверная...Дебаг включен.

я так понимаю мне нужно на сервере свою отлаживаемую обработку выложить?
16 Bigbro
 
20.03.25
13:20
(15) это локальный путь на сервере.
лучше указывать типа \\server\my\123.epf
17 Мультук
 
гуру
20.03.25
13:23
Сейчас (не сразу конечно) выясняется, что и XLS-файл находится на клиенте,
А импортируется &НаСервере
18 program345
 
20.03.25
13:49
(16) проблема осложнилась тем, что нет доступа на сервер, и туда нельзя кинуть обработку...
19 Bigbro
 
20.03.25
13:51
(18) отдай ее админам чтобы выложили на сервере а тебе прислали путь.
либо выложи в любое место в сети которое с сервера доступно.
первый раз что ли? )
20 program345
 
20.03.25
14:18
(19) походу да, либо админам давать файлик для выкладки на сервер, либо делать выгрузку клиент-серверной базы в файловую и отлаживать там...
21 Мультук
 
гуру
20.03.25
14:23
(20)

Я вот вроде в (9) всё понятно написал.
А в (17) прямо-таки жОстко намекнул.
22 X Leshiy
 
20.03.25
14:25
Что там за мега регистр и супер сложный файл, раз такое прям отлаживать надо?))
Используй Сообщить() ))))))))))))))))
23 Галахад
 
гуру
20.03.25
14:31
ВнешняяОбработка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Суперобработка");
ДвоичныеДанные = ВнешняяОбработка.ХранилищеОбработки.Получить();
ИмяФайла = ПолучитьИмяВременногоФайла("epf");
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
24 Волшебник
 
20.03.25
14:32
(22) или ЗаписьЖурналаРегистрации(...)
25 kapust
 
20.03.25
14:42
(20) Зачем так сложно то? Может просто сделать у себя на компе шару и в коде указывать сетевой путь?
26 X Leshiy
 
20.03.25
14:34
(24) Вот кстати да, забыл)
27 TormozIT
 
гуру
20.03.25
16:34
Видел такую помогалку для отладки внешних обработок БСП в ИР https://devtool1c.ucoz.ru/index/otladka_vneshnikh_obrabotok_bsp/0-50
28 program345
 
25.03.25
09:20
1. Сделали папку которую могу менять я и сервер на линуксе. У меня она выглядит как \\ServerNaLinux\1cfiles ,а сервер видит ее как /linux/1cfiles .
2. Закинул туда обработку 1.epf
3. прописал код в модуле объекта в процедуре Печать:


Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
		
	ВО = ВнешниеОбработки.Создать("/linux/1cfiles/1.epf");
	ВО.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
	Возврат;



4. Загрузил обработку в Дополнительные обработки  (Безопасный режим = ложь)

5. В своей обработке закомментил вызов обработки:

ВО = ВнешниеОбработки.Создать("/linux/1cfiles/1.epf");
	ВО.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
	Возврат;


6. При запуске печатной формы из документа точка не срабатывает, куда копать?
29 lubitelxml
 
25.03.25
10:41
Мне вот такое расширение зашло: IRONSKILLS_ОтладкаДополнительныхОбработок - не помню где брал, вроде на ИС
30 Мультук
 
гуру
25.03.25
14:08
Время шло, а в этой теме всё пытались лечить гланды через анус.
С теоретической точки зрения, занятия хорошее и вероятно денежное.

(0)
Показывайте уже вашу обработку.
Там by default должно куча типового кода, который не может не работать
И чуть-чуть вашего
31 program345
 
25.03.25
17:34
(30) обработка донельзя простая:

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

Процедура ВыполнитьКоманду(п_ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
	
	Если п_ИдентификаторКоманды = "ВыполнитьОбработку" Тогда   
		
		Обновить1(ПараметрыВыполненияКоманды);
		
	КонецЕсли;
	
КонецПроцедуры  

Процедура Обновить1(ПараметрыВыполненияКоманды) Экспорт
	
	ВО = ВнешниеОбработки.Создать("/linux/1cfiles/1.epf", Ложь);
	ВО.Обновить1(ПараметрыВыполненияКоманды);
	Возврат; 
		
	Сообщить("тест");	
	
КонецПроцедуры



Точка останова на сообщить(). В конфигураторе открыта эта обработка по пути \\ServerNaLinux\1cfiles\1.epf со стороны сервера это путь "/linux/1cfiles/1.epf"
32 Мультук
 
гуру
25.03.25
14:38
(31)

Алё, на бронепоезде.

Я говорю про /linux/1cfiles/1.epf
33 program345
 
25.03.25
14:49
(32) так это и есть обработка на /linux/1cfiles/1.epf

Зайти на сам линуксовый сервак и запустить там конфигуратор нет возможности.
34 Волшебник
 
25.03.25
22:27
А что, в этой ветке не будет чёрных скриншотов?
35 Шурик71
 
25.03.25
23:17
Над нами издеваются?

1)Точка останова на Сообщить() после команды возврат? И не останавливается, вот странно?

2)Если в (31) указан код именно обработки 1.Epf, то он разве не должен привести к попытке циклического вызова процедуры Обновить1()?
36 Волшебник
 
26.03.25
00:36
(35) да, издеваются
37 program345
 
26.03.25
06:49
(35) смотри порядок такой:
для начала посмотри видос по отладке внешек на бсп
https://www.youtube.com/watch?v=XcXIoLNCwRg&pp=ygU90L7RgtC70LDQtNC60LAg0LLQvdC10YjQvdC10Lkg0L_QtdGH0LDRgtC90L7QuSDRhNC-0YDQvNGLIDHRgQ%3D%3D

там он загружает в предприятие и в основной процедуре пишет код:

ВО = ВнешниеОбработки.Создать("/linux/1cfiles/1.epf", Ложь);
    ВО.Обновить1(ПараметрыВыполненияКоманды);
    Возврат;

потом он открывает эту обработку в конфигураторе и комментит этот код. Получается что внешка открывает обработку, которую мы указали и делает возврат, а мы отлаживаем себе спокойно в открытой обработке.
Вопрос как это сделать в клиент сервере.
38 НоваяВолна
 
26.03.25
07:25