Как стать автором
Поиск
Написать публикацию
Обновить
100.34
Делаем средства разработки бизнес-приложений
Сначала показывать

Как мы перевели 10 миллионов строк кода C++ на стандарт C++14 (а потом и на C++17)

Время на прочтение7 мин
Количество просмотров50K
Некоторое время назад (осенью 2016), при разработке очередной версии технологической платформы 1С:Предприятие внутри команды разработки встал вопрос о поддержке нового стандарта C++14 в нашем коде. Переход на новый стандарт, как мы предполагали, позволил бы нам писать многие вещи элегантней, проще и надежней, упрощал поддержку и сопровождение кода. И в переводе вроде бы нет ничего экстраординарного, если бы не масштабы кодовой базы и специфические особенности нашего кода.

Для тех кто не знает, 1С:Предприятие – это среда для быстрой разработки кросс-платформенных бизнес-приложений и runtime для их выполнения в разных ОС и СУБД. В общих чертах в состав продукта входят:


Мы стараемся по максимуму писать один код для разных ОС — кодовая база сервера общая на 99%, клиента — примерно на 95%. Технологическая платформа 1С:Предприятие преимущественно написана на C++ и ниже приведены приблизительные характеристики кода:

  • 10 миллионов строк С++ кода,
  • 14 тысяч файлов,
  • 60 тысяч классов,
  • полмиллиона методов.

И все это хозяйство надо было перевести на C++14. О том, как мы это делали и с чем столкнулись в процессе, мы сегодня и расскажем.

image
Читать дальше →

Как мы успешно прошли тест на 30 000 одновременных пользователей в 1C:ERP (и что мы подкрутили в PostgreSQL)

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров11K

Уже давно стали обыденными внедрения решений на платформе 1С:Предприятие на тысячу одновременных пользователей. Есть внедрения и более масштабные. И масштаб внедрений растёт. Поэтому мы решили убедиться, что платформа выдержит нагрузку нашего самого востребованного на крупных внедрениях решения 1C:ERP на 30 000 одновременно работающих пользователях.

Почему именно 30 000 пользователей, как мы измеряли производительность и как добились желаемой производительности — под катом.

Читать далее

Как мы в 1С работаем с различными СУБД, не привлекая внимания санитаров (зачеркнуто) разработчиков

Время на прочтение10 мин
Количество просмотров23K

Чем большее количество СУБД и ОС поддерживает какая-либо программа – тем больше у нее пользователей, и это хорошо для производителей программы. При этом нужно помнить, что поддержка каждой СУБД – это расходы на разработку и тестирование, и эти расходы хорошо бы минимизировать.

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

О том, как мы работаем без изменения кода бизнес-приложения на разных ОС – тут, с различными браузерами - тут, а как на разных мобильных ОС – здесь.

Читать далее

Как мы используем LLVM для ускорения формирования отчётов

Время на прочтение9 мин
Количество просмотров10K

Для бизнес-приложений очень важна возможность быстро сформировать нужный отчёт. Для этого, в частности, важно быстро получить результат запроса (часто – очень сложного запроса) к СУБД. Что не всегда просто, потому что с этой СУБД работают на чтение и запись тысячи (а иногда - десятки тысяч) пользователей.

 Чтобы не нагружать рабочую СУБД запросами для отчетов мы разработали механизм копий баз данных, копирующий данные (все или их часть) из рабочей БД в отдельную БД для отчетности. Пользователи могут строить отчеты на «отчетной» БД, быстрее получая результат и не нагружая рабочую базу.

 Для дальнейшего ускорения формирования отчетности мы разработали Дата акселератор — собственную SQL-совместимую in-memory базу данных, ориентированную на максимальную производительность в задачах OLAP. Дата акселератор может использоваться в качестве «отчетной БД» и позволяет существенно (иногда – на порядки) ускорить формирование отчетов.

Читать далее

Как мы анализируем потребление памяти нативными приложениями (C++, Windows, Linux)

Время на прочтение13 мин
Количество просмотров8.8K

Технологическая платформа 1С:Предприятие – это большой программный продукт (только на С++ - более 10 миллионов строк кода, а есть ещё Java и JavaScript). Подробнее про устройство платформы можно прочитать тут.

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

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

Читать далее

Про веб-клиент 1С

Время на прочтение9 мин
Количество просмотров113K
Одной из приятных особенностей технологии 1С:Предприятие является то, что прикладное решение, разработанное по технологии управляемых форм, может запускаться как в тонком (исполняемом) клиенте под Windows, Linux, MacOS X, так и как веб-клиент под 5 браузеров – Chrome, Internet Explorer, Firefox, Safari, Edge, и все это – без изменения исходного кода приложения. Более того – внешне приложение в тонком клиенте и в браузере функционирует и выглядит практически идентично.
Найдите 10 отличий (под катом 2 картинки):
Читать дальше →

Бесчеловечная работа с документами

Время на прочтение10 мин
Количество просмотров13K

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

Для этого мы разработали облачный сервис распознавания документов с использованием нейросетей и машинного обучения. Какие алгоритмы мы использовали, как учили наши нейросети, как распознавали мятые документы, почему отвергли архитектуру U-Net и использовали сети контекстной агрегации – под хабракатом.

Читать далее

Про организацию рабочего процесса

Время на прочтение12 мин
Количество просмотров44K
Привет, Хабр!
В этой статье мы расскажем, как построен процесс разработки платформы «1С:Предприятие», как мы работаем над обеспечением качества, и поделимся уроками, которые получили, создавая один из самых больших российских программных комплексов.

Читать дальше →

Как мы работаем с ресурсами в веб-приложениях

Время на прочтение14 мин
Количество просмотров7.2K

Приложения, созданные на платформе 1С:Предприятие, могут быть развернуты в трёхзвенной архитектуре (Клиент – Сервер приложений – СУБД). Клиентская часть приложения может работать, в частности, как веб-клиент, в браузере. Веб-клиент – это довольно сложный фреймворк на JavaScript, отвечающий за отображение пользовательского интерфейса и исполнение клиентского кода на встроенном языке. Одна из задач, которая стояла перед нами в ходе разработки веб-клиента – это корректная работа с различного рода ресурсами (в первую очередь – их своевременное освобождение).

Мы провели анализ существующих подходов и хотим рассказать вам об этом. Добро пожаловать под кат!

Читать далее

Отчетность в 1С: Система Компоновки Данных (СКД), идея и архитектура

Время на прочтение9 мин
Количество просмотров103K
Одна из самых важных областей бизнес-софта – это отчетность. От того, насколько легко настроить под меняющиеся потребности бизнеса (и законодательства) существующий отчет или сделать новый, может зависеть (причем не в переносном смысле!) судьба бизнеса, будь то отчет для налоговой инспекции или диаграмма зависимости спроса на товары от сезона и других факторов. Мощная и гибкая система отчетности, позволяющая легко извлечь из системы нужные данные, представить их в доступном для понимания виде, позволяющая конечному пользователю перенастроить стандартный отчет так, чтобы увидеть данные в новом свете – это идеал, к которому должна стремиться каждая бизнес-система.

В платформе «1С:Предприятие» за построение отчётов отвечает механизм под названием «Система компоновки данных» (сокращенно СКД). В этой статье мы постараемся дать краткое описание идеи и архитектуры механизма СКД и его возможностей.

image
Читать дальше →

Как мы в 1С: Предприятии работаем с моделями данных (или «Почему мы не работаем с таблицами?»)

Время на прочтение10 мин
Количество просмотров37K
В этой статье мы хотим рассказать о том, какая модель работы с данными выбрана в платформе 1С:Предприятия и почему.

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

Здесь (в этой статье) мы говорим не о техническом аспекте хранения и манипулирования данными, а об описании данных как способе проектирования приложения. Почему же данные так важны для бизнес-приложений?
Читать дальше →

Быстро сжимаем, быстро пишем и читаем! На Java

Время на прочтение7 мин
Количество просмотров13K
В ходе разработки IDE 1С:Enterprise Development Tools у нас возникла необходимость быстро оперировать с довольно большими (несколько гигабайтов) объемами данных. Если не вдаваться в детали: при интерактивной работе пользователя с IDE при переключении с одной ветки репозитория на другую нам нужно сохранить текущее состояние проекта и загрузить состояние проекта из новой ветки. Детали (и объяснение – почему счет идет на гигабайты) — в конце статьи, непосредственно к Java это отношения не имеет, кому интересно – прочтет. Ну а что касается Java, то задача выглядит так: быстро сохранить несколько гигабайт информации на диск и быстро считать несколько гигабайт информации с диска. Как мы решали эту задачу, с какими трудностями столкнулись и как их преодолели – под хабракатом.

image
Читать дальше →

Способы интеграции с 1С

Время на прочтение13 мин
Количество просмотров314K
Какие важнейшие требования предъявляются к бизнес-приложениям? Одними из самых главных являются следующие задачи:

  • Легкость изменения/адаптации логики работы приложения к меняющимся бизнес-задачам.
  • Легкость интеграции с другими приложениями.

То, как решается в 1С первая задача, было кратко описано в разделе «Кастомизация и поддержка» этой статьи; мы еще вернемся к этой интересной теме в одной из будущих статей. Сегодня же речь пойдет о второй задаче, об интеграции.
Читать дальше →

Платформа «1С: Предприятие» — что под капотом?

Время на прочтение7 мин
Количество просмотров110K
Привет, Хабр!
В этой статье мы начнем рассказ о том, как устроена внутри платформа «1С:Предприятие 8» и какие технологии используются при ее разработке.

image

Почему мы считаем, что это интересно? Во-первых, потому что платформа «1С:Предприятие 8» — это большое (более 10 миллионов строк кода) приложение на C++ (клиент, сервер и т.д.), JavaScript (веб-клиент), и, с недавних пор еще и Java. Большие проекты бывают интересны хотя бы в силу масштаба, ведь вопросы, незаметные в маленькой кодовой базе, в таких проектах встают в полный рост. Во-вторых, «1С:Предприятие» — это тиражируемый, «коробочный» продукт, а статей про такие разработки на Хабре совсем немного. А еще всегда интересно узнать, как там живут в других командах и фирмах.
Читать дальше →

Ближайшие события

Архитектура аналитических систем на платформе 1С

Время на прочтение15 мин
Количество просмотров18K

Около года назад фирма 1С выпустила свой продукт для построения аналитических систем класса Business Intelligence (BI) 1С:Аналитика. Отличие этого продукта от других BI решений в первую очередь в том, что продукт глубоко интегрирован с платформой 1С:Предприятие, поэтому 1С:Аналитика решает только свою специализированную задачу построения удобного BI интерфейса для подготовки отчетов и работы с ними. Поэтому важным вопросом для понимания продукта и его внедрения становится вопрос общей архитектуры аналитической системы, построенной с помощью 1С:Аналитики. В этой статье мы хотим кратко описать классический подход к построению аналитических систем, и как решение на базе платформы 1С соответствует такому подходу. Мы не претендуем на академическое изложение предмета, поэтому заранее просим прощение за возможную свободу в терминологии или изложении материала.

Читать далее

1С справа налево: как мы поддержали RTL в платформе 1С: Предприятие

Время на прочтение10 мин
Количество просмотров12K
Платформа 1С:Предприятие локализована на 22 языка, включая английский, немецкий, французский, китайский, вьетнамский. Недавно, в версии 8.3.17, мы поддержали арабский язык.

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

Под катом – о том, как мы поддержали RTL (right-to-left) в веб-клиенте платформы 1С:Предприятие, а ещё – одна из гипотез, объясняющая, почему арабский мир пишет справа налево.

image
Читать дальше →

Автоматизация при разработке платформы «1С: Предприятие»

Время на прочтение11 мин
Количество просмотров25K
В этой статье пойдет речь о том, как мы автоматизируем процессы разработки и тестирования технологической платформы «1С:Предприятие 8». Платформа «1С:Предприятие 8» — набор инструментов для создания бизнес-приложений и среда их выполнения. Это большой (более десятка миллионов строк кода) проект на С++, Java и JavaScript. Над ним трудятся десятки программистов, одновременно разрабатывающие и поддерживающие до 10 различных версий продукта.

Платформа работает на различных версиях ОС и БД:

  • ОС: Windows, Linux, macOS
  • СУБД: MS SQL, PostgreSQL, IBM DB2, Oracle, файловая СУБД собственной разработки
  • Мобильные ОС: Android, iOS, Windows

Поддерживает несколько видов клиентов:


Учитывая, что надо поддерживать целый ряд версий вышеперечисленных ОС, СУБД и браузеров, тестирование платформы становится нетривиальной задачей.

image

Проверяем на самих себе: как развернут и как администрируется 1С: Документооборот внутри компании 1С

Время на прочтение11 мин
Количество просмотров32K
Мы в фирме 1С широко используем собственные разработки для организации работы компании. В частности, «1С:Документооборот 8». Помимо управления документами (как следует из названия) это ещё и современная ECM-система (Enterprise Content Management — управление корпоративным контентом) с широким набором функциональных возможностей – почта, рабочие календари сотрудников, организация совместного доступа к ресурсам (например, бронирование переговорных), учёт рабочего времени, корпоративный форум и многое другое.

В фирме 1С документооборотом пользуется более тысячи сотрудников. База данных стала уже внушительной (11 млрд. записей), а это значит, что она требует более тщательного ухода и более мощного оборудования.

Как устроена работа нашей системы, с какими сложностями при обслуживании базы мы сталкиваемся и как их решаем (в качестве СУБД мы используем MS SQL Server) – расскажем в статье.

Для тех, кто впервые читает про продукты 1С.
1С:Документооборот — это прикладное решение (конфигурация), реализованное на базе фреймворка для разработки бизнес-приложений — платформе 1С:Предприятие.


image

Читать дальше →

Как разрабатываются отраслевые и специализированные решения для 1С:ERP

Время на прочтение12 мин
Количество просмотров23K
В этой статье мы попытаемся рассказать, как с помощью удаленных и территориально распределенных команд мы наладили процесс выпуска прикладных решений, расширяющих функциональность нашего продукта «1С:ERP Управление предприятием 2».
Читать дальше →

Как мы запустили программу на Java без JavaVM

Время на прочтение19 мин
Количество просмотров11K
Всем привет! В этой статье мы расскажем о том, как технология GraalVM Native Image помогла нам решить ряд задач в одном из наших новых продуктов, написанном на Java, расскажем о проблемах, с которыми столкнулись в ходе применения этой технологии, и о том, как эти проблемы решали.
image
Читать дальше →

Информация

Сайт
v8.1c.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия