Разработка в экосистеме «1С:Предприятие» за последние годы превратилась из классического конфигурирования в полноценную инженерную дисциплину. Современный программист 1С уже не может ограничиваться только стандартным конфигуратором, если перед ним стоит задача писать качественный код быстро и без ошибок. В этой статье мы подробно рассмотрим и проанализируем как классические инструменты, проверенные временем на форумах, так и передовые технологии, пришедшие из сферы веб-разработки и DevOps.
Мы разберем по шагам, какое программное обеспечение, внешние обработки и среды разработки стоит внедрить в свою повседневную практику, чтобы автоматизировать рутину и сфокусироваться на архитектуре и логике бизнес-приложений.
Начнем с фундаментального набора, который должен быть под рукой у каждого специалиста. Эти инструменты запускаются непосредственно внутри среды «1С:Предприятие» и позволяют оперативно манипулировать данными и метаданными.
Инструменты разработчика (ИР) Ивана Володина. Это мощнейший комплекс обработок. Несмотря на то, что классический интерфейс ИР изначально проектировался под обычные формы, он успешно функционирует в управляемом приложении в режиме толстого клиента. В этот комплекс входят десятки утилит, заменяющих стандартные функции платформы:
Рассмотрим пример того, как программисты автоматизируют рутинные операции изменения данных с помощью аналогичных универсальных функций прямо в коде:
// Пример безопасного изменения реквизита без вызова тяжелых обработчиков проведения
Процедура БыстроеОбновлениеСтатуса(СсылкаНаОбъект, НовыйСтатус)
ОбъектМанипуляции = СсылкаНаОбъект.ПолучитьОбъект();
ОбъектМанипуляции.ОбменДанными.Загрузка = Истина;
ОбъектМанипуляции.СтатусДокумента = НовыйСтатус;
Попытка
ОбъектМанипуляции.Записать(РежимЗаписиДокумента.Запись);
Сообщить("Объект успешно обновлен: " + СсылкаНаОбъект);
Исключение
ЗаписьЖурналаРегистрации("ОшибкаОбновленияДанных", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Консоль отчетов компоновки данных (СКД). Написание отчетов «с нуля» без использования консоли СКД занимает в разы больше времени. Консоль позволяет отладить макет компоновки, проверить работу параметров, виртуальных таблиц и соединений до того, как отчет будет внедрен в саму конфигурацию.
Анализ прав и ролей. При работе с БСП (Библиотекой стандартных подсистем) в современных конфигурациях настройка прав становится нетривиальной задачей. Специализированные обработки, отображающие матрицу «Роли и их объекты» с гибкими отборами, помогают за пару кликов выяснить, почему у конкретного пользователя нет доступа к документу или регистру.
Виды заполненных документов и справочников (для УФ). Эта обработка помогает быстро проанализировать степень заполненности базы данных. Например, в процессе переноса данных из других систем вы сможете наглядно увидеть, какие документы реально создались в базе, даже если стандартные журналы скрывают их из-за наложенных по умолчанию фильтров.
Скорость написания кода напрямую зависит от того, насколько эффективно вы используете шаблоны и автодополнение.
Шаблоны текста в Конфигураторе. Стандартный, но часто игнорируемый инструмент. Настройка собственных шаблонов под часто используемые конструкции (например, выборка из запроса, транзакции, попытки-исключения) высвобождает массу времени. Достаточно ввести короткое сокращение и нажать Ctrl + Q, чтобы развернуть готовый блок кода.
TurboConf (Турбоконф) и 1C:AutoDesigner. Это внешние утилиты, которые встраиваются в стандартный Конфигуратор 1С и выводят удобство написания кода на новый уровень. Они предоставляют:
Notepad++ и XML Notepad 2007. При интеграции 1С с внешними системами программисту постоянно приходится работать со структурированными файлами (XML, JSON, HTML). Notepad++ с плагинами форматирования XML/JSON позволяет быстро читать и редактировать огромные файлы обмена. XML Notepad 2007 незаменим, когда нужно корректно вырезать поврежденные узлы XML-файла перед его загрузкой в базу данных 1С.
Postman. Современный маст-хэв для интегратора. Если ваша база 1С обменивается данными по REST/SOAP API с внешними сайтами, CRM или государственными сервисами, тестировать запросы внутри 1С крайне неэффективно. В Postman вы можете за секунды собрать POST или GET запрос, настроить авторизацию, передать заголовки и посмотреть точный ответ сервера, а затем просто перенести работающую логику в код 1С.
Технологический стек 1С давно вышел за рамки классического Конфигуратора. Крупные проекты требуют современных подходов к написанию кода.
1C:Enterprise Development Tools (1C:EDT). Это современная среда разработки от самой фирмы «1С», созданная на базе популярной платформы Eclipse. Внедрение EDT кардинально меняет процесс разработки за счет следующих возможностей:
Visual Studio Code (VS Code) или Cursor с плагинами. Многие ведущие разработчики используют VS Code в качестве легкого и быстрого редактора кода модулей 1С. Для этого разберем основные плагины:
Одной из главных проблем разработки в 1С всегда была необходимость постоянного перезапуска сеанса «1С:Предприятие» для проверки изменений в коде. Современные инструменты решают эту проблему.
Утилита «Чпоньк!». Позволяет писать код во внешнем файле (например, в VS Code), сохранять его и мгновенно видеть результат в режиме «1С:Предприятие». Данный инструмент автоматически упаковывает изменения в динамическое расширение базы данных без необходимости закрывать и открывать сеансы пользователей. Это экономит часы времени при отладке сложных интерфейсных сценариев.
Faster1C (модуль Attache). Специализированная инженерная утилита. Она дает возможность выполнять произвольный код на встроенном языке прямо внутри открытого пользовательского сеанса 1С, обходя необходимость открывать Конфигуратор и писать разовые обработки. Вы просто открываете консоль утилиты внутри предприятия, пишете нужный алгоритм и запускаете его.
Для командной разработки критически важно автоматизировать рутинные процессы обновления тестовых баз, сборки дистрибутивов и проверки кода.
OneScript (Oscript). Это кроссплатформенная консольная среда исполнения скриптов на языке 1С. Она позволяет писать автоматизационные скрипты на знакомом встроенном языке без запуска тяжелой платформы 1С. С помощью OneScript автоматизируют:
gitsync. Специализированный инструмент для синхронизации метаданных конфигурации 1С с репозиторием Git. Он выгружает конфигурацию в файлы, структурирует их и фиксирует историю изменений построчно. Благодаря этому вся команда видит, кто, когда и зачем изменил конкретную строчку кода в общем модуле.
Ручное тестирование измененного функционала отнимает колоссальное количество времени программиста. Автоматизация тестирования гарантирует, что новые доработки не сломают уже существующую бизнес-логику.
Vanessa Automation (Vanessa-Behavior). Это передовой инструмент для реализации концепции BDD (Behavior-Driven Development) в 1С. Разработчик или тестировщик один раз записывает свои действия на экране (клик по кнопкам, заполнение реквизитов, проведение документа), а утилита преобразует эти действия в текстовый сценарий на понятном русском языке. При каждом обновлении системы этот сценарий запускается автоматически и проверяет работоспособность интерфейса и бизнес-логики.
YAxUnit / xUnitFor1C. Фреймворки для создания модульных (Unit) тестов. С их помощью мы можем писать тесты непосредственно на встроенном языке 1С для проверки работы отдельных процедур и функций общих модулей. Посмотрим на простейший пример юнит-теста:
// Пример модульного теста для проверки функции расчета НДС
Процедура Тест_ДолженРассчитатьНДС_20Процентов() Экспорт
СуммаБезНДС = 1000;
ОжидаемыйНДС = 200;
ФактическийНДС = МодульРасчетаВалют.РассчитатьНДС(СуммаБезНДС, Перечисления.СтавкиНДС.НДС20);
// Используем утверждения xUnit
ЮТест.Ожидаем(ФактическийНДС)
.Равно(ОжидаемыйНДС, "Сумма НДС рассчитана некорректно для ставки 20%");
КонецПроцедуры
Качество кода определяет стабильность работы всей системы в долгосрочной перспективе.
SonarQube и плагин BSL Community Plugin. Это связка для автоматического непрерывного контроля качества кода. Каждый раз, когда программист помещает код в репозиторий, SonarQube анализирует его на наличие уязвимостей, "технического долга", дублирования кода и потенциальных багов производительности (например, запросов в циклах). Программа выводит наглядный отчет с указанием всех проблемных мест.
SQL Profiler и pgAdmin. Когда стандартный замер производительности в Конфигураторе 1С не позволяет локализовать причину медленной работы системы, на помощь приходят профайлеры СУБД. Они позволяют проанализировать реальные SQL-запросы, отправленные платформой 1С на уровень базы данных, выявить неоптимальные планы запросов, отсутствующие индексы и избыточные блокировки таблиц.
Выбор оптимального набора инструментов зависит от масштаба задач, с которыми вы сталкиваетесь ежедневно. Проанализируем три типичных сценария:
Минимальный набор (для поддержки небольших баз): Конфигуратор + встроенные текстовые шаблоны + универсальные обработки «Инструменты разработчика» (консоль запросов, редактор объектов) + Notepad++.
Продвинутый набор (для активной разработки под управляемые формы): Конфигуратор + TurboConf + VS Code с плагином BSL Language Server + Postman + Консоль СКД.
Профессиональный командный стек (для крупных проектов и Enterprise-сегмента): 1C:EDT + Git + OneScript + gitsync + Vanessa Automation + SonarQube.
Внедрение даже нескольких инструментов из этого списка позволит вам избавиться от монотонных рутинных операций, минимизировать количество глупых ошибок и поднять скорость вашей разработки в 1С на качественно новый уровень.