Глава 11. МНОГОМЕРНЫЕ РЕГИСТРЫ 
Таблицы регистров 
Многомерные регистры создаются конфигурирующим и могут использоваться для разных целей
, например, для складского учета. При создании нового 
регистра создается отдельная таблица с четырьмя обязательными системными целочисленными полями
: 
 
  
    | Название поля | 
    Тип данных | 
    Назначение | 
   
  
    | ID | 
    INTEGER | 
    Внутренний ID строки таблицы регистра | 
   
  
    | DOC_ID | 
    INTEGER | 
    Внутренний ID документа | 
   
  
    | DOC_N | 
    INTEGER | 
    Внутренний ID строки позиции документа | 
   
  
    | REG_TEMPLATE_ID | 
    INTEGER | 
    Внутренний ID шаблона операции | 
   
 
 
Остальные поля конфигурирующий добавляет в регистр самостоятельно. Все остальные 
поля регистра можно условно разделить на три группы: 
- Поля измерений (основные «разрезы», например - склад
, товар, партия)
 - Поле даты операции
 - Дополнительные поля (для разных целей)
 - Поля мер (поля для суммирования, например – количество
, стоимость)
  
Поле даты операции, как сразу можно заметить, не 
входит в четверку системных полей, но создается конфигурирующим самостоятельно
. Это обусловлено тем, что в зависимости от задачи
, к полю даты могут предъявляться разные требования. В 
каких-то случаях достаточно иметь единственное поле даты типа 
DATE. В других случаях может потребоваться поле типа TIMESTAMP 
(дата и время). Конфигурирующий также может создать два 
поля: поле даты типа DATE и отдельно от него 
- поле времени типа TIME. В каких-то 
случаях в качестве второго поля может использоваться поле типа INTEGER
. Одним словом, здесь возможно определенное разнообразие решений и
, чтобы не ограничивать возможности конфигурирующего, ему предоставлена свобода 
выбора в организации временного континуума операций. Единственное условие – 
конфигурирующий должен создать индекс даты операции. В этот индекс 
он может включить одно поле или несколько полей, в 
зависимости от того, как ему видится правильный континуум операций 
по дате в этом регистре, однако первое поле в 
индексе даты операции обязательно должно иметь тип DATE или TIMESTAMP
. 
Для полей измерений конфигурирующий также обязан создать индекс, который 
называется индексом группировки по основным измерениям. Этот индекс служит 
для ускорения выборок и группировок в регистре, а также 
используется при переносе остатков в новую базу в качестве списка 
полей, по которым будет производиться группировка начальных остатков. 
И наконец, конфигурирующий должен создать поля мер. Эти 
поля всегда имеют числовой тип, так как по ним 
производится суммирование в регистре. 
После того, как все поля и индексы созданы, 
необходимо указать определенные сведения в «Дополнительных свойствах» регистра
. Там нужно указать: 
- Индекс даты операции
 - Индекс группировки по основным измерениям
 - Поля мер
 - Установить (необязательно) опцию переноса остатков в новую базу
, если та создается «по остаткам».
  
После чего регистр считается готовым к использованию и к нему 
можно создавать «шаблоны операций», в которых оговаривается, 
как «проводить» разные типы документов в этом регистре
. 
Проведение документов в регистрах похоже на проведение их в таблице 
бухгалтерских проводок ACC_TURN. Каждый документ при проведении 
вставляет в регистр записи, копируя в них информацию из 
каких-то своих полей. Если документ «перепроводится
» в регистре, то старые записи по данному документу 
из регистра удаляются, и вместо них вставляются новые записи
. Различие между бухгалтерскими проводками и проводками в регистре состоит 
в том, что: 
- В регистрах нет требований двойной записи (равенства суммы записей 
в дебет сумме записей в кредит)
 - В регистрах можно проводить документ частично (только определенные позиции
), а в бухгалтерской таблице проводок ACC_TURN документ 
всегда проводится целиком.
  
 
 
 
               |