|   |   | 
| 
 | 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) Мистика.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |