Сборка приложения, разработанного на EDT, с помощью gitlab-ci

29.05.18

Разработка - EDT

В статье описан пример сборки .cf файла при помощи штатных средств EDT, Конфигуратор.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
.gitlab-ci
.yml 1,13Kb
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

Сборку будем производить на Windows машине с установленным GitLab-Runner, настроенным на выполнение команд CMD, а также установленной EDT.

Для начала нужно добавить строку в файл config.toml  

shell = "cmd"

Сам файл .gitlab-ci.yml имеет следующее содержание

variables:
#    CI_DEBUG_TRACE: "true" # Для целей отладки
    PLATFORM_1C: 'C:/Program Files (x86)\1cv8\8.3.10.2699\bin\1cv8.exe' # Используемая платформа для получения .CF файла. Обратите внимание на одинарные кавычки, в двойных кавычках переменная определяется неверно.
    BASE_1C: 'testbase' # пустая база 1С для целей загрузки/выгрузки нашего cf файла

ConvertEDT_XML: # Конвертация проекта из формата EDT в формат XML
  stage: build
  script:
   - md config
   - ring edt workspace export --project %CI_PROJECT_DIR%/ --configuration-files %CI_PROJECT_DIR%/config --workspace-location %CI_PROJECT_DIR%/workspace # Используем штатные средства утилиты ring идущей в составе поставки EDT
  only:
    - master

CreateBase: # Создаем пустую базу
  stage: build
  variables:
    GIT_STRATEGY: none
  script:
    - start "" /wait "%PLATFORM_1C%" CREATEINFOBASE File="%CI_PROJECT_DIR%/%BASE_1C%"
  only:
    - master
  
LoadConfig: # Загружаем в пустую базу конфигурацию из файлов
  stage: build
  variables:
    GIT_STRATEGY: none
  script:
    - start "" /wait "%PLATFORM_1C%" DESIGNER /F %CI_PROJECT_DIR%/%BASE_1C% /LoadConfigFromFiles %CI_PROJECT_DIR%/config /UpdateDBCfg
  only:
    - master

DumpConfig:
  stage: build
  variables:
    GIT_STRATEGY: none
  script:
    - md build # Создаем пустую папку для выгрузки в нее конфигурации
    - start "" /wait "%PLATFORM_1C%" DESIGNER /F %CI_PROJECT_DIR%/%BASE_1C% /DumpCfg %CI_PROJECT_DIR%/build/%CI_PIPELINE_ID%.cf # Выгружаем конфигурацию в файл с именем номера запущенного конвеера. 
  artifacts:
    name: "%CI_COMMIT_REF_NAME%"
    paths:
    - build/*.cf # Отправляем файл конфигурации архивированный .zip в наш проект на Gitlab 
    expire_in: 7 day # Указываем срок жизни нашего архива
  only:
    - master  

В итоге у нас получилась автоматическая сборка проекта в виде .cf файла с конфигурацией

К статье приложен файл настройки без комментариев.

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

EDT gitlab

См. также

Рефакторинг и качество кода EDT СКД Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Одиннадцать граблей схем компоновки, которые не видно в конструкторе и не ловит EDT, на реальных отчетах БП КОРП. Формат числа задается в двух местах, и условное оформление варианта перебивает формат поля. Ресурс складывает штуки с часами, и помогает выражение «только когда единица одна». Ресурс пуст в детальных записях, параметр не появляется в шапке без userSettingID, valueListAllowed ломает границы периода, Остатки и СрезПоследних с параметром периода падают с «Несоответствием типов», title без xsi:type дает «Исключение XDTO» при загрузке. В конце код проверки схемы из файла до обновления базы, сводная таблица и чеклист.

16.10.2026    461    Konstmax13    2    

2

Технологический журнал Сервера EDT Обновление 1С Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Конфигуратор и агент EDT тихо вылетают на 0 % «Обработки структуры базы данных», EDT пишет «Потеряно соединение с агентом конфигуратора», а модель проекта при этом чистая. Разбор двух аварий на большой серверной базе БП КОРП: какие факты снимать (журнал Windows, техжурнал нужной версии, хвост лога процесса), почему инкрементальная выгрузка EDT ломается после сбоев, как довести обновление пакетно через /UpdateDBCfg -Server, как опознать свои rphost среди нескольких кластеров и снять агент EDT, который сам поднимается и держит базу. Протокол одного дня по минутам и порядок диагностики из восьми шагов.

15.10.2026    420    Konstmax13    0    

0

Групповая разработка (Git, хранилище) EDT Обновление 1С Роли и права Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Загрузка конфигурации в базу висела часами без единой ошибки: ядро на 100 %, SQL не трогается, лог пуст. Одинаково у агента EDT, у /LoadConfigFromFiles и у полной загрузки. Причина нашлась бисектом: блоки прав в Rights.rights, дописанные в конец файла, а EDT и конфигуратор ждут их строго по возрастанию UUID объекта. Рядом еще две грабли: права на перечисления вешают загрузку так же, а право на HTTP-сервис целиком платформа молча выбрасывает. В статье хронология, как найти виновника за минуты, как править права скриптом со вставкой по позиции и скрипт проверки ролей перед обновлением (бесплатно, на GitHub).

15.10.2026    291    Konstmax13    0    

0

Инструментарий разработчика Нейросети Рефакторинг и качество кода EDT Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Как ИИ-агент (Claude Code) работает в живом EDT-проекте 1С:Бухгалтерии КОРП 3.0: из чего собрать стенд с MCP-сервером для EDT, как ставить задачи агенту, где он ломает проект и какие проверки это ловят. Реальные случаи: рукописные метаданные, ронявшие конфигуратор; четыре дня зависшего обновления из-за порядка блоков в Rights.rights; ошибки, которые EDT пропускает, а платформа нет; сплошная сверка вместо «вроде работает». В приложении шаблон CLAUDE.md, шаблон правила, чеклист перед обновлением базы и скрипты проверки ролей и схем СКД.

15.10.2026    3360    Konstmax13    11    

11

Нейросети EDT Разработчик 1С:Предприятие 8 Абонемент ($m)

Набор из 17 скилов для агента, который пишет код. Агент пишет и проверяет конфигурацию в формате 1C:EDT по стандартам раздела ИТС «Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8».

3 стартмани

05.10.2026    680    1    burlakov    0    

3

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) EDT Разработчик 1С 8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Разобрали, как выстроить CI для 1С 8.3 на EDT и Git: ветки с автослиянием, Jenkins и Pipeline Libraries, подготовка эталонной ИБ на каждый MR, Vanessa и xUnitFor1C в Allure. Материал для инструментальщика, который проектирует проверки до master, а не после релиза.

28.09.2026    821    zolotov7481    0    

0

EDT Разработчик Бесплатно (free)

Баги, недостающие улучшения и специфические потребности инфраструктуры не всегда находят отражение в новых версиях 1C:EDT – и тогда проблему можно решить с помощью собственного плагина. Рассказываем, как подготовить Eclipse, разобраться в архитектуре EDT, исследовать типовой функционал, подключать публичные сервисы и создавать пользовательский интерфейс. Разбираем отладку и сборку плагина, а также типичные сложности, из-за которых новички часто останавливаются на первых шагах. Все этапы показываем на примерах из практики создания плагина для работы с хранилищем 1С.

17.09.2026    1381    ZigRinat85    1    

7

Нейросети 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    2501    Ninel_S    4    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Vanch90 30.05.18 07:29 Сейчас в теме
зачем?
d4rkmesa; Vasvas05; gradi; o4karek; Lyolik; +5 –2 Ответить
2. unmensch 25 30.05.18 09:11 Сейчас в теме
(1) Чтобы руками не делать. Очевидно же..
sleemp; strizhhh; t.v.s.; +3 – Ответить
3. пользователь 31.05.18 05:17
Сообщение было скрыто модератором.
...
4. Merc 40 31.05.18 07:05 Сейчас в теме
5. fenixnow 302 31.05.18 09:37 Сейчас в теме
(4) Спасибо, приятно слышать.
6. Ivan_0110 13.07.18 10:02 Сейчас в теме
Да, 1С делает маленькие шажки в сторону нормального программирования. Спасибо за статью!
7. charivnick 46 13.07.18 12:44 Сейчас в теме
а как запускать этот скрипт?
Можно подробно со скриншотами написать?
8. charivnick 46 13.07.18 12:47 Сейчас в теме
где вы взяли файл config.toml?
Вы о чем? Вы точно не перепутали статью по 1C Enterprise Development Tools?
9. fenixnow 302 13.07.18 15:55 Сейчас в теме
(8) Инструкции по настройке GitLab-Runner вы может получить по ссылке установка настройка

Для запуска скрипта вам потребуется связать проект EDT c проектом на gitlab.com, создать там конвейер, связать в вашим рунером.

Тема настройки Gitlab довольно обширная, лучше с ней ознакомится в сети интернет.
10. charivnick 46 13.07.18 16:47 Сейчас в теме
а если у меня проект связан с гитхабом?
15. fenixnow 302 13.07.18 21:42 Сейчас в теме
(10) Почитайте внимательно заголовок статьи, в нем описаны инструменты используемые для сборки .cf
Увы, github и powershell туда не входят.
Не спорю, что для кого то локальный скрипт на powershell будет проще. Буду рад увидеть в каталоге инфостата и такое решение. Уверен, что оно также будет полезно.

PS. Я не заставляю искать вас плюшки два вашего стека инструментов.
11. charivnick 46 13.07.18 16:48 Сейчас в теме
может обычный Powershell скрипт написать, который будет дергать локальный кэш git, брать оттуда xml и через ring edt export выгружать в 1с?
21. a.ivanov 07.09.19 10:19 Сейчас в теме
(11) это и есть обычные скрипты которые все это делают. Только запускаются они не руками, а по событиям.
22. fenixnow 302 07.09.19 10:21 Сейчас в теме
(21) Хороший комментарий спустя год
12. charivnick 46 13.07.18 16:49 Сейчас в теме
зачем так сложно все?
13. charivnick 46 13.07.18 16:49 Сейчас в теме
14. lustin 13.07.18 20:51 Сейчас в теме
всё круто - кроме одного


PLATFORM_1C: 'C:/Program Files (x86)\1cv8\8.3.10.2699\bin\1cv8.exe' # Используемая платформа для получения .CF файла.


может все таки через oscript.io ?


vrunner help unload
vanessa-runner v1.3.0
unload - Выгружает файл конфигурации из ИБ

Параметры:
<cfpath> - Путь к результату - выгружаемому файлу конфигурации (*.cf)
--ibconnection - Строка подключения к БД (/FfilePath или /SserverPath)
Например, для файловых баз --ibconnection /FC:\base1 или --ibconnection /F./base1 или --ibconnection /Fbase1
Или для серверных баз --ibconnection /Sservername\basename
--db-user - Пользователь БД
--db-pwd - Пароль БД
--v8version - Версия платформы
Показать


Установить на машине:

* http://oscript.io/
* поставить пакет opm install vanessa-runner
* и дальше уже работать ;-)
dock; vlad.frost; artbear; +3 –3 Ответить
16. fenixnow 302 13.07.18 21:54 Сейчас в теме
(14) Я думал о переменной platform_1c но решил оставить ее именно в таком виде для статьи. Тогда мне хотелось услышать дискуссию о правильности применения именно такого параметра 😀

Против onescript не имею ничего плохого, но я описал именно связку типового функционала edt и типового функционала gitlab. Сборка .cf происходит на удаленной машине, туда нужно как то доставить файлы конфигурации.

Да и Ванесса как я помню не умеет работать с типом хранения файлов конфигурации edt. Возможно ошибаюсь? 😉
19. vlad.frost 186 16.10.18 12:41 Сейчас в теме
(16)
Да и Ванесса как я помню не умеет работать с типом хранения файлов конфигурации edt. Возможно ошибаюсь?


Кое-что vanessa-runner уже умеет с EDT https://github.com/silverbulleters/vanessa-runner/blob/develop/src/Классы/КомандаПроверкаПроектаEDT.os
17. charivnick 46 20.07.18 16:30 Сейчас в теме
В общем недоработка получается самого EDT, все плюшки работы с внешними обработками, а именно: быстрая правка кода и ее последующий запуск,
сходят на минус. Пока отправится обработка в облако, пока придет оттуда скомпилированная, а потом еще нужно конфигуратор 1с-кий запустить, в нем отладку и саму 1ску.
18. charivnick 46 20.07.18 16:32 Сейчас в теме
быстрее все сделать в конфигураторе, в ставить в конфигурацию тестовой базы и оттуда слить на гитхаб.
20. a.ivanov 07.09.19 10:17 Сейчас в теме
Годно. Но я все через vanessa-runner сделал. Удобнее. Плюс тестовую базу чтобы обновлять, надо сессии убивать.
23. seregasame 26.09.19 09:11 Сейчас в теме
ERROR: Job failed: execution took longer than 1h0m0s seconds
и так все шаги, с чем это связано? куда копать?
24. check2 413 05.12.19 17:32 Сейчас в теме
Андрей, здравствуйте! Подскажите, пожалуйста при регистрации GitLab-runner что указывали в "Enter the Runner executor:"
Я указал docker, но по всей видимости это не то что нужно, т.к.
Бегунок вроде как зарегистрировался в гитлабе, но исполнять команды он не хочет, с гитлаба приходят уведомления с ошибкой:
ERROR: Preparation failed: error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/info: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running. (executor_docker.go:980:0s)
25. fenixnow 302 05.12.19 17:41 Сейчас в теме
(24) указывайте просто shell. Не указывайте что исполнять будет cmd. Это уже устаревший метод выполнения сценариев. Используйте powershell. Он намного веселее и на нем проще писать команды для выполнения запуска 1с
user1411559; check2; +2 – Ответить
26. check2 413 05.12.19 18:05 Сейчас в теме
(25) Андрей, спасибо огромное, поставил в executor = "shell", а shell = "cmd" убрал совсем. процесс пошёл.
27. vsbronnikov 85 27.12.19 12:47 Сейчас в теме
Небольшой комментарий:

Из документации GitLab (https://docs.gitlab.com/ee/ci/yaml/#stages) задачи одной стадии выполняются параллельно.
В вашем случае, если раннеров будет больше одного, на стадии Build каждая из задач (ConvertEDT_XML, CreateBase, LoadConfig, DumpConfig) будет запущена на произвольных раннерах параллельно. И задачи не смогут воспользоваться результатами работы предыдущих задач.

Получается эта конфигурация будет работать только на одном раннере.
Для отправки сообщения требуется регистрация/авторизация