Тормозит база, «ожидание захвата таблиц»

Сетевая 1С 7.7. Одноранговая сеть без домена. Сервер (обычный комп – двухядерный проц., 2Гб ОЗУ и ОС – Win2003). Клиентов 10 – все ОС WinXP Sp2. База 1С – около 2Гб. С некоторых пор включились тормоза для клиентов. Работать могут практически 1-2 клиента, у остальных ожидание захвата таблиц. Сервер проверен на вирусы (были, удалены), затем вообще системный диск отформатирован, все заново установлено. На клиентах выполнена проверка со свежайшими антивирусными базами, на 3 компьютерах были обнаружены вирусы. Все зараженное удалено. Тормоза в работе остались.
На другом сервере с Win2003 с другими базами и для других клиентов (около 40) таких тормозов не наблюдается. Перетащил базу на этот “белый” сервер. Тормоза сохранились (только для этой базы и этих клиентов). Может проблема в базе? Пытался выполнить тестирование и исправление базы – не выполняется до конца, зависает в различных позициях (если судить по показаниям счетчика количества проверяемых элементов в таблицах). Счетчик останавливается, хотя диспетчер задач показывает, что около 95-97% ресурсов процессора занято этим процессом (1С). В то же время любое другое приложение выполняется без задержек, как будто 1С и не держит эти ресурсы…
Подскажите пожалуйста направление действий...
Первое мнение. А выход один ставить SQL 7.7 или переходить на 1С8. Ваши dbf-таблицы разрослись до таких размеров, что движок 1С отказывается с ними работать. К сожалению, у меня нет сведений о предельном допустимом размере dbf-таблиц (1С об этом скромно умалчивает). Обычно исходим из того, что когда база выросла до 1Гбайта надо либо делать свертку базы, либо ставить SQL. Как ВРЕМЕННОЕ и КРАТКОВРЕМЕННОЕ средство могу посоветовать: в меню тестирование и исправление ИБ выключить все галочки, кроме “упаковка таблиц информационной базы” и прогнать тест. Таким образом, из таблиц физически удалятся строки соответствующие удаленным из базы данным (не помеченным, а именно удаленным), которые остаются в таблицах после удаления в программе. Таким образом, таблицы базы реально сожмутся и возможно, сколько-то вы еще поработаете.
ПРЕДУПРЕЖДЕНИЕ. Из за сбоев работы dbf- таблиц базы сама база у Вас сейчас может грохнуться в любой момент так, что бесполезно восстанавливать будет в принципе. Поэтому еженочная архивная копия это ваш шанс не вылететь с работы.
Второе мнение. 2 Гб для ДБВ базы уже довольно критично. Скорее всего, в ДБФ есть битые ссылки, отсюда и тормоза. Как вариант сделать выгрузку базы (на 99% рабочая база будет, но не факт что будут совпадения по итогам с тем, откуда выгрузили) и загрузку в новый каталог.
Третье мнение. Для быстродействия 1С dbf критичен размер файла RGxxxx.dbf – если это «Торговля и Склад». Это файл остатков регистров. Если его размер превышает 250 Мб, то начинаются серьезные тормоза, если превышает 600Мб, база становится неработоспособной (проверено). в то же время внутри этого файла полно мусора, и этот мусор можно вычистить, переместив монопольно точку актуальности на 01.01.1980, сделав упаковку таблиц и перемещение точки актуальности обратно.
Важно! Операция длительная, может занять много часов, и хорошо бы, чтобы во время ее ничто не зависло. Поэтому проверьте на тренировочной базе, сможет ли Ваша 1С справиться с этой задачей вообще.
По видимому, это же ограничение (250 Мб) есть и у таблицы остатков бухгалтерских итогов 1SBCTTL.dbf. Из нее мусор вычищает птичка ПересчетИтогов в ТестированииИИсправлении.

Комментарии | опубликовано: 20 Август 2009, 19:51

Основы. Таблица значений как элемент диалога

Таблица значений может использоваться в экранных формах как элемент диалога с пользователем.
//установить курсор на указанную колонку или можно узнать, где находится курсор
ТабЗнач.ТекущаяКолонка(НоваяКолонка,ТекКолонка);

//установить курсор на указанную строку или можно узнать, где находится курсор.
ТекСтрока = ТабЗнач.ТекущаяСтрока(НовСтрока);

ТабЗнач.ВидимостьКолонки(“Оклад”,0); //скрыть колонку Оклад
ТабЗнач.ВидимостьКолонки(“Должность, Сотрудник”,1); //показать колонки Должность и Сотрудник
ТабЗнач.ВидимостьКолонки(“Оклад”,1,1); //показать колонку Оклад в 1-й позиции

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

Комментарии | опубликовано: 17 Август 2009, 19:35

Реально изменить атрибуты внешних файлов с помощью языка 1С?

Возникла необходимость при копировании файлов в центральную базу с локальных рабочих мест изменять атрибут скопированного файла в базе на “Только чтение”. Метод ФС.АтрибутыФайла() только читает атрибуты, а устанавливать их может?
Можно. Подскажу начало кода
МояФС=СоздатьОбъект(“Scripting.FileSystemObject”);
Этот объект встроен в Windows, никакого дополнительного ПО не нужно.
Этот объект вольно меняет атрибуты.
К сожалению, этот объект читает и пишет файлы в текстовом режиме.
Если узнаете объект, который читает и пишет в побайтовом режиме, то напишите мне письмо, буду благодарна.

Комментарии | опубликовано: 13 Август 2009, 19:50


<--- Предыдущая страница Следующая страница --->