Лайфхак: исходники внешних обработок и отчетов 1С — это просто.







Важно: статья далеко на любителя всяких таких git’ов, gitlab’ов и oscript’ов.

Как упомянул в кратком описании, статья действительно для тех "кто в теме", НО если есть интерес, то начать советую с этого вебинара, а дальше в комментариях к этой статье.

Исходная ситуация

Вы храните свой проект (внешний отчет или обработку 1С) где-то в облаке (gitlab или github или bitbucket не суть) и вам не нравится, что среди исходников проекта "отсвечивает" *.epf или *.erf. Если это ваша ситуация, имеет смысл обратить внимание на скрипты конвертации внешних отчетов и обработок 1С в исходники и обратно.

Подготовка

  1. Установить oscript.
  2. Установить платформу 1С не ниже 8.3.10.
  3. Склонировать себе каталог-проект скриптов конвертации.
  4. Скопировать скрипты из каталога скриптов конвертации в каталог своего проекта:

  1. Скопировать *.bat файлы из каталога Exemple каталога скриптов конвертации в каталог своего проекта:

*.epf и *.erf*.xml и *.bsl

  1. Сохранить свою, например, обработку в каталог проекта:

  1. Запустить Decompile.bat, чтобы разобрать внешнюю обработку на исходники.

  1. Добавить в .gitignore файл fileversion и *.epf, чтобы иметь только исходники в своем проекте.

  1. git push…

*.xml и *.bsl → *.epf и *.erf

  1. git clone… или git pull…
  2. Запустить Compile.bat, чтобы собрать (обновить) внешнюю обработку из исходников.

Готово!

12 Comments

  1. Aphanas

    Конфигуратор же вроде уже давно умеет так собирать и разбирать

    Reply
  2. new_user

    (1) верно! но эти скрипты «мониторят» изменения обработок (отчетов), и позволяют массово разобрать на исходники только изменившиеся обработки (отчеты).

    Reply
  3. Infactum

    А что про хуки не написали? Руками скрипты запускать это как-то несерьезно совсем.

    Reply
  4. Pr-Mex

    (3) Вы какие хуки имеете ввиду?

    Например, если epf в .gitignore, тогда её изменение не будет ничего тригерить. И хук ничего не поймает.

    Reply
  5. Infactum

    (4) Ваша правда, про .gitignore забыл.

    Reply
  6. BESL

    Не разберутся обычные формы, поэтому лучше использовать precommit4onec + удобная установка в репозиторий одной командой precommit4onec install <Путь к репозиторию>

    Reply
  7. AntonSm

    (6) в precommit1c есть очень удобная команда — precommit1c —git-precommit — которая разбирает файлы, помещенные в индекс, без коммита. Я в этом случае смотрю, что сделано, и легко могу написать подробный комментарий к коммиту, ничего не забыв.

    В precommit4onec есть подобная команда?

    Reply
  8. BESL

    (7)Да.

    precommit4onec precommit <Путь к репозиторию>

    Из описания на gitHub :

    «Указанным продуктом пользовались долгое время, он очень хорош, но потребность в развитии и невозможность реализации некоторых сценариев работы в публичной версии сподвигли к реализации нового решения.»

    Reply
  9. artbear

    Да, в указанном в статье варианте

    + есть проблема с обычными формами.

    + Нет использования хуков

    + не очень понятно, как ведется анализ необходимости

    + и т.п.

    ИМХО проще использовать мощнейший функционала vanessa-runner с 2-мя командами — compileepf и decompileepf.

    + Разбирает как упр.формы, так и обычные формы,

    + Пользуется штатным механизмом 1С.

    + Умеет работать и с файловыми базами, и с серверными

    + Разбирает только обновленные файлы

    + есть куча настроек для упрощения запуска

    + супер-полезный комбайн автоматизации 1С

    + есть огромная куча других полезных команд — обновление, расширения, тестирование, сборка/разборка всего и вся и т.п.

    + Используется в куче компаний

    + Крайне активно дорабатывается

    очень рекомендую использовать

    github.com/silverbulleters/vanessa-runner

    Reply
  10. GreenDragon

    (9) Вот пришёл, и застрелил статью.

    Reply
  11. ImHunter

    (9) А есть хук с использованием vanessa-runner? Для авто-разборки-сборки внешних модулей.

    Reply
  12. утюгчеловек

    В идеале конечно хотелось бы утилиту иметь, ни от чего не зависящую, чтобы собирать/разбирать обработки на «код» и «всё остальное», хотя бы для актуальной версии формата. В принципе бинарники epf читаемы и разобраны в hex, жаль что пока никто не взялся…

    Чтоб даже без платформы, и без onescript и тд и тп

    Reply

Leave a Comment

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