|
1С Отладка функций на сервере (Linux вариант) | ☑ | ||
---|---|---|---|---|
0
IvanLex
27.01.22
✎
15:05
|
Доброго времени суток.
Проблема: Не работает отладка функций, исполняемых на сервере. Исходные данные: Сервер 1С: ОС Debian 10, 4 ядра, 8GB ОЗУ. Сервер СУБД: ОС Debian 10, 8 ядра, 16GB ОЗУ, PostgreSQL-1c. Рабочее место: ОС Windows Программное обеспечение: 1С 8.3.20.1590 ------------------------- На сервере 1С: файл /opt/1cv8/x86_64/8.3.20.1590/srv1cv83.conf линк в /etc/default/srv1cv83 файл /opt/1cv8/x86_64/8.3.20.1590/srv1cv83 линк в /etc/init.d/srv1cv83 systemctl daemon-reload && systemctl start srv1cv83 Система работает. Пользователь с АРМ через консоль MMC создает ИБ - БД на СУБД создается, 1С запускается как в режиме "Предприятие", так и в режиме "Конфигуратора". ------------------------- Для отладки кода программисты просят включить режим отладки на сервере В файле /etc/default/srv1cv83 (он же файл /opt/1cv8/x86_64/8.3.20.1590/srv1cv83.conf) ставим SRV1CV8_DEBUG=1, перезапускаем сервис. Проверяем: ps -fU usr1cv8 Выхлоп: UID PID PPID C STIME TTY TIME CMD usr1cv8 2090517 1 0 янв21 ? 00:00:00 /lib/systemd/systemd --user usr1cv8 2090518 2090517 0 янв21 ? 00:00:00 (sd-pam) usr1cv8 2090537 2090517 0 янв21 ? 00:00:00 /usr/bin/pipewire usr1cv8 2090540 2090517 0 янв21 ? 00:00:00 /usr/libexec/tracker-miner-fs usr1cv8 2090542 2090517 0 янв21 ? 00:00:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only usr1cv8 2090548 2090537 0 янв21 ? 00:00:00 /usr/bin/pipewire-media-session usr1cv8 2090553 2090517 0 янв21 ? 00:00:00 /usr/libexec/gvfsd usr1cv8 2090568 2090517 0 янв21 ? 00:00:00 /usr/libexec/gvfsd-fuse /run/user/998/gvfs -f usr1cv8 2090575 2090517 0 янв21 ? 00:00:00 /usr/libexec/gvfs-udisks2-volume-monitor usr1cv8 2090581 2090517 0 янв21 ? 00:00:00 /usr/libexec/gvfs-goa-volume-monitor usr1cv8 2090585 2090517 0 янв21 ? 00:00:00 /usr/libexec/goa-daemon usr1cv8 2090593 2090517 0 янв21 ? 00:02:06 /usr/libexec/goa-identity-service usr1cv8 2090598 2090517 0 янв21 ? 00:00:16 /usr/libexec/gvfs-afc-volume-monitor usr1cv8 2090604 2090517 0 янв21 ? 00:00:00 /usr/libexec/gvfs-gphoto2-volume-monitor usr1cv8 2090609 2090517 0 янв21 ? 00:00:00 /usr/libexec/gvfs-mtp-volume-monitor usr1cv8 2454989 1 0 14:44 ? 00:00:34 /opt/1cv8/x86_64/8.3.20.1590/ragent -daemon -debug usr1cv8 2455005 2454989 2 14:44 ? 00:03:05 /opt/1cv8/x86_64/8.3.20.1590/rmngr -port 1541 -host 059-1-srv-017 -range 1560:1591 -debug -tcp -clstid 6a5e2178-4d3d-4aea-942c-c3526703c820 usr1cv8 2455097 2454989 15 14:44 ? 00:16:27 /opt/1cv8/x86_64/8.3.20.1590/rphost -range 1560:1591 -reghost 059-1-srv-017 -regport 1541 -pid a35a0bb1-01ec-47d8-81df-64c2bab08576 -debug -tcp usr1cv8 2456221 1 0 14:54 ? 00:00:00 /opt/1cv8/x86_64/8.3.20.1590/ras cluster --port=1545 Видим -debug -tcp, но отладка не идёт. Читаю ман 1С, вижу про файл /opt/1cv8/x86_64/8.3.20.1590/conf/comcntrcfg.xml Создаем файл с содержимым: <config xmlns="http://v8.1c.ru/v8/comcntrcfg"> <debugconfig debug="true" protocol="tcp" debuggerURL="tcp://localhost:1560"/> </config> Перезапускаем сервис, отладка не идет. В 1С видно сервер, но отладка не идет. Сервер 1С, СУБД и АРМ в одной подсети на соседних ip, брандмауэр отключен. telnet показывает что порты открыты, слушаются и принимают соединения. Но отладка не идет. Далее нахожу на просторах тырнета, что проблема у многих, и многие опустили руки, решая данную проблему и просто переключились в режим http, кто то говорит что медленнее, но зато нет проблем. Меняем файл /opt/1cv8/x86_64/8.3.20.1590/srv1cv83 (он же файл /etc/init.d/srv1cv83): Строку: [ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug" меняем на: [ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug -http" На всякий случай удаляем файл /opt/1cv8/x86_64/8.3.20.1590/conf/comcntrcfg.xml Перезапускаем сервис, отладка не идет. Проверяем еще раз: ps -fU usr1cv8 Результат тот же один в один. Прошу помощи. Заранее всем откликнувшимся спасибо. |
|||
1
Djelf
27.01.22
✎
15:30
|
Сначала останови сервер 1С, потом редактируй конфиг, потом запускай.
|
|||
2
IvanLex
27.01.22
✎
15:32
|
(1) А есть разница? Конфиг то изменен. Но сделаю с остановкой. Надеюсь что поможет. Но что то я не уверен.
|
|||
3
fisher
27.01.22
✎
15:33
|
(0) > В 1С видно сервер
В смысле - в предметах отладки серверные сеансы появляются, подключение к ним происходит но точки останова не срабатывают? |
|||
4
IvanLex
27.01.22
✎
15:41
|
(3) Точно. Серверные сеансы есть, но на точках остонова не останавливается, как будто их не ставили.
|
|||
5
IvanLex
27.01.22
✎
15:42
|
(1) То же самое. Сервер стопорнул. Конфиги проверил что отредактированы верным образом. Стартанул сервис - результат тот же.
|
|||
6
Djelf
27.01.22
✎
15:45
|
(2) Есть
|
|||
7
fisher
27.01.22
✎
15:47
|
(4) Не сталкивался с таким. Идей нет.
|
|||
8
Djelf
27.01.22
✎
15:48
|
+(6) У меня так было, возможно есть разница на разных платформах.
|
|||
9
Dmitrii
гуру
27.01.22
✎
16:01
|
На сервере стоит клиент 1С? Если запустить конфигуратор непосредственно на сервере и попытаться отладить, будет отладка работать?
|
|||
10
fisher
27.01.22
✎
16:07
|
(9) +1
Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода. Данная проблема актуальна при отладке по протоколу TCP. Причина в том что отладчик не может принимать входящие соединение из-за того что брандмауер или фаервол блокируют сетевое взаимодействие между отладчиком и предметом отладки. Тут нужно понимать, что отладчик не только устанавливает исходящее соединение с предметом отладки, но также должен иметь возможность принимать входящее соединение. Проблема решается отключением фаервола на компьютере где запущен отладчик либо открытием входящих соединений на портах 1560-1591 для исполняемого файла 1cv8.exe. |
|||
11
LienXo
27.01.22
✎
16:08
|
Было такое на некоторых релизах. Попробуй в режиме http запустить отладку
|
|||
12
Dmitrii
гуру
27.01.22
✎
16:11
|
(11) Уже было. В (0) описано.
|
|||
13
1Сергей
27.01.22
✎
16:15
|
И много вас таких, у кого одинесина на линупсе крутится?
|
|||
14
Dmitrii
гуру
27.01.22
✎
16:16
|
(13) Ты так это пишешь, будто это что-то плохое.
|
|||
15
1Сергей
27.01.22
✎
16:18
|
(14) Ничего плохого в мазохизме не вижу)
|
|||
16
fisher
27.01.22
✎
16:23
|
(15) Я не проверял, но ходят слухи что с тех пор как фрешевцы сами стали есть этот кактус, стабильность работы линуксового сервера приложений улучшилась.
|
|||
17
Dmitrii
гуру
27.01.22
✎
16:26
|
Вы в (0) параметры "сервера" видели?
>> Сервер 1С: 4 ядра, 8GB ОЗУ. У меня в телефоне памяти больше. С такими ресурсами на винде оно вообще еле шевелилось бы. |
|||
18
1Сергей
27.01.22
✎
17:45
|
(17) а на малинке можно поднять?
|
|||
19
andy_minsk
27.01.22
✎
18:10
|
(0) Может оффтоп, но однажды всем кокандом искали, почему в линуксе отладчик не срабатывает. Пока не выгрузили в файловую и не увидели, что он туда не попадает в принципе. Но там всякие переопределения в расширениях как-то замутили. В обычных случаях отладка в линуксе работает норм, иногда требует рестарта, но это фигня.
С памятью, да, экстремально как-то, сурово. |
|||
20
IvanLex
28.01.22
✎
04:51
|
Создал новую виртуалку с Debian 11.
Установил 1с сервер 8.3.20.1590 Проверил, что все запускается. Прежде чем править конфигурационные файлы - ОСТАНОВИЛ службы. Отредактировал файлы что бы включить отладку. Запустил службу - отладка функций исполняемых на сервере не работает. Кто то говорит что требуется магия - ребутнул сервер, отладка не работает. |
|||
21
IvanLex
28.01.22
✎
04:52
|
(17) Это рекомендация 1с требуемых ресурсов для малого внедрения.
https://its.1c.ru/db/metod8dev/content/5810/hdoc Кстати всё шустро бегает. А на винде сама винда столько потребляет не оставляя ничего самой 1с. |
|||
22
IvanLex
28.01.22
✎
04:54
|
(11) попробовал дописать ключ -http, но сервер все равно продолжает работать в режиме -debug -tcp. dbgs в списке запущенных процессов отсутствует.
|
|||
23
IvanLex
28.01.22
✎
05:00
|
(10) Все порты открыты, брандмауер на Windows-машине отключен. На Linux машине разрешены все входящие соединения. Все машины (Место пользователя, Сервер 1С, Сервер СУБД) на соседних ip. Telnet показывает что порты все открыты, слушаются и соединения устанавливаются.
Но ладно, хрен с ним с tcp. Я http так же не могу включить. (20) Уже создал новую виртуалку с Debian 11. Установил 1с сервер 8.3.20.1590. Проверил, что все запускается. Прежде чем править конфигурационные файлы - ОСТАНОВИЛ службы. Отредактировал файлы что бы включить отладку. Запустил службу - отладка функций исполняемых на сервере не работает. Подправил файл /opt/1cv8/x86_64/8.3.20.1590/srv1cv83 (он же файл /etc/init.d/srv1cv83): [ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug -http" но сервер все равно продолжает работать в режиме -debug -tcp. dbgs в списке запущенных процессов отсутствует. |
|||
24
IvanLex
28.01.22
✎
06:55
|
Всё получилось.
Оказывается, останавливать службу, перезапускать её - абсолютно бесполезно - не помогло даже на виртуалке. Но после перезапуска виртуалки всё заработало. Ребутнул основной сервер полностью - то же всё заработало. Теперь отладка работает, правда по http, отладку по tcp сделать не получилось, но это не критично. |
|||
25
fisher
28.01.22
✎
09:58
|
(24) > Оказывается, останавливать службу, перезапускать её - абсолютно бесполезно - не помогло даже на виртуалке. Но после перезапуска виртуалки всё заработало.
Странно. Интересно, какое этому может быть объяснение. |
|||
26
ansh15
28.01.22
✎
10:21
|
Непонятно, для чего тогда здесь пишут https://its.1c.ru/db/v8319doc#bookmark:cs:TI000000120
что "При работе сервера «1С:Предприятия» в режиме «демона» не поддерживается отладка с использованием протокола HTTP" Или это уже безнадежно устаревшая информация. Вышла тестовая 8.3.20.1710, там есть исправленные ситуации с отладкой. |
|||
27
IvanLex
31.01.22
✎
13:01
|
(25) Мистика.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |