Сначала о том, как добиться стабильности работы расширений после обновлений. Разберем на примере.
Например, в типовую БП надо вывести свою кнопку в контекстное меню ТЧ товары.
Создаем новое расширение, у расширения должно быть понятное наименование и уникальный префикс
всегда придерживаюсь правила: один объект - одно расширение, чтобы минимизировать отключение функционала при ошибках в расширении
При импорте форм много тащится лишних объектов и реквизитов, но на данном этапе они мне не интересны
создаю кнопку на форме и прописываю алгоритм, отлаживаю работу расширения.
После того как все сделано и проверено удаляю все, что не менялось.
Для того чтобы посмотреть что изменено в расширении, есть удобный фильтр (не всегда все показывает)
все остальное удаляю
последовательность удаления такая:
все реквизиты и ТЧ, затем функциональные опции и константы и потом все остальное в произвольном порядке
обязательно для всего, что осталось снимаю контроли свойств (если не нужны)
затем снимаю все галки в свойствах конфигурации и ставлю дату изменения в версии расширения:
далее в списке расширений нажимаю проверку конфигурации конкретного расширения
программа выдает список ошибок
далее исправляю все ошибки, которые можно исправить (в данном случае достаточно добавить в расширение договор без реквизитов и контроля свойств)
после чего проверка уже не находит ни синтаксических ни других ошибок
в таком случае расширение будет работать долго без сбоев.
Далее после каждого обновления проверяю применимость всех расширений на копии и провожу проверку конфигурации расширения еще раз, если она и в этот раз завершилась удачно, то расширение будет работать и дальше.
Если расширений не много, то не сложно понажимать кнопку в конфигураторе, но в некоторых базах у клиентов их уже более 50.
Поэтому написал для себя обработку по автоматической проверке расширений:
с помощью командной строки запускается конфигуратор с нужными параметрами и проверяется каждое расширение, аналогично ручному нажатию кнопки Проверка конфигурации для расширения
В ней все просто, указываем пользователя и пароль (если есть), выбираем что проверить и нажимаем кнопку Проверить все расширения или проверить выделенные
При этом при проверке конфигуратор должен быть закрыт, иначе обработка не сможет подключиться.
Два режима проверки:
Проверка модулей - это проверка, запускаемая через Конфигурация - Проверка модулей
Проверка конфигурации - это проверка, запускаемая через Конфигурация - Проверка конфигурации (обычно использую только этот режим)
флажками отмечаем что проверить и нажимаем кнопку
Проверить все расширения - быстрая проверка, но список ошибок выводится одним текстом. Т.е. выполняется один запуск конфигуратора и проверка сразу всех расширений. В среднем проверка 40 расширений на базе КА 2.4 занимает 2,5 минуты
Проверить выделенное расширение - долгая проверка. Проверяется каждое расширение отдельно, но результат проверки выводится по каждому расширению. Т.е. выполняется на каждое расширение запуск конфигуратора и проверка только этого расширения. В среднем проверка 40 расширений на базе КА 2.4 занимает 13 минут
у каждой кнопки и флажка есть подсказка, так что запутаться сложно :)
Несколько раз меня спасала такая проверка:
Пару месяцев назад, кажется, в КА 2.4 поменялось название документа поступления, а в расширении использовалась проверка типов и запросы к нему - так вот проверка конфигурации выдало такое сообщение и его можно было исправить до применения обновления на рабочей базе.
И вот совсем недавно обновлял БП и там метод ПодготовитьКоллекциюПечатныхФорм() вдруг стал не экспортным и проверка конфигурации тоже помогла выявить такую ошибку в расширениях, где он использовался.
Тестировалось на 8.3.14.1779 и старше, но скорее всего будет работать и на младших платформах
Обработка применялась на КА 2.4.7.141 и позже и на БП 3.0.70.33 и позже, также на нескольких самописных конфигурациях.
Но обработка универсальная, так что должна работать на любых конфигурациях с расширениями