gifts2017

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

Опубликовал lazy (lazy) в раздел Администрирование - Системное

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

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

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

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

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

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

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


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

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

Скачать файлы

Наименование Файл Версия Размер
ПомошникПереходаС81на82.epf 86
.epf 17,85Kb
12.03.12
86
.epf 17,85Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Вадим Никонов (V.Nikonov) 15.03.12 09:41
Веселее всего было вылизывать ситуации, когда Новый документ создавался из Списка/Журнала...
При наличии в Списке отбора, в качестве основания передавалось Значение "Структура" с параметрами отбора.
Соответственно, пришлось расписывать эти ситуации. Ставить не запрещающие создание, а исключающие их (Структуру) из анализа на настоящий ДокументОснование.
2. Алексей Лейт (AlekseiLeit) 15.03.12 11:13
актуальная тема, спасибо автору за работу, подробное описание проблем, их решение, этапов перехода
чувствую а апреле придется переводить базу, все никак времени не было...
3. Сергей JesteR (JesteR) 12.07.12 11:29
Обработку не юзал, но идея хорошая. Действительно, обработка с ИТС просто вываливаем кучу ошибок, а дальше только ручками :).