Как мы проводим свободное время - 2. Хакатон по технологии BlockChain и интеграция в корпоративный мессенджер ZERO

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

Разработка - Практика программирования

блокчейн blockchain HTTP ZERO мессенджер HyperLedger Fabric

12
Продолжая развивать наш мессенджер и исследовать технологию BlockChain, которой были посвящены наши хакатоны, мы постепенно подбираемся к пониманию того, зачем это все нам надо (и , возможно, вам, уважаемые читатели, тоже). P.S.: Текст содержит интимные подробности, которые могут вызвать "течь крыши" из-за сопутствующей тематике сложности, так что будьте осторожны и храните себя.

Добрый день, уважаемые завсегдатаи и гости портала!

Мне всегда интересно рассказывать что-то, что я накопал в платформе 1С или около нее, и куда более интересно освещать те темы, которые находятся на границе технологического фронта. Технология BlockChain и мессенджеры как раз где-то тут и обитают.

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

HYPERLEDGER

Итак, что же это такое. Я изначально ошибочно полагал, что вот это и есть некий блокчейн от IBM. Но, как оказалось, HyperLedger - это консорциум, в который помимо IBM входят многие другие ведущие IT-компании. Кстати, среди премьер-участников этого консорциума есть и SAP, а еще Xiaomi, Deloit, Oracle, Сбербанк, PwC ну и Intel (не говоря уже о прочих, не менее известных компаниях). А вот сам блокчейн от HyperLedger - это HyperLedger Fabric, который, кстати, является не единственной реализацией этого самого блокчейна. О его архитектуре и архитектуре нашего решения, использующего Fabric, мы и поговорим далее.

FABRIC

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

Итак, немножко погрузимся в детали. Эту картинку я честно скопипастил вот отсюда.

Деталь номер раз: информация в блокчейне делится на участников, транзакции и активы. Т.е. есть отдельные объекты, описывающие все это. Получается некий регистр накопления: участники - это измерение, актив - это ресурс, а транзакция - это проводка. Все как в 1С (или в 1С все, как у нормальных людей :), но Вы можете помещать в блокчейн любые так называемые assets - пары "ключ-значение", которые впоследствии можете использовать в качестве контекста смарт-контракта.

Деталь номер два: как и в любом блокчейне, в Fabric есть ноды. Но они делятся на ноды с различным функционалом. Во-первых, это ноды "orderer", которые сортируют входящие пакеты от "пиров" и формируют очередной блок транзакций. Также они будут вызывать все "пиры", если клиент сам их не обошел и не подтвердил консенсус. "Пиры" - это ноды, которые "коммитят" транзакции, выполняют смарт-контракты и хранят копию книги (под книгой тут понимается как раз цепочка связанных блоков - тот самый blockchain, в нашем случае это Ledger - главная книга или гроссбух). Кстати, помимо самой книги, "пиры" хранят в себе этакий "срез" активов - аналог таблицы остатков регистра. И есть еще MPS-ноды - "Membership Providers Service", выполняющий функции контроля доступа.

Деталь номер три: есть такая штука, как FABRIC CLIENT (мы используем вариант генерации REST-сервиса с помощью инструмента COMPOSER), через который происходит общение с блокчейном. Фактически клиент авторизуется на REST-сервисе и вызывает функцию смарт-контракта, а уже REST-сервис дергает все пиры, в настройках которых указано, что они участвуют в формировании консенсуса. По-сути, на каждом "пире" отрабатывает контракт, и при отсутствии расхождений в результатах данные передаются в "ordered" в виде собранной REST-сервисом транзакции.

Деталь номер четыре: HyperLedger Fabric изначально разрабатывался, как решение для корпоративного сегмента, которое не предполагает публичного использования (в отличие от блокчейна ETH и BC), поэтому владельцы пиров, ордеров и прочих сервисов инфраструктуры HyperLedger'а должны договориться друг с другом и обменяться сертификатами, т.е. невозможно просто так установить у себя ноду и подключиться к сетевой инфраструктуре конкретного блокчейна. Также, т.к. настройки сети хранятся в genesis-блоке, то для расширения ее новыми нодами необходимо произвести достаточно непростые манипуляции: получить genesis-блок, изменить его, получить разницу и задеплоить транзакцию, изменяющую genesis-блок, в книгу, после чего сгенерировать сертификаты и передать их новой ноде. Т.е. без приглашения сюда прийти невозможно.

СМАРТ-КОНТРАКТ

Когда я только погрузился в тему блокчейна, я совершенно не воспринимал идею смарт-контрактов. "Зачем?" - думал я. Но с ходом времени все устаканилось. Может быть помогло участие в проекте seti@home, который посвящен поиску сигналов от братьев по разуму и суть которого сводилась к распределенным вычислениям, т.е. к обработке пакета сигналов с aresibo и других обсерваторий и передаче результатов расчета в центральный узел исследовательского проекта. Суть смарт-контракта в том же самом: получить из блокчейна информацию, обработать ее в соответствии с переданными вызывающей стороной параметрами и сформировать транзакцию, изменяющую тот или иной актив (ресурс нашего регистра).

Смарт-контракт для Fabric можно создать на различных языках. В прошлом году я изучал возможности Etherium - блокчейна от Виталика Бутерина, и Solidity - языка смарт-контрактов для Etherium. Там контракт был просто набором некоторого машинного языка EVM - Etherium Virtual Machine, который выполнялся на нодах и результат выполнения которого создавал ту самую транзакцию, меняющую те самые "активы" (ячейки памяти 256-битного адресного пространства 256-битной карты памяти EVM, т.е. по каждому адресу у нас слово длинной в 256 бит). В Fabric практически все то же самое - контракт может оперировать своими переменными, активами (в "эфире" актив - это баланс кошелька контракта и sender'а, а в Fabric активов может быть произвольное количество - они определяются в конфигурационном файле связанных нод). Но, в отличие от Etherium, контекст экземпляра объекта смарт-контракта должен быть извлечен из блокчейна в коде самого контракта, для чего в нем есть методы объекта "shim" PutState, который сохраняет состояние в цепочке транзакций, и GetState, восстанавливающий состояние из цепочки транзакций.

Т.е. смарт-контракт в Etherium меняет состояние памяти VM и описывает изменения данных объекта контракта, а в HyperLedger Fabric контракт должен сохранить свое состояние самостоятельно, и при вызове функции сначала должен это состояние прочитать.

Т.к. смарт-контракт - это объект, содержащий список данных и методов работы с ними, являющийся по-сути экземпляром класса, то при его выполнении на всех "пирах" должен восстановиться экземпляр класса в том состоянии, которое сформировалось при коммите последней транзакции, им порожденной, т.е. перед обработкой данных необходимо вызвать этот самый GetState. И дальше уже этот восстановленный контекст участвует в вычислениях вызванного метода этого объекта. Если были изменения данных объекта, то они должны быть записаны с помощью SetState, а после достижения консенсуса FABRIC CLIENT'ом при помощи orderer'а эти данные сохраняются в блокчейне.

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

ИНФРАСТРУКТУРА

Я решил, что не буду углубляться во всякие там блокчейновские POW и POS, которые используются для криптовалют, ибо в FABRIC нет ни того, ни другого - просто исполняется код смарт-контракта и при одинаковом результате данные сохраняются (если были изменения) и результат, возвращаемый методом контракта, является правильным. Это позволяет ускорить работу с блокчейном и достичь сотни транзакций в секунду для вполне солидной сети "пиров", содержащей сотни узлов.

Мы инфраструктуру подняли на нескольких виртуальных серверах UBUNTU SERVER, используя DOCKER в качестве контейнера для ноды. Там мы развернули несколько "пиров", orderer, MPS и создали REST-сервис с помощью COMPOSER'а. В качестве языка смарт-контракта использовался NODE.js.

МОБИЛЬНАЯ ПЛАТФОРМА, ZERO

Для клиентского приложения мы использовали мобильную платформу 1С, на которой реализовали корпоративный мессенджер ZERO -  о нем я писал ранее. В ходе последнего хакатона мы прикрутили к нашему мессенджеру голосовалку, результаты голосования которой мы и храним в HyperLedger Fabric.

ПОДРОБНОСТИ

Мессенджер Zero уже обладал функционалом, позволяющим проводить опросы в чатах и каналах. Поэтому основной задачей было разработать механизм, связывающий этот функционал с REST API блокчейн-платформы (FABRIC CLIENT).  Разработка этого механизма велась на серверной стороне мессенджера, а клиентская часть осталась практически без изменений.

Инициация голосования происходит через расширенное сообщение, форма которого открывается по нажатию кнопки «+» слева в строке сообщения. В открывшемся диалоге нужно нажать на «Опрос»:

В результате будет открыта форма ввода сообщения, содержащего опрос:

В поле "Сообщение" вводится текст опроса/голосования, а для прикрепления списка ответов нужно нажать "Добавить". Количество вариантов ответов при этом ограничено лишь Вашей фантазией.

Также у опроса есть "время жизни", в течение которого голосование доступно.

После того, как содержание опроса, пункты ответа и дата, до которой опрос актуален, заполнены, остается нажать кнопку ">".

Отправитель, кстати, тоже может проголосовать:

При этом попытка проголосовать повторно будет пресечена:

Получатели сообщения с опросом видят следующее:

Ну и, понятное дело, тоже могут проголосовать и тоже не могут сделать это дважды:

Результаты голосования сохраняются в серверной базе мессенджера ZERO и в блокчейне HyperLedger Fabric. Для просмотра транзакций книги HyperLedger мы сделали отдельную страницу, разместив ее на HTTP-сервере.

В принципе ниже три скрина с нашей системы отслеживания транзакций HyperLedger Fabric. На первом список транзакций, на втором содержание одной из транзакций, а на третьем - сам пакет данных с ответом REST-сервера.

12

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

Комментарии
Избранное Подписка Сортировка: Древо
1. kote 499 28.02.19 00:19 Сейчас в теме
.. идея в том, что голосование проходит анонимно, но общий результат после каждого учтенного голоса сохраняется в блок-чейн?
3. starik-2005 1957 28.02.19 11:44 Сейчас в теме
(1) не совсем. Блокчейн смарт-контрактом эмитирует токены-голоса, которые могут быть использованы для голосования получившим токен владельцем аккаунта (валлета) в сети. Это в эфире если. Статья больше о HYPER LEDGER, в котором голоса эмитируются, как единичные непогашенные ресурсы в разрезе пользователя и вопроса, после чего пользователь может погасить ресурс, а может и не гасить, а смарт-контракт при предъявлении ресурса к погашению смотрит условия опроса: время, кворум, погашенность... Т.е. там не все так просто.
2. TODD22 18 28.02.19 11:38 Сейчас в теме
Похоже БлокЧейн уже не модно....
Оставьте свое сообщение

См. также

СКД. Отчеты с картинками 173

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    4404    YPermitin    24       

Агрегатные функции СКД, о которых мало кто знает 315

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    9555    ids79    42       

Как разработать успешное мобильное приложение на платформе 1С 36

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Мобильные приложения становятся все популярнее, но многие программисты считают, что создавать их не сложнее, чем настольные. В итоге появляются продукты, которые не приносят разработчикам ни удовольствия, ни денег. Какие особенности надо учитывать при разработке мобильного приложения, в главное – как добиться, чтобы оно было прибыльным, участникам конференции Infostart Event 2018 Education рассказал руководитель отдела мобильной разработки на платформе 1С в компании 1С-Рарус Никита Бакшеев.

09.08.2019    3969    Baksheev-Nikita    3       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 240

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    9910    ids79    22       

Мобильный клиент 1С 45

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Мобильный клиент 1С только начинает развиваться, поэтому в этой сфере больше вопросов, чем ответов. Но некоторые разработчики уже познакомились с его возможностями и преимуществами. Среди них - руководитель отдела разработок Bilist Дмитрий Шерстобитов, который дал коллегам несколько полезных советов, как работать с мобильным клиентом.

12.07.2019    10051    DitriX    31       

"Меньше копипаста!", или как Вася универсальную процедуру писал 170

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    6116    SeiOkami    48       

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

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

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

25.06.2019    17037    ids79    16       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 175

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

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    11342    dmurk    134       

Сжатие данных в мобильном приложении 1С:Предприятие 42

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

Эту небольшую статью я планировал опубликовать у себя на сайте, чтобы такие любители мобильного приложения от 1С:Предприятие, как я, могли использовать её без дополнительно потраченных двух дней на поиски вариантов написания алгоритма. Во-первых, хотел сказать, что я небольшой разработчик, который начинал делать свои первые шаги ещё на заре правления "Семерки". Новая платформа версии 8 была как глоток свежего воздуха - бодрящий и легко воспринимаемый организмом. Я был очень удивлен, да что сказать, до сих пор удивляюсь как элементарные вещи можно делать на 1С, и как это стремно делается на других языках программирования. Во-вторых, обилие разнообразных интерпретаций платформы позволяет развернуться на все 360 градусов, захватив своими проектами, наверное, любые ветки бизнеса. Так вот, о небольшом нюансе работы с новой мобильной платформой я и хотел рассказать... Сам додумался, так сказать.

27.05.2019    7526    yarsort    27       

Регистры накопления. Структура хранения в базе данных 174

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

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

16.05.2019    16990    YPermitin    27       

Выполнение внешней обработки в фоновом задании 147

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

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    9616    Eret1k    22       

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

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

25.04.2019    4699    m-rv    2       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    7207    m-rv    16       

О расширениях замолвите слово... 192

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    16138    ellavs    122       

Git-репозитории для 1С-кода (опыт использования при небольших проектах) 200

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

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

28.03.2019    12547    ellavs    83       

Трюки с внешними источниками данных 164

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

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    12657    YPermitin    52       

Добавление отчетов в типовые конфигурации 1С 200

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

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

07.03.2019    22830    ids79    32       

Функциональные опции 1С 8.3 – все возможные варианты использования 170

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

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

22.02.2019    15535    ids79    5       

Информирование пользователя. Работа с объектом «СообщениеПользователю» 248

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

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

15.02.2019    16647    ids79    32       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 162

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    15196    ids79    9       

Мобильное приложение, управление фокусом ввода. Тем, кто не смог победить с помощью "НачатьРедактированиеЭлемента" 48

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Для того, чтобы пользователю не приходилось тапать по полю ввода, чтобы ввести в него значение с клавиатуры (или сканера штрихкода, что весьма актуально), разработчики 1С реализовали функцию "НачатьРедактированиеЭлемента", которая, по-хорошему, должна это делать программно. Однако, отрабатывает эта функция некорректно...

24.12.2018    5479    Crazy_Max    20       

Новый подход к обмену данными EnterpriseData 202

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Практика программирования Обмен через XML

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

14.12.2018    21108    ids79    72       

Мобильная платформа 1С - практическая разработка -1

Статья Программист Нет файла v8::Mobile Украина Android Бесплатно (free) Мобильная разработка

Несколько слов о актуальных возможностях мобильной платформы 1С.

12.12.2018    4706    user605751_svyatishenko.aleksey    10       

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

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

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

10.11.2018    20645    ids79    40       

Публикация приложения на платформе 1С в App store и Play market 107

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Инструкция о том, как опубликовать свое приложение в App store и Play market.

20.10.2018    10153    fr13    15       

Вспомогательные инструкции в коде 1С 104

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    20296    tormozit    100       

Максимально простая установка своего мобильного приложения(базы) 1С на iOS (iPhone) 67

Статья Программист Нет файла v8::Mobile Россия iOS Бесплатно (free) Мобильная разработка

Установка на iPhone своей мобильной конфигурации, опубликованной на веб-сервере, без аккаунта разработчика Apple Store и без танцев с бубном? Легко!

09.10.2018    12474    Rabot    44       

Произвольный код в фоновом режиме 164

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

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

03.09.2018    14436    nikita0832    41       

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

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

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

03.09.2018    30761    SergeyN    25       

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 144

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы Практика программирования

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

23.08.2018    20982    Rain88    42       

Зачем запросу план и кто его выполняет? 175

Статья Программист Нет файла v8::Запросы Бесплатно (free) Практика программирования

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

09.08.2018    18067    Dem1urg    44       

Повышаем эффективность разработки правил обмена 122

Статья Программист Нет файла v8 КД ОС Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    19154    olegtymko    43       

Boss - комплексное решение для управления бизнесом 3

Статья Пользователь Руководитель проекта Нет файла v8::Mobile УУ Бесплатно (free) Мобильная разработка

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

22.06.2018    5823    Baksheev-Nikita    4       

slendergo - стройные идут! 3

Статья no Нет файла v8::Mobile Домашние учет и финансы Android Бесплатно (free) Мобильная разработка

Вам необходимо приложение для подсчета БЖУ и дальнейшей корректировки своего рациона питания? И оно должно работать, даже когда рядом нет интернет-соединения? Slender Go - то, что вам действительно подойдет, а также обязательно понравится как по функционалу, так и по дизайну.  Достаточно скачать это приложение по счетчику калорий к себе на Android и запустить его, как первый намеченный шаг к сбросу или набору веса уже будет сделан.

05.06.2018    6094    pavelru4    12       

Введение в механизм представлений в ЗУП ред. 3 152

Статья Программист Нет файла v8 v8::СПР ЗУП3.x Бесплатно (free) Практика программирования

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018    24166    xrrg    82       

Как сделать запрос на изменение данных 75

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Практика программирования

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    21059    m-rv    21       

Строим графы средствами 1С (без GraphViz) 42

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    16822    slozhenikin_com    19       

Распределение расходов пропорционально продажам 9

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Бесплатно (free) Практика программирования

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    11232    Rustig    9       

Мобильный клиент: установка, отладка, сборка под Android" 134

Статья Программист Нет файла v8::Mobile Android Бесплатно (free) Мобильная разработка

Это статья для тех, кто интересуется мобильным клиентом. Мы рассмотрим установку мобильного клиента на Android, подключение отладки и сборку apk приложения в конфигурации «Сборщик мобильных приложений».

10.03.2018    40551    davealone    40       

Минимализмы 3 350

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    35341    ildarovich    44       

Этюды по программированию. Взаимодействие с Microsoft Word 108

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

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

11.12.2017    25714    milkers    23       

Метод формирования движений в типовых регистрах нетиповыми регистраторами 31

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

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

05.12.2017    21206    itriot11    34       

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена) 717

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8 Практика программирования Обмен через XML

Что такое КД3? Как начать использовать? Полезные дополнения к документации. Что нужно исправить в типовых обработках и конфигурации. Как изменить правила обмена не снимая конфигурацию с поддержки. Как отлаживать правила обмена?

19.11.2017    136761    MaxS    251