Делаем простую систему непрерывной интеграции (CI) c OneSсript, xUnitFor1C и v8LogScanner

14.01.18

База данных - Инструменты администратора БД

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Архив со скриптом и всеми утилитами на момент написания статьи
.zip 7,98Mb
12
12 Скачать (1 SM) Купить за 1 850 руб.
Урок проверен на платформе версии 8.3.10.2580 и конфигурациях ЕРП 2.4.1.240 и БП 3.0.43 и работает только с БСП конфигурациями (используется для блокировки сеансов)
 
Автотесты выполняются после обновления на той же базе, которую и обновляем.
 
Если Вы ищете скрипт только для обновления базы из хранилища, то deployka.os возможно будет лучшим выбором.

 

Вкратце, вся CI – это один скрипт обновления конфигурации на OneScript и несколько вспомогательных утилит, которые и делают всю магию непрерывной интеграции. Процесс разворачивания займет не так много времени и обойдется без использования  билд серверов вроде jenkins. Результат выполнения скрипта будет приходить на e-mail в следующем довольном аскетичном, но тем не менее весьма полезном формате.

Нам потребуется:

  • OneScript  - среда для запуска скриптов на 1с-подобном языке.
  • AutoUpdateBase.os - заранее подготовленный скрипт на OneScript.
  • xUnitFor1C 4.2.0.0 – библиотека для unit-тестов.
  • V8LogScanner 1.2. - утилита для парсинга логов ТЖ (требует Java 8). Это как бонус. Если хотите включить в итоговую почтовую рассылку срез N событий из файла ТЖ. Для себя я решил настроить утилиту так, чтобы включать в рассылку срез из самых медленных запросов за сутки.
  • Конфигурация с поддержкой БСП с развернутым хранилищем, с которого будем получать изменения и клиент-серверная база,  на которую будем накатывать изменения. Скрипт легко можно адаптировать и под файловые базы, но на момент написания статьи он этого делать не умеет.

Шаг 1

Итак, устанавливаем актуальную версию OneScript на любом компьютере, с которого будем запускать по расписанию скрипт. Я для этой цели использовал сервер приложений 1С. Лучше не устанавливать дистрибутив в папку program files, т.к. нам потребуется установить один дополнительный пакет и соответственно административные права на данный каталог.

Шаг 2

Добавляем в системную переменную path путь к  основному исполняемому файлу oscript.exe, который спрятан в директории bin\ каталога OneScript.

Шаг 3

Устанавливаем с помощью пакетного менеджера opm, который входит в комплект с OneScript дополнительный пакет InternetMail.(спасибо автору) для работы с e-mail. Для этого открываем консоль cmd.exe и набираем

opm install InternetMail

Шаг 4

Распаковываем архивы с с xUnitFor1C и V8LogScanner и помещаем их внутри одного каталога на том же  сервере, где установили OneScript. Например в каталоге D:\scripts\. Должно получится что-то вроде этого:

Шаг 5

Переходим к скрипту autoUpdateBase.os и кидаем его в  ранее созданную папку (D:\scripts) . Открываем скрипт и редактируем глобальные переменные в функции Инициализировать()

// В функции задаются параметры базы, которую требуется обновить
Функция Инициализировать()
   
    // ОБЩИЕ ПАРАМЕТРЫ

    ПЛАТФОРМА_ВЕРСИЯ = "8.3.10.2580";  // если пустая строка, то будет взята последняя версия
    КОМ_КОННЕКТОР    = "V83.COMConnector";
    РАБОЧИЙ_КАТАЛОГ  = "D:\scripts\";

    // ПАРАМЕТРЫ БАЗЫ
    
    СЕРВЕР       = "svrtest";
    СЕРВЕР_ПОРТ  = 1541; // 1541 - по умолчанию
    БАЗЫ = Новый Массив; 
    БАЗЫ.Добавить("testdb");
    ПОЛЬЗОВАТЕЛЬ = "user" 
    ПАРОЛЬ       = "pwd";
    
    // ПАРАМЕТРЫ ХРАНИЛИЩА

    ХРАНИЛИЩЕ_ПУТЬ         = "\\storage";
    ХРАНИЛИЩЕ_ПОЛЬЗОВАТЕЛЬ = "UPD"; // заведите отдельного пользователя для скрипта
    ХРАНИЛИЩЕ_ПАРОЛЬ       = "";
    
    // ПАРАМЕТРЫ КЛАСТЕРА СЕРВЕРА 

    ПОРТ_КЛАСТЕРА                  = СЕРВЕР_ПОРТ;
    ПОРТ_АГЕНТА_СЕРВЕРА            = 1540; // 1540 - по умолчанию
    ИМЯ_АДМИНИСТРАТОРА_КЛАСТЕРА    = "";
    ПАРОЛЬ_АДМИНИСТРАТОРА_КЛАСТЕРА = "";

КонецФункции

Имена переменных говорят сами за себя, так что тут сложностей быть не должно. Для переменной ХРАНИЛИЩЕ_ПОЛЬЗОВАТЕЛЬ  нужно завести отдельного пользователя в хранилище, иначе выскочит ошибка «Для этого пользователя уже есть связь с хранилищем». Обратите внимание на РАБОЧИЙ_КАТАЛОГ - это каталог, в который мы кинули скрипт и все остальные объекты.

Далее двигаемся в процедуру ОтправитьПисьмо() и редактируем параметры SMTP / POP3 почтового сервера для объекта ИнтернетПочтовыйПрофиль. Настройки полностью идентичны настройкам почты, которые мы бы задали непосредственно в платформе 1С. Там же можно посмотреть документацию по свойствам, с которыми возникают трудности. Мне было достаточно указать верный АдресСервераPOP3 и АдресСервераSMTP  для того, чтобы почта заработала.

Процедура ОтправитьПисьмо(Тема, ТекстHTML, Вложения = Неопределено)

        Профиль = Новый ИнтернетПочтовыйПрофиль;

        Профиль.АдресСервераSMTP    = "127.0.0.1"; // укажите свои данные
        Профиль.ПользовательSMTP    = ""; // укажите свои данные
        Профиль.ПарольSMTP          = ""; // укажите свои данные
        Профиль.ПортSMTP            = 25; // укажите свои данные
        Профиль.ИспользоватьSSLSMTP = Ложь; // укажите свои данные

        Профиль.АдресСервераPOP3    = "127.0.0.1";  // укажите свои данные
        Профиль.ИспользоватьSSLPOP3 = Ложь; // укажите свои данные
        Профиль.Пользователь        = ""; // укажите свои данные
        Профиль.Пароль              = ""; // укажите свои данные

        Сообщение = Новый ИнтернетПочтовоеСообщение;
        Сообщение.Получатели.Добавить("receiver@company.ru"); // укажите свои данные
        Сообщение.ОбратныйАдрес.Добавить("sender@company.ru"); // укажите свои данные
        Сообщение.Отправитель = "sender@company.ru"; // укажите свои данные
        Сообщение.Тема        = Тема;

        Сообщение.Тексты.Добавить(ТекстHTML, ТипТекстаПочтовогоСообщения.HTML);
        Если Вложения <> Неопределено Тогда
            Для каждого ФайлВложения Из Вложения Цикл
                Сообщение.Вложения.Добавить(ФайлВложения);
            КонецЦикла;
        КонецЕсли;

        Почта = Новый ИнтернетПочта;
        Почта.Подключиться(Профиль, ПротоколИнтернетПочты.POP3);
        Почта.Послать(Сообщение, , ПротоколИнтернетПочты.SMTP);

КонецПроцедуры

Вимание! Если вы не хотите использовать xUnitFor1C или v8LogScanner, а только само обновление с почтовой рассылкой, то закомментируйте в процедуре ОбновитьИБВПопытке() строчки ЗапуститьТесты() и ЗапуститьV8LogScanner()

Шаг 6 (опционально)

Настраиваем unit-тесты. Каждый тест - это отдельная внешняя обработка. Инструкцию и примеры о том, как пишутся тесты можно посмотреть в wiki xUnitFor1C . Если лень писать свой тест, то берем мой, который подходит для теста печати транспортной накладной конфигурации ЕРП 2.2. Впрочем тест выполнится без проблем на любой другой конфигурации, просто на почту к вам приедет результат теста со статусом ERROR. Подготовленный тест перемещаем в папку tests внутри каталога,  в котором находится наш скрипт. Должно получится что-то вроде D:\scripts\tests\мой_тест.epf

Шаг 7 (опционально)

Настраиваем v8LogScanner. Для этого заходим в каталог, в который мы его установили и запускаем run_client.cmd . Запустится главное меню.  Выберем, например, автопрофиль поиска блокировок и таймаутов с системе. Это позволит прямо в письме получать информацию о количестве блокировок за период. Критичная масса блокировок - это сигнал переходить в активным действиям.

Из главного меню делаем следующее: 4 Auto profiles => 9 Find 1c Deadlocks and Timeouts => 1 Select TOP FROM Locations => <Далее  нужно указать вариант поиска папки из которой будут сканироваться логи ТЖ>  (навигация выполняется с помощью ввода цифр - пунктов меню на клавиатуре).

Далее возвращаемся в главное меню Main (с помощью поочередного нажатия клавиши q) и выбираем 6 Other => 3 Save profile on disk => enter.  Этим мы сохраним настройки парсинга в каталог утилиты в файл profile.json. При каждом следующем запуске настройки будут читаться из этого файла.

Также у вас должен быть уже настроен logcfg.xml в каталоге \1cv8\conf,  чтобы логи из ТЖ записывались в выбранные ранее в утилите каталоги. Настроить logcfg.xml можно из главного меню Main утилиты. Для этого переходим в меню 5 Configure log.cfg и играемся конструктором лога.

Шаг 8

Скрипт настроен. Тестируем его работут вручную. Для этого открываем cmd.exe выполняем следующую команду.

oscript autoUpdateBase.os

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

Шаг 9

Добавляем скрипт в планировщик заданий windows. Настройки задания должны быть следующие:

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

интеграция CI OneSсript xUnitFor1C v8LogScanner

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    8551    65    29    

76

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147442    649    362    

235

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    9078    43    5    

74

SALE! %

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

15000 10000 руб.

10.11.2023    10655    38    27    

63

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3840 руб.

14.01.2013    188479    1142    0    

913

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32877    106    152    

73

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

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

6000 руб.

06.11.2012    72923    627    45    

85

Инструменты администратора БД Системный администратор Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62904    94    59    

79
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Evil Beaver 8248 14.01.18 21:57 Сейчас в теме
Здорово, спасибо, что пользуетесь. 2 вопроса:

1. Почему руками прописываем путь в переменную PATH? Инсталлятор делает это автоматически
2. Не увидел, как человек получит к себе на машину "деплойку"? Деплойка также ставится через opm.
lustin; artbear; +2 Ответить
2. dmpas 418 14.01.18 22:05 Сейчас в теме
(1) насколько я понял, деплойка тут и не используется.
3. Evil Beaver 8248 14.01.18 22:06 Сейчас в теме
(2) Аа, действительно. Она лишь в начале, как совет. Ок.
4. ripreal1 524 15.01.18 08:58 Сейчас в теме
(1)
У меня не прописалась. Возможно она не прописывается под неполными правами?
5. Stepa86 1531 15.01.18 09:49 Сейчас в теме
(4) А зачем вообще в PATH прописывать? Все равно в шаге 9 полный путь к exe. Так же можно написать в шаге 8. Даже лучше, чтоб строки совпадали. А то oscript и C:\Program...\oscript.exe могут быть разными, что может принести сюрприз при отладке.
6. artbear 1563 15.01.18 10:51 Сейчас в теме
(0) Каким образом получаете/генерируете отчет в почту?

Делаете анализ отчет xUnitFor1C, разборку его и т.п.?

PS Спасибо за использование нашего продукта xUnitFor1C :)
7. ripreal1 524 15.01.18 15:53 Сейчас в теме
Да, использую ГенераторОтчетаJUnitXML
8. comol 5109 16.01.18 00:30 Сейчас в теме
Я что-то упустил в этой жизни или Обновление базы скриптом и автотесты теперь называют непрерывной интеграцией?
Не говоря уже о том что с хранилищем 1С она особенно актуальна! А то мы так страдаем когда мёрджим различные ветки хранилища :))))))))))
9. artbear 1563 16.01.18 11:17 Сейчас в теме
(8) А причем здесь мерж? здесь главное от CI - непрерывная/периодическая проверка/тестирование изменений разработчиков
11. comol 5109 16.01.18 13:19 Сейчас в теме
(9)
А причем здесь мерж?
Интересно что значит слово "Интеграция" в словосочетании "Непрерывная интеграция"? :)))
13. Evil Beaver 8248 16.01.18 16:32 Сейчас в теме
(11) десять команд пилят сорок компонент, потом все это из разных веток хаотично вливается в ствол релиза. Работает оно?

А пес его знает...

Поэтому вся эта мешанина автоматически собирается и тестируется в комплексе. Т.е. "интегрируется" между собой.

Применительно к 1С: - 1С-ники пишут что-то в хранилище, ни в жизнь не тестируют перед коммитом, "я всего одну строчку исправил". Потом в течении 10-15 минут после коммита автор получает в почту отчет со словами "ААА, фсе сломал, гаденыш!" И результаты прогона тестов.
Volfy; Serg O.; +2 Ответить
16. comol 5109 16.01.18 17:53 Сейчас в теме
(13)
результаты прогона тестов
это автоматизированное тестирование всё-таки а не непрерывная интеграция.

течении 10-15 минут после коммита
в статье нет привязки к коммиту.

CI всё-таки подразумевает наличие ветвлений... Без веток оно не так и нужно... Не говоря уже о другой проблеме - 100% покрытия тестами в 1С не достигнешь да и не нужно оно...
21. Evil Beaver 8248 16.01.18 18:28 Сейчас в теме
(16) если есть CI-сервер, значит в каком-то виде есть и CI. Понятно, что терминология в данном случае не будет 100% верной, но это больше буквоедство, нежели существенная проблема. 1С, например, судя по их статье на Хабре запросто даже мержит ветки-хранилища ERP в общий ствол с помощью СППР. Я слабо себе представляю как это можно делать, не сойдя с ума, но наверное можно. Уже много лет у них этот процесс. Так что и CI им пригодится.
d4rkmesa; +1 Ответить
10. vlad.frost 186 16.01.18 13:03 Сейчас в теме
(8)
Я что-то упустил в этой жизни или Обновление базы скриптом и автотесты теперь называют непрерывной интеграцией?


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

Вы удивитесь, но довольно много косяков вылезает просто по итогам слияния веток.
15. comol 5109 16.01.18 17:50 Сейчас в теме
(10)
итогам мерджей
нет в 1с меджей... без EDT нет.


(10)
ежедневное
и непрерывное - это по-моему несколько разные вещи...
19. lustin 16.01.18 18:09 Сейчас в теме
(15) И самого 1С нет - его не существует. И Владислава тоже нет - он всего лишь наша выдумка.
d4rkmesa; kuntashov; +2 Ответить
20. vlad.frost 186 16.01.18 18:20 Сейчас в теме
(15)
нет в 1с меджей... без EDT нет.

Ещё как есть: https://its.1c.ru/db/v8std#content:2149184358:hdoc

ежедневное
и непрерывное - это по-моему несколько разные вещи...

Да википедия нам говорит, чтобы называться "непрерывной", нужно несколько раз в день интегрироваться. Но, поскольку процесс прогона автотестов в 1С небыстрый, один прогон может почти на сутки растянуться :(

И Мартин Фаулер говорит, что "usually each person integrates at least daily - leading to multiple integrations per day.", т.е. хотя бы раз в день, уже достаточно, чтобы называться "Непрерывной" https://martinfowler.com/articles/continuousIntegration.html
Evil Beaver; kuntashov; artbear; lustin; +4 Ответить
22. artbear 1563 16.01.18 18:28 Сейчас в теме
(20) Олег, практически нигде не говорится про ветки и CI. Главное - помещать свои изменения в рабочий ствол и интегрироваться с другими разрабами, системами и прочее.
например, Википедию почитать, первый же абзац
Непрерывная интеграция (CI, англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в слиянии рабочих копий в общую основную ветвь разработки несколько раз в день и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий, но основным преимуществом является сокращение стоимости исправления дефекта, за счёт раннего его выявления. Непрерывная интеграция впервые названа и предложена Гради Бучем в 1991 г.[1]

Непрерывная интеграция является одним из основных приёмов экстремального программирования.
27. comol 5109 16.01.18 19:29 Сейчас в теме
(22)
которая заключается в слиянии рабочих копий в общую основную ветвь разработки
я даже как-то не знаю.... :)))
23. lustin 16.01.18 18:31 Сейчас в теме
(20) если процесс подразумевает мердж раз в день и действие данного правила непрерывается, то значит оно непрерывно.
d4rkmesa; +1 Ответить
26. comol 5109 16.01.18 19:28 Сейчас в теме
я не про извращения писал... я про ветвления....

хотя бы раз в день, уже достаточно, чтобы называться "Непрерывной"
хм. ну да по классике видимо так :). Но я думаю ребята "не из мира 1С" очень сильно этому удивились бы
36. Evil Beaver 8248 17.01.18 11:54 Сейчас в теме
(26)
ребята "не из мира 1С" очень сильно этому удивились бы

чему "этому" бы они удивились?
12. headMade 144 16.01.18 14:41 Сейчас в теме
на xUnitFor1C много тестов написано для ваших конфигураций?
Сами тесты можно поДсмотреть где-нибудь ?
14. ripreal1 524 16.01.18 16:57 Сейчас в теме
У нас на 2 базах используются тесты. Сейчас это 3 теста.

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

Этого маловато конечно, но главное, что работает система, а добавление новых тестов - это дело времени.

Скм код тестов не тайна. Я приложил их к сообщению.
Прикрепленные файлы:
tests.zip
headMade; artbear; +2 Ответить
17. comol 5109 16.01.18 17:54 Сейчас в теме
(14)
добавление новых тестов - это дело времени
Их прогон дело времени... Добавление то фигня. И вот тут возникает вопрос...
18. lustin 16.01.18 18:07 Сейчас в теме
(17) что за лютое сопротивление Олег. CI нет, интеграция тебе не интеграция. Тестов нет вообще и не нужны. Ты чего это ? Тебя на работе заставляют все таки сервер сборок запускать ? И ты готовишь аргументы против ?

P.S. И merge в 1С есть, просто ты не в курсе (без EDT)
d4rkmesa; +1 Ответить
24. Evil Beaver 8248 16.01.18 18:32 Сейчас в теме
(18) Выше ссылка на ИТС и было на Хабре. В 1С есть merge без EDT. Но в мою голову он не помещается, к сожалению. Хотя ERP разрабатывается много лет и успешно в таком виде. Значит оно работает.
29. comol 5109 16.01.18 19:40 Сейчас в теме
(24) Мне коллеги из CarMoney рассказывали про этот "Merge". Они его юзают и с СППР.
Это не совсем то, что я видел у Web-еров... Временные затраты настолько чудовищны, что CI назвать язык не поворачивается.
Но да - позволяет редактировать один объект 2-м разработчикам (в теории) и систематизирует процесс выпуска фич.
28. comol 5109 16.01.18 19:35 Сейчас в теме
(18)
что за лютое сопротивление Олег. CI нет, интеграция тебе не интеграция


Нуу... так скажем я очень хотел CI. Посвятил этому достаточно много времени....
Потом пытался понять почему "успешно зашло web-ерам" и "нихрена не зашло 1С-никам".
Тут дело не в том что мы 1С-ники.

CI спасает от веток и постоянных Merge-ей. У нас ветка одна.
CI спасает когда весь код покрыт тестами. Удачи вам в покрытии всего кода ERP.

Прочитал у SAP-ёров почему не зашло с тестами. Понял что в 1С у нас... до EDT по крайней мере CI не прокатит :(.
Ну по крайней мере я нормального решения не нашел. То, что описал коллега выше - профанация и определённый род извращений.
Вцелом наверное полезный, но не CI.
Evil Beaver; +1 1 Ответить
32. JohnyDeath 302 16.01.18 22:38 Сейчас в теме
(28)
Потом пытался понять почему "успешно зашло web-ерам" и "нихрена не зашло 1С-никам".

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

Так и не понял при чем тут CI и ветки. Почему CI не может быть с одной веткой?
33. comol 5109 16.01.18 23:09 Сейчас в теме
(32)
Почему CI не может быть с одной веткой?
CI придумали чтобы решить проблему слияния веток... и внедряют для решения этой проблемы главным образом.
34. JohnyDeath 302 17.01.18 07:44 Сейчас в теме
(33) а мне казалось, что важнее было решить проблемы интеграции всех наработок в одну кучу и оценки ее качества и работоспособности. С одной веткой таких проблем тоже хватает.
38. comol 5109 17.01.18 17:05 Сейчас в теме
(34) С одной веткой "коммит" не "испортит билд". А у ребят с gitflow это сплош и рядом
44. JohnyDeath 302 17.01.18 20:39 Сейчас в теме
(38) мы, наверное, про что-то разное говорим )
Правки одного разраба могут легко сломать что-то в другом месте, о котором о и не думал
35. Labotamy 17.01.18 08:30 Сейчас в теме
(33)CI придумали для того, чтобы максимально быстро узнавать о том, что новый код сломал старый.... А как там слияние проходит, особенно в 1с, вопрос десятый... Если так коробит от сочетания CI и 1с можно назвать это как нить еще. Ну и уже привыкли что в 1с все "особенное". И mrg в EDT будет "особенный" и git-flow будет EDT-flow.
39. comol 5109 17.01.18 17:07 Сейчас в теме
(35)
как там слияние проходит, особенно в 1с, вопрос десятый
Так в том то и вопрос что никак не проходит... нет его в 1С... что бы там не говорили выше
37. Gureev 17.01.18 16:10 Сейчас в теме
(33) Чот не пойму, как CI решает проблему конфликтов при слияния? Какая еще проблема слияния веток?
40. comol 5109 17.01.18 17:07 Сейчас в теме
(37) Нет в 1С слияния веток и проблем слияния. Не нужен в 1С CI. Пока что. Если коротко.
41. Gureev 17.01.18 17:16 Сейчас в теме
(40) причем тут 1с? я спросил про гит
43. comol 5109 17.01.18 18:59 Сейчас в теме
(41) эээ.. ну это можно в книжках прочитать конечно. Но общий смысл в том что master у вас всегда в актуальном состоянии.
31. comol 5109 16.01.18 19:54 Сейчас в теме
(18) Автотесты то у меня конечно есть... Сервер сборок тоже будет, только не у 1С части. Уже в очередной раз не у 1С части....
25. pumbaE 16.01.18 18:41 Сейчас в теме
Ну и я накину, разве в EDT есть merge работающий? В документации он конечно есть, в пунктах меню тоже, но вот что-б он работал такого нет.
30. comol 5109 16.01.18 19:43 Сейчас в теме
(25) Нуу... он же должен когда то появиться.... иначе на кой.... (цензура) EDT нужен?
Я так понял EDT = здравствуй GitFlow и здравствуй CI/CD (хотя тоже не уверен).
42. ekaruk 4976 17.01.18 18:19 Сейчас в теме
Спасибо за упоминание InternetMail. Уже про него слышала, на как-то руки не доходили.
Посмотрела и перешла наконец на него с самодельного VBS скрипта. Действительно, удобнее.
Berckk; Evil Beaver; +2 Ответить
45. ivanov660 4582 14.03.18 14:07 Сейчас в теме
Достаточно много действий. Можно же было создать обработку мастер установки развертывания CI с помощью этих утилит.
Вижу концепт: открыл обработку мастер, жмешь далее, вводишь требуемые данные, ожидаешь процедуру скачивания файлов/применения настроек.... и в завершении получаешь профит)

EDT пока сыроват и выполнять в нем полноценную работу в связке с GIT невозможно, ждем версию 1.8, в которой обещали поправить существующие явные "баги".
46. Pavel_Dv 03.06.18 19:13 Сейчас в теме
Доброго всем!
Может кто подскажет, как быть с internetmail?
Пробовал настройку с несколькими серверами
Родной exchange позволяет подключиться, но не позволяет отсылать. Как понимаю проблема в методе аутентификации SMTP "Безаутентификации".
Отметил проблему в репозитории разработчика
https://github.com/dmpas/oscript-mail/issues/16

Затем пробовал с mail.ru, снова фиаско
{Модуль C:\Scripts\test.os / Ошибка в строке: 40 / Внешнее исключение (MailKit.S
ecurity.AuthenticationException): AuthenticationInvalidCredentials: Authenticati
on failed. Please verify your account by going to https://e.mail.ru/login?email=...

С google удается приконнектиться по POP3 (и то после включения двухфакторной аутентификации и генерации отдельного пароля для приложения)
Но при попытке отправки он шлет куда подальше с
"gmail the smtp server has unexpectedly disconnected"

Была надежда, что автор поправил пакет в версии 1.05. Она недоступна для получения из репозитория, но легко качается с github и устанавливается из пакета.
Но нет, 1.05 вообще отказалась работать.

Были ли примеры успешной настройки и отправки через internetmail? С oneScript только знакомлюсь, может что не так делаю

PS завел через пакет tmail, лучше чем ничего.
Но все же интересен пакет internetmail
47. Pavel_Dv 03.06.18 19:56 Сейчас в теме
И сразу еще один вопрос.
Если хранилище поднято по tcp у кого-то удалось подключиться?
Выдает ошибку
"Модуль C:\Scripts\OneScript\lib\v8runner\src\v8runner.os / Ошибка в строке: 1105 / Ошибка связывания с хранилищем конфигурации по адресу: tcp://S01-1C07:2042/erp_pm2 Соединение с хранилищем конфигурации не установлено Ошибка связывания с хранилищем конфигурации по адресу: tcp://S01-1C07:2042/erp_pm2 Соединение с хранилищем конфигурации не установлено Ошибка обновления конфигурации из хранилища } ВызватьИсключение ВыводКоманды();"
Оставьте свое сообщение