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

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

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

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

Что такое Metadata.js?

  • Движок ссылочной типизации для браузера и nodejs
  • Библиотека для разработки бизнес-ориентированных и учетных offline-first браузерных приложений

Если коротко, то метадата предоставляет веб-программисту высокоуровневые объекты данных, аналогичные тем, которыми пользуются программисты 1С (перечисления, справочники, документы, регистры и т.д.)

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

Еще, metadata.js можно рассматривать, как "БСП для веб", предлагающую готовые решения для:

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

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

Серверная часть

  • couchDB, NoSQL база данных с поддержкой master-master репликации
  • nginx, высокопроизводительный HTTP-сервер

Управление данными в памяти браузера

  • metadata.js, движок ссылочной типизации для браузера и Node.js
  • pouchDB, клиентская NoSQL база данных с поддержкой автономной работы и репликации с CouchDB
  • alaSQL, SQL-интерфейс к массивам javascript в памяти браузера и Node.js
  • aes, библиотека шифрования/дешифрования строк
  • xlsx, библиотека для чтения и записи XLSX / XLSM / XLSB / XLS / ODS в браузере

UI библиотеки и компоненты интерфейса

  • dhtmlx, кроссбраузерная библиотека javascript для построения современных веб и мобильных приложений
  • handsontable, компонент для отображения и редактирования табличных данных
  • daterangepicker, компонент визуализации и редактирования диапазона дат
  • filesaver.js, HTML5 реализация метода saveAs
  • moment.js, библиотека форматирования интервалов и дат
  • numbro, библиотека форматирования чисел
  • rubles.js, библиотека форматирования чисел - сумма прописью

Зачем это нужно и что даёт?

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

Предыстория

Список заказов

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

Графический редактор

Система должна рассчитать геометрию элементов, спецификацию, стоимость и отправить эту информацию в план завода.
Типичный оконный завод производит до 1000 изделий в день, сотрудничает с большим количеством дилеров (от 200 до 500).

Из задачи вытекали спецтребования:

  • Редактору геометрии требовалась интенсивная работа с данными в браузере в реальном времени – по каждому смещению мыши на сервер не набегаешься
  • Должно работать при плохой связи и в автономном режиме
  • Нужен гибкий отзывчивый интерфейс с поддержкой, в том числе, мобильных устройств
  • Нужно нулевое администрирование на клиентах
  • Хотелось сэкономить на лицензиях и серверном оборудовании

Имелся 1С-ный прототип для управления позаказным производством. В нём были подсистемы расчета спецификации, сложного ценообразования, диспетчеризации и учета - надстройка над 1С:КА 1.1. Повторить такой проект "в лоб", на языке программирования общего назначения - задача нереальная даже в теории. Решил разделить эту задачу на части:

  • Делаем платформу, которая позволит использовать структуру объектов и синтаксис ala-1С
  • Транслируем 1С-ный прототип в термины этой платформы
  • Бинго! Имеем дешевый функциональный отказоустойчивый сервис

Преемственность синтаксиса

Свойства и методы объектов metadata схожи, но не повторяют и не ограничиваются возможностями 1С.
Например, у нашей табличной части (TabularSection) есть метод НайтиСтроки (find_rows). Кроме стандартного поиска по равенству полей, добавлен синтаксический сахар:

// поиск в 1С
Результат = ТабЧасть.НайтиСтроки(Новый Структура("Поле1", Значение1));
// поиск, "как в 1С"
res = ts.find_rows({Поле1: Значение1});
// поиск на неравенство
res = ts.find_rows({Поле1: {not: Значение1}});
// поиск по списку значений
res = ts.find_rows({Поле1: {in: [Значение1, Значение2]}});
// логическое ИЛИ
res = ts.find_rows({or: [{Поле1: Поле1}, {Поле2: Поле2}]});
// поиск с произвольным условием
res = ts.find_rows({Поле1: function(v, key){if v[key] > 3 return true;}});
// поиск с условием SQL выполняется на клиенте, без обращения к серверу
res = alasql("select * from ? where `Поле1` > 3", ts._obj);

Сравнение производительности

В offline-режиме, приложение metadata подобно локальной файловой базе 1С. Оба движка работают в этом режиме весьма шустро.
При работе с длинными списками, в metadata чуть больше свободы:

  • Можно построить сложные, составные или фасетные индексы
  • Если позволяет железо, можно работать с таблицами в памяти
  • Можно наоборот, пожертвовать производительностью в пользу экономии памяти - всё зависит от задачи

Если metadata используется, как альтернативный лёгкий клиент к серверу 1С, получаем значительное ускорение даже на типовых конфигурациях. В эксперименте использованы:

  • Один и тот же сервер – физически он расположен в Германии
  • Она и та же информационная база
  • Один и тот же канал в интернет ping ~ 90ms
  • И даже документ мы один и тот же открываем

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

В metadata та же операция выполняется за 400 мс.

Теперь посмотрим сетевой трафик. В metadata json прочитанного заказа занимает порядка 7 Кб.

В 1С, только передача пакета отъела 700 мс, и этот пакет занимает 180 Кб.

Таблица объединяет данные результаты измерений:

Операция Metadata Веб клиент 1С Выигрыш
времени, раз
Выигрыш
трафика, раз
Мин. время реакции сервера 150мс 150мс - -
Загрузка и вход в программу 4сек/4Mb 20сек/6Mb 5 1,5
Открытие формы "Заказа" 400mc/8Kb 2200mc/180Kb 5 20
Открытие формы выбора справочника 300мс/0Kb 600мс/10Kb 2 >>
Поиск в динсписке кешируемых объектов 200мс/0Kb 300мс/10Kb 1,5 >>
Поиск в динсписке с обращением к серверу 300мс/10Kb 300мс/10Kb - -

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

Я не критикую платформу 1С. Технологии веб-клиента 1С и легкого клиента отличаются очень сильно.
Наш лёгкий клиент не предназначен для замены традиционного веб-клиента в тех задачах, с которыми платформа 1С справляется хорошо.
Конкурировать с 1С на её поле - глупо и бесперспективно. Зато, с metadata.js можно сделать бизнесу выгодное предложение в тех областях, куда 1С вообще не заглядывает. Появляется возможность добавить в дешевые веб-приложения такие функции, которые ранее были доступными только в тяжелых учетных системах.

Совмещаем сильные стороны 1С и современного web для решения бизнес-задач

Есть встречное движение:

  • 1С в глобальную сеть
  • Традиционный web – в область задач автоматизации бизнеса

Чтобы лучше понять это движение и интересы участников, рассмотрим наиболее сильные и слабые стороны 1С и веб-технологий:

  • Веб-технологии содержат фантастические по изяществу и выразительности инструменты, но, к сожалению, там нет необходимого для бизнес-задач уровня абстракции. Посмотрите на сайты платежных систем, заказа билетов на самолет, поезд, личные кабинеты операторов сотовой связи – функциональность скудная, так как в языке, на котором думают постановщик и разработчик, нет слов для описания решаемой задачи.
  • Платформа 1С - это очень мощный инструмент для построения учетных систем, но он сильно отстал от современного веб. Дело в том, что в 2008-2009 годах, когда проектировалась архитектура управляемого приложения,  Javascript был другим. В браузерах не было автономной работы, в языке отсутствовали инструменты для управления свойствами объектов. В результате тонкий и веб-клиент 1С умеют лишь показывать данные и принимать ввод пользователя. В конце нулевых годов, такому подходу, наверное альтернативы не было. Но сегодня, когда любой телефон содержит несколько вычислительных ядер и несколько гигабайт ОЗУ, использование только серверного рендеринга и отказ от данных на клиенте – это непозволительная роскошь.
  • В metadata.js
    • Задействованы возможности современных браузеров
    • Реализован уровень абстракции, доступный ранее только в платформе 1С
    • Часть вычислительной работы и хранение коротких списков - справочников и перечислений перенесена на клиента.
      Это позволило значительно улучшить производительность, снизить нагрузку на сервер, повысить скорость и качество разработки

Инструменты metadata.js могут украсить жизнь как разработчикам 1С, так и веб-программистам. Но и те, и другие пока не проявляют интереса к нашей математике.
Рассчитывают отсидеться на освоенных технологиях. Конкуренция пока небольшая, «пирога» всем хватает.

Есть устоявшиеся стереотипы:

  • Для работы браузера нужно подключение к Интернет
  • Настольная программа работает быстро, а браузерная - тормозит
  • 1С-ный синтаксис есть только внутри 1С
  • Система на 1000 пользователей - это очень дорого
  • Из браузера трудно достучаться до COM и USB портов и прочего внешнего оборудования
  • Автономное веб-приложение - это очень сложно

Metadata.js пытается эти стереотипы пошатнуть.

  • Браузер прекрасно работает offline
  • Нативному приложению, чтобы приблизиться к качеству веб-интерфейса, сначала нужно реализовать внутри себя браузер
  • Синтаксис, подобный 1С-ному, теперь доступен в javascript
  • Система на 1000 пользователей - это реально дешево
  • Из javascript легко управлять COM, USB и сетевыми устройствами
  • Автономное веб-приложение - это очень просто

Пользуйтесь и зарабатывайте на внедрениях.

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

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

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Steelvan 08.08.16 10:28 Сейчас в теме
Что бы оно автономно работало, надо локально устанавливать apach или что-то подобное ?
2. unpete 539 08.08.16 10:36 Сейчас в теме
(1) Steelvan,
Что бы оно автономно работало, надо локально устанавливать apach или что-то подобное
Клиенту для автономной работы ничего устанавливать не надо.
Конфигурация сервера зависит от задачи. Если нужно совсем автономное рабочее место (например, учет личных финансов), работать может вообще без сервера - по аналогии с локальной файловой 1С.
3. Steelvan 08.08.16 11:02 Сейчас в теме
куда браузер будет локально обращаться ? По какому адресу ?
4. Steelvan 08.08.16 11:03 Сейчас в теме
Без сервера ? Подключение сразу к файлу 1CD ?
5. unpete 539 08.08.16 11:15 Сейчас в теме
(4) Steelvan,
Подключение сразу к файлу 1CD
При чем здесь 1CD? Metadata это не надстройка над 1С, а самостоятельный движок данных, который умеет бесшовно интегрироваться с 1С, если этого требует прикладная задача.
куда браузер будет локально обращаться ? По какому адресу ?
За данными, браузер у нас не "обращается адресу" а читает и пишет их в indexedDB
6. CheBurator 3409 08.08.16 12:28 Сейчас в теме
осталось расписать что такое nodejs
7. unpete 539 08.08.16 12:58 Сейчас в теме
(6) CheBurator,
осталось расписать что такое nodejs
Это вопрос, сарказм или предложение?
Через неделю планирую опубликовать статью "Helloworld на metadata.js" с пошаговыми инструкциями и примерами кода. Надеюсь, статья ответит на базовые вопросы.
Lostar; for_questions; vovan_victory; TreeDogNight; z86; dlebedev8; ZLENKO; pablo_escobar; Alien_job; Makushimo; kare; EliasShy; +12 Ответить
8. v3rter 08.08.16 13:37 Сейчас в теме
Гуглим:

http://www.oknosoft.ru/metadata/codex/#obj=0100&ref=&frm=&view=content
Штатно, решения на metadata.js работают по протоколу https. При использовании нешифрованного http, становятся недоступны функции serviceWorkers, но в остальной части, приложение остается работоспособным. В codex предприняты специальные усилия, чтобы примеры работали даже по протоколу file. Скопируйте и разархивируйте файлы https://github.com/oknosoft/metadata.js/archive/master.zip в любую папку на локальном компьютере и откройте файл index.html из корневого каталога.


Примеры https://github.com/oknosoft/metadata.js/tree/master/examples/unf

Особенности: http://www.oknosoft.ru/metadata/
Для некоммерческих Open Source проектов доступна лицензия AGPL-3.0
Коммерческая лицензия на разработчика стоит €300 и позволяет использовать и распространять ПО в любом количестве неконкурирующих продуктов, без ограничений на количество копий


10. unpete 539 08.08.16 14:20 Сейчас в теме
(8) v3rter,
Штатно, решения на metadata.js работают по протоколу https
Имеется в виду транспорт для синхронизации с сервером. Понятно, что в автономном режиме https не используется, т.к. сервер недоступен
Посмотреть примеры полезно, но они для движка версии v0.9 - конец 2015 года. Полноценная автономная работа появилась в v0.10 - март 2016. Актуальная версия v0.11.
Для некоммерческих Open Source проектов доступна лицензия AGPL-3.0
Если ваш проект с открытым кодом - покупать лицензии не требуется.
Для коммерческих проектов нужны наши лицензии плюс лицензии задействованных библиотек: dhtmlx и handsontable
Важно: все лицензии на разработчика. Их можно использовать для неограниченного числа автоматизируемых рабочих мест на неограниченном количестве серверов.
9. igo1 225 08.08.16 14:15 Сейчас в теме
Не очень понятно, но зерно интереса есть.
11. MishaD 12 08.08.16 19:29 Сейчас в теме
Посмотрел Демо на https://jsfiddle.net . Слева структура метаданных, справа отображение. А между ними огромный пустой кусок. Причем если потянуть разделитель влево, то метаданные скрываются, а пустого места меньше не становится. Сверху предположительно есть кнопочки, но их не видно. Использую Яндекс браузер.
Прикрепленные файлы:
12. unpete 539 08.08.16 19:58 Сейчас в теме
(11) MishaD, Фрейм jsfiddle, действительно, портит разметку. Пример там опубликован, чтобы показать лаконичность клиентского кода. Его там всего 10-20 строчек.
Если открыть то же самое без jsfiddle-обёртки, разметка нормальная.
13. YPermitin 7231 08.08.16 20:06 Сейчас в теме
(0)
Еще год назад примерно смотрел ваш продукт Metadata.js, интересная реализация, даже для экспериментов делал у себя некоторые доработки. Но вопрос - какая лицензия? На каких условиях распространяется продукт?

Этот вопрос меня останавливал использовать его в продакшене у клиентов.
15. capitan 1457 08.08.16 21:57 Сейчас в теме
(13) YPermitin,
18000 рублей
Но!
в состав Metadata.js входит dhtmlx цена на который для проектов больше 1 - от 1000 у.е.
К тому же в лицензии написано :Распространение ПО в составе продуктов, являющихся конкурентами metadata.js, или обладающих схожей с функциональностью - запрещено
То есть вместе с 1С ее нельзя использовать.
Solovyeff; +1 Ответить
26. unpete 539 09.08.16 09:19 Сейчас в теме
(15) capitan,
входит dhtmlx цена на который для проектов больше 1 - от 1000 у.е.

  • В коммерческую лицензию метадата не входят лицензии dhtmlx и handsontable
  • metadata умеет работать на сервере или в браузере без визуализации. В этом случае, dhtmlx и handsontable не нужны. Вы можете манипулировать объектами данных с помощью metadata, а показывать их пользователю с помощью своего кода
  • для opensource проектов работает agpl, по которой ничего покупать не надо


31. capitan 1457 09.08.16 12:22 Сейчас в теме
(26)
В коммерческую лицензию метадата не входят лицензии dhtmlx и handsontable
metadata умеет работать на сервере или в браузере без визуализации. В этом случае, dhtmlx и handsontable не нужны.

Если я буду работать на сервере без визуализации, я просто из 1С впишу/прочитаю данные в БД.
Это будет по крайней мере безопаснее, нежели использовать такую прослойку как у вас. И абсолютно точно не съест лицензий, кроме серверной.
А отобразит их веб программист с помощью своего кода.
Народ то возбуждается как раз на отображение в виде аля 1С, а оно стоит как серверная лицензия 1С.
для opensource проектов работает agpl, по которой ничего покупать не надо

Приведите пожалуйста пример opensource проекта на 1С.
Кстати. Прошел год с вашего доклада и насколько я вижу на всех значимых форумах по 1С вы тогда отписались.
Есть Success Stories успешных внедрений?
Дилеры оконных заводов не в счет, им то я понимаю в добровольно/приказном порядке систему внедрили.
depresnjak; 33lab; Solovyeff; +3 Ответить
33. unpete 539 09.08.16 12:49 Сейчас в теме
(31) capitan,
просто из 1С впишу/прочитаю данные в БД
Если вы предпочитаете вместо документов, регистров и справочников оперировать сырыми записями БД, metadata в этом, конечно, не поможет.
Программист в metadata не использует XHR и не работает с DOM. Он пишет обработчики событий "при создании", "при изменении реквизита", "перед записью" и т.д. в модулях объектов и менеджеров
Народ то возбуждается как раз на отображение в виде аля 1С
Давайте не будем фантазировать, от чего возбуждается народ и предоставим возможность использовать в работе те инструменты, которые он сочтет удобными для своих задач.
В заголовке написано: "Движок ссылочной типизации" - ни слова про "отображение"
Метадата умеет рисовать интерфейс, но в этом она не оригинальна. Есть сотни библиотек про рисование интерфейсов.
Зато, библиотек про оффлайн/онлайн данные с методами и свойствами, как в 1с, я в интернете не нашел.
40. unpete 539 10.08.16 10:12 Сейчас в теме
(31) capitan,
Success Stories успешных внедрений?
https://www.npmjs.com/ устроит? Обрабатывает 500 млн. запросов в сутки, до 10 тыс. запросов в секунду. Каталог 380 тыс. записей. Наверняка, вы и сами использовали npm в работе. На сервере они используют примерно ту же математику, что и в metadata. Или эта story недостаточно success?
96. KAV2 92 03.08.18 07:24 Сейчас в теме
(26) На Гитхаб указано что исходники Metadata.js распространяются под лицензией MIT, это означает что можно копировать изменять и использовать в коммерческих проектах (со ссылкой на автора) совершенно бесплатно без каких-либо ограничений, верно?
97. unpete 539 03.08.18 07:35 Сейчас в теме
28. unpete 539 09.08.16 10:03 Сейчас в теме
(13) YPermitin,
Но вопрос - какая лицензия? На каких условиях распространяется продукт?

Приложения на metadata.js умеют работать в разных режимах:
  • Распределенная система - в этом режиме, CouchDB реализует шину данных, к которой подключены веб-клиенты и одна или несколько ИБ 1С. Базы могут быть разной структуры и располагаться в разных датацентрах. Репликация с 1С выполняется в фоновых заданиях
  • Клиент-серверный режим без 1С - в этом режиме, используем ту же шину данных, но 1С к ней не подключена рантайм. Обмен с 1С может выполняться отдельными обработками
  • Локальный однопользовательский режим без 1С - отдельный компьютер или мобильное устройство без доступа к сети. Обмен с внешним миром через дискету или флешку
  • Лёгкий клиент 1С - должны быть опубликованы http-сервисы 1С. Веб-приложение обращается напрямую к серверу 1С. В этом (и только в этом) режиме, требуются клиентские лицензии 1С по числу одновременно выполняющихся запросов. Не путать с количеством клиентов, в браузерах которых открыто веб-приложение. Технически, лицензии не нужны. Сервер 1С из пула лицензий при работе http-сессии ничего не откусывает. Юридически, в разных документах у 1С на этот счет разные толкования. Я вёл переписку с отделом лицензирования 1С. Внятного официального ответа так и не получил. Думаю, если возникла потребность именно в лёгком клиенте, проще эти 1С-ные лицензии просто купить. Не такая уж это большая сумма на фоне общей стоимости проекта
Теперь, про лицензии на разработчика:
  • AGPLv3 - имеете право ничего никому не платить, но обязаны предоставить по первому требованию исходные тексты всего вашего проекта, плюс, обязаны упомянуть в титрах все использованные библиотеки. Проект может быть коммерческим, Вы можете брать деньги за лицензии и сопровождение. Главное, соблюсти два условия: открытый код + упоминания авторов
  • Коммерческая лицензия - наша лицензия стоит 18 тыс. руб. на разработчика и позволяет выпускать и тиражировать прикладные решения с закрытым кодом. Решения не должны конкурировать с самим движком metadata. Например, будет незаконно переименовать метадату в ala1c, изменить стили оформления и выдавать за свою разработку. Кроме нашей коммерческой лицензии, потребуются коммерческие лицензии всех остальных, задействованных в вашем проекте библиотек (их состав зависит от вашего проекта)
32. YPermitin 7231 09.08.16 12:28 Сейчас в теме
(28) спасибо за развернутый ответ.

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

Если правильно понимаю, то pull-request'ы на GitHub разрешены и приветствуются? =)
34. unpete 539 09.08.16 12:51 Сейчас в теме
(32) YPermitin, Конечно, приветствуются с благодарностью.
14. capitan 1457 08.08.16 21:47 Сейчас в теме
Есть много проектов, которым я неистово аплодирую за их оригинальность..
Но противопоставлять себя грандам... да еще на сайте сообщества 1С :)
Сколько не занижай приору, ламборджини из нее не выйдет.
Кроме метаданных, под капотом 1С достаточно серьезные решения.
Команда программистов, постановщиков задач и т.п.
И до вас и после будут проекты пытающиеся оперировать бизнес-объектами.
Тырить логику конфигурации у 1С дело не хитрое.
Собственно в этом и все совмещение вашей платформы и 1С ?
24. unpete 539 09.08.16 09:10 Сейчас в теме
(14) capitan,
противопоставлять себя грандам
В чем противопоставление?
Я в каждом абзаце подчеркиваю, что если некая задача хорошо решается в 1С, не надо тратить время на метадату.
Я не предлагаю заменить метадатой настольную 1С. Напротив, предлагаю распространить подходы 1С в большой веб и мобильные приложения.
Там реально непаханое поле и сообщество 1С могло бы эффективно на этом поле поиграть.
Тырить логику конфигурации у 1С
Такую предъяву неплохо бы обосновать. Что именно я стырил?
Собственно в этом и все совмещение вашей платформы и 1С
Бесшовная интеграция - одна из, но не единственная и не главная функция 1С.
Если бы Вы дали себе труд посмотреть в исходники, Вам бы тоже очень понравилось, как эта интеграция устроена изнутри
70. Designer1C 328 18.10.17 16:00 Сейчас в теме
(14)При всей команде программистов, постановщиков задач и других фирма 1С не в состоянии перекрыть открывающиеся при внедрении конфигураций задачи.
Например в 2005 - 2010 годах при повальном переходе с 1С:7.7 на конфигурации 1С:8 отсутствовала возможность качественного переноса данных.
В тот период пользовались регулярным спросом программы по переносу данных в УПП , ЗУП ,БП, УТ из ТиС, Комплексной, ЗиК, Бух-7.7
Да, прошло время и 1С наконец-то сделали свои рабочие версии переносов данных
При этом несколько лет им было просто не до этого.
А работать надо.
16. Solovyeff 09.08.16 00:10 Сейчас в теме
Задумка очень интересная, давно присматриваюсь к JS (особенно Node.JS), но если capitan прав с суммарной стоимостью лицензии, то продукт совсем не дешев и вместе с разработкой для заказчика выйдет в очень круглую сумму, что в нынешнее время резко сужает круг заинтересованных лиц, опять же, вряд ли этот фактор может поспособствовать "голубому океану":).
P.S. Интересно было бы услышать комментарии автора насчет лицензии и конечно побольше примеров работы с metadata.js
30. unpete 539 09.08.16 10:25 Сейчас в теме
(16) Solovyeff,
продукт совсем не дешев
Там 2 человекогода работы - примерно 4000 человекочасов. Вы какую цену порекоменудете?
побольше примеров
спасибо, учту
35. Solovyeff 09.08.16 14:23 Сейчас в теме
(30)
Там 2 человекогода работы - примерно 4000 человекочасов. Вы какую цену порекомендуете?

1С знаете сколько человекочасов потратило на свой продукт, а хотя бы ты же microsoft на Visual Studio Code оооо.. Только вряд ли они пели про стратегию голубого океана и прочее, при этом забывая о такой сущей мелочи как сторонняя лицензия в тысячу баксов, ага.

P.S. Я однозначно не за халяву, сам программист., но очень любопытно узнать как человек/компания собирается создавать рынок, с таким отношением и стратегией)) Часто у вас потенциальные клиенты спрашивают сколько ваш труд стоит человекочасов и как они счастливые готовы за это платить? Опять же, 18 000 это копейки, я про "скрытые" лицензии. Насчет безопасности само собой вопрос открытый.. Но все равно, задумка хорошая и однозначно стоит наблюдать за эволюцией, кто знает может будет Angular в мире 1C)
36. unpete 539 09.08.16 15:56 Сейчас в теме
(35) Solovyeff,
может будет Angular в мире 1C
Аналогии не понял. Angular - он про манипуляции с DOM. Metadata - про ссылочные данные на клиенте, обработку событий объектов данных и прозрачную их синхронизацию с сервером и другими клиентами. Вроде, совсем разные задачи.
37. unpete 539 09.08.16 15:59 Сейчас в теме
(35) Solovyeff,
Насчет безопасности само собой вопрос открытый
А что не так с безопасностью? Для транспорта используем только шифрованный https. Или Вы какую-то другую безопасность имеете в виду?
38. unpete 539 09.08.16 19:11 Сейчас в теме
(35) Solovyeff,
1С знаете сколько человекочасов потратило на свой продукт
Про часы не знаю, но сравним для примера метод Итог() в 1С и нашей табличной части.
Цитата из синтакс-помощника:
Итог (Total)
Синтаксис:
Итог(<Колонка>)
Параметры:
<Колонка> (обязательный)
Тип: Число; Строка.
Индекс либо имя колонки, по которой подсчитывается итог.
Возвращаемое значение:
Тип: Число; Неопределено.
Описание:
Суммирует значения всех строк в указанной колонке.

Цитата из API metadata:
aggregate ( [dimensions] [resources] [aggr] [ret_array] ) Number | Array
Вычисляет агрегатную функцию по табличной части
Не изменяет исходный объект. Если пропущен аргумент aggr - вычисляет сумму.
Стандартные агрегаторы: SUM, COUNT, MIN, MAX, FIRST, LAST, AVG, AGGR, ARRAY, REDUCE
AGGR - позволяет задать собственный агрегатор (функцию) для нестандартного расчета итогов
Параметры:
[dimensions] Array | String optional - список измерений
[resources] Array | String optional - список ресурсов
[aggr] String optional - агрегатная функция
[ret_array] Boolran optional - указывает возвращать массив значений
Возвращает:
Number | Array:
Значение агрегатной фукнции или массив значений
17. goldencity178 8 09.08.16 06:03 Сейчас в теме
В яндекс браузере дофига корявостей с отображением страниц, С гугла его содрали быстро, но не доработали с полем HTML поэтому скорее всего и есть глюк самого яндекс браузера.
18. goldencity178 8 09.08.16 06:05 Сейчас в теме
подходит скорее для групп объединенных компаний и холдингов, инвесторов и даже крупных Российских банков
29. unpete 539 09.08.16 10:10 Сейчас в теме
(18) goldencity178,
холдингов, инвесторов и даже крупных Российских банков
Представители СБ РФ вели со мной переговоры про фронт на metadata, но потом соскочили - якобы их служба безопасности не одобрила
42. dlebedev8 10.08.16 13:40 Сейчас в теме
(29) ай-яй-яй, как нехорошо вы поступаете, что разглашаете тайну коммерческих переговоров. Правильно они сделали, что соскочили.
43. unpete 539 10.08.16 15:44 Сейчас в теме
(42) dlebedev8,
Правильно они сделали, что соскочили
Правильно для кого? Для акционеров, которые получат меньше прибыли, для работников, которые остались без эффективных рабочих мест или для клиентов, которые будут дольше стоять в очереди?
47. capitan 1457 10.08.16 18:07 Сейчас в теме
(43)
Правильно для кого?

Для клиентов, деньги которых они хранят.
В курсе сколько access incident у сбера в день ?
У меня есть по Kiwi данные например.
И сколько их у вас, если такая статистика ведется.
19. goldencity178 8 09.08.16 06:18 Сейчас в теме
"К тому же в лицензии написано :Распространение ПО в составе продуктов, являющихся конкурентами metadata.js, или обладающих схожей с функциональностью - запрещено
То есть вместе с 1С ее нельзя использовать. "
Распространение - это продажа и реализация, а не эксплуатация. Использовать можно так как в предложении : "Распространение ПО в составе продуктов, являющихся конкурентами metadata.js, или обладающих схожей с функциональностью - запрещено" - здесь идет запрет о совместной продаже и с юридической точки зрения запрет совместного распространения и запрет эксплуатации - НЕ ОДНО И ТОЖЕ
20. goldencity178 8 09.08.16 06:29 Сейчас в теме
Продавать на сайте или в интернет магазине можно как различные и отличающиеся друг от друга продукты и в коммерческом предложении прописывать как рекомендуемый для совместной работы продукт. но в одном программном продукте не распространять, как и прописано в лицензии.
В 1С Сделайте документ "Коммерческое предложение" состоящее из 2 различных частей.
1. Товары и услуги.
2. Рекомендуемые дополнения.

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

Ситуация довольно примитивная, но позволяет обойти условия не нарушая при этом таковые вышеизложенные условия лицензии.
21. goldencity178 8 09.08.16 06:36 Сейчас в теме
Если у вас есть в движке сайта возможность добавлять к продаваемым сопутки, сделайте их как рекомендуемые, условия "Распространение ПО в составе продуктов, являющихся конкурентами metadata.js, или обладающих схожей с функциональностью - запрещено" вы не нарушаете, если в языковом файле движка магазина вместо сопутки написать рекомендую дополнение, то это хороший вариант. все условия соблюдены и юридически довольно граммотно.

Юристы верят бумажкам и доказательствам, а не словам
22. ardn 99 09.08.16 08:15 Сейчас в теме
metadata.js можно оформить в виде приложения для смартфонов (android)?
23. unpete 539 09.08.16 08:58 Сейчас в теме
(22) ardn, Конечно.
Если по каким-то причинам не устраивает исполнение программы внутри браузера, приложение можно скомпилировать с помощью cordovaв нативное для ios и android, а с помощью electron - в нативное для windows, linux и osx
25. ardn 99 09.08.16 09:11 Сейчас в теме
Отлично
На гитхабе актуальные примеры? Хочу освоить ваш движок.
27. unpete 539 09.08.16 09:21 Сейчас в теме
(25) ardn,
На гитхабе актуальные примеры

Примеры драматически старые. В ближайшие недели запланирована публикация новых примеров + статья с пошаговыми инструкциями для быстрого старта
KRJ; peterg; z86; chek.e.l@mail.ru; ardn; +5 Ответить
56. unpete 539 11.08.16 13:35 Сейчас в теме
(27)
Примеры драматически старые
Опубликовано новое описание Hello world на metadata.js
TreeDogNight; ardn; +2 Ответить
39. detec 129 10.08.16 09:42 Сейчас в теме
Идея хорошая, примеры выглядят прилично. Думаю, это может взлететь на зарубежных рынках.
41. capitan 1457 10.08.16 12:48 Сейчас в теме
На сервере они используют примерно ту же математику, что и в metadata

Угу.
Я распечатываю список контрагентов и в газпроме распечатывают список контрагентов.
Значит я работаю в газпроме.
На вашей системе кроме вас кто то еще создал коммерческие решения или год пиару прошел зря ?
44. FSerg 66 10.08.16 16:15 Сейчас в теме
Больше года назад перед конференцией инфостарта - я смотрел ваш продукт.
Я не понимаю, почему так много скептических комментариев или придирок к цене.
Классный высоко-технологичный проект!
И есть множество задач, когда нужно дать пользователю простой интерфейс со связью с 1С и в идеале чтобы просто в браузере работало на чем угодно.
45. unpete 539 10.08.16 16:23 Сейчас в теме
(44) FSerg,
в идеале чтобы просто в браузере работало на чем угодно
Завтра опубликую статью с пошаговой инструкцией helloworld с автономной работой в браузере.
Пишу этот ответ, чтобы подстегнуть работы по демо-примеру. Заставить себя работать трудно, но обещание придется исполнять
почему так много скептических комментариев
Мне это тоже интересно. И еще, хочется инженерной критики по существу. Например, "у тебя здесь утечки памяти" или "тут лишний цикл" или "это разыменование можно сделать проще и красивее"
46. capitan 1457 10.08.16 18:00 Сейчас в теме
И есть множество задач, когда нужно дать пользователю простой интерфейс со связью с 1С и в идеале чтобы просто в браузере работало на чем угодно.

Где эти задачи ?
Вы отделяйте мух от котлет.
Есть веб программисты, они привыкли к своим языкам программирования и своей среде исполнения.
Есть программисты 1С у них свой язык программирования и своя среда исполнения.
Стыковка происходит элементарным обменом, формат стандартизован.
А вы почему то считаете, что сайты должен делать 1С ник ?
Это так же непросто, там есть свои тонкости, не говоря уже об элементарной безопасности.
Этот проект никто не ломает потому лишь, что на нем никто не работает.
Это если говорить о "простой интерфейс со связью с 1С"
А если говорить о проекте как об учетной системе, то уверяю вас их сотни и большая часть тоже имеет встроенный конфигуратор.
Откройте любой каталог ПО
И все они стыкуются или будут стыковаться с 1С. И многие из них хотели бы здесь рассказать какие они классные.
48. unpete 539 10.08.16 18:27 Сейчас в теме
(46) capitan,
уверяю вас их сотни
Приведите, пожалуйста одну ссылку на систему, где есть автономная работа в браузере и ссылочная типизация.
Я с удовольствием сверну работы по метадата и приму участие в развитии более грамотного движка.
49. unpete 539 10.08.16 18:40 Сейчас в теме
(46) capitan,
Есть веб программисты, они привыкли к своим языкам программирования и своей среде исполнения
Вы сути моего предложения не услышали. У веб-программистов не получается сделать ни одного приличного сайта по двум причинам:
  • Они не понимают и не хотят понимать бизнес-процессов учета и управления
  • Они каждый раз изобретают велосипед на языке низкого уровня вместо того, чтобы воспользоваться такими бизнес-объектами, как документ и регистр
Вы исходите из предположения, что сложившиеся подходы к веб-разработке - удовлетворительны.
Что вебщики рисуют нормальные интернет-магазины и личные кабинеты.
Я утверждаю, что сегодняшние веб-решения изнутри - это Ад и Израиль.
Почитайте исходники хоть вордпресса, хоть битрикса, или, например, opencart.
Читать предлагаю недалеко от туалета - вас обязательно вырвет.
djl; jONES1979; +2 Ответить
58. Steelvan 12.08.16 08:16 Сейчас в теме
(49)

Это Ад и Америка.
Американцы хуже евреев.

Интересно, как сейчас возбудятся те, кто там ни разу не бывал, но кто верит в сказочки что там рай :)
И заплачут, что я наступаю на их сказочные фантазии ;)
59. unpete 539 12.08.16 09:36 Сейчас в теме
(58) Steelvan, Выражение Ад и Израиль возникло еще во времена Иисуса и означает "просто ад"
60. unpete 539 12.08.16 09:44 Сейчас в теме
(58)(58) Steelvan, Мне кается, для обсуждения рассовых и политических вопросов есть специальные интернет-ресурсы. Зачем это на Инфостарте?
61. genayo 12.08.16 10:32 Сейчас в теме
(60) Не обращайте внимания, это местный дурачёк.
dour-dead; +1 Ответить
50. FSerg 66 10.08.16 21:45 Сейчас в теме
(46) capitan,

Где эти задачи?

Их множество, то что сразу приходит на ум:
Вы оптовая компания и вам нужно дать своим партнерам доступ типа в личный кабинет (акт сверки, заказы) - будете делать это на 1С? Купите лицензий по числу партнеров?
Вам нужно дать кладовщику простой интерфейс для подтверждения факта отгрузки товара по накладной - будете ставить ему 1С? ему хватит простого web'чика с одним полем ввода и кнопкой.

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

В том то и дело, что с каждым днем эта грань стирается! Есть крутые 1C-инженеры, которые знают/изучают Python, JavaScript, Docker и вот это вот все и есть посредственные, которых не интересует ничего дальше границ 1С.

Стыковка происходит элементарным обменом, формат стандартизован.

Обмен и реалтайм работа - сильно разная работа.

А вы почему то считаете, что сайты должен делать 1С ник?

ИМХО, речь в публикации вообще не о сайтах. Речь о решении, которое предлагает классный способ дать удобные web-интерфейсы к 1C.

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

Ок, если страшно, начните использовать это в интранете, т.е. там где вы полностью контролируете инфраструктуру и периметр.
itriot11; +1 Ответить
51. unpete 539 11.08.16 08:57 Сейчас в теме
(50) FSerg,
Купите лицензий по числу партнеров?

Стоимость лицензий, конечно, имеет значение, но позиционирование у меня другое:
  • Metadata жрёт в 20 раз меньше трафика. Это инженерный факт. Оспаривать его бессмысленно. Как следствие, работает при плохой связи и даже в автономном режиме
  • У нас намного проще и надежнее серверная инфраструктура. Для обслуживания 1000 клиентов, CouchDB использует меньше ОЗУ и процессорного времени
  • Metadata предоставляет веб-программисту высокоуровневые объекты данных, прямого аналога которым просто нет в других фреймворках
Напомню лозунг: "если ваша задача хорошо решается в стандартной 1С - не надо тратить время на метадату"
52. unpete 539 11.08.16 09:16 Сейчас в теме
(46) capitan,
Где эти задачи ?
Таких задач, действительно, много.

Например, рабочее место контролера ОТК, где требуется регистрировать готовность изделия + наличие и характер дефектов. Обычные ТСД и сканер не годятся, т.к. дефекты надо привязать к элементу изделия. Решено использовать смартфон + bluetooth сканер. При сканировании этикетки, выводим на экран смартфона чертёж изделия с возможностью выделить любые элементы и указать в контекстном меню маршрут исправления.

Еще, есть цеховая безбумажка, где для отображения данных использованы бытовые телевизоры. Метадата прекрасно справляется с задачей, работая внутри встроенного в телевизор браузера.
Понятно, что этой реализации, предшествовали безуспешные попытки сделать то же самое в веб-клиенте 1С. Возможно, проблема в моей низкой квалификации, а может быть и в чем-то другом.
53. dlebedev8 11.08.16 10:10 Сейчас в теме
(52) да много есть разных задач, глупо об этом спорить. Кому надо, сами свяжутся и договорятся. Остальные будут и дальше критиковать и искать недостатки.

Не могли бы вы пояснить по лицензированию AGPL? Что именно вы причисляете к проекту, исходники которого должны быть открыты? Например, если делать личный кабинет дилера к конфигурации 1С: Управление торговлей (10 или 11)?
54. unpete 539 11.08.16 10:38 Сейчас в теме
(53) dlebedev8,
пояснить по лицензированию AGPL
Вот текст с сайта gnu.org на русском языке: https://www.gnu.org/licenses/why-affero-gpl.html
55. unpete 539 11.08.16 10:44 Сейчас в теме
(53) dlebedev8,
Например, если делать личный кабинет дилера
IMHO, будет достаточно открыть код клиентского приложения + код design-документов CouchDB
57. unpete 539 11.08.16 15:45 Сейчас в теме
(53) dlebedev8,
личный кабинет дилера к конфигурации 1С
По заказам онлайн/оффлайн для типовых УТ, КА, УПП, ERP - можем поработать совместно.
У меня есть заготовка https://github.com/oknosoft/order-online и живой демо-пример https://light.oknosoft.ru/orders/
Личные кабинены - это самое типовое и самое понятное назначение метадаты.
Еще, напрашиваются проекты "Розница" и "Мобильное рабочее место торгового представителя". По ним, так же, готов предложить совместную работу.
62. kodermax 12.08.16 11:14 Сейчас в теме
Идеи этого продукта мне очень понравились, сейчас идёт активное внедрение его в процесс заявок на закупку.
Технологии используемые в Metadata.js(NodeJs, CouchDB,...) это просто сказка, наконец-то современные технологии добрались до 1с)
Единственное, требуется активное сообщество для этого продукта, которое выстроит современную архитектуру, будет писать тесты, исправлять ошибки оперативно и добавлять красоту и новые функции.
TreeDogNight; unpete; +2 Ответить
63. user637563_alex 10.11.16 14:13 Сейчас в теме
Очень интересная работа! Желаю вам успехов!
Подскажите, для чего используется AlaSQL на стороне клиента? Ведь есть уже PouchDB..
64. unpete 539 10.11.16 14:53 Сейчас в теме
(63) user637563_alex,
для чего используется AlaSQL
AlaSQL выполняет две функции:
  • Хранение структурированных данных в озу браузера (быстрый синхронный кеш)
  • SQL интерфейс к этим данным
PouchDB отвечает за:
  • Хранение данных в indexeddb
  • Синхронизацию этих данных с CouchDB
65. ipoloskov 74 10.11.16 15:06 Сейчас в теме
66. PerlAmutor 54 21.07.17 06:37 Сейчас в теме
Скажу честно, очень устал от COM в 1С... Вроде как и кроссплатформенное уже все, но нет приходится мучаться в прямом смысле этого слова.
Почему за столько лет так и не создали обычную .dll'ку/.so для подключения к базам 1С? Зачем нужен "зоопарк" всех версий 1С и COMобъектов в системе, когда нормальные программисты все реализуют на уровне версий протоколов в одной компоненте, дорабатывая её с каждой новой версии и оставляя обратную совместимость. Даже мелкие утилиты размером в несколько десятков килобайт имеют встроенные https серверы (а иногда и целый ворох серверов) для возможности использования API, а 1С обязательно нужно использовать внешний Web сервер, с отдельным установленным плагином к этому типу сервера, чтобы хоть как-то задействовать тот же OData. Использование ActiveX InternetExplorer'a и разгребание косяков связанных с разными версиями браузера меня тоже убивает. Движки браузеров типа WebKit или Chromium внедряют в свои приложения уже со школьной скамьи... Это я пишу после недельной безуспешной попытки собрать win32ole на node.js в Windows 10/Windows7, чтобы хоть как-то их подружить. В итоге всё свелось к подключению через прекомпилированный "edge" для Node.js 6 версии, т.к. в 8 версии edge не собирается точно также. На выходе имеем плагин edge, который на языке JavaScript, передает коде на язык C#, который создает подключение к COM объекту 1С, чтобы использовать его на языке 1С... Это похоже на удаление зуба через задний проход.
ifilll; baton_pk; YPermitin; +3 Ответить
67. unpete 539 21.07.17 10:20 Сейчас в теме
(66) Всё это очень мило, но не имеет отношения к теме статьи. Metadata нужна не для подключения к базе 1с, а для разработки на javascript с использованием 1с-подобных объектов. 1с в нашем сценарии используется только для прототипирования метаданных.
1c-intelligence; torbeev; +2 Ответить
68. sag33 18.10.17 08:40 Сейчас в теме
Да, идея хорошая!....Но учитывая, что 90% "оконных" дилеров не могут найти смысловой и правовой разницы между "поставкой товара" и "доставкой товара", то продвинутые решения для личным кабинетам не смогут быть реализованы на 100%...просто уровень знаний на стороны конечного пользователя (дилера) крайне низкий!
69. unpete 539 18.10.17 11:17 Сейчас в теме
(68) Да наплевать мне на дилеров. Я работаю с заводами, у которого этих дилеров от 300 (у больших - 600). Даю заводу инструмент, а с правовыми смыслами путь они сами разбираются.
71. dumsik 23 28.10.17 05:12 Сейчас в теме
Евгений, web приложение написанное с помощью metadata.js поддерживает адаптивный интерфейс или это уже нужно допиливать? Я имею ввиду разные размеры экранов мобильных устройств.
72. unpete 539 30.10.17 10:37 Сейчас в теме
(71)
адаптивный интерфейс
В версии v0.12 разметка статическая. Визуальная часть v2.0 опирается на material-ui - там с адаптивная разметка поддержана из коробки.
73. dumsik 23 16.11.17 16:07 Сейчас в теме
(72) запутался с номерами версий на github v.2.0 это как я понял v0.12.232 ?
74. unpete 539 17.11.17 09:53 Сейчас в теме
(73) v2 - это набор пакетов, расположенный в https://github.com/oknosoft/metadata.js/tree/master/packages и публикуемый в npm с помощью Lerna
75. dumsik 23 20.11.17 15:12 Сейчас в теме
(74) мало что понял :( буду разбираться. Евгений, скажите для программиста 1с который про web разработку знает только очень поверхностно порог вхождения в metadata.js большой?
76. unpete 539 20.11.17 18:09 Сейчас в теме
(75) С освоением метадаты не будет проблем в двух случаях:
1. Имеете негативный опыт разработки на традиционных веб-технологиях. Если за плечами есть внедренная самописная crm, cms или как минимум - интернет-магазин, вам будет проще воспринять наши идеи. Вы очень быстро увидите, что метадата позволяет экономить тысячи строчек кода и сотни часов вашего времени. С точки зрения веб, метадата - очень высокоуровневый инструмент.
2. Есть реальная задача, где требуется высокая доступность данных и которую не получается решить на 1С из-за ограничений платформы. Открыв метадату, вы будете опьянены безграничной свободой, по сравнению с 1С, метадата - очень низкоуровневый инструмент.
77. genayo 09.12.17 07:56 Сейчас в теме
Как вы планируете развивать продукт с учетом http://www.cnews.ru/news/top/2017-12-08_prilozheniya_dlya_chrome_prekratili_sushchestvovanie ? Или вы не этот вид приложения используете?
78. unpete 539 09.12.17 12:14 Сейчас в теме
(77) ChromeApp - это всего лишь способ поделиться ссылкой на вебприложение. Изменения в политике Google в отношении Web Store никак не отразятся на нашем проекте.
79. genayo 09.12.17 14:04 Сейчас в теме
В этой новости также вроде как говорится, что "Ранее установленные Chrome Apps все еще работают, однако браузер Chrome потеряет необходимую для этого функциональность уже в первом квартале 2018", это тоже никак не повлияет?
80. unpete 539 09.12.17 18:50 Сейчас в теме
(79)
потеряет необходимую для этого функциональность уже в первом квартале 2018
Это про другое, мы используем только то, что есть в стандарте EcmaScript и не привязаны к Chrome. Мы просто рекомендуем использовать Chrome, т.к. в нём стандарты ES поддержаны лучше, чем в других браузерах.
При желании, вы можете запустить приложение на метадате вообще не в браузере, а на любом устройстве с поддержкой js.
81. johnnyshut23 53 09.12.17 22:33 Сейчас в теме
Спасибо большое, полезно!
82. trdm 22.05.18 15:28 Сейчас в теме
для построения дешевых высоконагруженных сервисов

вместе эти 2 слова способны убить любого менеджера по продажам.
83. unpete 539 22.05.18 19:57 Сейчас в теме
(82)
убить любого менеджера по продажам
Так я, вроде, для программистов, а не для менеджеров работаю
84. 2ncom 06.07.18 22:20 Сейчас в теме
Очень интересно! Спасибо!
85. meteorit 59 19.07.18 14:32 Сейчас в теме
Евгений, добрый день!
Демо-пример "Hello, world" смоделировали, дошли до авторизации, авторизация под пользователем "Гость" прошла, но при переходе в список "Перемещение денег" выдает ошибку (скрин). Заранее спасибо за помощь!
Прикрепленные файлы:
86. unpete 539 19.07.18 19:44 Сейчас в теме
(85) Последние 4 года показали, что идея популяризации метадаты была ошибкой. Партнёров, разделяющих мои ценности не нашлось, а задачу, сделать из нашей библиотеки инструмент для народа, мне в одиночку не решить. Сожалею, что отнял у вас время.
87. CheBurator 3409 19.07.18 20:03 Сейчас в теме
(86) НАРОДУ - нужен не инструмент, а готовые решения. Или инструмент "из коробки", по запуску которого из коробки получится готовое решение.
создавать еще один инструмент в довесок или как альтернативу или к уже существующей технологии - это интересно только для чистых программеров. В нашей (1Сной) области - чистым программеров предложенный инструмент - не интересен потому, что "чистые" 1С-программеры влияния на бизнес-процессы и выстраивание архитектуры - не имеют (нагружать себя лишним инструментарием, неприменяемым в области зарабатывания денег это или непродуктивно или только хобби). А бизнес-программисты 1С - им этот дополнительный инструмент вообще побоку. им хватает головняка и с платформой, и с конфами, и с бизнес-вопросами.

Итого: невнятное позиционирование для ШИРОКИХ масс не дало результата.
Как-то так я себе представляю.
88. yogaga 19.07.18 20:18 Сейчас в теме
(86) Да ладно, "делай что должно, и будь что будет"
89. meteorit 59 19.07.18 21:21 Сейчас в теме
(86) Спасибо за ваш ответ! Т е демо-пример не рабочий, получается?
Как я понимаю, IndexedDB нужна только для оффлайн-режима работы в браузере, может быть ее можно как-то отключить тогда и запустить только онлайн?
90. yogaga 19.07.18 21:38 Сейчас в теме
(89) Вы бы на гитхаб метадаты сходили, чтоли...
93. meteorit 59 20.07.18 13:23 Сейчас в теме
(90) Мы как раз оттуда пришли и делали установку последней сборки:
https://github.com/oknosoft/metadata.js/tree/develop/packages
95. yogaga 22.07.18 08:39 Сейчас в теме
(93) Хммм... я же отвечал на это сообщение...
91. unpete 539 19.07.18 23:12 Сейчас в теме
Позиционирование было очень внятным. Я искал людей, желающих вложиться в разработку правильных инструментов. Почему возникло мнение, что я что-то кому-то предлагаю - не понятно.
Итог, в целом - хороший. Голубой океан никуда не делся. Внешних и внутренних проектов хватит на пять жизней. Внедрённые на метадате решения подтвердили высокую эффективность выбранных технологий.
1С хвастается проектами на 1000 пользователей и считает это highload. Сейчас, мы работаем над проектом с плановой нагрузкой в миллион подключений и нет сомнений, что проект будет успешно реализован.
92. CheBurator 3409 19.07.18 23:44 Сейчас в теме
(91) это хорошо, держите в курсе, интересно
98. alexey.kutya 210 14.11.18 13:44 Сейчас в теме
Евгений, а смотрели в сторону openui5? Попытка SAP создать свой opensource framework для web. Интересный опыт. Есть статья с дискуссией о будущем этого проекта Статья. Это конечно не совсем то, что вы сделали, но есть и что-то общее.

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

Выводы: такие opensource проекты, как react, angular, node и пр. находятся на острие web developments и поддерживаются всемирным сообществом. Будут появляться новые. Попытки создать фрэймворки заточенные под конкретные задачи всегда будут иметь очень узкое локальное применение и всегда будут иметь риски морального устаревания и субъективного подхода. В результате можно пойти не той дорогой. Такие гиганты как SAP имеют право на ошибку. Отдельным энтузиастам сложнее в этом плане.

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

P.S. Это лично мое субъективное мнение, никак не претендующее на истину.
P.P.S. И да, проблема пользовательского интерфейса существует, и пока нет решения. Каждый пытается решать по своему. Понятно, что надо смотреть в сторону web технологии, как наиболее универсальной в данный момент. SAP в этом плане пошел дальше 1С, но и сравнивать их возможности некорректно.
P.P.P.S. Вам респект за такой подвиг и желание создавать продвинутые решения. Возможно еще не время для широкого принятия этой идеи. Корпоративный сектор очень консервативен в своих решениях.
Steelvan; +1 Ответить
99. unpete 539 14.11.18 16:41 Сейчас в теме
(98) я общего не вижу. Метадата - про распределенные ссылочно-типизировпнные данные. У нас есть немного UI, но качество визуальной подсистемы - так себе.
100. remai 06.02.19 18:26 Сейчас в теме
Возможно ли встроить metadata.js в готовый проект YII2, чтобы перебрасывать часть данных в бд на сайте и обратно в 1С?
Оставьте свое сообщение

См. также

Простой и красивый интерфейс

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

Разработчики мобильных приложений на платформе 1С сталкиваются с проблемой адаптации сгенерированного платформой интерфейса под удобство использования. О том, какие приемы помогут сделать интерфейс красивым и удобным, на конференции Infostart Event 2019 Inception рассказал руководитель отдела мобильной разработки компании «1С-Рарус» Никита Бакшеев.

30.01.2020    5801    Baksheev-Nikita    29       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

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

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

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

19.12.2019    5282    ivanov660    12       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Проброс IP-адреса клиента в http-сервис 1С. Реализация для IIS

Статья Системный администратор Программист Нет файла Windows Бесплатно (free) WEB Администрирование веб-серверов IIS

Настраиваем веб-сервер IIS для передачи в 1С IP-адреса клиента, вызвавшего http-сервис. Разбираемся с этим же вопросом при использовании фронтэнд вебсервера на примере nginx.

01.12.2019    3224    -vito-    5       

Может ли оптическое распознавание текста (OCR) работать так же быстро, как сканирование штрих-кода, и что для этого надо сделать? UPD 11.12.19 вошло в релиз https://infostart.ru/public/1166378/

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

В статье рассматривается решение важной проблемы – сканирование объектов, на которые не нанесен или не может быть нанесен штрихкод или RFID по технологическим причинам, но при этом присутствует номер, артикул или какой-либо другой цифро-буквенный идентификатор. Т.е. распознавание текста с целью идентификации объектов учета. Приложено короткое видео с примерами работы. UPD: функции встроены в конструктор https://infostart.ru/public/1166378/

28.11.2019    3049    informa1555    33       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Swagger для 1С.

Статья Системный администратор Программист Нет файла Бесплатно (free) OneScript WEB

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

21.10.2019    6508    botokash    27       

Фреймворк для создания бизнес web-приложений

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

Для создания систем, решающих узкие бизнес задачи, использовать 1С бывает нецелесообразно. Хочу представить альтернативу - web фреймворк katejs. Будет интересно также тем, кто интересуется web разработкой на современном javascript.

15.10.2019    3526    nep_i    24       

Открыто голосование за доклады на INFOSTART MEETUP Krasnodar Промо

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

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.)

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB Облачные сервисы, хостинг

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

14.10.2019    6454    uno-c    25       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Самый примитивный HTTP-сервис в мире

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

Пошаговый пример создания простейшего HTTP-сервиса, который генерирует HTML-страницу для поиска товара, а также реализует асинхронное получение данных из базы.

12.09.2019    11764    YPermitin    26       

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

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

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

23.08.2019    8104    ivanov660    22       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB Администрирование данных 1С

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    6549    Fragster    9       

1С:EDT. Первые шаги… или есть ли альтернатива конфигуратору?

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

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

15.08.2019    14607    ellavs    96       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Совсем простой обмен HTTP, 2 функции

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

Функция для вызова рест-сервиса и функция для разбора результата. Быстро, просто, универсально.

12.08.2019    5819    Yashazz    15       

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery. Продолжение

Статья Программист Расширение (cfe) v8 1cv8.cf Бесплатно (free) WEB

Получение изображений из информационной базы и отправка файлов через "фронт" на HTML/CSS/JS.

08.08.2019    5216    Sedaiko    1       

Сдача регламентированной отчетности из программ 1С Промо

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

от 1500 руб.

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

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

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

25.07.2019    7893    theshadowco    31       

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

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

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

17.07.2019    19045    ids79    27       

INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо

Краснодар станет первым в 2020 году местом, где пройдет региональная встреча IT-специалистов сообщества Инфостарт. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Стоимость участия - 5000 рублей. Цена действительна до 26.12.2019.

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

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

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

20.05.2019    15310    Evil Beaver    32       

HTML-клиент у конфигурации 1С

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

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    13652    Smaylukk    119       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Быстрый ввод неудобных символов

Статья no Нет файла Бесплатно (free) Пользователю системы Инструментарий разработчика

Использование Alt-кодов для ввода “[”, “]”, “”, “&”, “#”, “|”

15.04.2019    7010    pparshin    24       

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

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

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

14.04.2019    6822    tormozit    18       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Обновляем картинки товаров по штрихкоду с помощью мобильного приложения "Штрихконь" (Пошаговое руководство)

Статья no Нет файла Бесплатно (free) Внешние источники данных WEB

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

10.04.2019    3622    inord777    2       

Парсинг сайтов из 1С на примере ломбарды.рф с помощью XPATH для ДокументDOM

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

На всякую хитрую гайку всегда найдется болт с резьбой (с)

01.04.2019    10808    starik-2005    33       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Решение проблемы связи с сайтом, использующим протокол TLS 1.2

Статья Системный администратор Программист Нет файла Windows Бесплатно (free) WEB

Последнее время все чаще ко мне обращаются клиенты, у которых возникли проблемы при обмене с сайтом. Текст ошибки, как правило, имеет вид: - Ошибка инициализации SSL-соединения - Соединение с сервером было неожиданно прервано

19.03.2019    6225    zsrg    0       

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

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

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

28.01.2019    12776    stas_ganiev    25