BDD в 1С

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

Разработка - Математика и алгоритмы

Я расскажу вам про магию BDD. Сначала будет немного теории, а потом я покажу, как это применимо к 1С на практике. BDD расшифровывается как Behavior Driven Development, разработка через поведение системы. Это означает, что мы выстраиваем весь наш процесс разработки, исходя из ожидаемого поведения.

Проблемы коммуникации между бизнесом и IT

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

 

Итак, давайте поговорим про взаимоотношения бизнеса и IT.

Первая проблема, которая очевидная всем это то, что мы с бизнесом говорим на разных языках.

Это известная проблема, что бизнес мыслит и говорит в одних терминах, а IT мыслит и говорит в других. Мы технари - они бизнесмены. Все вы прекрасно знаете, как бывает трудно понять заказчика. Иногда даже приходит мысль, что для понимания друг друга, нам нужен другой, общий язык. Что-то типа эсперанто, только для бизнеса и IT.

Методика BDD разрешает эту проблему.

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

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

Эту задачу мы тоже можем решить с помощью BDD.

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

Эта проблема тесно связана с предыдущей. Когда бизнес постоянно растёт и изменяется - вмести с ним изменяются и требования к ПО. Это все понимают. Со стороны IT это проявляется, как постоянная доработка, переделывание, рефакторинг уже существующих подсистем.
Как защитить уже работающий функционал? Как проверить, что при суровом рефакторинге, мы ничего не сломали? Даже какая-нибудь простая задача, например, разделить функционал одного документа на два, может вылиться в чистый хаос, ведь надо убедится, что все связанные части системы, такие как регистры, отчетность - не поплыли из-за этих изменений.

Эту проблему мы тоже можем решить с помощью BDD.

Что предлагает BDD для того, чтобы решить эти проблемы теоретически?

Давайте обозначим, как все это будет происходить:

  • Проблема коммуникации с заказчиком (то, что мы с ним говорим на разных языках) в BDD решается с помощью специального «объединяющего языка», который называется Gherkin. На нем описываются требования, которые понятны и бизнесу, и IT.
  • Проблема того, что бизнес не знает, до конца ли соответствует ПО его требованиям, может быть решена, если мы дадим заказчику в руки инструмент, позволяющий по нажатию одной кнопки посмотреть, как в его системе в данный момент работает интересующая его функциональность.
  • А что касается того, что каждый новый цикл разработки становится все дольше и дольше – для этого существуют практики Continues Integration и  Continues Delivery.

Процесс разработки по методике BDD

Методика BDD позволяет нам по-новому рассмотреть процесс разработки. Кубики, из которых строится эта методика, остаются все теми же. Но BDD позволяет взглянуть на них по-новому:

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

Описание требований в BDD

Теперь перейдем к практике.

Если вы будете гуглить BDD в интернете, то найдете примеры типа: «как сложить 2+2», или «как умножить два числа» и т.д. А я вам приведу конкретный пример для типовой бухгалтерии – «Зачет аванса».

Итак, мы уже говорили, что в BDD требования пишутся на определенном языке, который называется Gherkin. Этот язык еще называют Given When Then – это английская терминология.

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

Давайте рассмотрим конкретный пример – «Зачет аванса».

  • Итак, на самом верху, в начале текста у нас содержится ключевое слово «Функционал». Здесь мы в свободной форме описываем, что нам нужно. Например:
    • Функционал: Распределение поступающей оплаты по документам реализации и зачет аванса контрагента.
  • В середине идет более важная часть, где описывается бизнес-полезность этого функционала (кто его заказывает и для чего это нужно). Например:
    • Как бухгалтер (это действие будет делать бухгалтер), я хочу, чтобы при фиксации оплаты от контрагента происходил зачет аванса для того, чтобы получить корректные проводки.
  • И ниже описывается реальный сценарий, как это будет происходить:
    • Допустим, есть контрагент, имеющий долг 900 рублей, когда по нему фиксируется оплата на 2000 рублей, тогда на 62 счете формируется две проводки.

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

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

Генерация сценариев поведения из текстов требований

Идем дальше. Мы говорили, что у нас по одной кнопке будут генерироваться сценарии тестирования. Для этого мы будем использовать инструмент Vanessa-behavior. О нем чуть подробнее:

  • Это инструмент из семейства Vanessa Stack.
  • Это опенсорс-продукт, в разработке и доработке которого может принять участие любой из вас.
  • Он free for commercial use (бесплатный для использования).
  • По сути, это – генератор сценариев тестирования и «запускалка» (так называемый feature-плейер): мы загружаем в него свои требования, нажимаем на кнопку, и они начинают у нас магически воспроизводиться.

Давайте посмотрим на код, который получился в результате обработки нашего требования (того самого кейса с зачетом аванса).

Каждый описанный шаг нашей «фичи» превратился в процедуру, которая по умолчанию содержит в себе код:

ВызватьИсключение"Не реализовано"

Так сделано специально, потому каждый шаг в BDD – это аналог теста из TDD. И у каждого шага может быть три состояния:«Выполнено», «Не выполнено» и «В ожидании реализации».Таким образом, мы в BDD всегда знаем, какой процент требований у нас сейчас реализован, поскольку мы всегда получаем отчет о том, приступал ли вообще программист к реализации конкретного требования или нет.

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

Автоматическое воспроизведение шагов сценария поведения

Мы говорили о том, что дадим заказчику «волшебную кнопку», с помощью которой он сможет проверить реализованную функциональность. В нашем инструменте Vanessa Behavior есть такая кнопка – она называется «Выполнить сценарии».

С ее помощью IT-специалисты могут производить демонстрацию функциональности заказчику: они загружают фичу в feature-плеер, нажимают кнопку, и начинают появляться окошки, где автоматически вводятся данные, проводятся документы и пр. Вообще говоря, бизнес-заказчик может провести это демо и сам для себя, он может загрузить фичу, нажать кнопку и также убедиться, что все работает. Например, вы можете ему прислать свои изменения и попросить: «Проверьте, пожалуйста», - «Хорошо, проверяю». Это может работать и так.

Использование готовых шагов сценария из каталога библиотек

В BDD является нормой такой термин, как «повторное использование кода». Что это такое?

Представьте себе: мы описываем шаги сценария для нашей «фичи», генерируем по ним epf-обработку, загружаем ее в feature-плеер и видим, что часть из этих шагов сразу закрасилась в серый цвет – это означает, что такой шаг уже реализован в одной из библиотек. Обратите внимание, мы с вами просто написали сценарий, даже еще ничего не программировали,просто в блокноте написали, а этот сценарий уже сразу может работать – будут исполняться его шаги, проводиться документы и т.д.

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

Отличия BDD и TDD

Методика BDD выросла как развитие подхода TDD (разработка через тестирование). Как это получилось? Люди при внедрении разработки через тестирование в различных системах столкнулись с определенными проблемами. Соответственно, как ответ на эти проблемы – Ден Норт сформулировал подход BDD.

Я хотел бы подчеркнуть ключевые отличияпочему для 1С BDD подходит лучше, чем TDD. Смотрите:

  • И там, и там сценарии тестирования пишутся до кода. В TDD это происходит нативно, он так устроен, а BDD – это продолжение TDD, работает точно так же.
  • Прямая связь с требованиями. Здесь я имею в виду, что мы по одной кнопке получаем сценарий тестирования. В TDD такого нет. В BDD это есть.
  • Повторное использование кода – нативно в TDD этого нет. Там вы должны постоянно думать о том, как избежать дублирования в тестах, придумывать для этого какие-то общие модулии т.д. В BDD это работает само собой.
  • Сценарии поведения UI. Тот, кто внедрял TDD, понимает, что писать UI-тесты для 1С на чистом TDD очень сложно. Это низкоуровневая методика, она немного не для этого. Низкоуровневые тесты для 1С – очень редкая задача: мы не пишем dll в 1С, мы автоматизируем бизнес, описываем поведение системы. Заказчик хочет получить не процедуру в модуле, а чтобы система вела себя определенным образом. Соответственно, BDD – это разработка через поведение системы. Поэтому оно на 1С так хорошо и ложится.

Автоматизированный отчет о тестировании в формате Yandex Allure

Мы говорили, что можно по нажатию одной кнопки получить отчет о качестве. Для этого нам понадобится билд-сервер (он же CI-сервер, Continues Integration сервер). Им может быть, например, Jenkins. Почему Jenkins? Потому что он бесплатный, вы можете его кластеризовать и масштабировать как захотите. Например, можете настроить его так, чтобы после каждого изменения в хранилище он выгружал вашу конфигурацию в отдельную базу и прогонял на ней тесты. Скажем, ваш программист поместил изменения в хранилище, Jenkins их себе затянул, поднял базу, запустил все сценарии на выполнение и выдал вам отчет на email.

Здесь на скриншоте как раз можно увидеть отчет для Jenkins в формате Yandex Allure. Спасибо ребятам из Яндекса, которые его разрабатывают. Его функционал также доступен в виде плагина для Jenkins. Соответственно, для того, чтобы получить такой отчет из Jenkins, вам надо всего лишь сделать пару кликов мышкой.

Окупается ли разработка через тестирование

Очень часто задают вопрос: окупается ли разработка через тестирование? Как могут вернуться затраты, которые мы понесем на обучение команды, на софт, железо?

Давайте посчитаем, что нужно для того, чтобы запустить BDD:

  • Jenkins – бесплатный.
  • Vanessa Behavior – бесплатный.
  • Отчет Yandex Allure – бесплатный.
  • Безусловно, нам нужно «железо», но дело в том, что для работы билд-сервера хватает компьютера уровня обычной рабочей станции пользователя. Можно даже несколько таких станций поставить, кластеризовать, и у вас получится кластер Jenkins – с мастер-нодами, со slave-нодами – все по-взрослому.
  • Остается только обучить людей. Но это – «камень преткновения», потому что вначале программистам будет трудно, им надо перестраивать свой процесс разработки.

Так почему же все это должно окупиться? Откуда возьмется профит? Почему у нас вернутся инвестиции?

Здесь ключевая «фишка» в «техническом долге». Известно, что до 20 процентов своего времени каждую неделю программист должен отдавать на возвращение «технических долгов». Что такое «технический долг»? Это когда мы некачественно выполняем свою работу: где-то «костыль», где-то мы написали «НайтиПоКоду», где-то в архитектуре что-то сделали не так, как надо, потому что нас бизнес «теребил», и нужно было закончить быстрее. Это называется «технический долг» – мы сами себя немного «подставляем» в будущем, создавая проблемы, которые нам же потом придется разгребать (или тем, кто будет сопровождать систему).

Так вот, запуск инженерных практик позволяет поднять качество разработки. А за счет повышения качества разработки мы отдаем свои «технические долги» и НЕ накапливаем новые.

Согласно расчетам, которые мы проводили на наших проектах:

  • Срок обучения IT-специалистов таким практикам – где-то 3 месяца, после этого затраты на обучение уже сводятся к нулю.
  • А срок окупаемостидо года, может быть, даже быстрее (9 месяцев и т.д.)

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

Планы по развитию

Планы по развитию нашего инструмента – Vanessa Behavior:

  • Мы будем накапливать библиотеки, чтобы еще больше увеличить процент повторно используемого кода. В идеале хотелось бы, чтобы шаги сценариев тестирования появлялись сразу на этапе написания требований, чтобы программисту не приходилось их описывать с нуля. Нам для этого нужны библиотеки, и мы это будем развивать.
  • Написание feature-файлов для типовых конфигураций. Мы работаем с Бухгалтерией, с перепиленным УПП, ЗУП, некоторыми другими конфигурациями. Поэтому мы собираемся накапливать feature-файлы, покрывающие их типовой функционал, а также тот функционал, который мы сами дорабатываем.
  • Развитие BDD Editor. В процессе внедрения практик BDD выяснилось, что хочется писать feature-файлы еще удобнее, еще быстрее – не просто в Word их писать, а сразу мышкой набрасывать. Для этого мы разрабатываем специальный инструмент – BDD Editor. Он позволит сделать это еще лучше,еще эффективнее.

Ссылки по проекту

Ссылки по проекту:

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

Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2015 CONNECTION 15-17 октября 2015 года.

Приглашаем вас на новую конференцию INFOSTART EVENT 2019 INCEPTION.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Silverbulleters 30.08.16 14:18 Сейчас в теме
2. orefkov 2087 30.08.16 15:15 Сейчас в теме
Дико извиняюсь, но имхо, приведенный пример не сильно отличается от "2 + 2".
Сгенерировалась какая-то обработка, но как её использовать дальше в конфигурации - совершенно непонятно.
И не превратится ли разработка стройного внутреннего устройства (архитектуры) решения в тупое рефлексирование сиюминутных хотелок заказчика в индусо-спагетти-стайл?
3. orefkov 2087 30.08.16 15:21 Сейчас в теме
С ее помощью IT-специалисты могут производить демонстрацию функциональности заказчику: они загружают фичу в feature-плеер, нажимают кнопку, и начинают появляться окошки, где автоматически вводятся данные, проводятся документы и пр.

Вот эта вот магия и непонятна.
Из вашего же примера первый шаг - "Клиент Контрагент хочет оплатить сумму 2000 рублей". Как фиче-плеер это обработает? Он как поймет, что это надо создать банковскую выписку или ПКО с нужным контрагентом и поставить там сумму 2000? Тут какая -то магия сработает или как-то это надо особо интегрировать со своей конфигурацией и учить фиче-плеер этому?
4. orefkov 2087 30.08.16 15:28 Сейчас в теме
По поводу «Выполнено», «Не выполнено» и «В ожидании реализации»
Если я напишу реализацию в виде

Процедура ФормируетсяПроводкаАвансаПоСчетуТрамПамПам()
Сообщить("Реализовано. Честно-Честно");
КонецПроцедуры

она зелёненьким засветится в отчёте?

Или какой-то магией поймёт, что результатом должно быть появление проводки и её таки нету?
То есть как от фич перейти к конкретным натурным тестам?
sulfur17; +1 Ответить
6. pumbaE 641 30.08.16 15:52 Сейчас в теме
(4) orefkov, да, честность реализации - это и есть главное правило. Но даже когда есть описание шагов, уже более ясно, что ожидается от системы, т.к. чаще всего сталкиваемся с задачами устно или "вот тут на 5 минут, а через пол года уже никто и не вспомнит".
5. nixel 1011 30.08.16 15:47 Сейчас в теме
@orefkov вы как будто выпали из всего потока информации по VB.

2) Запускать и проверять поведение, очевидно
3) Фича-плеер отработает то, что написано в фиче. Никакой магии тут нет. Есть библиотечные шаги, которые кликают по различным кнопкам интерфейса и заполняют формы. Есть не библиотечные шаги, которые вы описываете сами.
4) Для этого есть core-review.

Посмотрите бесплатные вебинары или хотя бы youtube по инструменту.
jerry_maguire; +1 Ответить
7. orefkov 2087 30.08.16 16:10 Сейчас в теме
(5) nixel,
вы как будто выпали из всего потока информации по VB.

По началу статьи создалось впечатление, что её цель как-раз таки помочь "войти в поток".

Фича-плеер отработает то, что написано в фиче. Никакой магии тут нет. Есть библиотечные шаги, которые кликают по различным кнопкам интерфейса и заполняют формы. Есть не библиотечные шаги, которые вы описываете сами.

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

То есть я понял, что мне не хватило в статье - реального примера, что пишется в процедуре реализации шага вместо ВызватьИсключение.
И как потом это состыковать с обработкой проведения например.
Bukaska; brr; itriot11; awk; h00k; Lostar; artbear; +7 Ответить
8. Pr-Mex 130 30.08.16 16:39 Сейчас в теме
(7) orefkov,
Ни в какие библиотечные шаги попадать не надо.
Саш, посмотри мой вебинар по VB, многие вопросы пропадут.
http://infostart.ru/webinars/537546/
Эта статья обзорная. Больше практики ищи в видео.
Bukaska; serge_focus; orefkov; +3 Ответить
12. webester 34 09.10.16 13:15 Сейчас в теме
(8)Сложновато осилить с первого раза. Больше пауз, богу пауз! ЭЭЭ.. нууу.. эммм... нуууу.... собственно... ну давайте.... постоянно в неограниченном количестве, мб имеет смысл написать сценарий и сверяться с ним со второго монитора? Постоянно примеры "давайте напишем простой сценарий, который не будет иметь ничего общего с реальностью и никаким образом не будет демонстрировать как все должно происходить" мб я не дожил (осилил первые40 минут только) до нормальных примеров? Как насчет нормальных примеров запилить? Похожих на обычную разработку? Не хочется обижать Леонида, он наверняка старался, но как то не бодро совсем получилось, в видео на канале чуть бодрее, но там тоже примеры "из воздуха".
13. Pr-Mex 130 09.10.16 19:52 Сейчас в теме
(12)Буду стараться развиваться как ведущий.
Не совсем понятно что такое "нормальные" примеры.
Вебинар обзорный, по конкретному инструменту. Показывает как им пользоваться.
jif; kraynev-navi; +2 Ответить
9. HAMMER_59 215 28.09.16 13:34 Сейчас в теме
Хорошо когда задачка такая маленькая.
В реальности проблемы возникают не в разговоре на разных языках, а в объёмах информации.
13 на 6 многие легко перемножат, что совсем не означает, что также легко они перемножат 324655 и 348.
Отсюда вытекают проблемы тестирования, параметров - много, а сочетания параметров - очень много.

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

Вспомнил пример преподавателя на предмете моделирование:
- Вам табуретку с какой точностью сделать?
- С лучшей. (прямо как в статье, сейчас мы вам все протестируем)

Какая там лучшая сейчас точность? Микрометры? Точно нам нужна табуретка с такой точностью?
10. gubanoff 50 07.10.16 13:56 Сейчас в теме
Больше практических примеров, больше кода!
Пока это из серии "тем временем в параллельной вселенной" - не верится, что где-то это реально работает, но выглядит очень круто.
11. Pr-Mex 130 07.10.16 17:12 Сейчас в теме
(10) Приходите на мой доклад на инфостарте. Будут и примеры и ещё более "крутые" штуки.
17. AKnyazkov 53 04.08.17 12:54 Сейчас в теме
(10)
Реально работает. Непонятно пока не попробуешь сам, раза со второго, третьего начнет приходить понимание. VB не может заменить полного функционального тестирования, но может покрыть тестами рутину, на которую тратится много времени и дать ответ на вопрос "что сломалось после данной разработки, а что нет". Несправедливо предъявлять требования к обзорной статье как полноценному курсу обучения.
14. Glebis 11 10.10.16 13:04 Сейчас в теме
Как я понял суть: предлагается способ динамического формирования ToDo листа, который разработчик предоставляется заказчику на понятном бизнесу языке (в виде таблицы) и воспроизведением демонстрационной последовательности действий прямо на форме 1С.
Почему не рассмотрен механизм обратной связи, где бизнес либо соглашается с реализация, либо нет и высказывает недовольства (в том же каталоге обработок).
15. Serg O. 190 14.06.17 22:10 Сейчас в теме
Подскажите Vanessa-Behevior только для 8.3.9 и выше? Для 8.2 будет работать?

xUnit и СнегоПат работает и для 8.2

Думаю еще многие на 8.2.19 сидят
16. artbear 1294 15.06.17 10:42 Сейчас в теме
Да, для 8.2 работает.
Просто для 8.2 нет, например, авто-тестирования форм и кнопочек, которое появилось только в 8.3
Все остальное работает
18. ZOMI 434 04.08.17 13:11 Сейчас в теме
19. Pr-Mex 130 13.08.17 13:10 Сейчас в теме
Вот статья с похожим подходом - только про мобильные приложения
https://habrahabr.ru/company/alfa/blog/335278/
Оставьте свое сообщение

См. также

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    38479    ids79    40    

Рекурсия для начинающих

Математика и алгоритмы Практика программирования v8 Бесплатно (free)

Рассмотрен подход к пониманию рекурсий. Приведены примеры из реальной практики.

10.02.2021    1121    szv    5    

Практика применения DevOps. Тестирование

DevOps Сценарное тестирование Vanessa Automation СППР v8 1cv8.cf Бесплатно (free)

В третьей части мастер-класса «Практика применения DevOps» на конференции Infostart Event 2019 Inception выступила Светлана Попова. Она рассмотрела возможности использования двух инструментов тестирования от фирмы «1С» – «Сценарного тестирования» и связки СППР и Vanessa Automation, и рассказала про плюсы и минусы каждого из этих вариантов.

11.12.2020    3082    SvVik    0    

Тестирование серверного поведения с Vanessa Automation

Vanessa Automation v8 Бесплатно (free)

Обзор модуля "ИнициаторДанных" (версия VA 1.2.034), пример скрипта

14.09.2020    1669    unichkin    14    

Как работает серверный вызов в 1С Промо

Математика и алгоритмы v8::УФ Бесплатно (free)

Клиент-серверная архитектура заложена в платформе изначально — со времен «1С:Предприятие 8.0». Однако при разработке на 8.0 и 8.1 о разделении кода на клиентскую и серверную часть можно было не заботиться, поскольку на клиенте (на толстом клиенте) был доступен тот же функционал, что и на сервере. Всё изменилось с выходом платформы «1С:Предприятие 8.2», когда появился тонкий клиент. Теперь на клиенте доступен один функционал, на сервере — другой. Клиент и сервер «общаются» между собой с помощью серверного вызова. Конечно, это усложнило процесс разработки, но с другой стороны – можно создавать более оптимальные (быстрые) решения, поскольку все сложные задачи выполняются на сервере.

18.11.2017    60818    pahich    83    

1С: Документооборот, Data Science и Python

Документооборот и делопроизводство Математика и алгоритмы ДО Бесплатно (free)

В статье рассказывается о создании и обучении модели Data Science на языке Python и интеграции с системой 1С: Документооборот

04.08.2020    2592    Vaganov_Alexey    9    

Vanessa, видеоинструкции для web-клиента

Vanessa Automation v8 1cv8.cf Бесплатно (free)

Vanessa-Automation. Использование видеоинструкций в web-клиенте.

01.06.2020    3079    SvVik    1    

Применение математических достижений в решении сложных задач бизнеса

Математика и алгоритмы Бесплатно (free)

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

25.05.2020    4043    Mishnov    17    

Будни автоматизации или "мне нужна программка для 3D упаковки" Промо

Практика программирования Математика и алгоритмы Оптовая торговля Оптовая торговля v8 1cv8.cf УУ Бесплатно (free)

Автоматизация отечественных предприятий, которой приходиться заниматься, это нужная и высокооплачиваемая, но довольно нервная работа. Выручает юмор. Например, при общении с требовательным клиентом можно вспомнить анекдот: "Держась руками за стену, на ногах еле стоит мужик. К нему пристает ребенок: "Ну, папа, пожалуйста, сделай мне кораблик!", папа отвечает: "Ага! - Сейчас все брошу и пойду делать тебе кораблик!". Про один такой сделанный для клиента "кораблик" и хочется рассказать. Надеюсь, совместное погружение в теплое ламповое (то есть клиентоориентированное) программирование доставит Вам положительные эмоции, да и задача попалась интересная. Поплыли?

24.03.2014    45735    ildarovich    116    

Визуализация фич Vanessa Automation в StoryMapper

Agile (XP, SCRUM, Канбан) Сценарное тестирование Vanessa Automation ИТ-компания 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Описан процесс визуального упорядочивания коллекции feature-файлов в виде карты пользовательских историй. Используется инструмент гибкого управления требованиями StoryMapper.

21.03.2020    3449    oleynik.dv    7    

Улучшение пооперационного планирования в 1С:ERP 2.4 внешними средствами

Математика и алгоритмы Производительность и оптимизация (HighLoad) Бесплатно (free)

Задача построения оптимального производственного расписания требует сравнения тысяч и десятков тысяч вариантов. Выполнять такие вычисления средствами платформы 1С Предприятие нецелесообразно. Как реализовать пооперационное планирование с использованием генетических алгоритмов и параллельных вычислений в докладе на конференции Infostart Event 2019 Inception рассказал генеральный директор компании «ИНТЕХ» Сергей Сафаров.

02.03.2020    6109    ildarovich    8    

Получение значений всех полей в иерархии структуры отчета

Практика программирования Математика и алгоритмы v8::СКД Россия Бесплатно (free)

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

28.02.2020    2335    real_MaxA    1    

Метод Кларка-Райта. Оптимальное планирование маршрутов грузоперевозок Промо

Математика и алгоритмы Бесплатно (free)

Одной из наиболее важных задач каждого предприятия, осуществляющего доставку грузов в крупных населенных пунктах, является сокращение издержек. Возможное решение данной проблемы заключается в сокращении пробега автотранспорта и, как следствие, уменьшении расхода ГСМ. Появляются такие вопросы ... - СКОЛЬКО НУЖНО МАШИН ДЛЯ РАЗВОЗКИ КОНКРЕТНОГО ОБЪЕМА ГРУЗА ПО АДРЕСАМ ДОСТАВКИ ? - КАК РАЗБИТЬ ТОЧКИ ДОСТАВКИ НА ОПТИМАЛЬНЫЕ ПО ПРОБЕГУ И ЗАГРУЗКЕ МАШИН МАРШРУТЫ ? ... В этой статье Вы найдете один из многих способов получить ответ на эти вопросы.

10.02.2016    63165    mi1man    20    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

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

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

18.02.2020    5696    randomus    20    

[После]Новогодние задачи

Практика программирования Математика и алгоритмы v8 Бесплатно (free)

Совсем немного времени осталось до того момента, когда отзвучат куранты, шампанское будет выпито, мандарины съедены, и даже оливье закончится. Возникнет вопрос: чем бы занять неожиданно появившееся свободное время?

30.12.2019    3246    Alxby    23    

BDDSM-практики, или 50 оттенков желтого

Методология управления разработкой Vanessa Automation ИТ-компания 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

В статье описаны практические результаты применения методики BDDSM на отдельно взятом РЕАЛЬНОМ проекте поддержки.

26.12.2019    9600    Mistress_A    28    

Приемы обработки больших данных в 1С Промо

Универсальные обработки Математика и алгоритмы Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    69087    tormozit    27    

Vanessa Automation + СППР

Vanessa Automation СППР v8 Бесплатно (free)

Vanessa Automation. Использование автоматизированного тестирования в СППР.

07.11.2019    14222    SvVik    14    

Vanessa, улучшаем инструкции

Vanessa Automation v8 1cv8.cf Бесплатно (free)

Vanessa Automation умеет делать хорошие инструкции, давайте посмотрим, какие инструменты для этого есть.

30.10.2019    10352    OPM    12    

Vanessa, хочу все и сразу

Vanessa Automation v8 Бесплатно (free)

Vanessa Automation это инструмент для тестирования прикладных решений на платформе 1С, но он/она может больше, чем только тестирование.

11.10.2019    12091    OPM    36    

XDTO - это просто Промо

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

С появлением платформы 8.1 фирма “1С” представила механизм, носящий интригующее название XML Data Transfer Objects или, если коротко - XDTO. По традиции, документирование механизма составлял тот, кто хорошо разбирался в вопросе, а стало быть опустил “и так понятные” с его точки зрения моменты. Целью данной статьи (или цикла статей, как получится) стало желание поделиться накопленным опытом. Мне кажется, многие неочевидные вещи в механизме XDTO необходимо осветить получше.

24.12.2012    311272    Evil Beaver    182    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    34625    YPermitin    25    

"Хочу универсально!" [Часть 1]

Математика и алгоритмы Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

02.09.2019    10381    SeiOkami    35    

Иерархия без "В ИЕРАРХИИ"

Математика и алгоритмы v8 Бесплатно (free)

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    13635    ildarovich    22    

Самоучитель языка запросов 1С. Промо

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 v8::Запросы Бесплатно (free)

Сервис для изучения запросов 1С: "Консоль изучения запросов 1С:Предприятие 8". Теперь и с конструктором запросов!

07.05.2013    112469    bpc222    327    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    16859    ids79    8    

Обработчики событий при записи объектов. Зачем и что за чем?

Математика и алгоритмы v8 Бесплатно (free)

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    78867    AlbinaAAA    33    

Как проводятся документы в типовых конфигурациях от 1С

Математика и алгоритмы Практика программирования Разработка v8::ОУ ERP2 УТ11 Россия УУ Бесплатно (free)

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

24.07.2019    31228    skv_79    35    

Предметно-ориентированное проектирование (3D) в 1С. Виртуальная машина. Промо

Математика и алгоритмы Бесплатно (free)

Проектирование программного обеспечения - это постоянная битва за простоту.

03.06.2014    40847    Evgen.Ponomarenko    88    

FizzBuzz на 1С. Чем короче, тем веселее. Варианты принимаются...

Практика программирования Математика и алгоритмы v8 Бесплатно (free)

Мне было скучно, я не мог себя заставить написать ничего полезного. И читал статью на Хабре. Потом я читал комментарии, а потом... нет я не ушел смотреть котиков на ютюбе. Я решил сделать несколько решений задачки FizzBuzz на 1С, с целью "чем короче, тем лучше". Прошу сильно не пинать, это просто развлечение для вечера.

24.07.2019    5757    vandalsvq    19    

Управление качеством кода

Математика и алгоритмы Рефакторинг и качество кода v8 Бесплатно (free)

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    18113    Stepa86    33    

Что делает "В ИЕРАРХИИ" в запросе?

Математика и алгоритмы v8 Бесплатно (free)

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    35183    YPermitin    34    

Решение транспортной задачи запросом Промо

Математика и алгоритмы v8 Бесплатно (free)

Списание по двум последовательностям партий запросом (без программной обработки)

1 стартмани

30.04.2014    35675    bforce    22    

Как стать контрибьютором Vanessa Automation?

Практика программирования Vanessa Automation v8 1cv8.cf Россия Бесплатно (free)

Краткая инструкция о том, как помочь проекту VA

15.07.2019    7207    fenixnow    43    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    62551    ids79    26    

Реализуем Стек, Очередь и Приоритетную очередь в 1С

Практика программирования Математика и алгоритмы v8 1cv8.cf Россия Бесплатно (free)

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

24.06.2019    15180    RonX01    65    

Парсер запросов 1С. Часть 1: Введение, разбор математических выражений Промо

Математика и алгоритмы v8 Бесплатно (free)

Рано или поздно становится скучно решать типичные задачи, для которых придумана 1С. Голова пухнет от бухгалтерских терминов и очередных "хотелок" пользователей. Именно в такие моменты хочется гордо поднять голову, воскликнуть "Но я же программист!" и заняться чем-то интересным. В цикле статей я постараюсь доступно описать, как устроены парсеры в целом и на примере парсера языка запросов 1С. Требования к навыкам читающего: основы языка 1С, основы алгоритмизации.

1 стартмани

04.12.2013    31040    juntatalor    49    

Почему вообще работает мой запрос? или Ещё раз о планах запросов

Математика и алгоритмы Практика программирования Разработка v8::Запросы Бесплатно (free)

Другие статьи на эту тему объясняют, что такое план выполнения запроса, но не рассказывают о том, как его получить. Эта заметка призвана заполнить этот пробел. Её цель - популяризировать общедоступные инструменты получения плана запроса среди разработчиков, которые ещё не начали их использовать.

10.06.2019    9910    DataReducer    12    

Вычисление 200 тысяч знаков числа pi

Математика и алгоритмы v8 Россия Бесплатно (free)

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    8714    Oleg_nsk    97    

Регистры накопления. Виртуальные таблицы. Часть №1: Обороты

Практика программирования Математика и алгоритмы Разработка v8 1cv8.cf Бесплатно (free)

Описание работы платформы 1С:Предприятие 8.2 с виртуальной таблицей "Обороты" регистров накопления.

20.05.2019    35278    YPermitin    8    

Сервис для изучения методов платформы 1С:Предприятие 8. Бесплатно! Промо

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 Бесплатно (free)

Бесплатный ON-Line сервис изучения методов платформы 1С:Предприятие 8. Подготовка к аттестации 1С:Специалист on-line! Тестовые задания по различным видам учета! Подсказки для оптимального решения!

27.06.2013    50713    bpc222    53    

Выдержки из книги Чистый код

Математика и алгоритмы Бесплатно (free)

Недавно я прочитал книгу "Чистый код" Роберта Мартина (Robert Cecil Martin). В ней описываются принципы организации и форматирование исходного кода программы так, чтобы в дальнейшем было легко поддерживать такой код. Эта книга является библией для многих программистов, но вот в среде программистов 1С, к сожалению, не очень распространено чтение подобной фундаментальной литературы. Книга более 400 страниц и так много порой лениво читать, да и времени всегда не хватает. По этому я решил выделить в виде цитирования по разделам самые важные моменты. А также снабдил текст своими примерами кода.

16.05.2019    12369    FreeArcher    108    

Даем названия переменным: как префиксы экономят наше время

Практика программирования Математика и алгоритмы Разработка v8 Бесплатно (free)

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

06.05.2019    7937    Designer1C    81    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

Практика программирования Vanessa Automation v8 Россия Бесплатно (free)

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019    24818    Vladimir Litvinenko    28    

Внутреннее качество разработки конфигураций 1С Промо

Практика программирования Математика и алгоритмы Бесплатно (free)

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

21.06.2013    38190    ig1082    50    

Что такое алгоритм?

Математика и алгоритмы Бесплатно (free)

Как ответить на этот вопрос и не попасть пальцем в небо.

25.02.2019    12024    mkalimulin    274    

Криптовалюты, а также иные взгляды на природу денег в терминах 1С

Математика и алгоритмы Бесплатно (free)

Это отчасти полемическая статья. Я задумал написать ее как ответ на другую хорошую статью о криптовалютах. Хотелось поспорить с некоторыми утверждениями автора, а ещё больше с некоторыми комментариями. А чтобы текст был более понятным для местной аудитории, я решил использовать, где только возможно, терминологию и практику 1С.

28.01.2019    6346    mkalimulin    89    

v8: Концепция минимального изменения конфигурации для легкого обновления Промо

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

"Лучше день потерять потом за пять минут долететь" ((с) "Крылья, ноги и хвосты") или как сделать так чтобы обновление конфигурации проходило с минимальными трудозатратами.

28.01.2013    38458    MarSeN    57    

Как писать код? Технологии древних цивилизаций, или все новое - это хорошо забытое старое

Математика и алгоритмы Бесплатно (free)

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

23.01.2019    11898    starik-2005    43    

Разработка и сценарное тестирование с Vanessa-ADD. Установка инструментов. Запись действий пользователя и выполнение сценариев

Практика программирования Vanessa Automation Бесплатно (free)

Вторая часть цикла публикаций, посвященных Vanessa-ADD и автоматизации тестирования.

21.01.2019    42528    Vladimir Litvinenko    97    

Заметки по SQL: Срез последних - аналог запроса

Математика и алгоритмы Практика программирования v8 1cv8.cf Россия Бесплатно (free)

В статье описывается создание среза последних данных средствами классического языка запросов. Причем метод построения запроса был разработан еще во времена, когда автор работал с СУБД Oracle 9i и программировал на PL SQL. Основная идея заключается преобразовании запроса с подзапросом, в запрос без подзапроса (в примерах описывается преобразование до двух вложенных подзапросов). Запросы тестировались на реальных базах данных. Платформа - 1С:Предприятие 8.3 (8.3.10.2561).

15.01.2019    13023    IVC_goal    9    

Роберт Мартин: "Будущее программирования" / Robert Martin: "The Future of Programming"

Математика и алгоритмы Блоги Бесплатно (free)

Перевод-транскрибация выступления.

14.01.2019    16516    Vladimir Litvinenko    38