Как вы понимаете основную функцию 1с автоматизация деятельности предприятия

Обновлено: 07.07.2024

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

image

Нативные приложения

  • STL (в частности, строки, контейнеры и алгоритмы)
  • множественное наследование, в т.ч. множественное наследование реализации
  • шаблоны
  • исключения
  • умные указатели (собственная реализация)

Компоненты

  • Разделение способствует лучшему проектированию, в частности лучшей изоляции кода
  • Из набора компонентов можно гибко собирать разные варианты поставки:
    • Например, инсталляция тонкого клиента будет содержать wbase, но не будет backend
    • а на сервере wbase, наоборот, не будет
    • оба варианта будут, конечно, содержать nuke и bsl
    • Предоставляет фабричные методы, позволяющие создать класс из другой компоненты зная только его название (без раскрытия реализации)
    • Предоставляет инфраструктуру умных указателей с подсчетом ссылок. За временем жизни SCOM-класса не нужно следить вручную
    • Позволяет узнать реализует ли объект конкретный интерфейс и автоматически привести указатель на объект к указателю на интерфейс
    • Создать объект-сервис, всегда доступный через метод get_service и т.д.

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

    Для поддержки сервисов SCOM предлагает дополнительную, достаточно сложную инфраструктуру. Центральным в ней является понятие SCOM-процесса, который служит контейнером для запущенных сервисов (т.е. выполняет роль Service Locator), а также содержит привязку к локализуемым ресурсами. SCOM процесс привязывается к потоку ОС. Благодаря этому внутри приложения можно вот так получать сервисы:

    Более, того переключая логические (SCOM) процессы привязанные к потоку, можно получить практически независимые с точки зрения информационного пространства приложения, выполняющиеся в рамках одного потока. Так устроен наш тонкий клиент, работающий с файловой базой — внутри одного процесса ОС находятся два SCOM-процесса, один связан с клиентом, а второй — с сервером. Такой подход позволяет унифицировать написания кода, который будет работать как на локальной файловой базе, так и в «настоящем» клиент-серверном варианте. Цена за такое единообразие — накладные расходы, но практика показывает, что они того стоят.

    На основе компонентной модели SCOM реализована и бизнес-логика и интерфейсная часть 1С: Предприятия.

    Пользовательский интерфейс

    Кстати, об интерфейсах. Мы не используем стандартные контролы Windows, наши элементы управления реализованы напрямую на Windows API. Для Linux-версии сделана прослойка, работающая через библиотеку wxWidgets.
    Библиотека элементов управления не зависит от других частей «1С:Предприятия» и используется нами еще в нескольких небольших внутренних утилитах.

    За годы развития 1С:Предприятие внешний вид контролов менялся, но серьезное изменение принципов произошло только один раз, в 2009 году, с выходом версии 8.2 и появлением «управляемых форм». Помимо изменения внешнего вида, фундаментально изменился принцип компоновки формы — произошел отказ от попиксельного позиционирования элементов в пользу flow-компоновки элементов. Кроме того, в новой модели элементы управления работают не напрямую с доменными объектами, а со специальными DTO (Data Transfer Objects).
    Эти изменения позволили создать веб-клиент «1С:Предприятия», повторяющий С++ логику контролов на JavaScript. Мы стараемся поддерживать функциональную эквивалентность между тонким и веб клиентами. В том случае, когда это невозможно, например, из-за ограничений доступных из JavaScript API (например, возможности работы с файлами очень ограничены), мы часто реализуем нужную функциональность при помощи расширений браузеров, написанных на C++. На данный момент мы поддерживаем Internet Explorer и Microsoft Edge (Windows), Google Chrome(Windows), Firefox (Windows и Linux) и Safari (MacOS).

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

    image


    Интерфейс 1С на ОС Linux

    image


    Интерфейс 1С на мобильном устройстве

    image


    Интерфейс 1С на ОС Windows

    image


    Интерфейс 1С — веб-клиент

    Open source

    Заключение

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

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


    Какие наиболее популярные направления автоматизации?

    Примеры автоматизации разработки


    Какие основные примеры автоматизации уже реализованы?

    • Одним из лучших примеров мне кажется Библиотека Стандартных Подсистем (БСП) и процесс ее внедрения. Для тех, кто не занимался объединением с БСП, я немного расскажу о процессе интеграции БСП с другими самописными конфигурациями. Этот процесс состоит из трех этапов.
      • На первом этапе мы объединяем БСП с нашей конфигурацией. При этом у нас в конфигурации оказываются модули из разных подсистем.
      • Нам же в большинстве случаев нужны лишь некоторые подсистемы, поэтому второй этап внедрения БСП – это вырезание из конфигурации тех объектов, которые нам не нужны. Этот этап выполняется автоматизировано. Вы открываете обработку, которая входит в состав Библиотеки Стандартных Подсистем, эта обработка выгружает конфигурацию в файлы, меняет текст этих файлов и загружает обратно.
      • И третий этап внедрения, который нужен не для всех подсистем, но для некоторых – например, если вы внедряете в вашу конфигурацию механизм «Внешних печатных форм», то его, кроме объединения в конфигурации, нужно еще и подключить к формам. Это – простая операция, нужно просто внести строчку кода в процедуру «ПриСоздании» формы, а также добавить несколько маленьких процедур. Для автоматизации этой операции также есть отдельная обработка, которая называется «Расстановка фрагментов кода». Вы просто запускаете эту обработку, и она сама анализирует вашу конфигурацию и вставляет нужный текст в формы.
      • Вы выбираете, какую печатную форму вы хотите вынести,
      • Копируете в эту обработку текст модуля менеджера из этой формы
      • И обработка сама:
        • Берет из состава самой себя шаблончик и вставляет в него тот текст, который нужен для подключения к механизму библиотеки стандартных подсистем.
        • Прописывает в этот текст данные о печатной форме (ее название),
        • Устанавливает, к какому документу она должна подключаться,
        • И вытаскивает из модуля менеджера те процедуры, которые нужны для работы этой печатной формы.

        Разумеется, полностью рабочую внешнюю печатную форму вы не получите, но вы получите шаблон, который достаточно просто адаптировать вручную.

        • Еще один из примеров – это автоматическое создание кода. Его можно использовать, например, для:
          • Рисования элементов форм;
          • Создания кода условного оформления;
          • И для автоматического создания схем СКД.

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

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

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

            • В платформе 8.3.6 появилась такая интересная возможность, как расширения. Они позволяют менять функциональность типовых конфигураций без изменения самих конфигураций. Однако проблема состоит в том, что сложно создать одно универсальное решение на разные конфигурации, потому что к расширению могут подключаться в разных конфигурациях разные объекты. В этом случае гораздо удобнее сделать какой-то общий шаблон расширений, а добавлять в него документы/справочники уже программно.
            • И последний пример – это перенос своих изменений при обновлениях. Это, конечно, можно делать и вручную, но удобнее такие действия проводить именно на уровне текста, особенно, если вы используете механизмы Git (ветки). В данном случае Git более правильно объединяет типовую конфигурацию с вашими изменениями. Если изменения небольшие, то в большинстве случаев обновление может пройти полностью автоматически.

            Способы создания универсальных решений


            Какие вообще есть способы создания универсальных решений?

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

            • Один из способов создания универсальных решений – это анализ метаданных. Фактически все типовые обработки используют этот способ:
              • Обработка по универсальной выгрузке данных,
              • Универсальный отчет,
              • Обработка по установке реквизитов.

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

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

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

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

                Инструменты программной работы с 1С-продуктами. Преимущества и недостатки различных подходов


                Какие есть инструменты для программной работы с 1С-продуктами?

                Есть три основных подхода:

                Давайте рассмотрим каждый из них.

                v8Unpack


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

                • Разобрать на части,
                • Изменить те части, которые мы хотим изменить,
                • И собрать обратно.

                Это, мне кажется, один из наиболее популярных способов работы с конфигурациями среди решений по автоматизации.

                Этот способ реализует утилита v8Unpack. В чем ее плюсы?

                • Это, прежде всего, простота. Эта утилита запускается в командном режиме: мы указываем ей, какой файл разбираем, и на выходе она выдает каталог с пачкой файликов.
                • Она универсальна и всеядна. Ей абсолютно все равно, на какой платформе написано ваше решение (8.1, 8.2, 8.3). Технически структура файлов 1С-решений не менялась довольно много лет.
                • И еще к плюсам этого решения относится его самодостаточность. Для изменения конфигурации с помощью v8Unpack вам не нужна платформа 1С. Достаточно просто запустить утилитку и показать ей, где файл. Она не взаимодействует ни с конфигуратором, ни с платформой. Она разбирает любой файл на файлики и собирает его обратно.
                • И последнее ее преимущество – это то, что это единственный инструмент, который умеет работать с байт-кодом. Если в вашей обработке или отчете есть модули, которые поставляются без исходного кода, то v8Unpack все равно разберет их на текстовые файлики. Разумеется, русского кода мы там не получим, но мы получим байт-код, который тоже можно анализировать и менять. Более того, этот байт-код имеющимися на Инфостарте средствами можно перевести в нормальный читабельный код. Разумеется, это возможно только в том случае, если решение не прогонялось через дополнительный софт. Если прогонялось, то восстановить полностью его обычно нельзя, но частично всегда можно.

                У утилиты v8Unpack есть и минусы.

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

                Выгрузка/загрузка XML


                Второй способ работы с 1С-разработками – это выгрузка и загрузка из XML.

                • Это официальный механизм, который рекомендуется компанией 1С и используется во всех ее продуктах, например, в БСП и в СППР. Фирма 1С гарантирует, что этот инструмент будет корректно работать в обе стороны на тех платформах, для которых он запущен.
                • Плюсом этого решения является то, что он выгружает конфигурацию в понятную структуру. У нас есть:
                  • Корневой уровень – уровень конфигурации в целом;
                  • Отдельные папки – для документов, справочников, отчетов, обработок.
                  • В каждой этой папке есть подпапка для каждого документа, для каждого справочника.

                  Работать с этой структурой намного проще, чем со структурой, выгруженной нестандартными средствами.

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

                  Ну и есть некоторые небольшие минусы в том, что:

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

                  В целом, это один их наиболее удобных инструментов – простой и понятный.

                  Eclipse


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

                  • Это – доступ к API, который разработчики давно просили. Это то, что было реализовано много лет назад в виде Снегопата, но немного функциональнее, немного лучше. Если Снегопат нам дает доступ лишь на чтение данных конфигурации, то проект Graphite, который реализован на платформе Eclipce, дает нам доступ уже к изменению конфигурации. Например, мы можем написать свой маленький плагин, который будет менять конфигурацию так, как нам нужно и без перезапуска.

                  Алгоритм пошагового автосоздания 1С-разработок


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

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

                      Заключение


                      В завершение я хочу повторить основную мысль этого доклада. Основная мысль в том, что все, что мы можем сделать вручную, мы можем делать и автоматически.

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

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

                      Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2016 DEVELOPER. Больше статей можно прочитать здесь.

                      В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

                      Бобков Олег

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

                      учет новых заказов в отделе продаж

                      Что такое ERP-система

                      ERP (Enterprise Resource Planning System) переводится как система планирования ресурсов. Это корпоративная ИС, которая позволяет вести автоматизированный учет и управление. Главная особенность — это модульность, которая охватывает все сферы деятельности и позволяет контролировать все бизнес-процессы на одной информационной площадке.

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

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

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

                      Есть и более простой способ — уже готовое ПО для бизнеса на базе самой распространенные системы 1С. Интеграция позволяет сгруппировать документы по определенным группам, а также сделать возможным не только отдельное хранение, но и полное взаимодействие, вести автоматический учет, формировать отчетность. На платформе собраны 15 подсистем, которые позволяют полностью построить управленческую деятельность без использования другого программного обеспечения. Это универсальное решение для качественной работы всех подразделений компании любого масштаба.

                      оповещение производства о новых заказах

                      1С УПП: подробная инструкция

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

                      Главные возможности программы можно найти в основных вкладках «Документы», «Отчеты» и «Справочники».

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

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

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

                      Читайте также: