Что такое робот в 1с
Модель базы данных «1С:Предприятия 8» имеет ряд особенностей, отличающих ее от классических моделей систем управления базами данных (например, основанных на реляционных таблицах), с которыми имеют дело разработчики в универсальных системах.
Основное отличие заключается в том, что разработчик «1С:Предприятия 8» не обращается к базе данных напрямую. Непосредственно он работает с платформой «1С:Предприятия 8». При этом он может:
- описывать структуры данных в конфигураторе,
- манипулировать данными с помощью объектов встроенного языка,
- составлять запросы к данным, используя язык запросов.
Платформа «1С:Предприятия 8» обеспечивает операции исполнения запросов, описания структур данных и манипулирования данными, транслируя их в соответствующие команды. Это могут быть команды системы управления базами данных, в случае клиент-серверного варианта работы, или команды собственного движка базы данных для файлового варианта.
Общая система типов
Важной особенностью работы с базой данных является то, что в «1С:Предприятии 8» реализована общая система типов языка и полей баз данных. Иными словами, разработчик одинаковым образом определяет поля базы данных и переменные встроенного языка и одинаковым образом работает с ними.
Этим система «1С:Предприятие 8» выгодно отличается от универсальных инструментальных средств. Обычно, при создании бизнес-приложений с использованием универсальных сред разработки, используются отдельно поставляемые системы управления базами данных. А это значит, что разработчику приходится постоянно заботиться о преобразованиях между типами данных, поддерживаемыми той или иной системы управления базами данных, и типами, поддерживаемыми языком программирования.
Хранение ссылок на объекты
При манипулировании данными, хранящимися в базе данных «1С:Предприятия 8», зачастую используется объектный подход. Это значит, что обращение (чтение и запись) к некоторой совокупности данных, хранящихся в базе, происходит как к единому целому. Например, используя объектную технику, можно манипулировать данными справочников, документов, планов видов характеристик, планов счетов и т.д.
Характерной особенностью объектного манипулирования данными является то, что на каждый объект, как совокупность данных, существует уникальная ссылка, позволяющая однозначно идентифицировать этот объект в базе данных.
Эта ссылка также хранится в поле базы данных, вместе с остальными данными объекта. Кроме того, ссылка может быть использована как значение какого-либо поля другого объекта. Например, ссылка на объект справочника Контрагенты может быть использована как значение соответствующего реквизита документа Приходная накладная.
Составные типы
Существенной возможностью модели данных, которая поддерживается «1С:Предприятием 8», является то, что для поля базы данных можно определить сразу несколько типов данных, значения которых могут храниться в этом поле. При этом значение в каждый момент времени будет храниться одно, но оно может быть разных типов — как ссылочных, так и примитивных — число, строка, дата и т.п.:
Такая возможность очень важна для экономических задач — например, в расходной накладной в качестве покупателя может быть указано либо юридическое лицо из справочника организаций, либо физическое лицо из справочника частных лиц. Соответственно, при проектировании базы данных разработчик может определить поле, которое будет хранить значение любого из этих типов.
Хранение любых данных как Хранилище значения
Идеология создания прикладных решений в «1С:Предприятии 8» предполагает, что все файлы, имеющие отношение к данному прикладному решению, нужно хранить в самой базе данных.
Для этого введен специальный тип данных — ХранилищеЗначения. Поля базы данных могут хранить значения такого типа, а встроенный язык содержит специальный одноименный объект, позволяющий преобразовывать значения других типов к специальному формату Хранилища значений.
Благодаря этому разработчик имеет возможность сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля базы данных, например, графические изображения.
Создание и обновление структур данных на основе метаданных
В процессе создания или модификации прикладного решения разработчик избавлен от необходимости каких-либо действий по непосредственному изменению структуры полей базы данных прикладного решения.
Разработчику достаточно путем визуального конструирования описать структуру используемых объектов прикладного решения, состав их реквизитов, табличных частей, форм и пр.
Все действия по созданию или изменению структуры таблиц базы данных платформа выполнит самостоятельно, на основании состава объектов прикладного решения и их характеристик.
Например, для того, чтобы в справочнике сотрудников появилась возможность хранить сведения о составе семьи сотрудника, разработчику «1С:Предприятия 8» не нужно создавать в базе данных специальную новую таблицу, задавать правила, по которым данные, хранящиеся в этой таблице, будут связаны с данными из основной таблицы, программировать алгоритмы совместного доступа к данным этих таблиц, создавать алгоритмы проверки прав доступа к данным, находящимся в подчиненной таблице и пр.
Все, что требуется сделать разработчику — щелчком мыши добавить к справочнику табличную часть и задать два ее строковых реквизита: Имя и Родство. При сохранении или обновлении конфигурации платформа самостоятельно выполнит реорганизацию структуры базы данных, создаст необходимые таблицы и т.д.
Объектный / табличный доступ к данным
Штатной возможностью «1С:Предприятия 8» является поддержка двух способов доступа к данным — объектного (для чтения и записи) и табличного (для чтения).
В объектной модели разработчик оперирует объектами встроенного языка. В этой модели обращения к объекту, например документу, происходят как к единому целому — он полностью загружается в память, вместе с вложенными таблицами, к которым можно обращаться средствами встроенного языка как к коллекциям записей и т.д.
При манипулировании данными в объектной модели обеспечивается сохранение целостности объектов, кэширование объектов, вызов соответствующих обработчиков событий и т.д.
В табличной модели все множество объектов того или иного класса представляется как совокупность связанных между собой таблиц, к которым можно обращаться при помощи запросов — как к отдельной таблице, так и к нескольким таблицам во взаимосвязи:
В этом случае разработчик получает доступ к данным сразу нескольких объектов, что очень удобно для анализа больших объемов данных, например, при создании отчетов. Однако в силу того, что данные, выбираемые таким способом, содержат не все, а лишь некоторые реквизиты анализируемых объектов, табличный способ доступа не позволяет изменять эти данные.
В очередном релизе технологической платформы «1С:Предприятие 8.3.18» появится новый объект метаданных, который позволит разработчикам создавать новых улучшенных ботов для системы взаимодействия.
Чем новые боты будут отличаться от старых
На страницах официального технологического блога «Заметки из Зазеркалья» опубликован анонс нового механизма для разработки ботов, который появится в платформе «1С:Предприятие 8.3.18».
Ключевым преимуществом такого подхода должно стать то, что созданные с помощью нового механизма боты смогут реагировать на события в режиме реального времени.
Новый механизм разработки ботов позволит избежать таких задержек во времени, а также использовать клиент-серверную архитектуру для работы с ботами в системе взаимодействия.
Как написать бота, понятно. Остается вопрос – зачем?
Разработчики технологической платформы предлагают рассматривать разработку ботов как один из инструментов автоматизации бизнес-процессов предприятия. В том числе для решения таких задач:
- Сокращение человеческих трудозатрат на рутинные операции.
- Напоминание о важных событиях.
- Организация обучения и технической поддержки.
Существенным фактором здесь является то, что функционирование бота, написанного на 1С, будет тесно связано с объектами корпоративной системы управления и учета: заказами, реализациями, элементами справочников и т.д.
Впрочем, возможности «1С:Предприятия», начиная в релиза 8.3.17, позволяют реализовать интеграцию 1С с внешними мессенджерами тоже. На данный момент доступна совместная работа с Telegram и ВКонтакте, при этом заявляется, что перечень мессенджеров, интегрируемых с 1С, будет расширяться. То есть вовлекать в процесс коммуникации можно не только пользователей «1С:Предприятия», но и внешних клиентов.
Хм. мда-а - а зачем? Впрочем. пусть будет - авось когда-нибудь пригодится - вот только термин "Бот" тут явно сильно сказано. Я бы абстрагировался просто до "Внешнего события" - или ещё глубже абстрагировался - просто до "События" (мол - оно может быть и внутренним) - а уж какие источники могут быть у события -- это уже другой вопрос.
Другое дело что всё это есть в платформе - я имею в виду подписку на события - нет не ту что среди метаданных присутствует ещё с 8.1 (хотя эта сущность тоже вполне бы сгодилась) - а ту что делается исключительно программно в общих модулях процедурой "ПодключитьОбработчикОповещения" - суть абсолютно та же - разве что не отображается в метаданных - обрабатывает возникшее оповещение и взвывает обработчик
Разве что, процедуре ПодключитьОбработчикОповещения всё-таки стоило бы дать два доп параметра - для указания фильтра на имена событий и источники - чтобы не фильтровать их внутри обработчика
Ну а если бы ещё и подписки на события так можно было бы на любые события/оповещения подписывать - так вообще не понятно, зачем нам такие боты в 1С?
Ну если только платформа для обработки таких событий сможет стартовать отдельные сеансы? Хотя - это само по себе не лучшее решение - если только им нельзя будет управлять (т..е. не запускать сеансы, а обрабатывать всё в запущенном(ых).
Ну, а если, говорить о ботах - то они ещё и контекст должны как-то сохранять между событиями. Ну если эта обработка вся будет в рамкам работающего сеанса - то не проблема (проблема тут будет только в обеспечении асинхронности вызовов и распараллеливании обслуживания - но это уже другая тема). А для каждый вызов создаваемых фоновых сеансов - это будет уже проблема - да такая - что толку от этих ботов будет не больше, чем от web-сервисы.
ну а на перспективу - хорошо бы таких ботов иметь под рукой и рамках обычных сеансов пользователей - чтобы боты моли реагировать на события команд пользователей и фоновых мониторов системы (из сеанса пользователя) - но опять-таки - это возвращает нас к проблеме асинхронности и параллельности в рамках одного сеанса! Без параллельности тут делать нечего.
- Предопределенный ‑ указывает, что бот предопределенный. Отличается от обычного бота, только тем, что его нельзя явно создать или удалить. Если бот предопределенный, то при обновлении конфигурации в базе автоматически будет создано бот и пользователь системы взаимодействия. Иначе если бот обычный, то информация о нём удаляется и пользователь системы взаимодействия перестает быть ботом. Далее работа с ботом осуществляется через объект БотСистемыВзаимодействия. Изменение свойств метаданных (Имя, Синоним и Картинка) применяются при вызове метода менеджера системы взаимодействия: СистемаВзаимодействия . ВыполнитьОбработкуБотов () .
- Картинка ‑ устанавливается пользователю системы взаимодействия, ассоциированному с данным ботом.
- Предопределенный ‑ свойство является отражением свойства объекта конфигурации в объектную модель.
- Пользователь ‑ содержит ссылку на пользователя системы взаимодействия, который олицетворяет данного бота. Пользователя можно менять во время работы системы, изменение допустимо как из встроенного языка, так и с помощью соответствующей стандартной функции.
- ИмяПользователяИнформационнойБазыВыполненияОбработки ‑ данное свойство содержит ссылку на пользователя информационной базы. Указанный в данном свойстве пользователь определяет, какие права доступа к объектам базы данных будут предоставлены боту.
- Метаданные ‑ ссылается на объект конфигурации, описывающий бота. Изменение данного свойства приводит к изменению логики работы существующего бота. Не поддерживается изменение данного свойства для предопределенных ботов.
- ДополнительныеПараметры ‑ через это свойство можно передавать боту какие-то дополнительные данные, которые не могут быть переданы через информационную базу. Эти параметры можно применять тогда, когда один объект БотСистемыВзаимодействия используется для разных ботов.
- Вызов метода ВыполнитьОбработкуБотов () менеджера системы взаимодействия (для предопределенных ботов).
- Методом БотСистемыВзаимодействия . Записать () . Объект БотСистемыВзаимодействия можно получить с помощью методов менеджера системы взаимодействия: СоздатьБота () , ПолучитьБота () или ПолучитьБотов () .
Если Ответ . КодСостояния <> 200 Тогда
НашОтвет . Текст = "Код ошибки №" + Ответ . КодСостояния ;
Иначе
Содержимое = Ответ . ПолучитьТЕлоКакСтроку ();
СтрОтвета = "Курс валюты" ;
Если КодВалюты = "840" Тогда
СтрОтвета = СтрОтвета + " доллара: " ;
ИначеЕсли КодВалюты = "978" Тогда
СтрОтвета = СтрОтвета + " евро: " ;
ИначеЕсли КодВалюты = "933" Тогда
СтрОтвета = СтрОтвета + " белорусского рубля: " ;
КонецЕсли;
МН = СтрРазделитель ( Содержимое , Символы . Таб );
КурсВалюты = Число ( МН [ 1 ]) / Число ( МН [ 0 ]);
СтрОтвета = СтрОтвета + КурсВалюты ;
НашОтвет . Текст = СтрОтвета ;
КонецЕсли;
Иначе
НашОтвет . Текст = "Не найдена валюта" ;
КонецЕсли;
Радикальный IT-директор, бухгалтерский инстинкт самосохранения и реальный пример, как надо было внедрять робота, — рассказывает Даниил Морозенко, руководитель направления RPA
компании «Первый Бит».
Если вы зайдете в бухгалтерию любой российской розничной сети и спросите, что их больше всего раздражает в работе, вам скорее всего ответят: «Акты сверок». Кроме того, что составление актов не самое веселое занятие, оно отнимает до 70% бухгалтерского времени. Зарплаты, отпускные, декретные, налоги — минутное дело по сравнению с ними. Поэтому, когда речь заходит об оптимизации бухгалтерских процессов, в первую очередь вспоминают акты сверок взаиморасчетов с контрагентами.
Сейчас оптимизация чаще всего равна автоматизации или роботизации, которой в крупных сетях занимается IT-подразделение во главе с IT-директором. Если IT-директор решил, что не обойтись без компетенций стороннего интегратора, он его находит и они вместе придумывают план действий — от и до. Во всяком случае, я думал, что так всегда бывает, пока к нам не пришел IT-директор сети «Рацион» (название вымышленное) и не сломал шаблон.
Я рассказываю о своем раннем проекте, в котором роботизация сразу не задалась, и показываю для сравнения аналогичный проект, где всё прошло гладко. Надеюсь, этот опыт поможет всем, кто думает об оптимизации бизнес-процессов в своей компании — не только в бухгалтерии.
RPA (Robotic process automation) — имитация действий человека на компьютере с помощью программы-робота. Для робота не надо писать тысячи строк кода и интегрироваться с IT-системами. Фактически это виртуальный сотрудник с учетной записью, который открывает файлы, отправляет письма и так далее. Главное условие — все действия должны быть шаблонными. Больше про RPA и отличие роботизации от автоматизации можно узнать здесь.
Акты позволяют понять, кто кому должен денег — поставщик контрагенту или наоборот. В актах бухгалтеры сравнивают дебет с кредитом по каждой поставке и закупке; если видят разные суммы, готовят протокол, куда заносят расхождения. Потом высылают партнерам протокол вместе со счетом на оплату или подтверждение об оплате. Большинство бухгалтерий делает такие акты несколько раз в год для каждого контрагента.
Представьте, что у розничной сети 500 поставщиков. «Милк+» поставляет молоко каждый день, «ИП Варданян А. А.» поставляет печенье раз с две недели, «Мелькомбинат N1» — муку и крупы раз в месяц и так далее. Все первичные документы по закупкам поступают в «1С», откуда бухгалтеры берут данные для сверки: даты, ИНН, КПП, номера документов. Еще всё надо сравнить с актами, которые присылают 500 поставщиков. В итоге собираются таблицы с тысячами и десятками тысяч строк. Вот почему это нудная и трудоемкая работа для человека.
У региональной сети «Рацион» классический формат «у дома»: продукты питания, алкоголь, бытовая химия. В штате 70 бухгалтеров, есть свой IT-департамент. По какой-то причине IT-директор был радикально настроен к бухгалтерам. Когда он пришел к нам за роботизацией актов сверки (запрос был именно таким), он попросил: «Сделайте робота, чтобы уволить всю бухгалтерию». Мы удивились, заметили, что не все бухгалтеры занимаются актами сверок и вообще RPA без людей не работает. После этого запрос скорректировался: «Тогда сделайте робота, чтобы сначала уволить 30% бухгалтеров, а потом всех».
Самым удивительным было то, что в бухгалтерии «Рациона» знали о планах на их счет. Им честно сказали: мы решили оптимизировать ваши процессы с помощью роботов, скоро вам придется уволиться. Такое прямодушие сыграет свою роль в проекте.
Любая роботизация начинается с анализа процессов, которые нужно оптимизировать. Может оказаться, что роботы бессильны и нужно разворачивать классическую автоматизацию. Часто бывает, что процесс, который должен укладываться в четкий алгоритм, почему-то делается с массой исключений. Например, один бухгалтер для отчета сохраняет цифры в папках «Мы должны» и «Нам должны» на рабочем столе, а другой берет их напрямую из «1С» и заносит в акт. Надо найти самый логичный и короткий алгоритм, по которому будет действовать робот.
У «Рациона» всё было отлично: акты сверок делали по шаблону, отработанному годами. Другие бухгалтерские процессы отклонялись от желаемого алгоритма, но пока речь шла только об актах сверок. Для роботизации решили использовать робота от UiPath — самого популярного и быстрорастущего разработчика RPA в мире.
По опыту, изучение подобных бизнес-процессов, настройка робота и его запуск занимает три-четыре недели. Поэтому мы планировали передать «Рациону» готового робота максимум через месяц, ведь акты сверок — идеальный объект для роботизации.
3 000/3 050;2 минуты 10 секунд 3 850/3 850;2 минуты 32 секунды 1 800/1 750;40 секунд 3 750/3 750;3 минуты
Получалось, что одного робота (одной лицензии RPA) хватало, чтобы полностью избавить бухгалтеров «Рациона» от актов сверки. Даже оставалось время на другие рутинные процессы. Здесь надо понимать, что, во-первых, робот в разы быстрее бухгалтера, а во-вторых, он работает 24/7. Если у бухгалтера примерно 1 600 рабочих часов в год, с учетом отпуска, отгулов и больничных, то у робота — 8 700 часов.
Причина оказалась по-человечески понятной. Бухгалтеры сообразили: чем успешнее робот справляется с их работой, пусть и нелюбимой, тем быстрее их попросят написать заявление об увольнении. Они начали действовать: меняли местами столбцы в актах, вставляли пустые строки, писали латинские буквы вместо кириллических. Мы видели десятки видов «ошибок», которые робот не мог распознать. Как они догадались, как именно надо действовать? Просто в начале проекта бухгалтеры осторожно спрашивали нас: «От чего робот может упасть?», а мы честно отвечали.
Через год работы в «Рационе» робот обрабатывает меньше 10% актов сверки. Бухгалтеры в сети по-прежнему незаменимы, и никто не докажет, что ошибки в актах были искусственными. Зато IT-директор оказался заменимым: его уволили. Сеть хочет вернуться к полноценной роботизации бухгалтерии, но перспективы туманны.
Параллельно с «Рационом» стартовал проект у федерального дистрибьютора лекарств. Они не поленились донести до каждого из 150 бухгалтеров, чем именно займется робот, и почему его не надо бояться. Уже через три месяца все акты сверок делались роботом — по 50 в день. Никого не уволили, всем нашли аналитические задачи, которые роботу не по зубам. Кому-то пришлось пройти обучение, которое помогло повысить квалификацию и зарплату.
Через год у дистрибьютора было уже три робота. Они занимаются не только актами сверок — обрабатывают рекламации, разгребают рутинные задачи в отделе логистики. Я не знаю, какой у компании экономический эффект от роботизации, но думаю, что исчисляется десятками миллионов рублей.
Привести примеры роботизации, где никого не уволили из-за роботов, а наоборот — повысили (один пример есть выше).
Роботы выполняют действия в базе 1С по событию в Битрикс24. 1С:Бэкофис использует следующие роботы:
- Проведение документа. Робот проводит документ 1С.
- Распроведение документа. Робот распроводит документ 1С.
- Создание документа на основании. Робот создает новый документ 1С на основании созданного документа и прикрепляет его в тайм лайн сделки.
- Экспорт печатной формы документа. На основании документа 1С формируется печатная форма в 1С, выгружается в Битрикс24 и прикрепляется в таймлайн сделки.
Список документов, для которых доступны роботы и их параметры, зависит от конфигурации 1С.
Как подключить роботов 1С
Чтобы включить работу роботов, перейдите в раздел Битрикс24.1С:Бэкофис > Общие настройки и поставьте галочку в опции Роботы Битрикс24.
В некоторых конфигурациях 1С печатные формы можно печатать с факсимиле. Если необходимо, чтобы факсимиле было в выгружаемых в Битрикс24 печатных формах, включите также опцию Печатные формы с факсимиле.
Для работы роботов также включите опцию Открывать 1С из Битрикс24.
После настроек роботы появятся на вашем Битрикс24.
Параметры роботов в Битрикс24
Добавьте нужного робота и нажмите Изменить, чтобы перейти к настройкам.
Для роботов 1С есть два ключевых параметра:
Тип документа 1С в таймлайне. По этому параметру определяются документы 1С, с которыми будет работать робот. Например: указано значение параметра «Заказ покупателя». Значит, будут выбраны все документы «Заказ покупателя», созданные из сделки Битрикс24.
Печатная форма документа. Какую форму нужно сформировать в 1С и выгрузить в таймлайн сделки. Также это может быть документ, который должен создаться на основании документов, найденных по параметру "Тип документа 1С в таймлайне".
Читайте также: