Почему после аварийного завершения работы в 1С пропадают иконки и возникают ошибки модулей в файловой базе?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

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

Диагностика симптомов: о чем говорит поведение программы

Прежде чем приступать к "лечению", давайте разберем симптомы, так как каждый из них указывает на конкретный слой проблемы.

  1. Пропажа картинок и появление "кружков" в интерфейсе.

    В интерфейсе "Такси" платформы 1С:Предприятие 8.3 "кружки" (цветные точки) рядом с названиями разделов вместо полноценных иконок — это не просто графический баг. Это индикатор того, что платформа автоматически переключилась в режим низкой скорости соединения. Система постоянно замеряет скорость отклика от сервера (в данном случае — скорость чтения файла базы данных по сети). Если задержки превышают определенный порог, 1С отключает "тяжелую" графику, чтобы ускорить работу.

  2. Ошибки модулей общего назначения.

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

Шаг 1. Проверка сетевой инфраструктуры и режима "Низкой скорости"

Разберем первую проблему — "кружки" в интерфейсе. Даже если в настройках пользователя (Сервис — Параметры) принудительно установлена "Обычная" скорость соединения, платформа может игнорировать эту настройку при наличии реальных сетевых проблем.

Нам необходимо исключить физические и логические проблемы сети, которые мешают стабильному доступу к файлу 1Cv8.1CD.

Действия с сетевым оборудованием и настройками Windows:

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

Шаг 2. Конфликт с антивирусным ПО

Проанализируем работу антивируса. В файловом режиме при работе 4-5 пользователей происходит интенсивный обмен данными. 1С создает множество временных файлов (`tmp`) и постоянно обращается к файлу базы.

Если антивирус на компьютере с базой начинает сканировать файл 1Cv8.1CD в момент записи данных пользователем, происходит блокировка файла. Платформа 1С воспринимает это как обрыв связи или ошибку ввода-вывода. Результат — переход в режим низкой скорости и ошибки выполнения кода.

Решение:

Добавим в исключения антивируса (на всех ПК, и особенно на "сервере"):

Шаг 3. Устранение последствий "Демонического обновления" и очистка кэша

Теперь рассмотрим ошибки кода, приведенные в примере:


Поле объекта не обнаружено (Сумма) 
{ОбщийМодуль.ОбщегоНазначенияСлужебныйКлиент.Модуль(1652)}:ИзменитьСвойствоЭлементаРасчетаПоказателей
...
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]

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

Стандартная чистка кэша (удаление папок из %appdata%\1C\1cv8) не всегда помогает, так как поврежденные настройки могут сохраниться внутри самой базы данных в системных таблицах (хранилище настроек).

Комплексная очистка:

  1. Удаление базы из списка. Попробуем самый надежный способ сброса локальных параметров запуска: полностью удалим базу из списка запуска 1С у проблемного пользователя и добавим её снова, прописав путь к папке заново. Это гарантированно создает новую папку с кэшем (новый GUID базы).
  2. Очистка пользовательских настроек. Если ошибка сохраняется, нам нужно очистить настройки внутри программы. Зайдем в базу под пользователем, у которого нет ошибок (или с "сервера"). Перейдем в раздел Администрирование — Настройки пользователей и прав — Очистка настроек. Выберем проблемного пользователя и очистим все настройки (особенно настройки форм и отчетов). Часто поврежденная структура формы, сохраненная в настройках, вызывает ошибку при попытке её отрисовки.

Шаг 4. Проблема с временными файлами Windows (Oplocks)

В обсуждении справедливо заметили важность того, как именно "расшарена" папка. В операционных системах Windows используется механизм Opportunistic Locking (Oplocks). Он позволяет клиенту (рабочей станции) кэшировать данные файла локально, чтобы снизить нагрузку на сеть. Однако при одновременном доступе к базе 1С это зло.

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

Рекомендация:

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

Также проверим настройку общего доступа к папке: убедимся, что не включено "Кэширование" (Offline Files). В свойствах папки на вкладке "Доступ" — "Настройка" должно быть отключено разрешение кэшировать файлы.

Шаг 5. Проверка печатных форм

В тексте ошибки фигурирует модуль ОбщаяФорма.ПечатьДокументов. Это может указывать на проблему не с самой программой, а с конкретным макетом печатной формы.

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

Как исправить:

  1. Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм.
  2. Проверим, есть ли макеты с иконкой "карандаша" (измененные пользователем).
  3. Если такие есть, попробуем для теста вернуть их к стандартному состоянию (кнопка "Использовать стандартный макет") и проверим печать.

Шаг 6. Отключение аппаратного ускорения

Иногда "кружки" и графические артефакты вызваны конфликтом платформы 1С с драйверами видеокарты при использовании аппаратного ускорения отрисовки интерфейса (DirectX/OpenGL), особенно на старых видеокартах или при работе через RDP.

Попробуем отключить аппаратное ускорение. Для этого можно добавить специальный параметр в конфигурационный файл conf.cfg (находится в папке bin установленной платформы или в conf):

DisableHWAcceleration=1

Это заставит 1С использовать программную отрисовку интерфейса, что исключит влияние видеодрайвера.

Заключение и рекомендации по архитектуре

Если мы выполнили все описанные действия, но проблема периодически возвращается, стоит прислушаться к совету из обсуждения: "Вам бы в перспективе мини-сервер на 5 пользователей. И публикация через веб".

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

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

← На главную