• Каких мы ищем разработчиков для разработки платформы 1С: Предприятие

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

      Если коротко ищем тех, кто:

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

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

      • Какие вам нужны разработчики?
      • Что спрашиваете на интервью?
      • Какие вопросы предпочитаете на интервью – теоретические или практические?
      • Должен ли программист писать тесты?
      • Задаете ли вопросы не из профессиональной сферы деятельности?
      • Задаете ли логические задачи на сообразительность, не связанные непосредственно с программированием? Типа задачи про шарик с гелием в машине:


      В каких областях у нас могут работать программисты в разработке платформы? Ну например:
      Читать дальше →
    • Как мы перевели 10 миллионов строк кода C++ на стандарт C++14 (а потом и на C++17)

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

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


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

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

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

        image
        Читать дальше →
      • Интеграция HTML движка в нативное Windows приложение – выбор и архитектура

          Как мы перевели работу с HTML в 1С:Предприятии с Internet Explorer на WebKit

          Возможность отображать HTML в формах 1С появилась в платформе 1С:Предприятие в 2003 г. версии 8.0. Для работы с HTML в платформе использовался движок браузера Internet Explorer (1С:Предприятие на тот момент работало только под Windows). Движок браузера использовался платформой для утилитарных целей. Например, писать с нуля полноценный элемент для редактирования текста а-ля Word – с возможностью различных цветовых и шрифтовых решений, вставки картинок и т.д. – весьма непростая задача. А если задействовать для этих целей HTML и использовать в качестве средства отображения движок интернет-браузера, то задача сильно упрощается. Также при помощи движка был реализован ряд других механизмов (например, отображение справочной информации) и элементов (например, Планировщик).

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

          Время шло, платформа стала поддерживать сначала Linux, а потом и macOS. Для работы с HTML в этих ОС Internet Explorer не подходил по понятным причинам; в Linux нами был задействован WebKitGTK+, а в macOs — библиотека на основе Cocoa. Таким образом, единство кодовой базы для разных ОС (которое мы стараемся поддерживать для клиентского кода на уровне 95%) в этой области было нарушено. Ну и движок IE к этому времени стал источником ряда проблем.
          image
          Читать дальше →
        • Как и зачем мы написали высоконагруженный масштабируемый сервис для 1С:Предприятия: Java, PostgreSQL, Hazelcast

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

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

            СВ использует распределенное хранилище Hazelcast и поисковую систему Elasticsearch. Еще речь пойдет о Java и о том, как мы горизонтально масштабируем PostgreSQL.
            image
            Читать дальше →
          • Как мы в «1С: Предприятии» решаем системы алгебраических уравнений

              Работа с числовыми матрицами в целом и решение систем линейных алгебраических уравнений в частности — классическая математическая и алгоритмическая задача, широко используемая при моделировании и расчёте огромного класса бизнес-процессов (например, при расчёте себестоимости). При создании и эксплуатации конфигураций «1С:Предприятия» многие разработчики сталкивались с необходимостью вручную реализовывать алгоритмы расчёта СЛАУ, а после — с проблемой длительного ожидания решения.

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

              Он оптимизирован для использования на данных, имеющих разреженную структуру (то есть содержащие не более 10% ненулевых коэффициентов в уравнениях) и в среднем и в лучшем случаях демонстрирует асимптотику Θ(n⋅log(n)⋅log(n)), где n — количество переменных, а в худшем (при заполненности системы ~100%) его асимптотика сопоставима с классическими алгоритмами ( Θ(n3)). При этом на системах, имеющих ~105 неизвестных, алгоритм показывает ускорение в сотни раз по сравнению с реализованными в специализированных библиотеках линейной алгебры (например, superlu или lapack).

              image
              Важно: статья и описанный алгоритм требуют понимания линейной алгебры и теории графов на уровне первого курса университета.
              Читать дальше →
            • Автоматизация при разработке платформы «1С: Предприятие»

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

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

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

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


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

                image
                Читать дальше →
              • «Открытое Воскресенье» на партнерском семинаре «1С»

                  Стало уже доброй традицией организовывать «Открытое воскресенье» в рамках осеннего партнерского семинара «1С». В этот день мероприятие могут посетить все, кому интересны наши технологии и решения. В этом году мы также будем ждать всех желающих, зарегистрировавшихся на мероприятие, 1 октября в концертном зале гостиницы «Космос» (Москва, проспект Мира, дом 150).

                  В рамках «Открытого воскресенья» специалисты, занимающиеся внедрениями и разработкой программных продуктов, смогут прослушать доклады ведущих разработчиков платформы, прикладных решений и сервисов «1С: Предприятия», а также лично пообщаться на вернисаже с разработчиками фирмы 1С и партнерами, авторами тиражных решений 1С-Совместно.
                  Читать дальше →
                • Отчетность в 1С: Система Компоновки Данных (СКД), идея и архитектура

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

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

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

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

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

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

                        На примере мобильного приложения «1С:Управление нашей фирмой» (сокращенно УНФ) я хочу показать эволюцию мобильного бизнес-приложения от его возникновения и выхода самой первой версии до сегодняшнего дня. Сейчас у этого приложения более 220 000 скачиваний; приложение бесплатное, но в нем есть платные опции (реализованные через встроенные покупки).

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

                      Самое читаемое