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

Обновлено: 08.07.2024

  • Бухгалтерский учет для государственных учреждений Казахстана, редакция 4.0;
  • Бухгалтерский учет для государственных предприятий Казахстана, редакция 2.0;
  • Бухгалтерия для Казахстана, редакция 3.0;
  • Розница для Казахстана, редакция 2.0;
  • Управление торговлей для Казахстана, редакция 3.0;
  • Управление нашей фирмой для Казахстана;
  • Зарплата и управление персоналом для Казахстана, редакция 3.0;
  • и другие.

Совет 1. Регулярное тестирование и исправление информационной базы поможет ускорить 1С

Шаг 1. Копирование базы

Шаг 2. Тестирование и исправление информационной базы

  • Реиндексация таблиц информационной базы;
  • Проверка логической целостности информационной базы;
  • Проверка ссылочной целостности информационной базы;
  • Пересчет итогов;
  • Реструктуризация таблиц информационной базы.

При наличии ссылок на несуществующие объекты: очищать ссылки.

При частичной потере данных объектов: удалять объект.

Тестирование и исправление информационной базы

Частота выполнения: один раз в 2-4 недели.

Совет 2. Улучшение аппаратных компонентов компьютера

  • количество оперативной памяти;
  • пропускная способность локальной сети;
  • производительность дисковой подсистемы.

Оперативная память (ОЗУ)

Локальная сеть

Ограничение шириной канала

Не использовать нестабильное беспроводное соединение Wi-Fi, особенно при плохом уровне сигнала. В большинстве случаем Wi-Fi сеть не обеспечивает должной пропускной способности и стабильности.

Нужна стабильная сеть

Проверить стабильность соединения до основного компьютера: простейшая команда ping (ip-адрес-основного-компьютера) -t покажет общую картину.

Сетевой канал может резко терять стабильность на больших пакетах. Если обычная команда ping не выявляет потерь, то есть смысл проверить так:

ping server -n 100 -l 50000

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

ping server -t

Обмен пакетами с server [192.168.1.101] с 32 байтами данных:

Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=19мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=8мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=5мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=8мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=5мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=10мс TTL=128
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.101: число байт=32 время=1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=2мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=4мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=19мс TTL=128
Ответ от 192.168.1.101: число байт=32 время=3мс TTL=128

ping server -t

Обмен пакетами с server [192.168.1.101] с 32 байтами данных:

Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.101: число байт=32 время<1мс TTL=128

С конфигурациями на основе управляемого приложения можно и нужно работать через тонкий клиент.

«Тонким» клиент называется потому, что умеет исполнять ограниченный набор функциональности встроенного языка. В частности на тонком клиенте недоступны все прикладные типы данных. Вместо этого тонкий клиент оперирует ограниченным набором типов встроенного языка, предназначенным лишь для отображения и изменения данных в памяти. Вся работа с базой данных, объектными данными, исполнение запросов – выполняется на стороне сервера. Тонкий клиент только получает готовые данные, подготовленные для отображения.

Тонкий клиент 1С

Пропускная способность 1 Гбит/с

Результаты условного замера производительности

Дисковая подсистема

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

Не отключать жесткий диск при простое

Совет 3. Настроить работу в связке 1С+веб-сервер

Работа с файловой базой данных через веб-сервер возможна с помощью тонкого клиента или веб-клиента. Но, лучше использовать тонкий клиент. Он быстрее чем браузер примерно на 20%, а также может использовать локальные лицензии. Веб-клиент может использовать только клиентские лицензии сервера.

Работа с файловой базой данных через веб-сервер

Чтобы завершить установку веб-сервера Apache необходимо установить его службой в операционную систему: запустить командную строку cmd с правами администратора и выполнить следующую команду:

Модули расширения веб-сервера 1С

Публикация 1С на веб-сервере

Заполнить несколько полей:

Доступ к опубликованной базе с других компьютеров

Статический ip-адрес

У сервера должен быть статический ip-адрес. Ведь, если главному компьютеру будет назначен другой ip-адрес, то клиентские компьютеры не смогут получить доступ к информационной базе.

Блокировка порта веб-сервера

Выводы

Когда один пользователь проводит документ, а другой - тоже пытается проводить документ, то этот второй пользователь загружает сервер непрерывным опросом блокировки. Проблема характерна для 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().

Имеем 3 достаточно мощных компьютера с сетью 100 мегабит на двух пк win 7, на другом xp, база 1с находится с недавнего времени на машине, на которой установлена 7- ка.
Вариант А: Идет работа на машине где база - тормозов нет
Вариант B: Идет работа на машине где база,а так же подключается пользователь с любого из двух других пк - на этих пк начинаются тормоза в работе 1с ( например "заедание" прокрутки списка выписки) ( или документы долго открывает)
Вариант C : На машине где база 1с не запущено , при подключении с других пк тормозов не наблюдается.
И так ,вариант с нехваткой мощности компьютеров отпадает , вариант с сетью тоже , так как раньше до обновления компьютера где находятся базы все работало без тормозов. Предполагаю что проблема кроется в конфронтации самой базы с win7 и сетевыми настройками, так же возможно что база большая порядка 5 гб , может в момент работы с базами сеть перегружена , так как еще есть и другие компьютеры в сети ,но на них не ведется работа в 1с. Это основное . Еще есть мысли : Грубо говоря когда мы с другого пк обращаемся к пк с базой , то запрос проходит через сеть дальше запрос обрабатывается сетью в win7 после чего направляется в 1с за получением той или иной информации и возможно что на этом моменте и затыкается, если проходит дальше , то как вариант долго в базе ищет нужную информацию прежде чем вывести ее на втором пк , отсюда мы на втором пк видим фризы и зависания. На этом мысли заканчиваются и остается последнее начать работать на 8.3 ,но бухгалтерия пока работает с 7.2 и к сожалению комфортно работать из-за описанной выше проблемы не может. Если вы сталкивались с данной проблемой или можете подсказать еще идеи и конкретные методы борьбы с данным недугом и в какую еще можно сторону смотреть - буду рад ! Если это поможет еще решить данную проблему - буду бесконечно Вам благодарен и рад ! Спасибо !

Оценить 2 комментария

Winsik

попробуйте на локальной машине доступ к базе сделать тоже по сети , то есть обратиться самому к себе

Winsik

а потом в интернете полно ссылок по запросу "1с тормозит по сети windows 7"

1С 8.2 Розница - "Текущая цена розницы", "Остаток" в форме элемента "Номенклатура"
Всем добрый день! Нужна помощь. В Форму элемента &quot;Номенклатура&quot; нужно добавить два поля с выводом.

Добавить поле в "Настройки пользователя"
Здраствуйте! Вопрос по 1с8, конфигурация (Бухгалтерия для Украины (демо)). У меня такая задача, мне.

Воткните кабель, где Wi-fi у вас да проверьте. Если также тормозить будет, то проблема в другом значит. База где находится физически? Что за машина, что за операционка? База где находится физически? Что за машина, что за операционка? База лежит на сервере. Как я и говорила, WindowsServer Ent. SP2, 64bit
IntelXeon CPU 2.13GHz 4 процессора, Ram - 4ГБ. Я бы поставил на слабый роутер wi-fi, скорей всего внутренняя шина медленная, всяко через него не только 1с гоняют, вот он и тупит.

Да в том то и дело, я уже вообще не знаю, что думать. но по одному то она нормально работает. библиотеки тоже проверила подключаются все те же, что и в бухгалтерии. у меня скоро мозг взорвется.

Добавлено через 3 минуты
Создавалось такое ощущение, что при подключении 2 пользователя срабатывают какие-то ограничения. проверяла на сервере свойства доступа к папке с базой, тоже все в порядке. Черт. неужели все таки придется терминал разворачивать.

Как вы проверяли на сервере?
Запустили 2 копии программы под одним пользователем БД? Или под разными пользователями БД? Или по "проводам" с разных компов организовали доступ разным пользователям ОС но одним пользователям БД?

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

Конфигурация конечно не простая, но код оптимизирован по-максимуму

[QUOTE=Volexovich;5038862]Как вы проверяли на сервере?
Запустили 2 копии программы под одним пользователем БД? Или под разными пользователями БД? Или по "проводам" с разных компов организовали доступ разным пользователям ОС но одним пользователям БД?
QUOTE]

Так, по пунктам.
1) по задумке пользовательские папки находятся на сервере вместе с базой и в этом случае:
а) запуск 2 разных пользоватеелей БД с разных станций - тормозит.
б) запуск 2 разных пользователй БД с 1 станции - работает.
2) пробовала размещать пользовательские папки на станциях, типа в папке с/temp и в этом случае
а) запуск 2 разных пользователей с 2 разных станций - тормозит.
б) запуск 1 и того же пользователя с 2 разных станций - нецелесообразно, так как у пользователей разные наборы прав.
3) так же пробовала запускать саму платформу 1с как из установленой на сервере, так и из установленой на станциях - никакой разницы.

Добавлено через 49 минут

Знаешь, я думаю, что проблема все таки не в коде. когда один простейший запрос на документы одного типа, меньше чем за год. (в итоге около 300-350 строк) и сведение этих данных в таблицу при одном человеке занимает секунду, а при подключении 2 человека - больше минуты.

Добавлено через 1 час 8 минут

Да и к тому же, как я уже говорила, тормозит он даже открывая пустую форму нового документа. Здесь какая проблема с кодом?

Добавлено через 12 минут

Как вы проверяли на сервере?
Запустили 2 копии программы под одним пользователем БД? Или под разными пользователями БД? Или по "проводам" с разных компов организовали доступ разным пользователям ОС но одним пользователям БД?

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

Да, кстати, по поводу административных прав. на конфу и на комп. запускали и с других компов, без администраторских прав и пользователей БД без администраторских прав. и с админа подключались к разным пользоватеям. Итог:
если выходить с ЛЮБОЙ одной станции И ЛЮБЫЕ ПОЛЬЗОВАТЕЛИ - она работает, как только подключается 2 станция тогда начинает тормозить.

Добавлено через 5 минут
И ещё момент. При отключении второй станции, оставшаяся продолжает тормозить вплоть до перезагрузки.

Добавлено через 1 минуту
т.е. перезагрузки программы. Переподключение.

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