Как устранить визуальные искажения и перемешивание строк в подборе номенклатуры в 1С 7.7?

Программист 1С v7.7 1С:Комплексная автоматизация Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

Шаг 1. Перестроение поврежденных индексных файлов базы данных

Основная причина рассинхронизации отображаемых строк и их расчетных реквизитов кроется в повреждении индексов таблиц базы данных. В файловом режиме (DBF) таблицы связаны с индексными файлами с расширением CDX. Если индекс частично поврежден, позиционирование курсора выборки сбивается. Выполним полное перестроение индексов:

  1. Завершим все активные пользовательские сеансы работы с информационной базой.
  2. Создадим резервную копию каталога базы данных перед выполнением любых сервисных операций.
  3. Перейдем в каталог информационной базы и удалим все файлы с расширением *.cdx. Сами файлы таблиц *.dbf трогать нельзя.
  4. Запустим платформу 1С:Предприятие 7.7 в монопольном режиме под учетной записью с правами администратора.
  5. При входе система зафиксирует отсутствие индексных файлов и автоматически запустит процесс полной реиндексации таблиц.

После завершения реиндексации проверим работу подбора номенклатуры. В большинстве случаев пересоздание файлов *.cdx ликвидирует сдвиги записей и нормализует выборку.

Шаг 2. Контроль критического размера таблиц DBF и риск превышения лимита 2 ГБ

Выясним причину нестабильности системы при больших объемах базы данных. Встроенный табличный движок платформы 7.7 (CodeBase) имеет жесткое ограничение: размер одного файла DBF или CDX не может превышать 2 ГБ (2 147 483 647 байт). Если размер таблицы приближается к этому значению, чтение и модификация данных начинают давать сбои, приводя к визуальным артефактам и падению платформы.

Проанализируем размеры ключевых файлов в каталоге базы данных. Особое внимание следует обратить на таблицу бухгалтерских итогов 1SBKTTL.DBF и журнал проводок 1SENTRY.DBF. Если файл 1SBKTTL.DBF достигает размера более 1.5 ГБ, база находится в критической зоне риска. Неправильно настроенная глубина аналитики или накопление незакрытых остатков приводят к экспоненциальному росту записей итогов.

Шаг 3. Оптимизация аналитики и пересчет бухгалтерских итогов

Если в комплексной конфигурации размер таблицы итогов 1SBKTTL.DBF превышает размер проводок, в системе накапливаются пустые остатки по субконто. Рассмотрим, как уменьшить объем данных:

  1. Откроем оборотно-сальдовую ведомость по счету 41 и проверим корректность аналитического учета. Распространенная ошибка — приходование номенклатуры с одной аналитикой (например, по определенной партии или контрагенту), а списание — с другой. Из-за этого образуются встречные «хвосты», которые переносятся из периода в период и раздувают итоги.
  2. В конфигураторе пересмотрим необходимость ведения детальной номенклатурной аналитики на счетах учета, если количественный и партионный учет уже параллельно ведется по оперативным регистрам конфигурации.
  3. В режиме «Конфигуратор» отключим неиспользуемые отборы по счетам, чтобы сократить размер вспомогательной таблицы 1SACCSEL.CDX.
  4. В режиме «Предприятие» в меню «Операции» откроем «Управление бухгалтерскими итогами» и выполним полный пересчет итогов. После свертки незакрытых остатков размер файла 1SBKTTL.DBF существенно уменьшится.

Шаг 4. Настройка терминального доступа (RDP) и графической подсистемы

Поскольку 1С 7.7 использует устаревший интерфейс GDI, работа через службы удаленных рабочих столов на современных серверных операционных системах может вызывать артефакты кэширования графики. Разберем настройки клиента RDP для устранения визуальных сбоев:

  1. В свойствах ярлыка подключения удаленного рабочего стола на клиентских компьютерах перейдем на вкладку «Взаимодействие» (Experience).
  2. Снимем флажок «Постоянное кэширование точечных рисунков» (Persistent bitmap caching). Поврежденный локальный кэш растровых изображений в клиенте RDP часто является виновником того, что строки таблицы перекрывают друг друга до момента принудительного клика.
  3. Очистим кэш терминального клиента, удалив файлы bcache*.bmc в каталоге %LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache.
  4. Отключим эффекты сглаживания шрифтов и визуальные стили в параметрах RDP-подключения, чтобы снизить нагрузку на обработчик оконных сообщений.
  5. Убедимся, что на терминальном сервере в групповых политиках включена изоляция временных каталогов для каждого пользовательского сеанса (параметр использования раздельных папок TEMP).

Шаг 5. Альтернативные пути масштабирования системы

Если информационная база продолжает расти, а регулярное перестроение индексов лишь временно маскирует проблему, рассмотрим фундаментальные варианты модернизации:

Во-первых, обновим платформу с устаревшего релиза 7.70.025 до финального 7.70.027, в котором исправлены ошибки выделения памяти и утечки дескрипторов GDI при длительных терминальных сессиях.

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

В-третьих, запланируем перевод базы на клиент-серверную архитектуру Microsoft SQL Server, что полностью снимает фатальное ограничение размера таблиц в 2 ГБ и исключает сбои индексов CDX.

← На главную