Многие технические специалисты, работающие с историческими системами на платформе 1С:Предприятие 7.7, сталкиваются с аномальной ситуацией: при внесении минимальных изменений в структуру справочника (например, изменении длины наименования или добавлении реквизита) процесс сохранения конфигурации затягивается на 10 и более часов. Это происходит даже в тех случаях, когда физический размер файла справочника .dbf невелик (всего несколько десятков мегабайт).
В этой статье мы подробно проанализируем причины такого поведения системы на современных операционных системах (Windows Server 2016 и выше), разберем влияние индексов на производительность и рассмотрим пошаговые методики ускорения реструктуризации.
Проанализируем ситуацию: платформа 1С 7.7 использует движок CodeBase для работы с базами данных формата DBF. Этот движок создавался в эпоху, когда файловые операции и механизмы блокировок в Windows работали иначе. Основные факторы замедления сегодня:
.cdx, что при большом количестве записей занимает основное время.Рассмотрим самый простой и безопасный способ ускорения реструктуризации — минимизацию объема пересчитываемых данных. Индексы в 1С 7.7 имеют жесткое ограничение: длина индексного ключа не может превышать 240 символов. Если у вас справочник Номенклатура имеет Наименование длиной 100 знаков и по нему стоит признак сортировки, это создает огромную нагрузку.
Выполним следующие шаги:
ВыбратьЭлементыПоРеквизиту().Важное замечание: Не путайте возможность интерактивной сортировки в списке и программный индекс. Если данных много, каждый лишний индекс замедляет запись в справочник в разы.
Часто кажется, что программа «повисла», хотя она работает. Чтобы видеть реальный прогресс выполнения реструктуризации на современных ОС, воспользуемся небольшой хитростью.
Разберем, как включить обновление строки статуса:
1cv7s.exe).После этого при сохранении конфигурации в нижней строке Конфигуратора будет динамически обновляться процент выполнения и количество обработанных записей, что позволит вам оценить реальное время завершения операции.
Если справочник очень большой и штатная реструктуризация занимает непозволительно много времени, применим метод «обмана» конфигуратора. Суть заключается в том, чтобы подготовить файлы базы данных заранее, тогда 1С увидит, что структура уже соответствует нужной, и пропустит этап долгого копирования данных.
Алгоритм действий:
SC1234.dbf). Это можно узнать, открыв файл 1cv7.dd обычным текстовым редактором.SC1234.dbf новое поле с нужным типом и длиной, которое мы планировали создать в Конфигураторе.1cv7.dd, добавив описание нового поля в соответствующий блок..dd и физического .dbf, поймет, что они идентичны, и просто обновит конфигурацию без многочасового процесса Pack и Reindex.Проанализируем технические настройки сервера, которые могут мешать быстрой записи файлов 1С 7.7. На Windows Server 2016 рекомендуется выполнить следующие манипуляции:
1cv7.exe / 1cv7s.exe в исключения сканирования. Защитник Windows (Windows Defender) может проверять каждый временный файл, создаваемый при реструктуризации.
fsutil behavior set disablelastaccess 1
.dbf.Проблема 10-часового сохранения конфигурации в 1С 7.7 — это не приговор, а следствие конфликта старых алгоритмов работы с данными и новых механизмов ОС. Выполняя оптимизацию индексов, используя режим совместимости для контроля процесса и, в крайних случаях, прибегая к прямому редактированию структуры файлов, можно сократить время обслуживания системы в десятки раз.
Помните: всегда делайте архивную копию перед любыми операциями со структурой базы данных, особенно при работе в формате DBF!