Помощник перехода с 8.1 на 8.2

Помощник перехода с платформы 8.1 на платформу 8.2. Помогает разобраться возможными ошибками в ОбработкаЗаполнения() и РАЗЛИЧНЫЕ и УПОРЯДОЧИТЬ в запросах, при отключении режима совместимости. Предоставляет удобную возможность просмотра вызывающих подозрение процедур и функций. Автоматически предлагает возможное решение для ОбработкаЗаполнения().

Приветствую!

Все, кто столкнулись с необходимостью переводить конфигурации с платформы 8.1 на 8.2 знают о двух центральных моментах перехода — обязательной проверки типа Основания в предопределенной процедуре ОбработкаЗаполнения() и особенности использования запросов с РАЗЛИЧНЫЕ и УПОРЯДОЧИТЬ. Заботливая фирма 1С даже приложила специальную обработку, помогающую найти проблемные места в коде конфигурации. Однако при практическом применении этой обработки выясняется, что ее использование — мягко говоря не эффективно, если не сказать, что крайне неудобно. Т.к. после того, как обработка вываливает список найденных ею возможных проблем, предпологается, что разработчик будет заглядывать в конфигураторе в каждый указанный модуль, что не проблемно, если у вас таких проблем несколько, но крайне затруднительно, если мы говорим о большой конфигурации с огромной кучей потенциально опасных мест. Собственно восполнить этот пробел и должна данная обработка.

1. ОбработкаЗаполнения. Собственно идея проста — в Попытке мы заполняем все существующие документы неожиданным значением (например Неопределно). И смотрим, вызовет, ли это исключение. Если исключения не произошло — можно смело предоложить, что разработчик позаботился о проверке типа Основания и затруднений с данным документом не будет. Но если произошло исключение — это сигнал проблемы. И тут бы можно было бы умыть ручки и радостно рапортовать о проблеме. Но мы пойдем дальше, и заглянув в метаданные определим, какими типами можно заполнить данный документ. И по очереди попытаемся заполнить документ на основании пустой ссылки нужного типа. Если исключения не произошло — можно предопложить, что данный тип основания допустим, если произошло, то скорее всего — нет. На основании такой работы обработка составляет простой код — заглушку, который по условию проверяет тип Основания и возвращается, если переданно основание недопустимого типа. Таким образом мы делаем большую часть грязной работы за разрабочтика. Тут бы вобщем можно было бы сразу вшить созданную нами заглушку в код выгруженных модулей и загрузить их обратно в конфигурацию, но делать этого я не буду — всеж хоть какой то контроль и понимание происходящего со стороны разработчика должны присутствовать.

2. РАЗЛИЧНЫЕ и УПОРЯДОЧИТЬ. К сожалению, придумать сколь либо адекватный алгоритм автоматической проверки мне не удалось. Связанно это с тем, что зачастую запросы составляются кусками и анализировать их с приемлемой результативностью — не совсем простая задача. Поэтому, все, что делает обработка — это в удобном формате отображает найденные в модулях процедуры и функции с РАЗЛИЧНЫЕ и УПОРЯДОЧИТЬ. Таким образом отменяя необходимость мотаться как шельма по конфигуратору туда-сюда, ища нужные места.

В заключение: у обработки определенно есть потенциал, и возможно дальнейшее развитие и доработка функционала. Но на практике, после перевода основной конфигурации на новую платформу я врядли к ней вернусь. Так, что оставляю ее доработку людям, которые часто занимаются решением вышеоговоренных проблем. Из идей развития:
1. Всеж хочется алгортим, если не автоматической проверки, то хотябы подсвечивания нужных кусков запроса

ВЫБРАТЬ (РАЗРЕШЕННЫЕ) РАЗЛИЧНЫЕ
// Вот тут подсвечиваем, и разбираем на ключевые слова
ИЗ
// пофигу на это
УПОРЯДОЧИТЬ ПО
// вот тут подсвечиваем или разбираем на ключевые слова

2. Автоматическая корректировка в модулях, с последующей загрузкой в конфигурацию.
3. мелкие рюшки-менюшки в виде возможности выгрузить модули не выходя из обработки, возможности работы с разными конфами и запоминания процесса их модификации, поиск ключевых слов и т.д. и т.п.

И наконец — ссылки по теме:
//infostart.ru/public/75259/
http://www.nashe1c.ru/materials-view.jsp?id=284

3 Comments

  1. V.Nikonov

    Веселее всего было вылизывать ситуации, когда Новый документ создавался из Списка/Журнала…

    При наличии в Списке отбора, в качестве основания передавалось Значение «Структура» с параметрами отбора.

    Соответственно, пришлось расписывать эти ситуации. Ставить не запрещающие создание, а исключающие их (Структуру) из анализа на настоящий ДокументОснование.

    Reply
  2. AlekseiLeit

    актуальная тема, спасибо автору за работу, подробное описание проблем, их решение, этапов перехода

    чувствую а апреле придется переводить базу, все никак времени не было…

    Reply
  3. JesteR

    Обработку не юзал, но идея хорошая. Действительно, обработка с ИТС просто вываливаем кучу ошибок, а дальше только ручками :).

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *