Конвертация внешних обработок 1С:8 из 8.2 в 8.1

Администрирование - Сервисные утилиты

Скрипт на Python 3 для конвертации внешних обработок 1С8 из 8.2 в 8.1

Исходники: https://github.com/volodkindv/epf_82_to_81

Использование:

1. Установить интерпретатор Python 3 версии: https://www.python.org/downloads/
2. Клонировать/скачать репозиторий.
3. Положить в корень репозитория нужную внешнюю обработку, например, test.epf
4. В корне репозитория выполнить команду: python downgrade.py test.epf. Появится файл test_81.epf. Его надо открыть в конфигураторе 8.1 и обязательно пересохранить еще раз.

Скрипт отлаживался на версии 3.5.2.

Внешние обработки должны коректно открываться в платформе 8.2.16. Если внешнюю обработку сохраняли на платформе 8.3, то она может не сконвертироваться.

При установке Python обязательно поставить флаг "add to path", или вручную потом добавить.

Возможны проблемы с конвертацией макетов типа "СхемаКомпоновкиДанных" и какой-нибудь экзотикой вроде "ГрафическаяСхема".

Макеты "ТекстовыйДокумент", "ТабличныйДокумент", "ДвоичныеДанные" конвертируются нормально.

Макеты "СхемаКомпоновкиДанных" тоже конвертируются, но костыльно. Возможны ошибки.

Конвертация макетов остальных типов не проверялась.

В папке epf2src лежит библиотека для работы с внутренним форматом файлов 1С8 ("фигурные скобки и запятые").


Благодарности:

Автору V83Unpack за распаковщик/запаковщик;

Авторам V8Reader за идеи.

Проекту "Инструменты доктора Шатца" (Assembla).

Авторам GComp для 7.7 за скрипт попроцедурной нарезки текста модуля (использован в другом проекте, являющемся базой для данного). 

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

Наименование Файл Версия Размер
Конвертация внешних обработок 1С8 из 8.2 в 8.1:
.zip 641,03Kb
19.09.17
1
.zip 641,03Kb 1 Скачать

См. также

Комментарии
1. Andrey BedaNastala (Lem0n) 56 19.09.17 13:13 Сейчас в теме
В 8.2 изменилось обращение к метаданным, что-то вроде этого(сейчас искать не буду) :
8.2 Метаданные.Справочники.МойСправочник.СтандартныеРеквизиты.Код
8.1 Метаданные.Справочники.МойСправочник..Код

и бог знает что еще. Это учитывается?
2. Данила Володькин (skif47) 280 19.09.17 13:23 Сейчас в теме
(1) Ни в коем случае. Код переносится как есть. Дальше его можно регулярными выражениями допилить.
Главная проблема в нашем случае была именно с формами, элементами управления, привязками и т.д. Собственно, эта задача и решалась.

Навскидку, с 8.1 по 8.2 изменились параметры у методов ПодключитьВнешнююОбработку, ПодключитьВнешнююКомпоненту, строковое представление булева ("Ложь" -> "Да"). Вот про метаданные не помню, кажется, с ними как раз все хорошо.
3. Артур Аюханов (artbear) 882 19.09.17 13:40 Сейчас в теме
Наверное, это полезно, но ЗАЧЕМ?
4. Данила Володькин (skif47) 280 19.09.17 13:56 Сейчас в теме
(3) Некрофилия ))

Если серьезно, то у нас есть около 10 внешних обработок для 8.2, в каждой десятки форм и в среднем по 50 000 строк кода.
И несколько тысяч клиентов, которые ими пользуются.

Где-то 1-2% из них сидят на платформе 8.1 и ни в какую не собираются с нее слезать. Как правило, это крупные предприятия, которые внедряли какую-нибудь УПП 1.1, например. Огребли все баги конфигурации, платформы, забодали их, переписали свои базы. Кое-как перелезли с 8.0 на 8.1, обросли кучей сторонних интеграций, которые в эти базы стучатся. И больше такого не хотят ни за что.

Дак вот, обычно это очень крупные конторы, которые иногда просят обновление этих обработок под 8.1. А ручная конвертация отнимает много времени, сил, и адски демотивирует.

Собственно, и семерка до сих пор как Ленин, всегда молодая и популярная.
CyberCerber; корум; artbear; +3 Ответить
5. oleg babikov (OlegAr) 2 19.09.17 14:22 Сейчас в теме
(4)не тормозите развитие технологического процесса, переход на расчет на Электронику Д (деревянную) и написание отчетов для нее, это не удел развития прогресса.
Оставьте свое сообщение