Журнал инженера-программиста
245 subscribers
205 photos
7 videos
167 links
Мир глазами программиста. Истории и размышления.

Автор: @Dementor_AK
https://www.linkedin.com/in/dv-kinash
Download Telegram
Поскольку я веду разработку в 1C:EDT на общем терминальном сервере, я периодически сталкиваюсь с невозможностью отладки своего проекта, когда кто-то другой уже успел ранее занял порт 1551.

В отличи от Конфигуратора, который запускает отладку на доступном свободном порту и разработчику даже не нужно знать на про какие порты и особенности реализации стека TCP/IP, тут по умолчанию всегда используется один и тот же порт. Просто большинство этого не замечают, так как разрабатывают на выделенной технике.

1С:Помощник, ИИ от самой 1С, который разработал специально для работы в 1C:EDT и который должен знать все нюансы работы, тут бесполезен. Для начала он искренне считает, что этого не может быть и EDT как и Конфигуратор самостоятельно ищет свободные порты. Если настаивать на существовании проблемы, то он начинает предлагать различные варианты с ключами запуска отладки, ключами запуска самого EDT или параметрами для конфига. При чем все, что он предлагает - он сочиняет на ходу и это все не работает.

Когда меня в очередной раз достало, что для отладки мне нужно дополнительно запускать Конфигуратор, я решил детальнее изучить настройки профиля отладки и обнаружил, что хоть на графической форме явно нужного параметра нет, но все настройки можно сохранить по указанному пути и отредактировать в виде текста. Для этого нужно перейти на последнюю закладку Common/Общее и для сохранения выбрать каталог.

Тут будет сразу две особенности: 1) для сохранения можно указать только корень одного из открытых проектов, 2) нельзя указать имя настройки - это всегда будет название текущей конфигурации отладки и расширение *.launch . Т.е. если вы используете Git и не хотите чтобы вся команда вместо стандартного 1551 начала дружно использовать новый указанный вами порт, то нужно сразу добавить в .gitignore исключение для всех launch-файлов.

Прежде чем переходить к редактированию файла, нужно форму настроек отладки закрыть и применить изменения. Если вы внесете ручные изменения в конфиг, а потом в EDT нажмете сохранение настройки, то все внесенные правки перезатрутся стандартными значениями (заметил такое поведение на версиях 2025.*)

В текстовом конфиге нам будет нужен параметр ATTR_DEBUG_SERVER_PORT (с длинным префиксом, который можно увидеть на моем скрине), который равен "-1", что дает команду использовать порт 1551. Но мы можем тут задать любой другой порт (я обычно использую 2551 или 3551, чтобы было напоминание про оригинальное значение). После записи файла просто запускайте нужную конфигурацию отладки и проблемы с конфликтом портов больше не будет.

#EDT #1C #debug
👍9