TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 9.01K subscribers
Post #4715 2.5K
1С:Предприятие и многопоточность. Часть 3. Файловая база и тонкий клиент

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

Но никакого противоречия здесь нет. Потому что тонкий клиент для файловой базы, скажем так, «ненастоящий». И если вы скачаете отдельно дистрибутив тонкого клиента (проигнорировав предупреждение) то работать он с файловой базой не будет. Вам придется полноценно установить платформу.

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

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

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

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

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

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

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

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

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

Особенно остро встает этот вопрос при переносе на платформу 8.3 старого кода, написанного для обычных форм или вообще для 7.7.

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

Дополнительные материалы:

🔹 1С:Предприятие и многопоточность. Часть 1. Общие вопросы

🔹 1С:Предприятие и многопоточность. Часть 2. Файловая база
  • 👍 24
  • ❤ 4
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 →