Ревизор костылей: что в вашем коде платформа уже умеет сама
Разработка - Инструментарий разработчика
Бесплатные
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Платформа за последние версии научилась многому, ради чего в конфигурациях держали компоненты, COM-объекты и самописные функции: регулярные выражения, паузу, распаковку архивов, буфер обмена, генератор паролей, WebSocket. Код при этом живёт по-старому, и найти в нём такие места поиском по тексту трудно: мешают комментарии, тексты сообщений и похожие имена.
"Ревизор костылей" находит в коде конфигурации места, где руками делается то, что платформа умеет штатно, и по каждому говорит, можно ли заменить прямо сейчас.
Что ищет
- регулярные выражения через VBScript.RegExp или компоненту и посимвольные циклы проверки строки;
- паузу пустым циклом по текущему времени или через ping на свой адрес;
- распаковку архивов программами 7z, rar, tar;
- буфер обмена через ClipboardData скрытого поля HTML-документа;
- свои хеши и контрольные суммы (по константам MD5, SHA-1, SHA-256, CRC32), свой Base64, свой URLEncode, свои побитовые функции, свой генератор паролей;
- HTTP, XML, файлы, GUID, картинки, кодировки, Excel и JavaScript через COM-объекты Windows;
- WebSocket и внешние компоненты под задачи, которые платформа закрыла.
Всего 20 правил. Нарушения стандартов и то, что сломается при переходе на 8.5, обработка не ищет: это другие вопросы.
Чем отчёт отличается от поиска по тексту
- Вывод по каждой находке. Регулярок, ВызватьПаузу, генератора паролей, хеширования, КодироватьСтроку и чтения xlsx нет в тонком клиенте, буфера обмена нет на сервере. Отчёт сверяет это с тем, где исполняется строка, и пишет: замена доступна на месте, в тонком клиенте замены нет, нужна платформа новее. Режим совместимости учитывается там, где он действительно прячет функцию: у побитовых функций при режиме 8.3.10 и ниже. Новинки 8.3.22-8.3.27 режим не прячет, это проверено исполнением в базе с режимом 8.3.17.
- Лексер вместо поиска подстроки. Имя COM-объекта в тексте сообщения об ошибке или в закомментированном примере находкой не становится.
- У каждой замены указаны версия появления и где она работает (по синтакс-помощнику платформы 8.3.27), пример "было-стало" и чем она проверена: прогоном или синтакс-помощником.
Как пользоваться
- Откройте обработку в тонком или толстом клиенте.
- Отметьте, что проверять: конфигурацию, расширения, внешние обработки из справочника. Введите пароль пользователя для конфигуратора или оставьте пустым, тогда конфигуратор спросит сам.
- Нажмите "Проверить код". Обработка выгрузит код конфигуратором в пакетном режиме, проверит его и откроет отчёт. Если выгрузка в файлы уже есть, укажите её папку, и конфигуратор запускаться не будет.
Отчёт - табличный документ: сводка по правилам, затем находки с модулем, строкой, процедурой и выводом. Сохраняется штатно через Ctrl+S. Базу обработка не меняет и ничего в неё не пишет.
На чём проверена
- Типовая "Управление торговлей для Казахстана" 3.4.4.87: 7 157 модулей, 3,5 млн строк, 223 секунды проверки на сервере с включённой отладкой (выгрузка конфигуратором отдельно). 30 находок, при ручной проверке всех 30 верных 24, из них у 8 замена доступна прямо на месте. У правил уровня "Заменить" верны 4 из 4.
- Замены из каталога вызваны кодом на тестовых базах 8.3.27.1606; буфер обмена сверен с синтакс-помощником.
- Встроенная самопроверка на контрольном модуле с ловушками: 23 находки из 23, лишних ноль.
Как появился инструмент и что показал замер на типовой, разобрано в статье "Что платформа 1С закрыла в 8.3.22-8.3.27 и где эти замены не работают".
Ревизор отвечает на один вопрос: что можно заменить штатным. Если надо разобрать внешние обработки и печатные формы из справочника: что они делают с данными, есть ли в них запросы в цикле, опасные вызовы и хардкод, - это Анализ кода внешних обработок 1С. А что в конфигурации изменится или сломается при переходе на платформу 8.5, показывает Помощник перехода на 1С 8.5.
Совместимость и состав
- Проверена на платформе 8.3.27.1606, на более старых платформах не запускалась.
- Конфигурация любая: работает по выгрузке в файлы, БСП не нужна.
- Выгрузка конфигуратором запускается из тонкого и толстого клиента Windows. В веб-клиенте обработка не проверялась.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.204.22
Вступайте в нашу телеграмм-группу Инфостарт