Свертка информационной базы в платформе 1С 7.7 — это всегда ответственный и трудоемкий процесс, особенно если учет ведется в распределенной базе данных (УРИБ/РБД) на файловой СУБД DBF. Часто после успешного проведения свертки администраторы и разработчики сталкиваются с необъяснимым поведением системы: в файлы обмена с периферийными базами (ПБ) внезапно начинают сыпаться старые документы (например, реализации пятилетней давности), которые никто не редактировал. Это приводит к резкому торможению автообмена и перегрузке каналов связи.
В этой статье мы подробно разберем, почему возникает эта проблема, как устроен механизм авторегистрации изменений в УРИБ 1С 7.7, почему раздуваются файлы итогов регистров и таблицы регистрации, а также как настроить стабильный обмен на современных операционных системах Windows Server x64.
---
Выясним главную причину, по которой документы «от царя Гороха» (например, за 2016 год) начинают выборочно попадать в файлы обмена после запуска обновленной системы. В типовой конфигурации «Торговля и склад 7.7» (ТиС) ключевым механизмом является партионный учет товаров.
Рассмотрим, что происходит, когда пользователи начинают работать в новой, свернутой базе:
Реализация или ОтчетККМ) система списывает товар со складов.ПартииНаличие выступает элемент справочника Партии, у которого есть реквизит ДокументОснование. Этим документом-основанием как раз и является старая приходная накладная или реализация (например, за 2016 год).<Объект не найден>, система принудительно регистрирует в таблице изменений сам документ-основание (ту самую реализацию 2016 года) и отправляет его в обмен.Решение проблемы: Это штатное поведение системы. Если старые партии физически остались в базе (например, на остатках числятся незакрытые старые партии), система будет отправлять документы-основания в ПБ при первом же их движении. Чтобы избежать этого, перед сверткой необходимо тщательно выверить и «схлопнуть» остатки по партиям, перенеся их на один служебный документ ввода остатков, и полностью избавиться от ссылок на документы прошлых периодов.
---
Проанализируем еще одну частую проблему: файл движений регистра партий (RA*) на центральной и периферийных базах весит примерно одинаково, а вот файл итогов и остатков (RG*) на периферийных базах оказывается в два раза больше, чем на ЦБ.
Здесь играют роль два фактора:
RG* стремительно раздувается.Для исправления ситуации выполним полный пересчет итогов по конкретному регистру. Разберем по шагам, как инициировать полный пересчет итогов для одного регистра (например, партий), чтобы не тратить время на пересчет всей базы:
RGXXXX.dbf/cdx и RAXXXX.dbf/cdx, где XXXX — внутренний идентификатор регистра в файле 1cv7.dd).RGXXXX.dbf и его индекс RGXXXX.cdx, оставив файл движений RAXXXX.dbf.RGXXXX.dbf с нуля, удалив все незакрытые пустые записи. Размер файла существенно уменьшится.---
Таблица 1supdts.dbf хранит информацию обо всех измененных объектах, которые ожидают отправки в периферийные базы. В процессе интенсивного обмена этот файл может раздуваться до огромных размеров (в сотни мегабайт), хотя активных записей в нем может быть всего несколько десятков.
Это связано со спецификой работы СУБД DBF. При успешном завершении обмена 1С помечает записи в 1supdts.dbf как удаленные (в начале строки ставится символ *), но физически строка остается в файле и продолжает занимать место на диске.
Решение проблемы:
Регулярно проводите операцию упаковки таблиц. Это можно сделать штатными средствами 1С:
Если вам требуется очистить зависшие или ошибочные регистрации изменений вручную (когда обмен завершен, файлы обмена пусты, но таблица изменений забита «мусором»), можно использовать DBF-редакторы для выполнения команды ZAP или PACK для файла 1supdts.dbf. После этого размер файла мгновенно уменьшится до минимальных 70-80 КБ.
---
Разберем важную системную проблему, упомянутую в обсуждении. При работе 1С 7.7 в терминальном режиме на современных 64-битных операционных системах (начиная с Windows Server 2008 x64) часто наблюдается сбой, при котором система «гоняет по кругу» одни и те же старые документы в обмене.
Причина кроется в кодировке и сортировке (OrdNoChan):
Платформа 1С 7.7 чувствительна к кодовой странице и региональным настройкам ОС. Если коды информационных баз в УРИБ заданы кириллицей (например, префиксы баз ЦБ, ПБ1, ПБ2), то из-за различий в механизмах сравнения строк и сортировки на уровне ядра Windows x64 1С 7.7 некорректно обрабатывает подтверждения приема пакетов от периферийных баз.
При получении файла ответа система не может сопоставить имя базы-отправителя, из-за чего записи в таблице 1supdts.dbf не помечаются как отправленные. При следующем сеансе автообмена эти же документы снова выгружаются в транзакционный файл, создавая бесконечный цикл передачи неактуальных данных.
Рекомендации по устранению сбоя:
CB, PB1, PB2).dbfnocollate.lst (или примените патч отключения проверки кодовой страницы OrdNoChan в конфигураторе).Соблюдение этих правил позволит вам избежать зависания транзакций обмена и гарантирует стабильную, быструю работу распределенной системы 1С 7.7 даже после масштабных процедур свертки данных.