1с 7 как работать

Обновлено: 08.07.2024

Когда один пользователь проводит документ, а другой - тоже пытается проводить документ, то этот второй пользователь загружает сервер непрерывным опросом блокировки. Проблема характерна для 1С:Предприятие 7.7 (DBF и SQL) и файл-серверной версии 8.0. Подробнее:
Книга знаний: Исправление ошибки 1С:Предприятие 7.7/8.0 - 100% загрузка процессора при ожидании блокировки

Потеря производительности при подключении второго пользователя

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

  • Установить сеть NetWare (где кэш работает нормально)
  • Установить программу SuperCache (для некоторых конфигураций обещается ускорение в несколько десятков раз)
  • Использовать жесткий диск со встроенным кэш-буфером и повышенной пропускной способностью (обычно – относительно дорогие модели SCSI)

Разрастается журнал транзакций SQL

Долго стартует 1С

Проблема может быть связана с включенным антивирусом Касперского, который (в старых версиях) стремится проверить файл конфигурации (MD) 1С:Предприятие 7.7, причем, делает это несколько минут. Имеет смысл отключить проверку антивирусом файлов с расширениями MD, DD, DDS, DBF, CDX, LST, TMP.

Отключить сохранение времени последнего доступа к файлам

Кеширование при записи

В проводнике выбрать диск -> Properties -> Hardware -> Properties ->Policies установить галку Enable write caching on the disk
Только если есть UPS!

Временная папка пользователя на локальном диске

Промежуточные результаты запросов 1С сохраняет в виде файлов DBF во временной папке пользователя (которая указана в настройках пользователя в Конфигураторе 1С).
Достаточно указать c:\temp или аналогичную папку, а не папку на сетевом ресурсе, чтобы промежуточные результаты сохранялись и использовались быстрее.

Отключение QoS

Сетевая карта Realtek

Оптимизация распределения памяти Windows

Дополнительные действия в XP

Удаление 1cv7.cfg

При разрастании этого файла до нескольких мегабайт наблюдается торможение при работе пользователей в 1С.
Что в файл 1Cv7.CFG в 7.7 записывается?

Использование терминального режима

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

(Замечание от romix'a: Не рекомендуют смешивать на одном физическом сервере SQL и терминал. Если же сервера разные, то очень даже можно. Единственная проблема - 100% загрузка процессора при ожидании блокировки - успешно решается патчем [2] и, возможно, будет исправлена в релизах 1С 7.7 выше 25-го.)

Аналогично, если требуется запустить серьезную обработку (перепроведение, переиндексация), лучше это делать на сервере - будет работать быстрее.

Использование компоненты TURBOBL

Снижение транзакционной нагрузки

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

Отключение FlushFileBuffers для DBF-варианта

ildus
14 - 18.11.06 - 14:52
(13) самый простой способ включить кэширование записи для всех файлов- отключить вызов FlushFileBuffers(hFile). для этого для платформы 7.70.025 надо пропатчить файлик dbeng32.dll: ищем последовательность "50 FF 15 40 C0 11 1F", заменяем на "B8 FF FF FF FF 90 90". Теперь 1С не будет делать принудительный сброс файловых буферов на диск при каждой записи, т.е. запись на диск будет кэшироваться и сброс файловых буферов будет делаться средствами самой ОС (для NTFS каждые несколько секунд). Значительно уменьшается фрагментация файлов на диске и отпадает необходимость помещать временные файлы на RAM-диск. Этот метод дает очень хорошие результаты для локального и терминального режимов. Использовать это для сетевого режима не рекомендую, т.к. не тестил и вероятно может привести к повреждению базы.
более продвинутый способ - выборочное кэширование файлов. для этого делается перехват вызова FlushFileBuffers() с помощью ВК или подменой dll и проверяется хэндл файла- если например это временный файл или *.CDX базы, то файл кэшируется, если *.DBF базы, то происходит вызов FlushFileBuffers().

Читайте также: