В данном разделе будут рассмотрены особенности работы с журналами документов и даны некоторые рекомендации по их разработке.

Журнал документов как вторичные данные

Основной особенностью журналов документов в 1С:Предприятии 8.1 является то, что журналы - вторичные данные не несущие никакой первичной информации и представляющие собой не более чем еще одно представление списка документов. Эта особенность журналов документов и определяет их поведение.

При реструктуризации

Таблица журнала документов имеет следующий состав полей:
  • "Ссылка" - ссылка на регистрируемый в журнале документ;
  • "Дата" - дата регистрируемого документа;
  • "Номер" - номер регистрируемого документа, поле существует, если хоть один из регистрируемых документов имеет номер с длиной отличной от нуля;
  • "ПометкаУдаления" - пометка удаления регистрируемого документа;
  • "Проведен" - пометка проведенности регистрируемого документа;
  • Поля, соответствующие графам документа - содержимое соответствующих реквизитов регистрируемых документов.

При сохранении конфигурации информационной базы, реструктуризация журналов документов выполняется в тех случаях, когда:
  1. Изменяется состав граф журнала документов или состав включенных в графы реквизитов документов;
  2. В журнал включается еще один существовавший ранее вид документов;
  3. Из журнала исключается вид документов;
  4. Изменяется тип или длина номера документа, включенного в журнал;
  5. Изменяется тип реквизита документа, включенного в одну из граф документа;
  6. В журнал включается вид документов, созданный при текущем сеансе конфигурирования.

Первые три случая реструктуризации возникают при манипуляциях с самим журналом или подчиненными ему объектами конфигурации - графами журнала.

Случаи 4 и 5 возникают при манипуляциях с документами, включенными в журнал и тоже вполне объяснимы.

Реструктуризация журнала из-за добавления в него нового для данной конфигурации документа (т.е. такого, по которому пока еще нет данных) на первый взгляд не нужна и требует некоторого комментария. Действительно, изменения данных в журнале документов при таких обстоятельствах не требуется, но следует учитывать влияние каждого включенного в журнал документа на тип поля "Номер", тип поля "Ссылка" и, возможно, тип полей, соответствующих графам журнала.

Например, даже включение в журнал документа, который не отображается в графах журнала, может привести к тому, что поля граф журнала теперь должны поддерживать тип Неопределено. Если в журнале отображался только один вид документов, то добавление в него еще одного документа также приведет к необходимости реструктуризации, даже если типы полей, соответствующих графам журнала и тип поля "Номер" при этом не изменились. Это связано с тем, что поле "Ссылка" ранее имевшее тип ДокументСсылка.<имя> теперь должно поддерживать хранение ссылок на документы разного вида.

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

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

При записи документов

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

Кроме того, к изменениям реквизитов документа можно отнести:
изменение даты документа;
  • изменение номера документа;
  • изменение признака проведенности;
  • изменение пометки удаления

Во всех этих случаях также выполняется "перерегистрация" во всех журналах документов, в которых регистрируется документ.

Рекомендации по конфигурированию

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

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

Оптимизация отбора по графам журнала

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