Ревизор обновления
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Пример: одна обработка и одно расширение
На учебных выгрузках обработка за несколько секунд нашла 16 ошибок и одно информационное сообщение. Вот что она сказала (формулировки — из отчета):
- «ОбщийМодульА.Метод1: передано параметров 2, а в новом релизе метод принимает не больше 1» — с номером строки и самой строкой кода.
- «Метод Справочники.Товары.НайтиПоАртикулу удален из модуля менеджера в новом релизе».
- «Значение перечисления «Удаляемый» объекта Перечисление.Статусы отсутствует в новом релизе» — найдено дважды: в коде и внутри текста запроса в конструкции ЗНАЧЕНИЕ(…).
- «Форма «УдаленнаяФорма» объекта Справочник.Товары отсутствует в новом релизе» — найдено по строке в вызове открытия формы.
- По расширению: «у перехватываемого метода «Метод2» изменились параметры», «метод «МетодПерехват» изменен в новом релизе — &ИзменениеИКонтроль не пройдет контроль, расширение нужно переадаптировать», «заимствованный реквизит «Удаляемый» отсутствует в новом релизе».
- Информационно (по флажку): «реализация метода ИзмененнаяРеализация изменилась» — вызов не сломается, но поведение может стать другим.
Сверка идет от вашего кода
Сравнение конфигураций в Конфигураторе показывает, что изменилось в типовой, — тысячи строк, из которых вас касается малая часть. Ревизор идет в обратную сторону: собирает все, на что опирается каждая доработка, и проверяет только это.
- Вызов метода общего модуля или модуля менеджера
- С чем сверяется: Наличие метода, признак экспорта, число обязательных и всех параметров в старом и новом релизе
- Когда это ошибка: Метод, модуль или объект пропал; параметров передано больше, чем принимает метод; появился новый обязательный параметр
- Имя объекта метаданных, реквизита, формы, значения перечисления — в коде, в тексте запроса, в строковом имени формы
- С чем сверяется: Состав объекта в новом релизе
- Когда это ошибка: Объекта или его элемента в новом релизе нет
- Перехват в расширении (&Перед, &После, &Вместо, &ИзменениеИКонтроль)
- С чем сверяется: Сигнатура и тело типового метода в двух релизах
- Когда это ошибка: Метода нет; изменились параметры; для &ИзменениеИКонтроль — изменилось тело
- Заимствованный объект или реквизит расширения
- С чем сверяется: Наличие в новом релизе
- Когда это ошибка: Объект или реквизит удален
Ошибкой считается только то, что было в старом релизе и пропало или изменилось в новом. Комментарии не анализируются, а методы, тело которых не менялось, не попадают в отчет — поэтому список короткий и по делу. Если старого релиза нет, проверка выполняется только по новому: найдутся обращения к тому, чего в новом релизе нет, но без сравнения сигнатур «было — стало».
Где взять исходники
Нужны выгрузки в файлы: старого релиза (на котором писались доработки), нового релиза и самих доработок — каждая в своей подпапке.
- Релизы. На закладке «Подготовка исходников» достаточно указать файлы .cf старого и нового релиза — обработка сама запустит Конфигуратор в пакетном режиме и выгрузит их в файлы. Для большой конфигурации это занимает 10–30 минут, форма в это время ждет.
- Внешние обработки и отчеты. Указывается папка с файлами .epf и .erf — они тоже выгружаются автоматически.
- Расширения выгружаются вручную: Конфигуратор → Конфигурация → Расширения конфигурации → Конфигурация → Выгрузить конфигурацию в файлы.
Вопросы и ответы
Новый релиз брать из шаблона поставки или из своей базы? Для внешних обработок и расширений к типовой достаточно выгрузки релиза из шаблона. Если основная конфигурация сама доработана, сравнивайте с выгрузкой конфигурации после объединения — иначе ваши собственные объекты попадут в «удаленные».
Найдет ли обработка вызов через Выполнить или Вычислить, имя метода в переменной? Нет: обработка читает код, а не выполняет его. Динамические вызовы и обращения через строки, которые собираются во время работы, остаются на тестирование.
Где выполняется анализ? На сервере 1С. В файловом варианте это всегда тот же компьютер. В клиент-серверном варианте каталоги выгрузок должны быть доступны серверу, а для подготовки исходников на сервере нужен установленный 1cv8.exe — если его нет, выгрузите релизы вручную.
Сколько это занимает? Сам анализ — секунды на десятки доработок; основное время уходит на выгрузку релизов в файлы.
На чем проверено? Учебные выгрузки с заранее известными 17 находками: все найдены, ложных срабатываний нет; выгрузка .cf и .epf из обработки. Платформа 8.5.1; файл открывается платформами 8.3.24 и 8.3.27, модуль компилируется на 8.3.27.
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.168
Вступайте в нашу телеграмм-группу Инфостарт