Часто требуется отлаживать код на месте у заказчика, и каждый, каждый раз приходится включать отладку на сервере 1С (прописывая ручками в реестре ключи запуска службы сервера 1С:Предприятия), копировать файлы настроек comcntrcfg.xml и webservicecfg.xml для включения отладки COM-соединений и Web-сервисов, перекреститься, постучать в бубен и т.д. и т.п. Все это мелочи, которые которые сильно раздражают и сжирают время, особенно когда нужно что-то очень срочно отладить в авральном режиме. В связи с эти сделал себе обработку из которой можно все это включить тремя кликами мыши.
Для включения/отключения отладки на сервере 1С, обработку естественно нужно запускать на том компьютере где установлен сервер 1С:Предприятия. При установке галочки "Включить отладку на сервере 1С" в строку запуска службы просто добавляется параметр запуска "-debug". Кроме того есть возможность произвольного редактирования параметра ImagePath реестра отвечающего за запуск службы сервера 1С:Предприятия (к примеру можно изменить сетевые порты). Также же из обработки можно вызвать непосредственно редактор реестра. После принятия изменений, если параметры запуска службы были изменены, будет предложено открыть оснастку служб Windows (к примеру для ручного перезапуска службы).
При включении галочек "Отладка COM-соединений (файл comcntrcfg.xml)" и "Отладка Web-сервисов (файл webservicecfg.xml)" в каталоге conf текущей платформы создаются (если они отсутствуют) файлы comcntrcfg.xml и webservicecfg.xml соответственно. Файлы comcntrcfg.xml и webservicecfg.xml уже встроены обработку и хранятся в текстовых макетах. Если кого не устраивают стандартные настройки этих файлов, тот может закинуть туда свои настройки. При отключении отладки COM-соединений и Web-сервисов файлы не удаляются, а переименовываются в файлы с расширением .bak. Кроме того из обработки можно перейти непосредственно в каталог conf текущей платформы нажав на ссылку с именем каталога (к примеру для ручного удаления или редактирования файлов настройки).
Для использования обработки, 1С:Предприятие требуется запускать от имени администратора, иначе может не оказаться прав для доступа к реестру Windows или каталогу настроек. Обработка будет видеть только службу 1С:Предприятия 8.3, так же не рекомендуется пользоваться обработкой если на одном компьютере запущено несколько версий сервера 1С:Предприятия (например одновременно работают службы сервера 1С:Предприятия 8.2 и 8.3). Обработкой пользоваться на свой страх и риск. Код обработок открыт, так что перед использованием можете сами посмотреть какие манипуляции производятся с настройками. Обработки тестировалась и использовались на версии платформы 8.3.10.2650, соответственно должны работать и на более старших релизах 8.3. В публикации представлены обработки для обычного и управляемого приложения. Функционал обработок полностью идентичен.
Обновление 2025/09/24
Толково )
(1) Спасибо
Вот бы ещё порты эта обработка умела проверять и настраивать — цены бы не было…
оффтоп: Можно 2 обработки запихнуть в 1, которая будет запускаться и в обычном, и в управляемом приложении.
Нет настройки отладки по http.
Может проще эту строку закинуть в cmd файл? Все равно отлаживаться надо в тестовой базе. В таком случае лучше через cmd файл запустить отладку на отдельном экземпляре сервера1с, чем править реестры на машине заказчика. Разобрался в чем проблема остановил сервер и все осталось как и было.
(6) Да не вопрос, хороший способ, кому то он однозначно пригодится, но мне удобнее так.
(5) В это я не увидел особого смысла, т.к. это очень просто настраивается через конфигуратор, вот когда http-сервисы только появились в 1С, то такой возможности не было, там нужно было править ручками, а сейчас будет дольше писать такую обработку, чем в конфигураторе галочку поставить.
(9) Точнее к отладке на продуктивной базе нужно допускать только квалифицированных специалистов.
(9) Ок, развернули, ошибка не повторяется. Что делать? А если проблема во взаимодействии нескольких баз? Разворачивать весь контур, чтобы отловить маленькую ошибочку? А если база весит 500+ Гб, а ошибку отловить надо сейчас, а не после обеда? А еще можно поторопиться, развернуть и забыть про обмены, копия базы начнет жрать не свои файлы обмена. Если толпа пользователей стоит над душой, то вполне такое возможно.
При нехватке опыта надо прислушиваться к тому, что пишут в книжках. Но по мере развития понимаешь, что из каждого правила есть исключения.
При нехватке опыта не нужно лезть ремонтировать грузовик 2019 года выпуска обладая знаниями по ремонту Жигулей.
Тестовый контур для того и делается чтоб спецы при нехватке опыта ничего не сломали. В моей более 2 лет практикы еще не было случая, чтоб что то не воспроизводилося на тестовой базе. С другой стороны я понимаю что не у всех компаниях ИТ направление есть приоритетное. Скорее аоборот.
Согласитесь, подход в котором нужно сделать срочно и сейчас, или «нужно было на вчера» потом порождает новые ошибки и баги.
Не интересно сломать такую базу, а восстанавливать — тем более.
(11) при базе 500+ толпа пользователей закрывает дверь с другой стороны и входит по приглашению с предварительным согласованием необходимости посещения ИТ отдела у отдела безопасности.
И выделенный консультант, для протирки мышек пользователям.
(13) Ага, конечно! Просто над душой будет стоять не менеджер, а финансовый директор, не бухгалтер, а главный бухгалтер. Когда встает работа организации с такой большой базой, к программисту приходят люди, которые выше отдела безопасности.
(14) если в организации финансовый директор и главный бухгалтер стоят над душой у программиста вместо выполнения прямых обязанностей — выделить бюджет на сисадмина и консультанта, то пусть постоят еще.
(15) А что им еще делать, если у них и у всех их подчиненных база не работает?
(16) например, пойти к генеральному директору и постоять у него, или посидеть на внеочередном совещании по чрезвычайной ситуации.
Программист то точно денег не даст на новых сотрудников.
Варианты есть всегда.
(12) Печально, что за 2 года не попадалось такого случая. На тестовом контуре может не быть того оборудования, которое стоит у конечного пользователя, подключение к тому же ВЕТИС, которое нельзя просто так отправить из тестового контура.
И 500+ базы тоже дорабатывают, а не ошибается только тот, кто ничего не делает.
(17) Попадали хоть раз в такую ситуацию? Генеральный тоже где-то неподалеку, за соседним столом, обсуждают чрезвычайную ситуацию — база не работает из-за ошибки в коде.
(19) Ну вот видите как удачно. И что они говорят?
(18)
работаем на базе больше 1 ТБ, у нас есть тестовое оборудование. Что нельзя нельзя подключить физически — делаем веб сервис для тестирования.
(21) И какой же у вас штат тестировщиков, что в продакшн ошибки не уходят? Или работа с базой сводится к созданию пользователей?
Тестировщиков 5, ошибки бывают, но править на основной базе — никто не правит. Если есть баг — его воспроизводят на тестовом контуре, и там же правят, потом переносят. Критических ошибок которые останавливали работу компании уже давно не было.
Разрешите, пожалуйста, пару нубских и немного оффтопных вопросов, просто общего мнения по ним нет, а в этой теме плотность хороших специалистов гораздо выше среднего.
Насколько параметр -debug влияет на производительность 1С? Ухудшение производительности на уровне нескольких процентов, или значительней?
Если в базе 200 пользователей, то насколько замедлится 1С? А если 1000 пользователей?
Кроме ухудшения производительности и возможности дать криворукому программисту всё испортить — есть ли ещё проблемы с этим параметром?
(24)https://forum.mista.ru/topic.php?id=672538
https://forum.infostart.ru/forum86/topic194162/
Ответа на этот вопрос походу нет… Тут да же и не понятно как замерить правильно.
Влияние режима отладки на производительность в реальных сценариях по моим ощущениям очень мало. Механизм отладки даже тогда, когда не подключен отладчик, делает вычисления после каждой строки кода. Поэтому если в трассе выполнения потока кода по длительности будут преобладать короткие строки (например А = 2+3), то накладные расходы на работу механизма отладки будут заметны и могут составить по моим ощущениям до 5%. Если же отладчик подключен, то он может замедлить выполнение кода в этом случае до 50%. Однако повторюсь, в реальных сценариях такой код встречается редко.
(25) Ну да, в процессе собственного гугления я эти темы видел — и тоже остался с одними вопросами. 🙂
(24) это еще надо постараться, чтобы механизмом отладки все испортить.
Интересное решение!
{ВнешняяОбработка.НастройкаОтладкиУФ.Форма.Форма.Форма(535,28)}: Процедура или функция с указанным именем не определена (REG_HKLM)
ПутьКПараметрамВРеестре = <<?>>REG_HKLM() + «SYSTEMCurrentControlSetServices1C:Enterprise 8.3 Server Agent»;
УПП 1.3.106.2 (8.3.11.3034) в Толстом клиенте (управляемое приложение)
(30) Это очень странно. Потому, что у меня ошибок не возникло. Откройте тогда модуль формы и замените строку 535 на
т.е. без вызова функции REG_HKLM()
(30) Чуть позже сделаю тогда более топорную версию, что бы избежать тонкой душевной организации платформы