Не работает отладка в тонком клиенте
Суть проблемы: 1С:Предприятие 8.3 (8.3.8.2088). Клиент-серверный вариант. Не работает отладка вообще нигде. Т.е. ни &НаКлиенте, ни &НаСервере. Как будто точек останова вообще нет. Всё проверил. К сеансу подключен, ключ -debug присутствует, службу перезапускал.
Есть люди кто сталкивался с таким? Помогите плз..
(1) Мы в таком случае, как последние нубы, перегружаем сервак и снова все работает.
Причину за полгода так и не расковыряли
(14) может баг платформы?
Внешний сервер отладки
Код ошибки: 10167073
Код(ы) обращения: SW1074632
Описание:
При запуске кластера серверов Предприятия не учитывается адрес внешнего сервера отладки.
Уточню. Пробую самый простой вариант отладки. Пытаюсь попасть в процедуру &НаКлиенте ПередЗаписью. По идее точка останова должна сработать в любом случае. Но не срабатывает.
а разделение есть, что база серверная и стоит на другом сервере, а отладку пытаешься запустить на компе, который клиентский (для терминального доступа например), тогда не будет работать, надо на сервере запускать
(6) База находится на сервере, где я сам включал отладку. Клиент подключается к терминалу на этом сервере. Почему не должна работать отладка в таком случае?
(10) Только что заметил такую особенность: Если в настройках подключения отладки зайти в автоматическое подключение и поставить галочку "Клиентские и внешние соединения на сервере", то точки останова срабатывают, но как то избирательно. В стандартных процедурах типа ПередЗаписью по прежнему не останавливаются, а вот в процедурах которые вызываются уже из них останавливаются, но всё равно по F10 проскакивают некоторые строчки. В общем вакханалия какая-то творится.
Для справки добавлю. Мне в свое время это очень помогло. Бывает нужно запустить отладку под неким другим пользователем, и даже не с полными правами, работая при этом в конфигураторе под полноправной учеткой. Делатся так -
1. Заходим в конфигураторе "Сервис-Параметры-Запуск 1С:Предприятие"
2. В разделе "Пользователь" ставим того кого нужно.
Все.
Теперь запуск в режиме 1С:Предприятие выполняется под указанным пользователем.
Может кому будет актуально. Два дня проморочились. Ничего не помогало. Причем одновременно на двух серваках перестала работать отладка. Помогла замена имени сервера на ip.
Где заменили имя сервера? В консоли или в меню запуска?
Добавлю и свои пять копеек. Сам столкнулся с этим, что отладка на одном компе работает, на другом не работает.
Что я делал: переустанавливал платформы, делал исключения для портов по брандмауэре, очищал кэш и другие манипуляции, - ничего не помогло.
Проблема заключалась в свойствах подключения к сети. Нужно, чтобы стояла Частная сеть . Перезагрузил программу и все заработало.
Собственно вопрос. Аргументирует это он тем фактом, что включенная отладка в процессе сервера замедляет работу сервера. Я почему то как то упустил информацию об этом явление, действительно ли это так, что включенная отладка замедляет работу самой 1с для обычных пользователей на этом же сервере, или же это миф. Был бы рад почитать про эту информацию. Если у кого есть информация от фирмы 1с
Теоретически может замедлять. Практически этого никто не заметил.
И вообще - кто такой админ, чтобы решать этот вопрос? Теперь каждый дворник будет определять в каком режиме работать серверу приложений?
включена отладка на двух серверах, быстродействие не изменилось ни на одном по сравнению с тем когда не была включена
СОВЕТ. В связи с тем, что в режиме отладки производительность сервера падает, рекомендуется использовать отладочный режим только для тех серверов, на которых выполняется отладка.
(0) просто он не знает куда нужно дебаг писать
У меня на работе есть два сервера, один с рабочими базами - отладка выключена, второй сервер с тестовыми базами - отладка включена. Пусть ваш админ настроит также.
(4) Если программист поставит точку останова внутри транзакции и пойдёт обедать, то блокировки могут заблокировать работу пользователей.
(8) как вариант - на одном сервере завести два службы 1С (одинаковая версия, но одна - рабочая, вторая - отладочная).
(1)Ну да, все кидарасы, только ты д Артаньян.
Видите ли какой-то там дворник ему мешать работать людям помешал. Ай-яй-яй.
Программисты же они как минимум полубоги.
(18) Обычно админы стараются скинуть на одинэсников максимум работ "я вашу 1С не знаю", при этом забывая давать программистам права на сервере. Но иногда бывает, что админ начинает указывать программисту, начитавшись по вершкам (а то и по слухам из интернета).
(20)Есть официальная информация от разработчика платформы, о том, что не должно быть отладки на рабочих серверах. Все остальное это ОБС, суета сует и томление духа.
(18) Про разделение зон ответственности не слышали? Каким боком админ к режимам работы серверов приложений 1С при живых одноэсниках? Админ теперь будет решать работать ли производству или нет, потому что им много тонера используется в картридже? Взял под козырек, ответил "Есть!" и пошел делать как сказали. Но одноэсник так же возьмет под козырек, если админ определит как ему использовать оборудование, сеть, какое программное обеспечение ставить и т.п. Потому что это зона ответственности администратора.
(22) "Ваша 1с тормозит" это к кому вопрос? к программисту чтоль?
админ правильно делает, нехрен делать отладке на рабочей базе
(24) Естественно к одноэснику. К кому же еще? Админ в состоянии разобраться с производительностью конфигурации? Он определит железо виновато или кривой код?
У админа должен быть эталонный тест в попугаях, который нагружает железо и измеряет производительность. Если текущее состояние системы соответствует снятому в момент разворачивания и в тех же условиях эталону, то с него и взятки гладки.
Причем тут транснациональные компании.
Я сейчас работаю по такому принципу, и никакая это не транснациональная компания. Крупная, конечно, но не Газпром.
(27) Это требования любой не маленькой организации, где есть разделение зон ответственности на ИТ и ИС, это не относится к тем где админ и 1сник сидят в одном кабинете.
(21) Покажите мне пожалуйста эту информацию. В (3) вижу совет, в котором нет "не должно быть отладки на рабочих серверах". Я конечно согласен, что в некоем идеальном мире, где у конторы есть финансы на сервер разработки так и есть, но так бывает не всегда.
(16) Можно цивилизованно - тестовые базы со своим хранилищем в отладке на одной службе, с отладчиком.
Рабочая база на другой службе, без отладчика.
Обновлять с помощью выгрузки .cf а то и вообще своими поставками .cfu и не будет никаких проблем - ни с хранилищем, ни с отладкой.
(26) кривой код это отдельная песня и тут возможны коллизии, я не спорю.
А хороший админ знает про все тонкости настройки скуля для сервера 1с, знает что нефиг виртуализировать сервера, про трехзвенку, про отладку, про правильную установку тонких клиентов и т.д.
(30)Пройдите по ссылке в (3) и найдите эту фразу:
Совет. В связи с тем, что в режиме отладки производительность сервера падает, рекомендуется использовать отладочный режим только для тех серверов, на которых выполняется отладка.
(22) Часто админы несут ответственность за работу серверов.
В том числе и одноэсных и скульных для той самой одноэс.
Но в силу своей компетентности или других психо-биологических особенностей, подстраховываются.
Своите админа на курсы по одноэсу и скулю - администрирование, программирование скуля и все его опасения развеятся.
(28) Вот в крупности и речь. Там где банда одноэсников, там где отдельные серверы для разработки и рабочие серверы и т.п.
(0) (26) Если интересно, тест Гилева (без активных пользователей) при включенной отладке выдает 36 попугаев, при выключенной - 40
(38)Если бы замедление было сильно заметно то и споров бы не возникало.
В мире большого бизнеса 10% очень много значат.
(33) Согласитесь с тем, что это только рекомендация и не разу "не должно быть отладки на рабочих серверах" как Вы ранее говорили. Я эту рекомендацию трактую как "режим отладки можно использовать на время отладки".
(37) У Вас даже слишком большая разница. Гонял тест-центром несколько раз на наборе данных из рабочей УПП - разница в пределах статистической погрешности в 1-2%. Причем моментами и в меньшую сторону. Посему выше и написал - теоретически деградация есть, практически толком никто это подтвердить не может.
(43) Да успокойтесь Вы. Все уже поняли, что Вы читали ИТС и все такое. Поверьте, тут большинство читало его.
(24) Ваша 1С будет тормозить и при запросах в цикле. И на слабом железе. Тут вопросы надо исследовать, в чьей зоне ответственности лежит и как устранять тормоза.
(47) Тут не в умении читать как таковом, а в чтении ресурса с ограниченным доступом. Куда местами и покупателей лицензионной версии со временем перестают пускать.
(48) А еще на плохонастроенной СУБД. Мне пришлось тыкать сисадмину статьей из ИТС по настройке MSSQL, потому что слышал от него "я спец со стажем и лучше тебя знаю как скуль настраивать". И кто в этом случае отвечает за тормоза?
(51)Если он такой замечательный спец пуст он этим и занимается. Если он окажется некомпетентен его уволят. Естественный отбор.
Откуда этот комплекс супермена, что только 1с-ник может спасти мир? Вокруг 6 млрд человеков, пусть чешутся.
Какая интересная тема. Пятничная. Вот смысл создания темы? Поплакаться в жилетку? Или набрать шоблу и дать по лицу админу?
Помню я доступ главбуху перекрывал к знакомствам. ;))))
Отладка на рабочем вредна хотя бы тем, что на нем начинают проверять работу системы на рабочих данных. Тем самым могут для тестирования изменять рабочие данные. Что в потенциале вообще никогда не должен делать без соответствующего ТЗ на изменения.
Организованная копия помогает полноценно тестировать и проверять, не боясь повредить данные. Т.е. сугубо культура проверки. Отдельно это учит дважды проверять, прежде чем кидать на рабочую базу изменения. Т.е. меньше негатива от пользователей в духе: "вот обновились опять не работает".
По мне это перевешивает тот плюс в виде - более быстрое время реакции на проблему. Хотя при желании можно и без отладки простые вещи посмотреть. А для сложных можно и архивную копию дождаться.
(уходя) А вообще эта тема уже возникала на Мисте и не раз, но только однажды читал о том, что якобы на партнёрке проверяли и подтверждали падение производительности от 3 до 8%. Лень искать ту ветку.
(54) скажите пожалуйста, как по быстрому разобраться с ошибкой, которая проявляется на введенных минуту назад данных? И проблема просто горит (возьмем к примеру УТ или ERP). Пока сольешь бекап, пока зальешь в тестовую базу - уходит время, а пользователи (и клиенты) ждут.
Разберем основные случаи когда и почему не работает отладка 1С.
3. В списке предметов отладки не видны клиентские сеансы.
Причина как правил в том, что не разрешена отладка клиентского приложения. Для разрешения отладки клиентского сеанса достаточно в настройках программы в режиме 1С Предприятие указать в параметре «Отладка в текущем сеансе» — Разрешена TCP/IP.
4. Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.
Данная проблема актуальна при отладке по протоколу TCP. Причина в том что отладчик не может принимать входящие соединение из-за того что брандмауер или фаервол блокируют сетевое взаимодействие между отладчиком и предметом отладки. Тут нужно понимать, что отладчик не только устанавливает исходящее соединение с предметом отладки, но также должен иметь возможность принимать входящее соединение. Проблема решается отключением фаервола на компьютере где запущен отладчик либо открытием входящих соединений на портах 1560-1591 для исполняемого файла 1cv8.exe.
1. В списке предметов отладки не видны серверные сеансы
Возможно сервер 1С запущен не в режиме отладки. Для того чтобы включить режим отладки, службу сервера 1С нужно запустить с ключом -debug. Пошаговый разбор как это сделать тут.
5. Программный код выполняется в сеансе фонового задания.
В типовых конфигурациях 1С широко использует запуск длительных процедур в фоновом режиме. Для этого на сервере запускается отдельный фоновый сеанс помимо основного серверного сеанса пользователя. Проблема решается включением автоматического подключения отладчика к фоновым сеансам. После этого как правило отладка начинает работать, если нет проблем с фаерволом описанных выше.
Подводим итоги
Напоследок стоит отметить, что как правило отладка производиться на тестовом сервере 1С, который запускается на портах отличных от типового диапазона 1560-1561. Поэтому, все изложенное выше в части номеров портов, следует рассматривать в контексте ваших реально используемых диапазонов портов.
Для настройки отладки в конфигураторе 1С надо зайти через главное меню в раздел Отладка – Подключение… Откроется форма подключения к сеансам для отладки. Если конфигуратор запущен на сервере 1С и есть активный серверный или клиентский сеанс, то в разделе «Доступные предметы отладки» сразу можно увидеть строки с указанием пользователя и типа сеанса клиент или сервер.
Форма подключения и настройки отладки в Конфигураторе 1С
В принципе, на этом вся настройка может быть закончена, можно выбрать нужный сеанс и подключиться к нему для отладки. Однако, часто бывает что мы увидим пустой список предметов отладки. Если это ваш случай, то читаем дальше.
Итак, при настройке отладки в конфигураторе 1С надо учесть два момента.
Первое, если вы запустили Конфигуратор не на сервере 1С, то для поиска предметов отладки надо указать имя или IP адрес сервера 1С (если хотим отлаживать не серверный, а клиентский сеанс другого пользователя, то соответственно клиентского компьютера). Для этого ставим флажок «Искать предметы отладки на удалённом компьютере» и рядом в поле вводим имя компьютера, например – srv1c.
Второе. Бывают случаи, когда сервер 1С (тестовый к примеру) запущен не на типовых портах по умолчанию из диапазона 1560-1591, а, например, на портах 1660-1691. Тогда надо по кнопке «Настройка» в форме настройки отладчика указать тот диапазон портов для поиска предметов отладки который был задан в строке запуска службы сервера 1С. В моем случае ставим диапазон 1560-1900, это потому что у меня есть еще запущены тестовые сервера 1С на диапазонах портов 1760-1791 и 1860-1891. После этого нажимаем в правом верхнем углу значок «Обновить» и видим появившиеся предметы отладки. Видно что у серверного сеанса порт указан 1660, это как раз тот сеанс который подключен к тестовому серверу 1С, запущенному на диапазоне портов 1660-1691.
Теперь можно выбрать нужный сеанс и нажать кнопку «Подключить», предмет отобразиться в нижней части формы в разделе «Подключенные предметы отладки».
Все, после этого, запускаем на выполнение программу и отладчик должен остановиться на точке останова, которую вы поставили на сроке кода. В стеке вызовов можно посмотреть где в данный момент выполняется код, на сервер или на клиенте.
Если после всех настроек список доступных предметов отладки так и остался пустым, то следует проверить включен ли режим отладки на сервер 1С. Вот здесь можно посмотреть как включить отладку на сервере 1С.
Если же вам надо подключиться к клиентскому сеансу, то надо проверить включена ли доступность отладки у этого клиентского сеанса. Для это в режиме 1С:Предприятие открываем меню Настройки — Параметры…
В окне настройки параметров в поле «Отладка в текущем сеансе» выбираем «Разрешена (протокол TCP/IP)», то же можно указать в поле «Отладка при перезапуске», чтобы каждый раз не выполнять данную настройку в случае многократного перезапуска клиентского сеанса.
После этой настройки в конфигураторе обновляем список доступных предметов отладки, если все сделано правильно, там должен появится данный клиентский сеанс.
Теперь нам не надо вручную искать предмет отладки и нажимать кнопку «Подключить». Система сама подключиться к запущенному сеансу и сработает точка останова поставленная на строке кода.
Рано или поздно в жизни каждого программиста 1С возникает вопрос — как включить отладку на сервере 1С?
Знакомая ситуация, ставишь точку останова на строке кода в отладчике, а она не срабатывает, хотя программа точно через нее проходит. Такое бывает если данная строка кода выполняется на севере 1С на котором не включен режим отладки.
Особенно сейчас, когда большинство конфигурация 1С работает в режиме управляемых приложений и объем кода выполняемого на стороне сервера 1С занимает большую часть, отладка на стороне сервера становиться очень востребованной функцией.
Так как же включить режим отладки на сервере 1С? Очень просто. Необходимо всего лишь прописать ключ -debug в строке запуска службы сервера 1С 8.3 и перезапустить данную службу. Это конечно если сервер установлен как служба, если же он запускается как самостоятельное приложение, то и указанный ключ необходимо прописать в строке запуска этого приложения. Правда такой режим запуска сервере 1С очень редкое явление и на практике встречается не часто, поэтому рассматривать его не будем.
Для того чтобы изменить строку запуска службы сервера 1С придётся зайти в реестр Windows. Для редактирования реестра используется программа regedit. Проще всего найти и запустить ее можно через быстрый доступ по комбинации клавиш Win+R.
В поле вводим regedit, нажимаем ОК, на вопрос системы безопасности отвечаем ДА и запускаем программу. Открываем ветку HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ services и там ищем что то похожее на 1C:Enterprise 8.3 Server Agent. Имя может отличаться в зависимости от версии установленного сервера 1С.
Настройка службы сервера 1С 8.3 в реестре Windows
Заходим в это раздел и находим параметр ImagePath. Открываем его на редактирование двойным кликом мыши. В поле «Значение» в конце добавляем ключ -debug и сохраняем.
После этого открываем Администрирование — Службы(или Мой компьютер – Управление – Службы) находим в списке службу агента сервера 1С. Открываем свойства службы и в разделе «Исполняемый файл» проверяем наличие ключа -debug.
После проверки перезапускаем службу. После этого можно проверять работу отладчика в конфигураторе 1С. Здесь можно почитать как настроить отладку в конфигураторе 1С. Если после включения отладки на сервере 1С, у вас все равно не получилось подключиться к серверным сеансам, смотрим возможные причины здесь.
2. В списке предметов отладки не видны ни клиентские ни серверные сеансы.
Еще одной причиной отсутствия предметов отладки в списке является то, что предметы отладки находится не на том компьютере где запущен отладчик 1С. Актуально как для серверных так и для клиентских сеансов. Для решения проблемы обычно достаточно указать имя удаленного компьютера для поиска предметов отладки и обновить список.
Если и после этого список пустой, то нужно вбить вместо имени IP-адрес удалённого компьютера. В случае если это помогло, то рекомендуется прописать привязки имен и IP-адресов компьютеров в файле hosts. Если и это не помогло то необходимо проверить настройку фаервола, разрешены ли на сервере 1С (или удаленном клиенте) входящие соединения с компьютера где запущен отладчик на порты 1560-1591.
Читайте также: