TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 9.01K subscribers
Post #4675 3.06K
1С:Предприятие и многопоточность. Часть 1. Общие вопросы

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

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

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

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

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

Фронтенд, в терминах 1С – Клиент – выполняет взаимодействие с пользователем, выводит ему полученные от Сервера данные и передает Серверу данные, введенные пользователем для обработки. Также выполняет несложные вычисления, не требующие обращения к хранимым в СУБД данным.

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

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

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

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

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

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

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

Да, с точки зрения айтишника в вакууме это может быть смешно и непонятно, ведь можно…

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

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

Но значит ли это, что 1С:Предприятие не умеет использовать все возможности современных систем с их многопоточностью и многоядерностью? Вовсе нет, но об этом поговорим в следующих заметках цикла.
  • 👍 38
  • 🤡 2
  • 🥱 2
  • ❤ 1
  • 🤝 1
More from @interface31
  1. Oct 10, 2026Родина слышит Данная заметка написана на злобу дня, в противовес расхожему мнению, что чер…
  2. Oct 10, 2026Post #6864
  3. Oct 10, 2026Post #6863
  4. Oct 10, 2026Post #6860
  5. Oct 9, 2026Роутеры Mikrotik и Wi-Fi В комментариях некоторые читатели удивились, мол почему мы назвал…
  6. Oct 9, 2026Post #6858
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →