Jupyter для 1С: правка модуля и проверка на живой базе без перезапуска
Jupyter для 1С — это интерактивный ноутбук: код на встроенном языке запускается по ячейкам прямо в подключённой базе, результат появляется под ячейкой. Он убирает круг «правка — обновление — запуск — проверка», и запрос или процедуру проверяют за секунды. На рабочей базе так можно, если подключаться отдельным пользователем с правом только на чтение.
Почему отладка в 1С растягивается на часы 🐢
Конец квартала. Разработчик правит расчёт скидки в общем модуле: клиент ждёт исправление до старта акции. Сама правка занимает минуту, проверка — нет. Сохранить, обновить конфигурацию базы данных, дождаться запуска клиента, найти документ, провести, увидеть ошибку в третьей строке. Потом всё сначала.
Каждый круг длится минуты, поэтому гипотез за час проверяется мало, а часть правок уходит в базу наугад. Есть и вторая причина. На пустой тестовой базе ошибка не воспроизводится: она живёт в одном контрагенте с необычным договором и странным остатком на складе. Программист либо копирует базу целиком, либо гадает.
Ставка понятная. Если акция не сработала, заказы уходят по неверной цене, менеджеры правят их руками, а бухгалтерия разбирает расхождения при закрытии месяца. Когда отладку ведёт специалист на почасовом сопровождении (у нас это 3800 руб/час), каждый лишний круг «обновил, запустил, посмотрел» попадает в счёт. То же касается любой доработки 1С: чем короче цикл проверки, тем меньше часов уходит на задачу.
Как настроить Jupyter для 1С: от «Привет, мир!» до перезагрузки модулей 🔌
Jupyter — открытый инструмент. Документ-ноутбук состоит из ячеек, а код исполняет ядро (kernel). Для 1С ядро принимает текст ячейки, отправляет его в базу и возвращает результат под ячейкой. Код, пояснения и результаты лежат в одном файле формата ipynb.
Что нужно для запуска
- ✓Python и JupyterLab на машине разработчика. Ставятся через pip.
- ✓Ядро Jupyter для 1С, готовое или написанное под вашу базу.
- ✓Способ соединения. COM-соединение работает на Windows и требует установленной платформы 1С, совместимой с версией сервера. HTTP-сервис в расширении конфигурации обходится без платформы на машине разработчика.
- ✓Отдельный пользователь базы с ролью только на чтение.
Первая ячейка
Начинайте с «Привет, мир!»: ячейка возвращает эту строку из 1С. Если строка пришла, соединение установлено, пользователь вошёл в базу и занял клиентскую лицензию. Про лицензию лучше помнить сразу: она освободится только после закрытия сеанса.
Вторая ячейка уже полезна: запрос «ВЫБРАТЬ ПЕРВЫЕ 5 Наименование ИЗ Справочник.Номенклатура». Пять строк появляются таблицей под ячейкой, конфигуратор не открывается. Дальше меняете условие и перезапускаете ячейку, пока запрос не вернёт нужное.
Перезагрузка модулей на лету
Вы меняете процедуру в ячейке, запускаете и видите новый результат. Работает это двумя путями.
Первый: текст процедуры уходит в базу строкой и исполняется на стороне 1С. Сеанс не перезапускается, конфигурация не обновляется. Второй: код лежит в общем модуле расширения, ядро загружает новую версию расширения в тестовую копию и перезапускает сеанс. Первый путь быстрее. Второй медленнее, зато проверяет код в том виде, в каком он попадёт в конфигурацию. Запросам и расчётам хватает первого. Проведение документов проверяют вторым, и только на копии.
Как экспериментировать на живой базе и ничего не сломать 🛡️
Пятница, конец дня. В заказе покупателя цена уходит в минус, и только у одного клиента. Менеджер ждёт ответа, склад ждёт заказ. В тестовой базе такого клиента нет.
Ноутбук решает это так: вы читаете документ, вызываете реальную функцию расчёта цены с его параметрами и выводите промежуточные значения по шагам. Это боевой код на боевых данных, только без записи. Причину видно по цифрам на каждом шаге, а не по догадкам.
Работа на живой базе безопасна при пяти правилах:
- ✓Ноутбук подключается отдельным пользователем с ролью только на чтение. Записать что-либо под ним технически нельзя.
- ✓На рабочей базе вызывают функции, которые ничего не пишут. Проверку записи, проведения и регламентных заданий выполняют на копии.
- ✓Запросы пишут с параметрами, а текст для исполнения не собирают из данных базы.
- ✓Каждое подключение попадает в журнал регистрации под своим именем: видно, кто и когда смотрел базу.
- ✓Перед сохранением в систему контроля версий вывод ячеек очищают. Файл ipynb хранит результаты, а в них остаются фамилии, телефоны и суммы.
Последнее правило касается закона. Если в выводе остались персональные данные, ноутбук становится их носителем, и на него распространяется 152-ФЗ. Отправить такой файл подрядчику в Telegram значит передать персональные данные третьему лицу.
Чем Jupyter отличается от привычных способов проверки
| Способ | Круг проверки | Риск для рабочей базы | История экспериментов | Когда брать |
|---|---|---|---|---|
| Конфигуратор и отладчик | Минуты на обновление и запуск клиента | Низкий на копии, высокий при подключении к рабочей базе | Нет | Пошаговый разбор процедуры |
| Внешняя обработка-консоль | Секунды для запроса, неудобно для сценариев из нескольких шагов | Зависит от прав пользователя | Нет, код теряется при закрытии | Разовые запросы |
| Jupyter-ноутбук | Одна ячейка, результат под ней | Низкий при пользователе только на чтение | Есть: код, заметки и результаты в одном файле | Расследования, прототипы, обучение новичков |
| Тестовая копия с расширением | Минуты на загрузку расширения и перезапуск сеанса | Для рабочей базы нулевой | Через систему контроля версий | Проверка записи и проведения документов |
Что делать, если ошибка повторяется 🔁
В цепочке ноутбука четыре звена: ядро, соединение, права и база. Сбои повторяются по одним и тем же причинам.
Ячейка выполняется и не возвращается
Чаще всего это блокировка, тяжёлое регламентное задание или запрос без отбора по большому регистру. Добавьте в запрос ПЕРВЫЕ N и ограничение по периоду. Если не помогло, найдите в консоли кластера сеанс с блокировкой и выясните у его владельца, что он делает. Завершать чужой сеанс вслепую нельзя.
Новая версия модуля не подхватывается
Ядро держит старое соединение и старый загруженный код. Перезапустите ядро, и соединение откроется заново. Если модуль лежит в расширении, проверьте, что расширение применено и сеанс перезапущен. Пока этого нет, база работает со старым текстом.
Закончились лицензии
Каждое подключение занимает лицензию. Закрытая вкладка не всегда закрывает соединение, и в кластере остаются сеансы под пользователем ноутбука. Администратор видит их по имени и завершает. Постоянное решение: последней ячейкой закрывать соединение и регулярно чистить зависшие сеансы.
На копии работает, на рабочей базе нет
У копии и оригинала расходятся версия конфигурации, набор расширений, права или константы. Сравните эти четыре параметра, прежде чем искать ошибку в коде. Если расхождения копятся, копию проще пересоздавать по расписанию, чем чинить.
Как предотвратить проблемы: контур, права и порядок в ноутбуках
Почти все сбои выше вырастают из одного: ноутбук подключили к тому, к чему было быстрее, а не безопаснее. Порядок выглядит так.
- ✓Тестовая копия обновляется по расписанию, а персональные данные в ней обезличены.
- ✓У ноутбука две учётные записи: с записью для копии и только на чтение для рабочей базы.
- ✓Ноутбуки лежат в git с очищенным выводом, а строка подключения хранится в переменных окружения, не в ячейке.
- ✓Стартовые ноутбуки описывают типовые расследования: остатки, цены, расхождения в регистрах. Новый сотрудник не изобретает их заново.
Отдельная история с обновлениями. После перехода на новую версию типовой конфигурации расширения и доработки ломаются в неожиданных местах. Если сценарии проверки лежат в ноутбуках, их прогоняют на копии до обновления 1С, и расхождения видны раньше, чем пользователи войдут в базу утром.
Сколько стоит настроить Jupyter для 1С и что входит 💰
Сам ноутбук ставится быстро. Дольше настраивается окружение вокруг него: копия базы, права, обезличивание, регламент обновления копии. В небольшой компании программист часто один, база одна, копии нет, и эксперименты идут прямо в рабочей базе. Мы делаем наоборот: сначала контур и права, потом ноутбук.
Работа входит во внедрение 1С или заказывается отдельно. Вы получаете:
- ✓тестовый контур на арендованном сервере 1С, аренда от 1 100 ₽/мес за пользователя;
- ✓копию вашей базы с обезличенными персональными данными;
- ✓пользователя для рабочей базы с правом только на чтение;
- ✓ядро Jupyter, настроенное под вашу платформу и способ соединения;
- ✓стартовые ноутбуки под вашу конфигурацию: остатки, цены, расхождения в регистрах.
Часы специалиста считаем по ставке 3800 руб/час. Сколько их уйдёт, зависит от размера базы и числа расширений. Цифру называем после знакомства с конфигурацией, потому что без просмотра базы честную оценку не дать. Если отладка у вас сейчас идёт по кругу «обновил, запустил, посмотрел», начните с копии базы: она нужна в любом варианте.
❓ Частые вопросы
Что такое Jupyter для 1С и зачем он нужен?
Jupyter для 1С — это блокнот из ячеек, в которых выполняется код на встроенном языке 1С и запросы к базе. Результат появляется под ячейкой сразу. Инструмент нужен, чтобы проверять правки и расследовать ошибки без цикла «обновил конфигурацию — запустил клиент — открыл документ», а найденные решения сохранять в файле.
Можно ли подключать Jupyter к рабочей базе 1С?
Подключать Jupyter к рабочей базе 1С можно, если входить отдельным пользователем с ролью только на чтение и вызывать функции, которые ничего не записывают. Проверку записи, проведения документов и регламентных заданий выполняют на тестовой копии. Перед сохранением ноутбука очищайте вывод ячеек: в нём остаются реальные фамилии и суммы, а это персональные данные.
Нужна ли лицензия 1С для работы Jupyter?
Сам Jupyter открытый и бесплатный, отдельная лицензия на него не нужна. Лицензия 1С нужна для соединения: каждое подключение ноутбука к базе занимает клиентскую лицензию, пока сеанс не закрыт. Поэтому в конце работы соединение закрывают, а администратор периодически проверяет кластер на зависшие сеансы под пользователем ноутбука.
Сколько стоит настроить Jupyter для 1С?
Настройка Jupyter для 1С у нас считается по ставке 3800 руб/час, объём зависит от размера базы и числа расширений. Тестовый контур на арендованном сервере 1С стоит от 1 100 ₽/мес за пользователя. Точное число часов называем после знакомства с конфигурацией: без просмотра базы честную цифру не дать.
Чем Jupyter лучше консоли запросов 1С?
Jupyter хранит всю цепочку: запросы, пояснения и результаты остаются в файле, и ноутбуком можно поделиться с коллегой. Типичная консоль запросов теряет код при закрытии, плохо подходит для сценариев из нескольких шагов и не оставляет заметок. Для разового запроса консоли хватает, для расследования лучше ноутбук.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

