Реиндексация

Управление итогами

Для оптимизации расчетов в системе 1С: Предприятие предусмотрен режим хранения промежуточных итогов. Итоги вычисляются на начало каждого календарного месяца.

Для управления итогами предназначен режим «Управление итогами», который вызывается пунктом «Операции» — «Управление итогами».

На закладке «Установка границы рассчитанных итогов» производится установка даты итогов, получаемых на текущий момент, и расчет итогов на эту дату.

В колонке «Рассчитан по» — указывается текущая дата актуальных итогов.

Укажите регистры, которые необходимо пересчитать и дату, на которую итоги будут пересчитаны.

В колонке «Установить по» — укажите дату актуальности.

Для расчетов нажмите кнопку «Выполнить». Итоги рассчитываются и в колонке «Рассчитан по» указывается новая дата.

На закладке «Установка режима разделения итогов» производится управление режимом разделения итогов.

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

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

В БП 3.0 при ведении учета входящего НДС «По способам учета», т.е. с использованием субконто «Способы учета НДС», раздельный учет НДС ведется с использованием так называемых ключей аналитики. Ключ аналитики — это объединение нескольких разрезов аналитического учета в один, представляющий собой комбинацию конкретных значений аналитического учета — ключ. В регистре накопления «Раздельный учет НДС» девять измерений объедены в два, ссылающихся на справочники «Ключи аналитики учета затрат» (содержит информацию о местонахождении еще несписанных ТМЦ и аналитику направления списания ТМЦ и входящих затрат, НДС по которым еще не распределен) и «Ключи аналитики учета НДС» (аналитика входящего НДС: счет-фактура, вид ценности, счет учета НДС, ставка НДС). Сами комбинации значений, соответствующих ключам, хранятся в регистрах сведений «Аналитика учета затрат» и «Аналитика учета НДС». Считается, что такой способ формирования движений ускоряет проведение документов.

При увеличении количества взаимосвязанных объектов увеличивается вероятность возникновения ошибочных ситуаций: например, возникновение битых ссылок или зависание неиспользуемых ключей, что мешает удалению помеченных на удаление документов и засоряет базу данных. Обработка предназначена для выявления и устранения подобных ситуаций.

Обработка создана по аналогии с типовой обработкой УПП, используемой в режиме РАУЗ.

В форме обработки в списке проверок следует указать, какие действия следует выполнить:

Удаление ключей аналитики, на которые нет ссылок — будет выполнен поиск и удаление ключей аналитики, на которые нет ссылок в документах или регистрах. Такие ключи могут появиться например при свертке базы или при исправлении ранее проведенных документов.
Обновление наименований ключей аналитики — будет выполнен поиск и исправление наименований ключей аналитики. Наименование ключей аналитики может стать некорректным при изменении наименований справочников или дат и номеров документов, которые входят в эти ключи.
Проверка ссылочной целостности ключей аналитики — будет выполнен поиск и исправление ключей аналитики, для которых существует запись в регистре сведений, но нет соответствующей записи в справочнике ключей аналитики.

Обработка может быть выполнена в двух режимах:

Только тестирование – проверка проводится без внесения в нее каких-либо изменений в информационную базу — выдаются только сообщения об обнаруженных ошибках
Тестирование и исправление – при проверке выполняются исправления ошибочных состояний — в информационную базу вносятся исправления обнаруженных ошибок

Перед проведением тестирования с исправлением рекомендуется сделать резервную копию базы данных, т.к. процедура тестирования с исправлением — операция необратимая.

Иногда при работе с 1С могут возникать сбои или ошибки.

В данной статье мы поговорим о тестировании и исправлении информационной базы 1С.

Информационная база 1С (в терминах фирмы 1С) — место хранения всех данных по учету в одной или нескольких организациях, характеризуемое определенным адресом хранения. Возможны два варианта хранения информационной базы: файловый и клиент-серверный вариант.

Если у Вас возникла необходимость провести процедуру тестирования и исправления информационной базы 1С:

Во первых, следует создать копию базы данных (если это возможно, т.к. иногда структура базы становится настолько «покалечена», что отсутствует даже возможность создать резервную копию).

Во вторых: После создания резервной копии следует открыть Конфигуратор, далее в меню: Администрирование -> Тестирование и исправление…

Процедура тестирования и исправления информационной базы служит для диагностики и устранения ошибочных состояний информационных баз, имеющих различный формат хранения данных (файловый или клиент-серверный):

,

Процедура позволяет выбрать проверки и режимы, которые должны быть выполнены для текущей информационной базы.

Реиндексация таблиц – это перестроение индексов таблиц, направленное на повышение быстродействия работы базы.

Проверка логической целостности – это целое множество проверок логики базы данных

Проверка ссылочной целостности — это подмножество проверки логической целостности базы данных, существующее для отдельной работы с «битыми» ссылками. Конкретнее будет объяснено ниже по тексту.

Пересчет итогов – расчет итогов таблиц регистров накопления

Сжатие таблиц информационной базы – данный пункт отвечает за уменьшение размера базы после тестирования. Объяснить уменьшение размера базы можно, например, так: когда из базы удаляется объект, он, по сути, остается в базе внутри, но невидимым для конечного пользователя. Сделано это для того, чтобы объект все-таки можно было восстановить уже после полного удаления из базы (хотя мы с таким не встречались). И сжатие таблиц, как раз убирает информацию об удаленных уже объектах из базы данных. От этого таблицы становятся меньше (это всего лишь один пример, как работает сжатие).

Действие «Сжатие таблиц информационной базы» доступно только для файлового варианта. Остальные варианты работают и в файловом и в серверном режиме.

Реструктуризация таблиц – пример можно привести такой: берется таблица № 1, создается копия ее структуры, назовем, как Таблица № 2 и данные из таблицы № 1 копируются порциями в таблицу № 2.

Имеется возможность выполнять только тестирование или тестирование с исправлением.

Пункты настроек по обработке ошибок базы становятся доступными для выбора при варианте обработки «Тестирование и исправление», а также режиме «Проверка ссылочной целостности информационной базы».

Первая настройка: «При наличии ссылок на несуществующие объекты» означает, что в базе будет произведен поиск «битых ссылок» (когда какой-то реквизит ссылается, к примеру, на элемент справочника, а физически данный элемент уже в базе отсутствует. В результате, встречаются записи типа «Объект не найден <……>») и вариант обработки таких ссылок:

— попытка создать несуществующий объект;

— очистить «битую» ссылку

— ничего не изменять.

Вторая настройка: «При частичной потере данных объекта» означает, что данные какого-либо объекта были потеряны, но оставшихся данных вполне хватает для восстановления утраченного. Варианты обработки таких объектов не отличаются по смыслу от вариантов предыдущей настройки.

Процесс тестирования и исправления информационной базы может быть разбит на несколько этапов. При этом доступны следующие возможности:

  • ограничение времени тестирования и исправления;
  • сохранение параметров тестирования между этапами;
  • продолжение прерванного ранее тестирования и исправления;
  • поддержка тестирования и исправления порциями в командной строке запуска.

Следует заметить, что тестирование и исправление информационной базы 1С может выполняться только в монопольном режиме (т.е. работа пользователей с информационной базой в процессе тестирования и исправления невозможна).

Утилита chdbfl

Вариант с тестированием базы средствами самой программы 1С – не единственный. В комплект поставки платформы 1С: Предприятие входит еще вспомогательная утилита для тестирования и исправления файлового варианта базы данных.

Опять-таки перед всеми операциями с базой обязательно создавайте копию.

После удачного резервного копирования надо открыть утилиту chdbfl. Она находится в каталоге установленной программы 1С.

Путь к ней, как правило, такой: C:\Program Files\1cv82\ «релиз платформы 1с» \bin

Там находится файл: «chdbfl.exe»

Убедившись, что в базе 1С, которую будете тестировать, не находится ни один пользователь (в том числе вы), запускаете программу.

В окне «Имя файла БД» выбираете путь к файлу с базой данных. Сам файл всегда имеет расширение *.1CD, а путь к папке с базой данных можно посмотреть в списке информационных баз, который открывается при запуске 1С: Предприятие.

Можно просто тестировать базу, можно сразу поставить галочку «Исправлять обнаруженные ошибки». Тогда программа сама поправит ошибки в базе. Настроек тут, правда, никаких нет и программа будет уже сама исправлять ошибки базы автоматически.

После выбора базы и установки режима нужно просто нажать на «Выполнить». Программа начнет работать и через некоторое время сообщит о завершении процесса тестирования.

1С8 Параметры консольного вызова тестирования и исправления

DESIGNER (CONFIG в 8.0) Запуск в режиме Конфигуратора.
/@ Путь к файлу с параметрами командной строки.
/F Путь к файловой информационной базе (исключая имя файла).
/S Адрес информационной базы на сервере 1С:Предприятия.
/IBName запуск информационной базы по имени базы в списке информационнх баз. При необходимости имя должно быть взято в двойные кавычки. При этом, если имя содержит двойные кавычки, то нужно заменить каждые двойные кавычки на две двойные кавычки. Если в списках баз будет найдено более чем одна база с указанным именем, то пользователю будет выдана ошибка.

/N Имя пользователя, как оно задано в Конфигураторе.
/P пароль пользователя, имя которого указано в параметре /N. Если у пользователя нет пароля, этот параметр можно опустить.

/Out Задаёт файл для вывода служебных сообщений. Если задано -NoTruncate, файл не очищается (не используется в тонком клиенте). C 8.2.15 файл сообщений открывается в режиме, допускающем совместное чтение, и во время пакетного режима запуска Конфигураторa запись в этот файл выполняется сразу, а не буферизуется.

/UC — позволяет выполнить установку соединения с информационной базой, на которую установлена блокировка установки соединений. Если при установке блокировки задан непустой код доступа, то для установки соединения необходимо в параметре /UC указать этот код доступа.
/DumpIB Выгрузка информационной базы.
/IBCheckAndRepair выполнить тестирование и исправление информационной базы.
• -ReIndex реиндексация таблиц;
• -LogIntegrity проверка логической целостности или
-LogAndRefsIntegrity проверка логической и ссылочной целостности;
• -RecalcTotals пересчет итогов;
• -IBCompression сжатие таблиц;
• -Rebuild реструктуризация таблиц информационной базы;

-BadRefCreate создавать объекты или
-BadRefClear очищать объекты или
-BadRefNone не изменять при частичной потере объектов:

-BadDataCreate создавать объекты или
-BadDataDelete удалять объекты или

-BadDataNone не изменять объекты;

• UseStartPoint использовать сохраненную точку возврата для продолжения тестирования с того места, на котором оно было прервано в предыдущем сеансе;
• TimeLimit:hhh:mm ограничение максимального времени сеанса тестирования: hhh — количество часов (0..999); mm — количество минут (0..59).

Примеры использования параметров

Информация применима к клиент-серверному варианту 1С:Підприємство при использовании СУБД MS SQL Server.

В статье рассмотрен процесс создания планов обслуживания баз c настройкой резервного копирования для полной модели восстановления (Full Recovery Model). Если в вашей БД большой поток информации, только полная модель обеспечит сохранность ваших данных.

Cтатья ориентирована на начинающих системных администраторов.

Общая информация

Одной из частых причин снижения производительности сервера 1С:Підприємство является невыполнение регламентных операций на уровне СУБД. Особенно важно выполнять данные регламентные операции в крупных информационных системах, работающих под значительной нагрузкой и c большим количеством пользователей.

Если в работающей системе наблюдаются какие-либо проблемы с производительностью, следует проверить, что в системе правильно настроены и регулярно выполняются все рекомендуемые регламентные операции на уровне СУБД.

Для автоматизации этих операций предназначено средство MS SQL Server «План обслуживания» (Maintenance Plan).

Общая информация о плане обслуживания доступна по ссылкам:

Для оптимизации работы и повышения надежности сервера 1С:Підприємство рекомендуется выполнять следующие регламентные операции на уровне СУБД MS SQL Server:

1. Проверка целостности базы данных.

2. Дефрагментация индексов и реиндексация базы данных.

3. Обновление статистик и очистка процедурного кэша.

4. Резервное копирование.

5. Очистка после обслуживания.

6. Очистка журнала.

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

Создание плана обслуживания

В среде MS SQL Server Management Studio, откройте папку Management и создайте новый план обслуживания:

Задачи плана выбираем из окна инструментов (Toolbox) простым перетаскиванием их в поле плана.

Расписание задается в свойствах подплана.

Последовательность операций устанавливается стрелками, которые определяют логическую связь операций и обозначаются тремя цветами:

зелёным — следующая операция будет выполнена после успешного (Success) выполнения предыдущей (значение по умолчанию);

красным — управление переходит к следующей задаче только в случае ошибки (Failure) выполнения предыдущей. Удобно использовать для оповещения администратора;

серым (иногда синим) — следующая операция выполняется после завершения (Completion) предыдущей независимо от результата.

Выбор условия выполнения задается в свойствах стрелки (двойной клик на стрелке или правый клик -> Edit ).

Проверка целостности БД (Database Integrity check)

Процедура заключается в проверке распределения и структурной целостности всех объектов в заданной базе (базах) данных. Так же можно задать проверку индексов.

SQL запрос процедуры:

sp_msforeachtable N’DBCC CHECKDB (<имя базы данных >, »?»)’

Настройка автоматической проверки целостности БД

Элемент плана «Проверка целостности» (Check Database Integrity) показан на предыдущем рисунке. В свойствах элемента плана (правый клик на элементе -> Edit) выбираем базы, для которых он будет выполняться.

Дефрагментация индексов и реиндексация базы данных

При интенсивной работе возникает фрагментация индексов, что может привести к снижению эффективности работы сервера 1С:Підприємство.

Процедуры дефрагментации и перестроения индексов (реиндексация) предназначены для восстановления целостности системы индексов БД. Суть реиндексации заключается в удалении всех имеющихся индексов и установки новых. Обе процедуры являются ресурсоемким, кроме того, в некоторых версиях MS SQL Server происходит отключение клиентов. Поэтому выполнять их необходимо во время минимальной нагрузки.

Поскольку обе процедуры, по сути, выполняют одну и ту же функцию, общей рекомендацией является выполнение дефрагментации раз в день и раз в неделю полной реиндексации

Дефрагментация индексов всех таблиц базы данных выполняется по запросу:

sp_msforeachtable N’DBCC INDEXDEFRAG (<имя базы данных>, »?»)’

Возможно выполнение дефрагментации для одной или нескольких таблиц.

Дефрагментация индексов не блокирует таблицы, однако создает дополнительную нагрузку на SQL Server. Оптимальная частота выполнения данной регламентной процедуры должна подбираться в соответствии с нагрузкой на систему и эффектом, получаемым от дефрагментации. Общая рекомендация — выполнять дефрагментацию индексов не реже одного раза в неделю.

Настройка автоматической дефрагментации индексов

В плане обслуживания создайте новый подплан с именем «Дефрагментация индексов». Добавьте в него элемент «Reorganize Index Task»:

В расписании установите время и частоту выполнения задачи (рекомендуется один раз в день).

Выберите базы, для которых будет выполняться процедура, и необходимые таблицы либо задайте «Для всех» (All).

Реиндексация таблиц базы данных

Реиндексация таблиц заключается в полном перестроении индексов таблиц базы данных, что приводит к существенной оптимизации их работы. Рекомендуется выполнять переиндексацию таблиц базы данных 1С:Підприємство не реже одного раза в неделю.

Для реиндексации всех таблиц базы данных необходимо выполнить следующий SQL запрос:

sp_msforeachtable N’DBCC DBREINDEX (»?»)’

Реиндексация таблиц устанавливает блокировки таблиц на все время работы, что существенно снижает производительность. В связи с этим реиндексацию рекомендуется выполнять во время минимальной нагрузки системы.

Дефрагментацию индексов после реиндексации выполнять нет необходимости.

Настройка реиндексации

В плане обслуживания создайте новый подплан с именем «Реиндексация». Добавьте в него элемент «Rebuild Index Task»:

Установите расписание выполнения один раз в неделю. Так же укажите базы и, если необходимо, выделите отдельные таблицы для обслуживания.

Обновление статистики и очистка процедурного кэша

Обновление статистики

MS SQL Server строит план запроса на основании статистической информации о распределении значений в индексах и таблицах. Статистическая информация собирается на основании образца данных и автоматически обновляется при изменении этих данных. Со временем этого оказывается недостаточно для того, что MS SQL Server стабильно строил наиболее оптимальный план выполнения запросов.

В этом случае возможно проявление проблем с производительностью запросов. Для оптимизации работы сервера 1С:Підприємство необходимо регулярно обновлять статистики СУБД.

Для обновления статистик по всем таблицам базы необходимо выполнить следующий SQL запрос:

exec sp_msforeachtable N’UPDATE STATISTICS ? WITH FULLSCAN’

Обновление статистик не приводит к блокировке таблиц и не будет мешать работе других пользователей, но следует учитывать, что нагрузка на сервер СУБД во время обновления возрастет, что может негативно сказаться на общей производительности системы 1С:Підприємство.

Статистика может обновляться настолько часто, насколько это необходимо. Оптимальная частота обновления зависит от величины и характера нагрузки на систему и определяется экспериментальным путем. Общая рекомендация — обновлять статистики не реже одного раза в день.

Приведенный выше запрос обновляет статистики для всех таблиц базы данных. На практике разные таблицы требуют различной частоты обновления статистик. Путем анализа плана запросов можно определить, для каких таблиц необходимо обновлять статистики чаще, для каких реже, и настроить несколько различных подпланов.

Настройка автоматического обновления статистик

Создайте подплан «Обновление статистик» и добавьте в него элемент «Update Statistics Task»:

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

Опцию «Тип сканирования» (Scan Type) поставьте «Full Scan».

Очистка процедурного кэша

Оптимизатор MS SQL Server кэширует планы запросов для их повторного выполнения. Это делается для экономии времени, затрачиваемого на компиляцию запроса в случае, если такой же запрос уже выполнялся и его план известен.

Таким образом, возможна ситуация, при которой СУБД, опираясь на устаревшую статистическую информацию, построит неоптимальный план выполнения запроса. Этот план будет сохранен в процедурном кэше и использован при повторном вызове такого же запроса. Если Вы не очистили процедурный кэш после обновления статистики, то SQL Server может выбрать устаревший план из кэша вместо того, чтобы оптимизировать его.

Таким образом, после обновления статистики рекомендуется всегда очищать содержимое процедурного кэша. Для этого выполните инструкцию:

DBCC FREEPROCCACHE

Настройка автоматической очистки процедурного кэша

Так как процедурный кэш следует очищать при каждом обновлении статистики, то данную операцию рекомендуется добавить в подплан «Обновление статистики». Для этого откройте подплан и добавьте в его схему элемент Execute T-SQL Statement и соедините элемент Update Statistics Task с новым элементом.

В тексте созданной задачи укажите SQL инструкцию «DBCC FREEPROCCACHE»:

Резервное копирование баз данных (Backup Database)

Суть и важность данной операции вряд ли необходимо объяснять. Используйте план обслуживания для автоматического резервного копирования ваших баз (Back Up Database Task).

Настоятельно рекомендуется хранить копии баз 1С:Підприємство на отдельных физических носителях.

Очистка после обслуживания (Maintenance Cleanup)

Задача «Очистка после обслуживания» удаляет файлы, относящиеся к планам обслуживания, включая устаревшие файлы резервных копий баз данных и отчеты, созданные планами обслуживания.

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

При настройке задачи «Очистка после обслуживания» для удаления файлов резервных копий по умолчанию установлено расширение файла BAK. Для файлов отчета расширение по умолчанию — TXT. При необходимости расширение можно изменить; единственное ограничение: расширение должно иметь меньше 256 символов.

Для удаления устаревших файлов задача может быть настроена для удаления по времени создания.

Очистка журнала (History Cleanup)

Задача «Очистка журнала» удаляет записи в служебных таблицах журнала базы данных msdb, связанные с деятельностью по созданию резервных копий и восстановлению, с заданиями агента SQL Server и планами обслуживания.

Контроль выполнения регламентных операций на уровне СУБД

Примерный вид плана обслуживания представлен на следующем рисунке.

Вы можете добавлять в него другие необходимые вам операции (например, сжатие базы, уведомление администратора об ошибках).

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

Механизмом, исполняющим Планы обслуживания является «Агент SQL Server» (SQL Server Agent). После сохранения плана обслуживания, на каждый из подпланов в ветке «Задания» (Jobs) Агента создаются элементы заданий. По правому клику на задании откроется контекстное меню, из которого вы можете запустить подплан и проверить его выполнение не дожидаясь запуска из планировщика («Запустить задание на шаге» (Start Job at Step).

Убедитесь, что служба SQL Server Agent запускается автоматически вместе с сервером. При остановленной службе план обслуживания выполняться не будет!

Чтобы проконтролировать выполнение плана, откройте планы обслуживания и выберите из контекстного меню пункт «View History»:

Откроется окно с протоколом выполнения всех заданных регламентных операций.

Успешно выполненные задачи и задачи, выполненные с ошибками, будут помечены соответствующими пиктограммами. Для задач, выполненных с ошибками, доступна подробная информация об ошибке.

Чтобы было понятно о чем обработка приведу пример.

Справочники контрагенты и номенклатура до обезличивания:

Справочники контрагенты и номенклатура после обезличивания:

Как пользоваться?

Просто распакуйте (перетащите) вложенный в архив файл (с расширением epf), например, на рабочий стол и открывайте его прямо из 1С через меню Файл->Открыть.

Если у вас управляемый интерфейс (такси и прочее), то меню вызывается через левый верхний кружок со стрелкой вниз.

В обработке есть 2 вкладки: «Список объектов» и «Общие настройки изменения данных».

Список объектов — тут можно выбрать объекты, которые нужно скрыть от посторонних глаз.

Общие настройки изменения данных — тут выбираете алгоритм обезличивания. Достаточно просто проставить галочки.

Внимание!!! Все манипуляции ни в коем случае не выполнять на рабочей базе!!! Обработку запускать только в копии базы!

Сделаем это 🙂

Как запустить обработку обезличивание базы 1с если у вас управляемые формы(последние версии конфигураций).

Нужно сделать так.

  • Скачать обработку себе на компьютер.
  • Запустить 1с в режиме толстого клиента.
  • В верхнем меню нажать открыть и выбрать скаченную обработку.

Чтобы запустить 1с предприятие в режиме толстого клиента нужно в окне настройки запуска баз указать ключ /RunModeOrdinaryApplication

Вот так это выглядит:

Реиндексация

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *