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

За примером далеко ходить не нужно: у одного из наших клиентов сеть магазинов верхней одежды. Бизнес сезонный: в обычное время покупателей не так много, но дважды в год в магазинах наплыв покупателей и очереди стоят, даже когда работают все кассы. Если в этот момент зависнет 1С, на которую завязаны все сканеры и кассовое оборудование — продажи встанут в прямом смысле слова. Если все оперативно не восстановится — люди просто уйдут, и вся сеть потеряет выручку.

Меня зовут Алексей Садовенко, я больше 17 лет занимаюсь системным администрированием, десять из которых — руковожу собственной компанией. И в этой статье я расскажу, как этого избежать и что делать, если ваша 1С-ка тоже виснет или работает непозволительно медленно.

Когда зависает 1С

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

  1. Проблемы при запуске: 1С либо медленно открывается, либо не запускается вовсе.

  2. Программа зависает при попытке выгрузить отчет.

  3. Зависает 1С при обновлении.

  4. Все виснет и тормозит при работе с документами 1С.

  5. Фоновые задания перестают выполняться.

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

Почему 1С зависает: разбор основных причин

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

Возможные технические проблемы:

  • Тормозит сервер. Запросы на обработку и обмен данными могут занимать длительное время. Это замедляет все рабочие процессы и становится невозможно оперативно получить информацию о товарах или сгенерировать отчет.

  • Зависает 1С Сервер. В этом случае база 1С может быть недоступна вообще, или сотрудники не смогут работать в программе.

  • Нестабильная сеть. Даже если сервер и база 1С работают нормально, то проблемы с сетью, либо некорректная настройка сетевого оборудования могут помешать корректной работе программы.

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

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

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

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

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

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

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

  4. Интеграторы нередко отмахиваются от клиентов фразами вроде: «Тормозит? Просто купите сервер помощнее», — и оставляют компании один на один с их проблемами.

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

Как с этим бороться

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

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

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

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

Схематично структуру бизнеса можно представить следующим образом:

10 магазинов и 3 офиса (в составе которых в том числе производства и склады) — масштаб крепкого среднего бизнеса, который уже перерос стартовые решения.

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

Для этого нужно:

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

  2. Защищенный VPN-туннель, который объединяет сеть всех объектов организации: и офисов, и точек продаж.

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

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

Архитектура ИТ-инфраструктуры в этом случае должна выглядеть примерно так:

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

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

Серверная инфраструктура

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

Сервер 1:

  • виртуальный gate для доступа к WAN,

  • службы удаленных рабочий столов,

  • файловый сервер,

  • домен-контроллер.

Сервер 2:

  • SQL-сервер,

  • домен-контроллер,

  • vpn-сервер.

Сервер 3:

  • кластер серверов 1С,

  • сервер резервного копирования,

  • сервер мониторинга.

Со стороны дата-центра сервера объединили в локальную сеть.

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

Для стабильной и быстрой работы 1С важно не количество ядер процессоров на серверах, а их тактовая частота и наличие быстрых SSD-дисков, желательно с использованием RAID. Благодаря этому можно значительно сэкономить, так как для этих нужд достаточно процессоров Ryzen 7/9, и нет необходимости переплачивать за более дорогое оборудование.

Сетевая инфраструктура, удаленный доступ, VPN

Для маршрутизации и гибкой настройки фильтрации трафика мы используем комплекс из оборудования Mikrotik и виртуальных шлюзов Mikrotik CHR. Используем именно его, так как Mikrotik:

  • дает возможность легко масштабировать и адаптировать систему под текущие потребности и задачи,

  • предоставляет оптимальный набор функций: VPN, маршрутизацию, QoS, маркировку трафика и другие,

  • удобное сочетание физического оборудования и виртуальных сред.

По нашему опыту, Mikrotik является оптимальным решением благодаря сочетанию цены, качества и функционала. Но мы также часто используем оборудование других вендоров в сочетании с PfSense или с нуля настроенными виртуальными машинами на Linux.

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

Между дата-центрами и офисами мы обычно настраиваем протоколы L2TP+IPSec и SSTP. Также используем Wireguard для быстрого переключения на случай блокировок VPN-сервисов, которые в сегодняшней реальности, увы, не редкость.

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

К слову, так как работать через VPN должны удаленные сотрудники, то конечно же, именно они максимально сопротивляются этому нововведению. Но ничего не поделаешь: безопасность есть безопасность, и с этим небольшим неудобством придется смириться.

Базы данных

Для управления базами данных SQL мы используем MS SQL Server и PostgresPro. При этом PostgresPro является более оптимальным решением на сегодняшний день с точки зрения скорости работы, функционала и стоимости обслуживания.

Кластер серверов 1С чаще всего выстроен на базе Windows Server, поскольку 1С изначально разрабатывалась для этой системы, и она более привычна для обслуживания. Однако учитывая текущую ситуацию с импортозамещением, мы все чаще используем Linux и, в целом, не испытываем особых трудностей.

Резервное копирование

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

Важно делать: 

  • копии дампов баз SQL,

  • резервные копии серверов/виртуальных машин.

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

Мониторинг

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

У нас все работает на Zabbix, который автоматически создает заявки в HelpDesk при проблемах, а также дополнительно уведомляет о них через Telegram.

Как только что-то не так с резервными копиями, производительностью, доступностью оборудования, мы сразу получаем заявку и уведомление — и тут же начинаем работу над исправлением проблемы.

Скорость реакции и решение проблемы — ключевые параметры с точки зрения бизнеса, так как даже небольшое промедление здесь может стоить больших денег.

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

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

Несколько выводов в завершение

В этой статье я сознательно сконцентрировался на ИТ-инфраструктуре и ее роли в решении проблем с работой 1С, и не писал про отдельные лайфхаки по их устранению.

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

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

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

Комментарии (27)


  1. ildarz
    18.09.2024 13:27
    +3

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

    Как интересно. Лично я бы с удовольствием почитал про большую оптимальность функционала (!) Postgres в разрезе 1С, равно как и посмотрел на расчет стоимости обслуживания.


    1. AlexSadovenko Автор
      18.09.2024 13:27
      +2

      Уточнение, речь идёт о PostgresPro, а не о чистом PostgreSQL. PostgresPro — это уже оптимизированная версия для работы с 1С, которая включает патчи для повышения производительности и стабильности при работе с 1С. Дополнительно к этому есть техническая поддержка продукта и возможность без проблем приобрести ПО, с MS SQL сейчас сложно в этом плане из-за санкций. Если у вас уже есть лицензии или нужно поднять типовую конфигурацию без доработок до 100 человек, то да - "из коробки" MS SQL будет лучше по производительности и простоте внедрения\обслуживания.


  1. SGordon123
    18.09.2024 13:27

    а зачем все вязать к одному серверу и через инет - сделайте локальные кассы и торгуйте независимо....


    1. areaho0ray
      18.09.2024 13:27
      +1

      Тоже не понял. На торговой точке должен стоять локальный сервер, который будет загружать с ЦОДа номенклатуру, цены, промо и так далее и раздавать это по кассам. В случае, если касса напрямую идет к базе в ЦОД - это проблема буквально ежедневная.


      1. ildarz
        18.09.2024 13:27
        +2

        При наличии стабильной связи это вообще не проблема, зато снижение затрат на инфраструктуру точек вполне очевидное.


      1. VenbergV
        18.09.2024 13:27

        Для торговых точек, кои скорее всего ИП на франшизе, цена лицензий 1С окажется пугающей. Плюс что-то, в виде сервера.

        Хотя возможно подойдет Мини Сервер. На 5 подключений. Но не знаю как он работает с торговым оборудованием и отраслевыми решениями.


      1. m2377
        18.09.2024 13:27
        +3

        Так как автор упоминает торговлю розничной одеждой, почти вся одежда сейчас маркируются. Перед продажей должен быть передан апи запрос до честного знака. Для запроса нужны сертификаты с цифровой подписью. А так же документы для передачи товара, нужны документы ЭДО.

        Распределенная структура или даже РИБы здесь не подойдут. Нужна именно клиент-серверная структура.

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


        1. DvoiNic
          18.09.2024 13:27

          распределенная система с "разрешительным порядком продажи" на кассах вполне нормально работает. ЭДО тоже работает, хотя я не понимаю, зачем оно вам в кассовых узлах.


          1. m2377
            18.09.2024 13:27

            Сам работал не так давно в компании, кто торгует одеждой.

            ЭДО нужен по двум причинам:

            1) Комиссионный товар.

            2) Магазины были на разных юридических лицах.

            Так что в момент оприходования товара, нужно было формировать и подписывать ЭДО.


            1. DvoiNic
              18.09.2024 13:27

              ЭДО нужен. Но зачем он вам на кассе?


      1. Yumado
        18.09.2024 13:27
        +2

        Проблематичная схема в каждом магазине по сервачку.

        На 60 магазинах дополнительных 60 точек отказа.

        Как только отказались от сервачков в магазинах, авралы в админке стали значительно реже. И потребность в админах упала.

        А обновление ПО? по 60 магазинам проверить 60 сервачков.

        Не рационально.

        Но если у вас план не быть уволенным. Остаться обновляльщиком.

        Тогда конешн.


        1. AlexSadovenko Автор
          18.09.2024 13:27
          +1

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


    1. AlexSadovenko Автор
      18.09.2024 13:27
      +2

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


  1. VenbergV
    18.09.2024 13:27
    +1

    Ваша статья вызвала неоднозначное впечатление. У вас есть некоторая непоследовательность. Типичная для неаккуратного маркетинга.
    Вы в технические проблемы записываете офисный пк и тут же предлагаете пользовательские Ryzen.
    У вас в причинах зависания 1С описывается отсутствие средств на модернизацию и поддержку. А вы, простите, за бесплатно готовы провести все работы и обеспечивать долгосрочную работу инфраструктуры?
    Ни в коем случае не хотел вас обидеть, но внимательный руководитель очень плохо отнесется к таким несовпадениям аргументации вашего, возможно прекрасного, предложения.
    P.S. Ну и очень плохо сочетается новый MS SQL/Server и борьба с нелицензионным ПО.


    1. AlexSadovenko Автор
      18.09.2024 13:27
      +1

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

      • Компании обычно уже тратят средства на обслуживание своей инфраструктуры, наша цель — помочь им делать это более эффективно. И всё верно — мы не делаем работы бесплатно)

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


  1. gennayo
    18.09.2024 13:27
    +1

    Интересно это всë начинает выглядеть, когда "магазинов" больше 1000....


  1. wwladimir
    18.09.2024 13:27

    Лет 20 назад на курсах Microsoft меня учили что

    • SQL-сервер,

    • домен-контроллер,

      вместе - недопустимое сочетание из за разных требований к кешированию дисковых операций. Сейчас что-то изменилоь?


    1. AlexSadovenko Автор
      18.09.2024 13:27
      +1

      так вместе и не ставим, это разные вм


      1. jackchickadee
        18.09.2024 13:27

        разные вм

        замечательно. пробовали ли вы оценить потерю производительности БД и сервера приложений 1С за счет виртуализации ?


        1. AlexSadovenko Автор
          18.09.2024 13:27

          Если использовать современные серверы, то потерю производительности при работе с вм вы не заметите. У нас даже бывают споры с 1с-специалистами, которые просят развернуть 1с без виртуализации, считая, что так будет быстрее. Я считаю это пережитком прошлого, поэтому предлагаем развернуть систему с использованием виртуальных машин и, если не устроит скорость, за свой счёт перенесём все на физическую машину. За все время не было случаев, чтобы нас просили это сделать.


          1. jackchickadee
            18.09.2024 13:27

            Если использовать современные серверы

            то придется платить как за современные серверы + налог на импортозамещение.

            рассмотрим другой аспект.
            если будет всплеск нагрузки на 1С типа "акция + распродажа",
            то кто лучше справится - виртуалка или bare metal ?

            ps: "Например, в ноябре 2022 года" легалки 1С кто не обновлялся тоже получили сюрприз. и облачные 1С тоже.


            1. ildarz
              18.09.2024 13:27
              +1

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


            1. AlexSadovenko Автор
              18.09.2024 13:27
              +1

              Современные сервера, это не hdd диски, процессоры не 6 поколения и память не ddr3... Сейчас на все оборудование действует налог на импортозамещение), даже на то, которое было ввезено три года назад.

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

              Не совсем понимаю причем тут 1с, которые не обновляли.


            1. Unbearability
              18.09.2024 13:27

              виртуалка или bare metal ?

              Конечно bare metal. Процентов на 10%. Можно еще 1С кластер и СУБД не разносить и поставить на одной физической машине -- за счет shared memory еще процентов 10-20% можно будет выиграть. Только вот при резком росте нагрузки это не поможет. А вот управляемость, стоимость эксплуатации, отказоустойчивость, скорость восстановления и прочее, прочее сильно пострадают.

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


  1. saag
    18.09.2024 13:27

    А в RAM-диск 1С загружать не было такого?


    1. AlexSadovenko Автор
      18.09.2024 13:27
      +1

      такого опыта нет, да и в целом может это уже и не так необходимо если использовать NVMe диски


    1. Unbearability
      18.09.2024 13:27

      А зачем? Если только файловая БД, но это история не про средние и большие нагрузки. В клиент-серверном варианте и так оперативные данные БД в оперативке в кэше.

      Что у 1С (не СУБД) требовательно к I/O я вот так сходу даже придумать не могу. Сеансовые данные разве что, но они и так мапятся в RAM.