"Горячая перезагрузка кода" в 1С
Добавить возможность обновления кода внутри сеанса без его перезапуска
- Программист отлаживает код и находит ошибку
- Поправляет строчку кода
- Нажимает "Обновить" и в вопросе про перезапуск сеанса выбирает "Применить в сеансе"
- Происходит стандартное обновление, но текущий сеанс (который в отладке) не завершается, а "обновляет" у себя информацию о коде так, что разработчик может продолжать отладку
Такой механизм есть в Visual Studio C# https://habr.com/ru/companies/otus/articles/569094/
Естественно, работает это не всегда и имеет нюансы, но для самых простых случаев это очень полезно.
Источник: https://t.me/e1c_community/144500
Врядли захотят такое делать. Динамическое обновление дооолго делали. А тут сопоставимой сложности задача (даже сложнее) и к тому же не нужная бизнес-пользователям
Отправлено боту 14.04 Отправлено в чат: https://t.me/e1c_community/149042
Написал развернутую версию пожелания
Современные большие конфигурации очень долго выполняют системный старт - от запуска клиентского приложения до выполнения первой строки прикладного кода. Например для ERP в клиент-серверном варианте это 20+ секунд на быстром оборудовании, для "ERP: Управление холдингом" 40+ секунд.
К этой длительности еще добавляется выполнение прикладного кода при начале работы и получаем весьма уже внушительные 30/50 секунд в лучшем случае, а в реальных условиях зачастую и более 100 секунд на полный старт приложения.
Программисту 1С требуется перезапускать клиентское приложение достаточно часто. Но с учетом такой длительности ему приходится экономить на количестве перезапусков и искать нестандартные решения:
В ряде случаев можно использовать внешнюю обработку и отлаживаться в ней, пока не потребуется вносить правки в объекты конфигурации. Ее переоткрытие выполняется значительно быстрее, т.к. не зависит от размера конфигурации.
В ряде случаев можно использовать консоль кода (например из подсистемы "Инструменты разработчика Tormozit"), в которой можно очень быстро вносить изменения и сразу выполнять код, но без создания методов и без работы с формой. Это - самый быстро перезапускаемый режим, но и самый ограниченный.
Оба эти способа имеют значительные ограничения.
Как я показал выше, бОльшую часть времени запуска клиентского приложения составляет системный старт, львиную долю которого как я понимаю занимает загрузка метаданных. А программист 1С в большинстве случаев меняет крайне малый процент объектов метаданных и в подавляющем большинстве случаев это только модули.
Поэтому кажется логичным сделать оптимизированный (горячий) перезапуск клиентского приложения из конфигуратора, который в уже работающем отлаживаемом процессе клиентского приложения
Удалит/очистит все параметры сеанса, прикладные объекты, формы и т.д.
Обновит только те объекты метаданных, которые реально изменились в новой конфигурации по отношению к уже загруженной в процесс
Запустит прикладные обработчики начала сеанса
Кажется такой режим перезапуска позволит серьезно сократить длительность перезапуска клиентского приложения и тем самым сэкономит массу рабочего времени при разработке больших конфигураций.
https://partners.v8.1c.ru/forum/t/2126697/m/2126697