CI/CD для 1С проектов, унифицировано, с кастомизацией

Публикация № 1198146

Разработка - Инструментарий разработчика

Тема CI/CD в связке с 1С не нова, но многих пугает сложность использования и поддержки, необходимость обучения команды. Про то, как унифицировать и упростить поддержку сборочных конвейеров для большого количества решений, в своем докладе на конференции Infostart Event 2019 Inception рассказал начальник отдела компании BIA-Technologies Валерий Максимов.

Добрый день! Тема CI/CD в мире 1С при разработке решений на платформе 1С обсуждается в последнее время достаточно активно. Некоторые уже пошли по пути внедрения, а кто-то еще только задумывается об этом. Некоторые команды, которые встали на этот путь внедрения, столкнулись с проблемами, которые либо замедлили этот процесс, либо вообще его, по сути, приостановили. Зачастую это связано с тем, что нет готовых примеров, знания разрозненны, либо не могут ничего найти в связке с 1С.

В своем сегодняшнем докладе я хочу рассмотреть процесс CI/CD и некоторые инструменты, которые, на мой взгляд, помогут пройти этот не очень легкий путь, чтобы достаточно быстро получить положительный эффект, снизив время на изучение. При подготовке доклада у меня не получилось уложить в 30 минут все, что мне хотелось рассказать, мне пришлось некоторые блоки обрезать и упростить. Поэтому я буду акцентировать внимание на наиболее сложных, интересных, важных и ключевых вещах.

 

 

В моем докладе, по сути, будет три части:

  • Первая часть – это обсуждение некоторых подготовительных действий, которые необходимо выполнить перед началом внедрения практик CI/CD.

  • Далее мы рассмотрим инструменты и технологии, которые будут использоваться в этом процессе

  • И в основной части мы коснемся настройки инструментов и технологий для построения конвейера, а также особенностей их использования. 

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

 

Подготовка

 

 

Все всегда начинается с подготовки. Минимальным условием запуска практик CI/CD должно быть желание и готовность вносить изменения в свои процессы, в свою жизнь. Так как вы здесь собрались, то, как минимум, интерес у вас есть.

Итак, какие минимальные требования должны быть исполнены?

  • Разработка должна вестись с использованием системы контроля версий Git. По сути, существует два основных способа работы:

    • Первый вариант – полноценный, когда разработка ведется в EDT или в конфигураторе, никаких хранилищ нет, все изменения помещаются напрямую в Git-репозиторий. 

    • И второй вариант, когда вы продолжаете работать с хранилищем конфигурации, откуда у вас фоново происходит экспорт файлов и выгрузка их в репозиторий.

В принципе, можно построить процесс разработки и так, и так. Но первый вариант, конечно, более предпочтительный.

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

  • И немаловажно будет наличие человека, который будет исполнять функцию DevOps-инженера, управляя всеми этими конвейерами и их настройками.

Если у вас это все есть, или вы готовы, чтобы все это появилось, то можно перейти дальше. 

 

 

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

  • Как минимум, мы хотим автоматизировать процесс сборки и тестирования приложений на платформе 1С:Предприятие. В идеале, конечно, хорошо бы дойти до деплоя на окружение препрод/прод. 

  • Необходимо, чтобы используемые инструменты достаточно просто использовались, настраивались и конфигурировались с минимальными телодвижениями. И конвейер также был достаточно понятен и прозрачен.

  • Кроме этого, важно, чтобы «тайные знания» были аккумулированы в основном, на одном человеке, чтобы не было необходимости всю команду (n человек) обучать этим непростым премудростям.

С подготовкой на этом закончим. Перейдем непосредственно уже к инструментам.

 

Инструменты

 

 

Человек, который встает на нелегкий путь внедрения инженерных практик CI/CD, в первую очередь сталкивается с тем, что в мире существует большое количество применяемых для этих целей инструментов.

Многие инструменты похожи по функциональности и, пытаясь их проанализировать, читая статьи в интернете, сложно выбрать, какой же из них лучше. Опытные DevOps инженеры уже знают, какие инструменты нужны для какой задачи – но новичку выбрать достаточно сложно. Притом, что зачастую сравнение инструментов – это холивары. Кому-то нравится Mac, кому-то Windows...

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

  • Сервер автоматизации Jenkins, выполняющий, в том числе, роль билд-сервера. По сути, стандарт индустрии.

  • Сервер управления репозиториями GitLab – очень удобное решение для разворачивания в локальной сети, достаточно простой и могучий по настройкам. Особенно, если приобрести коммерческую версию. Но в принципе, на первом этапе достаточно и Community-версии.

  • Для анализа качества вашего кода (кода, который внесли разработчики) стоит использовать платформу SonarQube и бесплатный плагин для нее – 1С(BSL) Community Plugin.

  • И немаловажным является использование библиотек движка OneScript. Почему – об этом скажу чуть позднее.

 

 

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

На слайде показана минимальная конфигурация, которая вам подойдет:

  • отдельный сервер под GitLab, 

  • отдельный сервер под SonarQube, 

  • отдельный сервер под голову мастер-ноды Jenkins 

  • и отдельно под сборочные ноды. 

Сборочную ноду я привел на примере Windows-решений, потому что в основном разработка конфигураций ведется под управлением операционной системы Windows. Но если у вас есть Linux, то, в принципе, не меняя голову Jenkins, подключайте ноду на Linux-платформе с операционной системой Centos, Ubuntu – какую вы используете. И без особой переделки все у вас точно так же будет работать.

С основным обзором инструментов закончу. Настройку конфигурирования этих инструментов я сегодня, к сожалению, не смогу рассмотреть подробно. Но могу сказать, что на старте вам будет достаточно установки по схеме «Далее-Далее-Установить». В каждом из инструментов на странице установки есть мануал, по которому можно все это выполнить и настроить. Там простой технический английский, либо даже есть перевод на русский язык. Тюнинг и расширенная настройка вам потребуются чуть позднее, когда вы точно поймете, чего вам еще не хватает и что необходимо дотюнить.

 

Порядок

 

 

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

Что мы понимаем под порядком? Нужно привести в порядок репозитории. Потому что, если вы уже начали работать с Git, вы столкнулись с тем, что в отличие от других технологий (в мире Java, dotNET и т.д.) вендор не предоставляет готовых шаблонов ведения репозитория. Что положить, куда положить? Поэтому команды, зачастую, складывают файлы/папки – у кого как получилось. Кто просто исходники в корень выбросил, кто создал какие-то папочки (src, source, configuration, Конфигурация и т.д.).

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

Когда вы начинаете работать с системой контроля версий Git и принимаете все парадигмы, то вам в репозитории необходимо хранить не только конфигурацию, но и все, что необходимо для сборки проекта:

  • исходники внешних обработок;

  • правила обмена;

  • сценарии тестирования;

  • тесты;

  • документация;

  • набор каких-то конфигурационных файлов, с помощью которых вы будете описывать правила развертывания;

  • настройки портов и т.д.

Все должно быть в одном проекте.

Поэтому DevOps-инженеру нужно будет поработать вместе с командой – взять все ваши репозитории (если они у вас уже существуют), определить, почему вы сложили так или иначе, и выбрать ту структуру, которая будет наиболее оптимальна для последующей автоматизации.

Или можно воспользоваться приведенным мною примером. На слайде показана структура репозитория для конфигурации, разрабатываемой под EDT.

После того, как вы определитесь со структурой, рекомендую создать пустой репозиторий, в котором эту структуру разместить, в каждом каталоге кинуть файл Readme.md и описать, для чего нужен этот каталог, почему он здесь находится. И в корень положить отдельно инструкцию – какой конфигурационный файл для чего нужен и как им пользоваться. Это, опять же, вам поможет на следующих этапах.

Приведя структуру репозитория в порядок, идем дальше – нам нужно определиться с конвейером.

 

 

Одна из ошибок, с которой я сталкивался в своей практике – это когда пытаются сразу построить какой-то сумасшедший конвейер с 10 параллельными потоками и какой-то магией. На старте не нужно этого делать. Выберите самый простой вариант, который у вас заведется. А все накрутки и расширения будут делаться потом.

Например, вот такой простой вариант, когда:

  • разработчик делает коммит, отправляет его на сервер, 

  • сервер GitLab ловит это событие, с помощью хука передает управление Jenkins, 

  • тот запускает задачу по выкачиванию исходников, сборки из них файлов конфигураций, расширений, обработок и т.д. (артефактов). 

  • После этого запускается процесс тестирования. 

  • Параллельно запускается анализ кода. 

  • И в конце полученный результат агрегирует и формирует отчеты. 

Простой процесс.

Предвижу, что многие сейчас представили себе такого «сферического коня в вакууме», потому что в реальности унифицировать процессы разработки не получается – всегда есть какой-то супер-проект, который не ляжет в эту канву. Тестов мы не пишем. Нашему решению много лет, и если мы его сейчас засунем в SonarQube, она нам покажет миллиард ошибок, которые никто никогда не будет править.

Давайте не будем пессимистами.

  • Если говорить о тестах – на старте, когда вы все это запускаете, нам не нужно сразу иметь набор готовых тестов и не нужно сразу заставлять команду их писать. Начнем с того, что уже есть – это:

    • как минимум, готовые дымовые тесты, использование которых скажет вам, в принципе, приложение запускается или нет;

    • у вас есть проверка средствами конфигуратора (платформенная проверка);

    • у вас есть проверка EDT;

    • и есть инструменты, которые умеют запускать все эти тесты в автоматическом режиме и анализировать их результаты.

  • Если мы говорим про Sonar – да, у вас легаси-решение. У меня такие тоже есть. Sonar позволяет установить дату, ранее которой все замечания он, конечно же, видит, но, в принципе, не будет их учитывать в расчете порога качества вашего решения. И в дальнейшем задача команды будет – не увеличивать количество замечаний и, как минимум, поддерживать их на том же уровне, которое было на момент старта.

  • Что же касается непонятного, страшного проекта – исключите его из первого этапа внедрения. Пока у вас нет опыта, и вы его боитесь, отодвиньте его. Подключите его чуть позднее. Чуть позже расскажу – как. 

 

Настройка и использование

 

 

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

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

По опыту, для решений автоматизации сборки и тестирования приложения на платформе 1С отлично подходят задачи типа pipeline, где подразумевается наличие в репозитории специального файла под названием jenkinsfile, в котором на DSL-языке Jenkins (на Groovy) написан скрипт, где описана последовательность выполняемых действий, шаги и вызываемые команды, и обработка результатов. Но мы задачи типа pipeline использовать не будем. Почему не будем? 

Так как мы разрабатываем в Git, мы любим много веток (у нас GitFlow и фиче-бранчинг), поэтому, чтобы иметь возможность корректировать конвейер исходя из типа ветки и ее назначения, мы будем использовать тип задачи multibranch pipeline. Он представляет собой, по сути, контейнер pipeline-задач.

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

Задачи типа multibranch pipeline мы конфигурируем один раз, а потом уже Jenkins самостоятельно контролирует наличие веток, запускает для них эти задачи, а также контролирует жизненный цикл этих задач (если ветка удалилась, задача для нее тоже будет удалена в соответствии с настройками – по умолчанию, там стоит 30 дней, но можно корректировать). Допустим, если вы ветку уже удалили, но хотите посмотреть вчерашние результаты – вот эти перечеркнутые задачи на скриншоте – это задачи по веткам, которые уже удалены.

 

 

Текстовый файл jenkinsfile выглядит примерно так, как на слайде:

  • сначала указывается секция указания ноды, на которой будет запускаться скрипт;

  • и далее идет набор шагов.

А справа приведен пример одного из методов, который выполняет корректное переключение на нужную ветку для скачивания исходников. Работает этот метод, правда, только в связке с GitLab EE. 

 

 

Конечно же, DevOps-инженер, почитав документацию по Jenkins, по Groovy, проанализировав описание платформы и поняв, как ею пользоваться, написать скрипы для CI/CD самостоятельно на любом языке, который ему нравится (на Powershell, groovy, cmd). Но я рекомендую использовать инструменты, которые уже разработало сообщество OneScript. 

Упомяну несколько из них, которые, как раз, позволят переиспользовать опыт и сократить время на разработку. Это:

  • Vanessa-runner – мощная выполнялка различных действий, связанных с платформой, начиная от выгрузки конфигурации до запусков фреймворков тестирования

  • Два фреймворка тестирования, кому какой нравится – Vanessa-automation и Vanessa ADD

  • И библиотека Messenger для отправки уведомлений в различные каналы, будь то почта, SMS, Telegram и т.д.

 

 

Мы вроде все настроили, соединили посредством хуков задачу в Jenkins с GitLab – вроде все завелось, все хорошо. Но есть нюанс. Те, кто это делали, уже наверняка сталкивались. 

Так как jenkinsfile – это, по сути, файл, который находится в Git и подчиняется всем правилам системы контроля версий, то, если вам необходимо изменить какую-то настройку в конвейере (шаг поменять или ошибку исправить), то вам необходимо клонировать этот репозиторий, внести правку в этот файл, закоммитить и отправить его.

Что получится в результате? В этой ветке у вас будет исправленная версия, в соседних ветках этих исправлений нет. Таким образом, вам необходимо будет пройтись по всем веткам и всем поправить. Если у вас 10 репозиториев или 100, то это нужно будет выполнить в каждом репозитории (если вы поменяли какую-то общую часть). Радости это не добавляет. Но Jenkins предоставляет возможность, которой стоит воспользоваться – перейти на использование библиотек.

Как это выглядит?

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

В него мы как раз и перенесем весь код, написанный на предыдущем этапе в Jenkins-файле, разделим его на кусочки, выделив каждый шаг в отдельный скрипт.

На слайде показан пример такого репозитория. Файлы, у которых префикс «step» – это шаги. А остальные файлы – это методы.

И тогда ваш jenkinsfile превращается в такую конструкцию из четырех строк, которая практически никогда у вас меняться не будет.

Таким образом, у DevOps-инженера появляется отдельный репозиторий, за который он отвечает и который он контролирует.

Пользуясь возможностями Jenkins-библиотек (Shared Library), DevOps-инженер может разрабатывать новую функциональность, не ломая существующие конвейеры, потому что библиотеки поддерживают версионность и в конкретном тестовом репозитории он может воспользоваться другой версией. Ему не потребуется править все 100 тысяч репозиториев. 

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

 

 

Но у такого решения, если на этом остановиться, опять же, есть минус, потому что в случае, если у нас все-таки есть репозитории, которые отличаются, нам туда надо передавать 100 миллионов параметров:

  • Например, у вас есть репозиторий в формате EDT, а рядом – в формате конфигуратора. 

  • Либо в одном проекте вы выполняете обычное тестирование, а другой проект у вас необходимо дополнительно проверять средствами автоматизированной проверки конфигурации на 1С-Совместимо. 

  • Либо разные версии платформы и т.д.

Все это нужно покрывать каким-то набором переменных и т.д., потому что конвейеры все-таки отличаются.

Что можно сделать?

Можно написать несколько библиотек либо написать несколько методов стартера в одной библиотеке, но все это немного усложняет поддержку.

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

  • разбить конвейер на атомарные шаги;

  • определить набор параметров для каждого шага и для конвейера в целом;

  • все эти настройки вписать в конфигурационном файле.

  • и реализовать метод загрузки этого конфигурационного файла. 

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

Рекомендую загрузку (чтение этого конфигурационного файла) настраивать таким образом, чтобы предусматривалось отсутствие параметров (чтение по умолчанию), потому что JSON, в принципе, позволяет добавлять отдельные параметры, не ломая общую структуру, в отличие от той же XML со своей схемой.

 

 

Тогда команда со своей стороны будет делать следующее – она будет брать конфигурационный файл по умолчанию, и вносить в него соответствующие правки.

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

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

А задачей DevOps-инженера будет только поддержание всех этих конфигурационных файлов в актуальном состоянии.

 

Заключение

На этом мне хотелось бы завершить. Надеюсь, несмотря на сжатость доклада, тот самый Inception произошел, и вам это поможет.

Отдельно хочу упомянуть несколько ссылок, где вы можете прочитать более подробно информацию о том, что я упоминал. 

  • https://jenkins.io/doc/book/pipeline/shared-libraries/ – это непосредственно описание самого Jenkins по использованию библиотек.

  • https://habr.com/ru/post/338032/ – хорошая статья на Хабре по поводу использования библиотек Jenkins.

  • https://jenkins.io/doc/tutorials/ – отдельное руководство, как работать с Jenkins, очень грамотный туториал. Единственный минус Jenkins – его документация немного не успевает за выпуском релизов, поэтому могут быть небольшие расхождения.

  • https://xdd.silverbulleters.org/ – форум «Серебряной пули», где собираются все релиз-инженеры и обсуждают некоторые темы. Там вы можете задать вопрос и, скорее всего, получить на него полезный ответ.

  • https://github.com/oscript-library/ – библиотека скриптов.

  • https://www.livelib.ru/book/1002871437/about-posobie-relizinzhenera-1s-i-ne-tolko-gryzlov-na – отдельно выделяю книжку «Пособие релиз-инженера 1С и не только» под авторством Никиты Грызлова. Начинающему – маст хэв.

 

****************

Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019. Больше статей можно прочитать здесь.

В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

Выбрать мероприятие

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 20.02.20 10:56 Сейчас в теме
с костылезацией
vladimirmatancev; +1 6 Ответить
2. theshadowco 153 20.02.20 12:42 Сейчас в теме
(1) поясните свое замечание?
4. YPermitin 8301 20.02.20 21:27 Сейчас в теме
(2) думаю, это просто непонимание. Со всем уважением к комментатору.

Статья отличная!
3. Sergey.Noskov 1138 20.02.20 15:06 Сейчас в теме
Реальный опыт всегда важен.
Во-первых, становятся видны все разложенные на пути грабли.
Во-вторых, сам путь к результату становится более очевидным, т.к. вместо лозунгов "светлое будущее - там" получаем конкретный вариант действий.
kuzyara; acanta; YPermitin; +3 Ответить
5. aximo 1634 21.02.20 06:36 Сейчас в теме
я ни слова не понял, если честно, особенно "разбить конвейер на атомарные шаги"..... - особенно практическое применение и получение результата...

думаю, пока это дойдет в массы, это уже устареет.....
6. Zurfik 21.02.20 06:40 Сейчас в теме
Интересно, кто-то из обычных 1с-ников это использует? Или только супер крупные компании? Чтобы все это настроить нужно столько знаний и программировать уметь на других языках.
7. aximo 1634 21.02.20 07:13 Сейчас в теме
(6) подозреваю, что практически никто.... эксклюзив.... так же мне не понятна современная тенденция притягивать "за уши" git к "монолитным" обработками 1с.

мной был задан как-то вопрос - ответ, который я не получил до сих пор - возможно ли в современной EDT писать каждый модуль (может функции или процедуры) в отдельных текстовых файлах, чтобы потом компилировать это в обработку например - тогда в гите был бы смысл...

это чисто мое мнение, ни с кем спорить не собираюсь....
8. ImHunter 191 21.02.20 08:44 Сейчас в теме
(7) Насчет разработки именно в EDT - не пробовал. Пока что, наша перспективная самописка работает на слишком свежей платформе, которую EDT не поддерживает.

Компиллировать внешку из исходников можно, например, с помощью vanessa-runner:
vanessa-runner help compileepf


В итоге, запустится конфиг с ключом /LoadExternalDataProcessorOrReportFromFiles.
11. nixel 897 05.03.20 10:14 Сейчас в теме
(7) это можно делать даже в конфигураторе
9. theshadowco 153 04.03.20 06:40 Сейчас в теме
(6) кто такой обычный "1с-ник"?
Если это эфемерное существо (приложение к клавиатуре), которое умеет только обработки доделывать, добавляя очередной костыль - то нет, не сможет.
Но если же это IT-специалист, программист, умеющий думать и обучаться - то не вижу никах ограничений.
zeegin; Krio2; +2 Ответить
10. Zurfik 05.03.20 07:40 Сейчас в теме
(9) Не обижайтесь )) Я лишь хотел сказать что не все могут позволить себе devops инженера и не все работая с 1с, изучают другие среды разработки. Ваш труд это нисколько не умаляет.
Оставьте свое сообщение

См. также

Подсистема "Инструменты разработчика" v5.34 Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Интегрированный набор инструментов разработчика: - консоль кода - консоль запросов - консоль построителя отчетов - консоль компоновки данных - консоль заданий - конструктор запроса - справочник алгоритмов - исследователь объектов - интерфейсная панель - настройка журнала регистрации - анализ журнала регистрации - настройка техножурнала - анализ техножурнала - подбор и обработка объектов - редактор объекта БД - редактор констант - редактор параметров сеанса - редактор изменений по плану обмена - редактор пользователей - редактор предопределенных - редактор хранилищ настроек - динамический список - поиск дублей и замена ссылок - контекстная подсказка - синтакс-помощник - поиск битых ссылок - поиск ссылок на объект - структура хранения БД - удаление объектов с контролем ссылок - и прочее

23.09.2007    475226    4340    tormozit    2649    

Атака сервера кнопонажималкой

Нагрузочное тестирование Инструментарий разработчика Бесплатно (free)

Чтобы убедиться, что продукт выдержит планируемую нагрузку, необходимо провести нагрузочное тестирование – написать сценарии пользовательских действий и запустить их в несколько потоков, чтобы заранее найти проблемы в бизнес-логике и «узкие места». О том, как упростить написание сценариев тестирования для конфигурации Тест-центр с помощью фреймворка Vanessa Automation на конференции Infostart Event 2019 Inception рассказал ведущий программист компании «ПервыйБИТ» Никита Грызлов.

20.01.2020    4518    0    nixel    22    

Часовой на страже логов

Практика программирования Инструментарий разработчика Бесплатно (free)

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    4762    0    Scorpion4eg    6    

Как управлять качеством кода 1С, используя платформу SonarQube

Рефакторинг и качество кода Инструментарий разработчика Бесплатно (free)

При быстром росте функциональности проводить визуальный Code-Review для обнаружения некачественного кода проблематично. О том, как автоматизировать проверку качества кода 1С с помощью платформы SonarQube на конференции Infostart Event 2019 Inception рассказал ведущий разработчик компании «Командор» Олег Тымко.

30.12.2019    6738    0    olegtymko    9    

Легкий способ обновления измененной конфигурации Промо

Инструментарий разработчика v8 Бесплатно (free)

Легкий способ обновления измененной конфигурации. Сервис подготовки расширения конфигурации

25.10.2017    22000    0    avk72    63    

Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

Практика программирования Инструментарий разработчика v8::УФ Бесплатно (free)

Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

23.12.2019    10475    0    TitanLuchs    23    

Мониторим производительность с помощью 1С RAS

Инструментарий разработчика Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Подключаемся и анализируем данные через 1С RAS. Необходимо выполнить 5 пунктов и серьезный инструмент мониторинга будет у вас в руках.

19.12.2019    8569    0    ivanov660    16    

Git для 1С-ника и другие технологии групповой разработки

Инструментарий разработчика Git (GitHub, GitLab, BitBucket) v8 1cv8.cf Россия Бесплатно (free)

У многих специалистов в отношении Git сложились стереотипы, мешающие начать работу с этим прекрасным и удобным инструментом. Почему его не стоит бояться, и чем он может упростить жизнь 1С-никам, рассказал архитектор ГК «Невада» Станислав Ганиев.

28.10.2019    11136    0    stas_ganiev    16    

Универсальная функция для программного выполнения СКД Промо

Инструментарий разработчика Универсальные функции v8::СКД 1cv8.cf Бесплатно (free)

Часто встречаются вопросы на форумах о программном формировании СКД. Вроде и информации много по этому поводу, но... Все как всегда :) Собственно, в описании без лишних слов выложен текст общей функции, в которую, для выполнения отчета, нужно передать (минимум 2 параметра): СКД и ТабличныйДокумент.

20.05.2015    29246    0    dj_serega    18    

Про ТабДок или TabDoc Pro

Практика программирования Инструментарий разработчика v8 Бесплатно (free)

Табличный документ – всем знакомый и привычный компонент продукта 1С. Про оптимизацию работы табличного документа, его проблемы и недостатки в своем докладе на конференции Infostart Event 2019 Education рассказал ведущий программист BIA-Technologies Князьков Алексей.

11.09.2019    5483    0    AKnyazkov    26    

FastCode - сервис поиска кода 1С

Инструментарий разработчика v8 Бесплатно (free)

Добавляйте свои шаблоны кода или ищите готовые шаблоны других разработчиков. Оставляйте отзывы и лайки, добавляйте понравившиеся фрагменты в свою библиотеку. Ищите по БСП или по общим модулям своей конфигурации.

10.09.2019    8680    0    m.bolsun    22    

Кодогенерация и метагенерация в 1С

Практика программирования Инструментарий разработчика Бесплатно (free)

В своем докладе на конференции INFOSTART EVENT 2018 EDUCATION Дмитрий Белозеров рассказал о разработке инструмента, позволяющего программно работать с метаданными 1С и писать скрипты для выполнения тех же действий, которые выполняет разработчик в конфигураторе –  с какими сложностями и нюансами пришлось столкнуться, и что получилось в итоге.

26.08.2019    7656    0    kirovsbis    28    

Перевод интерфейса конфигурации с использованием программы 1С:Переводчик Промо

Инструментарий разработчика v8 Бесплатно (free)

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

09.02.2015    31664    0    boogie    21    

Как мы разрабатываем в EDT

EDT Инструментарий разработчика v8 Бесплатно (free)

EDT – это новая среда разработки, на которую сейчас перешли разработчики фирмы «1С». Однако до сих пор существует ряд «белых пятен», касающихся как теоретической, так и практической части применения этого инструмента. Про опыт перехода на разработку в EDT на конференции INFOSTART EVENT 2018 EDUCATION рассказал начальник сектора разработки в компании «Группа Полипластик» Владимир Крючков.

23.08.2019    10393    0    ivanov660    24    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    9497    0    IvanAT1981    14    

Отказ от использования хранилищ 1С, переход на Git.

Инструментарий разработчика Разработка Бесплатно (free)

Валерий Максимов в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION делится опытом перехода нескольких команд (более 100 разработчиков) от использования хранилищ 1С на системы контроля версий Git.

25.07.2019    9375    0    theshadowco    31    

Генерация кода управляемой формы (декомпиляция элементов) Промо

Инструментарий разработчика Практика программирования Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

29.09.2014    99005    0    ekaruk    127    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    28102    0    ids79    27    

Интеграция сценарного тестирования в процесс разработки

Практика программирования Инструментарий разработчика Бесплатно (free)

Разработчик системы «Тестер» Дмитрий Решитко в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION показывает, что процесс тестирования можно очень плотно интегрировать в процесс разработки, что внедрение тестирования – это возможность развития программиста как такового, позволяющая ему упорядочивать ход мыслей и оставаться «в фокусе». Навыки построения процесса кодирования на стыке с тестированием сокращают время на концентрацию, освобождают от страха перед изменениями и улучшают память разработчика.

08.07.2019    8024    0    grumagargler    7    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    18298    0    Evil Beaver    33    

Сервис обмена кодом Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Бывало так, что вам нужно быстро показать кому-то свой код, но опубликовать его негде, так как популярные сервисы просто не поддерживают раскраску кода 1С? Теперь решение есть!

26.06.2015    19623    0    Infactum    23    

Перенос и резервное копирование настроек конфигуратора

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Удобный перенос между рабочими местами и резервное копирование настроек конфигуратора через подсистему "Инструменты разработчика".

14.04.2019    8595    0    tormozit    18    

Git + 1С. Часть 2. Реализация Git workflow в 1С-разработке по шагам

Инструментарий разработчика Управление проектом v8 1cv8.cf Бесплатно (free)

В этой части мы рассмотрим наиболее распространённую схему workflow при групповой разработке с использованием Git. Как приступить к доработке по поставленной задаче; исправить ошибку, обнаруженную на этапе тестирования; отправить свой код на слияние в предстоящий релиз; и т.д. Постараемся охватить большинство задач, составляющих основной цикл разработки

28.01.2019    15425    0    stas_ganiev    26    

Автоматизация тестирования с помощью WinAutomationUI

Инструментарий разработчика v8 Бесплатно (free)

Рассматривается использование инструмента WinAutomationUI для создания автоматизированных сценарных тестов на примере 1 + 1 = 2.

11.12.2018    6212    0    AlexKo    30    

TurboConf:Шаблоны - сервис для поиска и хранения фрагментов кода Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Сервис добавляет в Конфигуратор возможность поиска и хранения фрагментов кода. Делитесь своими шаблонами с другими разработчиками или используйте уже готовые!

13.08.2014    21774    0    m.bolsun    68    

Метрики, графики, статистика = Prometheus + Grafana

Инструментарий разработчика v8 v8::ОУ Россия Бесплатно (free)

Снятие метрик из базы данных 1С с хранением в Phrometheus и красивое оформление на основе Grafana. Или как мы создавали комфортные условия административному персоналу на отдельно взятом складе.

23.10.2018    15918    0    freewms    75    

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

Инструментарий разработчика Управление проектом v8 1cv8.cf Бесплатно (free)

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    57340    0    stas_ganiev    73    

Автоматизация тестирования

Инструментарий разработчика Бесплатно (free)

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

04.10.2018    10260    0    ivanov660    23    

Ускорение реструктуризации таблиц Промо

Инструментарий разработчика Администрирование данных 1С Тестирование и исправление Бесплатно (free)

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

12.09.2013    50622    0    OLEG4120    32    

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час

Практика программирования Инструментарий разработчика v8::СКД Бесплатно (free)

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

03.09.2018    41353    0    SergeyN    26    

Криптография и электронная подпись в решениях на 1С

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Бесплатно (free)

Андрей Глебов, докладчик конференции Infostart Event 2017 Community, делает обзор нормативной базы РФ по теме электронной подписи. Рассказывает о возможностях криптографии в платформе «1С:Предприятие 8» и ее расширении через технологию создания внешних компонент. Также он описывает функционал подсистемы «Электронная подпись» в конфигурации «1С:Библиотека стандартных подсистем», приводит примеры использования криптографии в сервисах «1С-ЭДО» и «1С:ДиректБанк», дает рекомендации по разработке собственных решений с криптографией и устранению проблем при запуске электронного документооборота на предприятиях.

13.08.2018    33110    0    chat007    37    

Undo (Ctrl+Z ) история выбора реквизитов формы для 7.7 Промо

Инструментарий разработчика v7.7 1cv7.md Россия Бесплатно (free)

Небольшой класс, реализует "историю" выбора реквизитов формы.

18.05.2009    18245    0    Ёпрст    27    

Практика применения инструментов продвинутого разработчика 1С

Инструментарий разработчика v8 Бесплатно (free)

Статья адресована разработчикам. Будет чуть-чуть теории, будут воспоминания, и потом пойдет практика.

23.07.2018    24188    0    artbear    24    

Автоматизируй это!

Практика программирования Инструментарий разработчика Бесплатно (free)

Здравствуйте. Меня зовут Виталий Онянов. Я работаю в компании ФТО. Мы занимаемся внедрением и поддержкой ERP-систем, в том числе и на 1С. Сегодня я хотел бы поделиться нашим опытом автоматизации своих задач и рассказать о том, какие регламентные задания мы настраиваем на серверах наших клиентов. Возможно, кому-то покажется, что это совсем простые и очевидные вещи, но я в своей работе периодически вижу разработчиков, которые делают какие-то задачи руками изо дня в день, и мне бы хотелось донести до них мысль о том, что многие из этих задач можно и нужно автоматизировать.

02.07.2018    20223    0    Tavalik    12    

Лайфхак: исходники внешних обработок и отчетов 1С - это просто.

Инструментарий разработчика v8 Бесплатно (free)

Важно: статья далеко на любителя всяких таких git'ов, gitlab'ов и oscript'ов.

22.06.2018    10316    0    new_user    12    

VM1C - виртуальная машина для 1С Промо

Инструментарий разработчика v8 1cv8.cf Россия Бесплатно (free)

Демонстрация возможностей виртуальной машины для 1С. Создаем и выполняем код модулей в режиме Предприятия в реальном времени.

07.06.2013    23308    0    m.bolsun    46    

Создание поставки конфигурации

Инструментарий разработчика v8 Бесплатно (free)

Пошаговая демонстрация создания поставки конфигурации, файлов обновления и настройка для обновления через FTP.

27.02.2018    17761    0    Vladimir_412    7    

Групповая разработка конфигураций в крупном холдинге

Инструментарий разработчика v8 Бесплатно (free)

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

15.08.2017    20276    0    stas_ganiev    15    

Применение нейронных сетей и генетических алгоритмов в прикладных решениях на платформе 1С

Математика и алгоритмы Инструментарий разработчика Бесплатно (free)

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

03.07.2017    37052    0    comol    63    

Гаджеты для одинэсника. Часть 2 Промо

Инструментарий разработчика Мобильная разработка ИТ-компания Бесплатно (free)

... ситуация с планшетами весь 2012-й год была достаточно запутана. То и дело всплывала какая-то модель, которая на некоторое время по отношению цена/качество привлекала к себе внимание. Я долго откладывал эту статью, ожидая лидеров, и они, наконец, обозначились...

20.03.2013    34407    0    O-Planet    61    

Управление техническим долгом - Концепция Continuous Inspection

Инструментарий разработчика Бесплатно (free)

Сегодня я вам хочу рассказать про тему «Управление техническим долгом» – что это такое, как с этим бороться и почему с этим надо бороться.

30.06.2017    18937    0    nixel    16    

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

Инструментарий разработчика v8 Бесплатно (free)

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

07.06.2017    25310    0    ekaruk    9    

Metadata.js для построения дешевых высоконагруженных сервисов

Инструментарий разработчика WEB Мобильная разработка Бесплатно (free)

В маркетинге есть понятие "голубой океан". Стратегия опирается на создание не существовавшего ранее спроса на новом рынке, где практически отсутствуют конкуренты. Вместо того, чтобы конкурировать со множеством игроков на малоприбыльных рынках ("красный океан"). В статье я расскажу об одном из инструментов, помогающем создавать и осваивать новый рынок Интернет-сервисов для бизнеса.

08.08.2016    35368    0    unpete    100    

Технология внешнего сохранения расчетов Промо

Инструментарий разработчика Бесплатно (free)

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

20.09.2012    18175    0    fixin    10    

Формы для 1script

Инструментарий разработчика Бесплатно (free)

В последнее время для задач, связанных с администрированием 1С или расширением возможностей конфигуратора, стал использовать 1script (onescript). Движок оказался очень удобным и приятным, но чего-то не хватало, а именно работы с формами. В ряде скриптов использовать GUI было бы предпочтительней параметров командной строки, тем более если с этим работать конечному пользователю.

01.08.2016    25288    0    ret-Phoenix    100    

Wiki движки для публикации пользовательской документации

Инструментарий разработчика Бесплатно (free)

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

09.07.2016    20180    0    kuld    4    

Подсветка синтаксиса 1С в текстовых редакторах Atom, Sublime Text, VS Code

Инструментарий разработчика Разработка внешних компонент v8 1cv8.cf Бесплатно (free)

Пакеты, добавляющие поддержку синтаксиса языка 1С:Предприятие 8 в текстовые редакторы Atom, Sublime Text и VS Code. И не только.

02.02.2016    26335    0    nixel    38    

Дай дернуть! О веб-сервисах, Linux'ах и добрых поисковых сайтах

Инструментарий разработчика Администрирование данных 1С WEB v8 1cv8.cf Бесплатно (free)

О веб-сервисах, апачах и *nix'ах. - установим на новенький убунту старенький апач с php. - дернем сервис из php-скрипта. - создадим приложение, позволяющее дергать произвольный сервис с произвольными данными. - ну и что там получится по пути в лес...

30.12.2015    25506    0    starik-2005    4    

xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

xUnitFor1C - простой и мощный фреймворк для тестирования в 1С. Позволяет тестировать в разных режимах обычное приложение, тонкий и толстый клиент управляемого приложения. Поддерживаются любые платформы 1С - от 8.2.17 до 8.3.5 и выше. Любые наборы тестов могут прогоняться в полностью автоматическом режиме. Автозапуск используется в различных build-серверах в системах Continuous Integration. Также возможно очень простое создание тестовых данных на основании табличных макетов. Эти макеты можно генерировать из реальных боевых данных. Полученные данные в тестах загружаются одной строкой кода. В статье я кратко описал историю продукта + вставил небольшое описание различных возможностей нашего фреймворка + список полезных статей/примеров/видео, обучающих/рассказывающих о практическом применении инструмента

13.11.2015    42016    0    artbear    45    

Многопоточность в 1С, клиент-серверный вариант

Инструментарий разработчика Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

Многопоточность - это свойство системы выполнять одновременно более одной операции (в пределе - более одной программы), позволяя в ряде случаев добиться существенного роста производительности программного продукта...

21.06.2015    35150    0    starik-2005    54    

Bugs must die! или Как повысить качество внедрений инструментами тестирования

Инструментарий разработчика Бесплатно (free)

Речь в статье пойдет про тестирование, про качество программ и про то, как можно процесс тестирования автоматизировать. Статья написана по итогам доклада, прочитанного автором на Конференции IE 2013 Еvolution 23-24 мая 2013 года. Также она напечатана в Журнале Инфостарта №2.

03.03.2015    19300    0    eu_genij    17