Привет всем! Меня зовут Ростислав, я программист 1С в ТехВилле.
И если Вы разрабатываете под 1С, то знаете главное правило: хочешь протестировать мелкое исправление — готовься перезапускать режим предприятия, снова открывать нужный документ, снова восстанавливать контекст и снова проходить длинный бизнес-процесс ради
одной кнопки.

В какой-то момент я понял: я не готов так жить дальше.
И сделал инструмент, который позволяет писать код в файле, сохранять и мгновенно видеть результат в режиме предприятия, без перезапуска и без боли!

Так появился Чпоньк! Название говорит само за себя: нажал Ctrl+С = чпоньк! и изменения уже применены.

Хочу рассказать, как он работает, чем помогает и почему возвращаться к старому циклу «правка → перезапуск → проверка» совсем не хочется.

Как выглядит работа с Чпоньк?

Чтобы было проще объяснить, возьмём простой пример. Допустим, в карточке поставщика нужно добавить кнопку: отправить код поставщика во внешний сервис и записать ответ в комментарий.

Классическая рутина, но в Чпоньк! всё выглядит совсем иначе.

Шаг 1. Пишу код в VS Code

Создаю обычный файл. Да, самый обычный, который можно открыть хоть в блокноте. Я предпочитаю VS Code.

Шаг 2. Запускаю Чпоньк!

Указываю:

— файл версии конфигурации (если его нет, то выгружаю нажатие кнопки “Выгрузить файл версий”);
— файл с доработками;
— способ поставки изменений (COM или HTTP “ручка”).

Нажимаю кнопку «Запустить».

В этот момент внутри начинается магия: Чпоньк! парсит файл, собирает расширение, подключает его, один раз перезапускает режим предприятия  и всё! Изменения применены, можно проверять..

При первом подключении понадобится единственный перезапуск за всю сессию разработки.

Шаг 3. Открываю карточку поставщика

Кнопка уже на месте. Нажимаю — ответ сервиса появился в поле комментарий.

Шаг 4. Меняю код — и вижу результат, не перезапуская 1С

Подключаю наблюдатель за файлами.

Меняю код в файле, сохраняю, возвращаюсь в карточку - логика уже другая. 

И всё это без повторного открытия формы, без воспроизведения бизнес-процесса, без «ну щас ещё разок перезапущу».

Почему это реально ускоряет разработку

Лично для меня главное это то, что контекст не теряется. Если нужно протестировать кусочек логики в середине длинного процесса, то в классике вы:

  1. Перезапускаете предприятие.

  2. Последовательно воссоздаете контекст, выполняя необходимые действия по процессу.

  3. И на последнем шаге проверяете корректность доработки.

С Чпоньк! всё иначе:

  1. Редактируйте код в файле

  2. Сохраняете

  3. Проверяете корректность доработки

И тестируете ровно то, что нужно, прямо на том шаге, где вы стояли. Плюс все доработки по задаче находится в одном файле, а не разбросан по модулям конфигурации. Разделение по модулям с помощью специальных директив. Для теста или демонстрации достаточно его “подключить” к конфигурации через обработку. Также удобно отправить файл на код-ревью или переносить доработки из одного файла в хранилище.

 Что под капотом?

Главная идея простая: мы перехватываем выполнение метода через расширение, но само тело метода берём не из расширения, а из вашего файла.

Как это выглядит технически:

  • код из файла хранится в Хранилище общих настроек,

  • наблюдатель следит за изменениями и обновляет их в базе в хранилище,

  • расширение перехватывает вызов метода и выполняет код из хранилища,

Сборка расширения полностью автоматическая:

  • Чпоньк! парсит код из файла и разбивает его на модули и методы,

  • формирует исходные XML файлы расширения,

  • используя  временную базу или утилиту ibcmd собирает файл расширения,

  • подключает его в рабочую базу.

Вы ничего этого не видите, так как это всё происходит под капотом. 

Настройки и работа в интерфейсе

Первый запуск — четыре действия: указать файл версий, файл с доработками, способ доставки и нажать «Запустить».

После подключения на форме обработке будет:

  • список файлов,

  • список методов,

  • параметры, аннотации, события,

  • возможность удалить файл (и вернуть базу в исходное состояние).

Ограничения, о которых нужно знать

Пишу честно, как есть:

На проде использовать не надо. Это инструмент для разработки. 

Отладки нет. Но содержимое переменных или трассировку можно выводить в лог или сообщения.

— Работает только на управляемых формах.

— Нужна платформа 8.3.18+ (используются асинх методы для работы с ОС)

— Работает только на Windows

— После добавления нового модуля в текст файла понадобится перезапуск.
При этом методы можно добавлять без перезапуска.

— Асинхронные методы и обработчики оповещений внутри файла пока не поддерживаются.
 

Планы развития

Дальше хочу:

— обойти ограничения,
— сделать кнопку «закинуть код сразу в конфигурацию или хранилище»,
— добавить полноценную поддержку формата EDT.

Идей много, времени мало, но я стараюсь.

И самое главное — Чпоньк! в открытом доступе

На странице репозитория (https://github.com/pogo4/chponk) можно  посмотреть исходники, протестировать готовую сборку, попробовать пример файла или даже прислать свой pull-request — я буду только рад.

Очень надеюсь, что Чпоньк!  ускорит Вашу разработку так же, как ускорил мою, и вокруг него появится сообщество людей, которым по душе такой способ работы.