Автоматизация процесса 1С-разработки

30.06.17

Разработка - DevOps и автоматизация разработки

В статье речь пойдет о том, как при разработке в 1С добиться автоматизации и универсальности, о тех инструментах, которые помогают нам, разработчикам 1С, сохранять самое ценное, что у нас есть – наше время.

Основные темы статьи – это:

  • Направления автоматизации. Что именно в работе 1С:Специалиста мы можем автоматизировать? Что стоит автоматизировать, а что не стоит? Я расскажу о примерах автоматизации, которые уже используются разными людьми.
  • Расскажу о способах создания универсальных решений – таких решений, которые будут работать на разных конфигурациях.
  • Расскажу об инструментах, которые помогают нам автоматизировать нашу работу, и помогают писать код, который будет вместо нас писать код.
  • Ну и расскажу об общей схеме адаптации решений к конфигурации пользователя.

Направления автоматизации

Какие наиболее популярные направления автоматизации?

  • Говоря об автоматизации, мы чаще всего подразумеваем автоматизацию задач администрирования (создания архивных копий, обновления конфигурации). С этим направлением проще всего, потому что все актуальные типовые решения построены на базе Библиотеки Стандартных Подсистем (БСП), которая уже содержит в себе механизмы, помогающие в автоматическом режиме обновить конфигурацию и создать ее копию. Более того, если ваша база небольшая, и у вас есть активная подписка на ИТС, то БСП может сама положить копию вашей базы в облачное хранилище 1С, чтобы вы не потеряли данные, даже если с компьютером что-либо случится
  • Второе направление автоматизации – это тестирование решений. В 1С-мире с этим немного сложнее, чем в классической разработке, но, тем не менее, последнее время очень много говорится о том, что при каждом изменении конфигурацию стоит тестировать, и лучше это делать автоматически. Сейчас на рынке есть достаточно много инструментов для создания автотестов. Наиболее интересные из них, на мой взгляд, это –  «Сценарное тестирование» от компании 1С, а также опенсорс-разработка «Vanessa Behavior». У них немного разная логика работы, но, в принципе, оба эти решения справляются с задачей автоматизации тестирования. Что из них выбрать – решение пользователя.
  • И третье направление автоматизации – это то, о чем я буду говорить остальную часть презентации – это автоматизация разработки. Для многих людей единственным способом создания решений на 1С является написание кода в конфигураторе. Но я хочу рассказать о том, что есть много вариантов работы с кодом программно.

Примеры автоматизации разработки

Какие основные примеры автоматизации уже реализованы?

  • Одним из лучших примеров мне кажется Библиотека Стандартных Подсистем (БСП) и процесс ее внедрения. Для тех, кто не занимался объединением с БСП, я немного расскажу о процессе интеграции БСП с другими самописными конфигурациями. Этот процесс состоит из трех этапов.
    • На первом этапе мы объединяем БСП с нашей конфигурацией. При этом у нас в конфигурации оказываются модули из разных подсистем.
    • Нам же в большинстве случаев нужны лишь некоторые подсистемы, поэтому второй этап внедрения БСП – это вырезание из конфигурации тех объектов, которые нам не нужны. Этот этап выполняется автоматизировано. Вы открываете обработку, которая входит в состав Библиотеки Стандартных Подсистем, эта обработка выгружает конфигурацию в файлы, меняет текст этих файлов и загружает обратно.
    • И третий этап внедрения, который нужен не для всех подсистем, но для некоторых – например, если вы внедряете в вашу конфигурацию механизм «Внешних печатных форм», то его, кроме объединения в конфигурации, нужно еще и подключить к формам. Это – простая операция, нужно просто внести строчку кода в процедуру «ПриСоздании» формы, а также добавить несколько маленьких процедур. Для автоматизации этой операции также есть отдельная обработка, которая называется «Расстановка фрагментов кода». Вы просто запускаете эту обработку, и она сама анализирует вашу конфигурацию и вставляет нужный текст в формы.
  • Еще одним примером автоматизации является разработка внешних печатных форм. Вообще на любом внедрении вынесение встроенных печатных форм во внешние – это одна из наиболее частых операций. Этот процесс тоже можно автоматизировать – на Инфостарте даже есть небольшая обработка, которая так и называется – «Конструктор внешних печатных форм». Она запускается в конфигурации, из которой вы переносите печатную форму:
    • Вы выбираете, какую печатную форму вы хотите вынести,
    • Копируете в эту обработку текст модуля менеджера из этой формы
    • И обработка сама:
      • Берет из состава самой себя шаблончик и вставляет в него тот текст, который нужен для подключения к механизму библиотеки стандартных подсистем.
      • Прописывает в этот текст данные о печатной форме (ее название),
      • Устанавливает, к какому документу она должна подключаться,
      • И вытаскивает из модуля менеджера те процедуры, которые нужны для работы этой печатной формы.

Разумеется, полностью рабочую внешнюю печатную форму вы не получите, но вы получите шаблон, который достаточно просто адаптировать вручную.

  • Еще один из примеров – это автоматическое создание кода. Его можно использовать, например, для:
    • Рисования элементов форм;
    • Создания кода условного оформления;
    • И для автоматического создания схем СКД.

Те, кто давно работают на управляемом интерфейсе, могли заметить, что за последние несколько лет изменился подход к созданию условного оформления. Если в УТ11.0 условное оформление было прописано в конструкторе, то уже в 11.2 все условное оформление выстраивается программно. У этого эффекта есть две причины.

  • Первая – это особенность платформы, которая запрещает одновременное наличие одного и того же условия – фиксированного и пользовательского.
  • Но есть и вторая причина – это то, что при текущем уровне развития типовых конфигураций очень сложно на этапе разработки прописать все условия. Потому что условное оформление зависит:
    • От того, какие опции у вас включены;
    • От прав пользователя;
    • И от настроек информационной базы.

Поэтому сейчас условное оформление в управляемых формах рекомендуется задавать программно. И, если обратить внимание на код формирования условного оформления в УТ11, то он одинаковый (одни и те же имена переменных, одни и те же отступы). Очевидно, что этот код был сформирован автоматически по данным конструктора.

  • В платформе 8.3.6 появилась такая интересная возможность, как расширения. Они позволяют менять функциональность типовых конфигураций без изменения самих конфигураций. Однако проблема состоит в том, что сложно создать одно универсальное решение на разные конфигурации, потому что к расширению могут подключаться в разных конфигурациях разные объекты. В этом случае гораздо удобнее сделать какой-то общий шаблон расширений, а добавлять в него документы/справочники уже программно.
  • И последний пример – это перенос своих изменений при обновлениях. Это, конечно, можно делать и вручную, но удобнее такие действия проводить именно на уровне текста, особенно, если вы используете механизмы Git (ветки). В данном случае Git более правильно объединяет типовую конфигурацию с вашими изменениями. Если изменения небольшие, то в большинстве случаев обновление может пройти полностью автоматически.

Способы создания универсальных решений

Какие вообще есть способы создания универсальных решений?

Я думаю, что у каждого программиста-консультанта, который работает с 1С, есть какая-то своя папочка личных обработок/отчетов, которые делались для решения конкретной задачи. Проблема в том, что в большинстве случаев такие разработки пишутся под очень узкую задачу и при появлении похожей задачи их приходится адаптировать. Более удобно потратить немного времени и сделать обработку изначально более универсальной.

  • Один из способов создания универсальных решений – это анализ метаданных. Фактически все типовые обработки используют этот способ:
    • Обработка по универсальной выгрузке данных,
    • Универсальный отчет,
    • Обработка по установке реквизитов.

Эти инструменты работают на любых конфигурациях, потому что просто при запуске анализируют метаданные той конфигурации, в которой они запущены.

  • В некоторых случаях такой подход не срабатывает, потому что для разных конфигураций нужны разные правила работы. В этом случае можно использовать отдельные ветки кода под различные конфигурации:
    • Если конфигурация такая-то, то выполняем один текст;
    • Если конфигурация другая, то выполняем другой текст.

В большинстве случаев этот подход позволяет делать одну обработку, работающую на разных конфигурациях пользователя.

  • Но это, к сожалению, работает все-таки не всегда. Например, для тех же расширений иногда нужно иметь разные файлы для разных конфигураций, и в каждом расширении должны быть метаданные именно этой конфигурации. Это тоже достаточно просто автоматизируется путем создания шаблона с последующей программной адаптацией под конфигурацию пользователя.

Инструменты программной работы с 1С-продуктами. Преимущества и недостатки различных подходов

Какие есть инструменты для программной работы с 1С-продуктами?

Есть три основных подхода:

  • Это разбор файла на маленькие файлики;
  • Выгрузка в XML;
  • И объектный подход.

Давайте рассмотрим каждый из них.

v8Unpack

Один из наиболее популярных способов работы с 1С-продуктами – это способ, основанный на структуре 1С-ных файлов. На самом деле, неважно, работаем ли мы с конфигурацией, с отчетом или с расширением. Технически – это просто контейнер, в котором есть много разных маленьких файликов. Любой продукт мы можем:

  • Разобрать на части,
  • Изменить те части, которые мы хотим изменить,
  • И собрать обратно.

Это, мне кажется, один из наиболее популярных способов работы с конфигурациями среди решений по автоматизации.

Этот способ реализует утилита v8Unpack. В чем ее плюсы?

  • Это, прежде всего, простота. Эта утилита запускается в командном режиме: мы указываем ей, какой файл разбираем, и на выходе она выдает каталог с пачкой файликов.
  • Она универсальна и всеядна. Ей абсолютно все равно, на какой платформе написано ваше решение (8.1, 8.2, 8.3). Технически структура файлов 1С-решений не менялась довольно много лет.
  • И еще к плюсам этого решения относится его самодостаточность. Для изменения конфигурации с помощью v8Unpack вам не нужна платформа 1С. Достаточно просто запустить утилитку и показать ей, где файл. Она не взаимодействует ни с конфигуратором, ни с платформой. Она разбирает любой файл на файлики и собирает его обратно.
  • И последнее ее преимущество – это то, что это единственный инструмент, который умеет работать с байт-кодом. Если в вашей обработке или отчете есть модули, которые поставляются без исходного кода, то v8Unpack все равно разберет их на текстовые файлики. Разумеется, русского кода мы там не получим, но мы получим байт-код, который тоже можно анализировать и менять. Более того, этот байт-код имеющимися на Инфостарте средствами можно перевести в нормальный читабельный код. Разумеется, это возможно только в том случае, если решение не прогонялось через дополнительный софт. Если прогонялось, то восстановить полностью его обычно нельзя, но частично всегда можно.

У утилиты v8Unpack есть и минусы.

  • Основной ее минус в том, что файлики, которые получаются после разбора, не имеют понятных имен, и сложно определить, что именно нужно менять - приходится их всех просматривать.
  • Ну и тот момент, что это все-таки не официальное решение от компании 1С, а внешняя разработка, хотя и старая и стабильно работающая.

Выгрузка/загрузка XML

Второй способ работы с 1С-разработками – это выгрузка и загрузка из XML.

  • Это официальный механизм, который рекомендуется компанией 1С и используется во всех ее продуктах, например, в БСП и в СППР. Фирма 1С гарантирует, что этот инструмент будет корректно работать в обе стороны на тех платформах, для которых он запущен.
  • Плюсом этого решения является то, что он выгружает конфигурацию в понятную структуру. У нас есть:
    • Корневой уровень – уровень конфигурации в целом;
    • Отдельные папки – для документов, справочников, отчетов, обработок.
    • В каждой этой папке есть подпапка для каждого документа, для каждого справочника.

Работать с этой структурой намного проще, чем со структурой, выгруженной нестандартными средствами.

  • В новых решениях также доступна частичная выгрузка данных.
  • Также для этого инструмента есть очень много типовых примеров использования в той же БСП. Опираясь на эти примеры, очень удобно разбираться.

Ну и есть некоторые небольшие минусы в том, что:

  • Конфигурация, разобранная на одной платформе, может не загрузиться в другой платформе – мы должны работать на одной и той же платформе из-за проблем с совместимостью.
  • Кроме того, до версии 8.3.7 этот инструмент не умел работать с внешними отчетами и обработками. Сейчас такой проблемы нет, но если вы используете более старую платформу, то внешние отчеты и обработки вы им в текст не выгрузите.
  • Он не умеет работать с байт-кодом – защищенные модули он выгружает в бинарном виде.

В целом, это один их наиболее удобных инструментов – простой и понятный.

Eclipse

И последний подход, о котором я хочу поговорить – это объектный подход. Я надеюсь, вы все знаете, что 1С пишет свой новый модный конфигуратор на базе Eclipse. Но я бы хотела обратить внимание, что это немного больше, чем модный конфигуратор:

  • Это – доступ к API, который разработчики давно просили. Это то, что было реализовано много лет назад в виде Снегопата, но немного функциональнее, немного лучше. Если Снегопат нам дает доступ лишь на чтение данных конфигурации, то проект Graphite, который реализован на платформе Eclipce, дает нам доступ уже к изменению конфигурации. Например, мы можем написать свой маленький плагин, который будет менять конфигурацию так, как нам нужно и без перезапуска.

Алгоритм пошагового автосоздания 1С-разработок

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

  • Идея в том, что если ваше решение должно иметь разные файлы под разные конфигурации, то вы разрабатываете шаблон, который включает в себя все механизмы, наличие которых необходимо для работы этого решения во всех конфигурациях.
  • И дополнительно к шаблону разрабатываются правила, которые адаптируют этот шаблон к конкретной конфигурации пользователя (желательно, к любой конфигурации). Например, если вы реализуете тот же самый механизм внешних печатных форм на базе расширения, то:
    • В общем шаблоне будут механизмы:
      • Печати;
      • И загрузки печатных форм. 
    • А в правилах будет информация о том, как подключать это расширение к справочникам и документам.
  • Благодаря этому для каждой конфигурации мы сможем автоматически сформировать файлик с нашим расширением, учитывающим особенности данной конфигурации.

Заключение

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

Разумеется, автоматизировать все не нужно. Нужно автоматизировать те задачи, которые у вас повторяются (те задачи, которые вы делаете при каждом обновлении, при каких-то доработках).

В целом, все задачи, которые можно описать нормальным русским языком, можно описать и в программе. При этом в отличие от человека программа не ошибается, ничего не пропускает, делает именно то, что вы от нее попросили.

 

Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2016 DEVELOPER.

Инфостарт Tech Event 2026

Инфостарт A&PM Event 2026

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

DevOps и автоматизация разработки Программист 1С:Предприятие 8 1C:Бухгалтерия 1C:ERP 1С:УТ Бесплатно (free)

Я автоматизировал доставку доработок в базы 1С, к которым можно подключиться только по RDP через шлюз. У меня не было ни SSH, ни WinRM, ни общих папок, ни права устанавливать на сервер свои программы. Каналом связи стал диск рабочей станции, проброшенный в RDP-сеанс, а исполнителем команд служит PowerShell-агент в этом сеансе. В статье расскажу о захвате объектов и помещении изменений в хранилище, динамическом обновлении боевой базы с автоматической остановкой, установке расширений и доступе к базе через MCP по COM без клиента 1С. Ещё разберу несколько неочевидных ограничений платформы и RDP, с которыми столкнулся по ходу работы. Часть из них описана на форумах, а упоминаний о других я не нашёл.

10.09.2026    216    BiLBelarus    0    

1

DevOps и автоматизация разработки Администрирование СУБД Групповая разработка (Git, хранилище) Системный администратор Программист Руководитель проекта Стажер 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Предприятие 8. Транспортная логистика, экспедирование и управление автотранспортом КОРП 1C:ERP Беларусь Россия Казахстан Абонемент ($m)

В корпоративных инсталляциях «1С:Предприятие 8.3» под управлением PostgreSQL всё чаще проявляются архитектурные пределы масштабирования: рост числа пользователей, обязательная маркировка, плотный поток API-интеграций и высокая стоимость простоя. Вводная часть цикла разбирает ключевые факторы современной эксплуатационной нагрузки и формирует инженерную методологию эволюционной модернизации без остановки продуктивного контура. Материал основан на практическом кейсе «Торговый контур» и показывает, как определить целевые метрики (p95, MTTR, APDEX), выстроить наблюдаемость, стабилизировать работу кластера и подготовить инфраструктуру к дальнейшему масштабированию. Публикация задаёт фундамент для последующих частей, посвящённых телеметрии, оптимизации PostgreSQL, CI/CD и архитектурному росту.

1 стартмани

10.09.2026    265    Ninel_S    0    

4

DevOps и автоматизация разработки Linux HighLoad оптимизация Групповая разработка (Git, хранилище) Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Беларусь Россия Казахстан Абонемент ($m)

Системный анализ архитектурных границ масштабирования учетных систем «1С:Предприятие 8.3» под управлением PostgreSQL в ОС Linux. Формулирование инженерной методологии сквозного проекта «Торговый контур», определение измеримых целевых показателей (p95, MTTR, APDEX) и стратегии поэтапной модернизации эксплуатационного контура без остановки промышленных учетных процессов.

1 стартмани

07.09.2026    612    Ninel_S    9    

1

DevOps и автоматизация разработки Тестирование QA Групповая разработка (Git, хранилище) Программист 1С:Предприятие 8 Бесплатно (free)

Четыре года в интеграторе я работал с git и EDT. Git после хранилища полюбил сразу: видно, кто и что менял. С EDT сложнее: тормозит, ошибки при обновлении ERP, автономный сервер внутри него работает только с файловой базой. На новой работе команда захотела перейти на git, я развернул EDT, и оно на второй день разрушило проект при загрузке расширения. Тогда я решил дать команде git с привычным Конфигуратором и инструмент, который за минуту доносит коммит до базы через ibcmd, вместо получасовой загрузки из файлов. На новой работе разрешили ИИ, и я написал это приложение с его помощью: от чтения документации и первого ТЗ до идей в электричке. Впервые за годы снова почувствовал себя творцом, а не закрывателем задач. По дороге приросли выгрузка, объединение и проверка конфигурации по коммитам, YAxUnit и режим MCP-сервера. В статье: схемы, скриншоты, грабли и честный список ограничений. Ссылки пока нет: хочу понять, нужно ли это кому-то, кроме меня.

03.09.2026    9956    KatanaDragon511    28    

37

DevOps и автоматизация разработки Программист Бесплатно (free)

Представьте, что вас попросили «сделай нам DevOps для 1С». С чего начинать? Часто за этой потребностью скрывается хаос в самом процессе разработки. Поэтому начинать нужно не с инструментов, не с серверов и не со скриптов, а с понимания того, что именно необходимо изменить. Предлагаем небольшой спасительный чек-лист, по которому можно относительно безболезненно запустить современные процессы управления разработкой 1С, даже когда у команды нет ничего, а изменения они присылают друг другу почтой и в мессенджерах. Вы получите структурированный пошаговый список задач, с которым не страшно окунаться в любой проект аудита разработки на 1С с целью навести там порядок.

31.08.2026    2568    Evil Beaver    2    

13

Нейросети DevOps и автоматизация разработки EDT Системный администратор Программист Руководитель проекта Стажер 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:ERP. Управление холдингом Абонемент ($m)

Почему ни утилита ring, ни ibcmd не способны «из коробки» собрать бинарный .cfe из исходников EDT без развертывания СУБД? Разработчики коммитят код в Git из 1C:EDT, но на серверы тестирования и в прод по-прежнему требуются бинарные контейнеры Конфигуратора. Ручные манипуляции с XML, локальные временные базы и забытый синтаксический контроль на каждой задаче сжигают часы рабочего времени. В статье разбираем архитектуру инструментов платформы и выстраиваем сквозной автоматический мост между EDT и Конфигуратором: - Анатомия сборки: почему ring только транслирует схему XML, а ibcmd жестко завязана на структуры СУБД; - Трансформация процессов: как освободить программиста от рутины, победить кодировки и Xvfb в Linux и сделать Git единственным источником правды; - Zero-dependency решение: скрипт edt-to-configurator.js, работающий и как консольный сборщик, и как Agent Skill для ИИ-ассистентов; - Ready-to-use CI/CD: готовые конфигурации для GitLab CI и GitHub Actions.

1 стартмани

31.08.2026    1216    Ninel_S    0    

1

DevOps и автоматизация разработки Нейросети Программист 1С 8.3 Россия Бесплатно (free)

Один агент на всё ломается в трёх местах: он не может проверить сам себя, расплывчатая задача даёт расплывчатый результат, а один контекст на всё переполняется — и первыми теряются ограничения. Разбираю разделение на три роли, обязательные поля спецификации, антипаттерны брифа и фиксированный список стоп-факторов на приёмке. Плюс честно о том, чего эта схема не даёт.

26.08.2026    945    YA_2159986692    2    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. surikateg 07.06.17 11:17 Сейчас в теме
Вы написали что БСП может автоматически обновлять конфигурацию. БСП может ночью обновить конфигурацию и автоматически установить обновление информационной базы? Про Oscript вкурсе, хотелось бы решение от разработчиков 1с.
6. ekaruk 5067 14.06.17 16:23 Сейчас в теме
(1) Тут имелось в виду, что в БСП автоматизировано встраивание в конфигурацию. В ее составе есть обработка "Помощник внедрения БСП", которая работает с выгрузкой конфигурации в XML, добавляет нужные модули и по маркерам в коде вырезает куски неиспользуемых подсистем.
sansys; kote; +2 Ответить
2. grumagargler 759 07.06.17 13:50 Сейчас в теме
Для тестирования, забыли про тестер :-)
4. headMade 144 10.06.17 08:51 Сейчас в теме
3. orefkov 1158 10.06.17 00:54 Сейчас в теме
Всё же хочу отметить, что Снегопат даёт доступ к метаданным не только на чтение.
Создать новые метаданные он не позволяет (хотя, с некоторыми ухищрениями можно), но менять существующие - вполне.
7. ekaruk 5067 14.06.17 16:25 Сейчас в теме
(3) Интересно. Не знала. Когда-то пыталась разобраться, но все-таки вернулась к обычному конфигуратору.
8. Team leader 12 26.10.17 19:58 Сейчас в теме
+1 за

"единственный инструмент, который умеет работать с байт-кодом. Если в вашей обработке или отчете есть модули, которые поставляются без исходного кода, то v8Unpack все равно разберет их на текстовые файлики."
9. Alex_1066 08.11.18 11:46 Сейчас в теме
Статья хорошая. Предлагаю автору продолжить данную тематику в плане практической работы. Например, набросать немного практических примеров, хотя бы в части "Автоматизация разработки". В частности, меня тронуло вот здесь "Алгоритм пошагового автосоздания 1С-разработок". Хотелось бы подробнее и на практике. Ну, если это возможно, конечно. В любом случае, спасибо Автору.
Для отправки сообщения требуется регистрация/авторизация