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

Если используются «хранимые» правила получения фактических данных, то типы регистраторов, которые могут производить движения по хранимому правилу получения факта, записываются в регистр сведений Кэш имен документов для обработки по правилу. Регистр служит для оптимизации отражения документов в факте бюджетирования и указывает, для каких видов документов нужно запускать на выполнение схемы компоновки, хранимые в правиле получения факта. Подробнее логику работы можно изучить в общем модуле ФактическиеДанныеБюджетированияСервер, метод СформироватьДвиженияПоРегиструФактаБюджетирования.
Данный регистр является служебным. При обновлении данных (в т. ч. при запуске программы с ключом обновления ИБ ЗапуститьОбновлениеИнформационнойБазы) данные в регистре очистятся.
Данные в регистре появляются при первом выполнении схемы компоновки правила получения факта. Имена документов определяются как возможные типы поля Регистратор схемы компоновки данных.
Если происходят изменения в схеме компоновки данных, то должна быть вызвана очистка данного регистра сведений записей редактируемого правила. Однако если происходит расширение состава возможных регистраторов из конфигуратора без запуска режима обновления ИБ, то очистить записи регистра сведений нужно самостоятельно.
Технические детали написания СКД
Параметры &НачалоПериода и &КонецПериода в схеме компоновки правил получения факта являются служебными. Нельзя опираться на их значения при написании текста запроса. Данные параметры будут приобретать различное значение при построении различных отчетов для «онлайн»-правил, а при отражении документов в «хранимом» факте вообще могут быть не заданы. Указан может быть только отбор по документу-регистратору – именно как отбор данных, а не параметр настроек компоновки данных.
Для «хранимых» правил будут иметь значения поля отбора по регистратору при выборке данных, так как программно устанавливается отбор по регистраторам из регистра сведений Задания к отражению в бюджетировании, а параметры &НачалоПериода и &КонецПериода устанавливаются по началу и окончанию действия правила.
Схема компоновки правила получения фактических данных для хранимого факта выполняется только для записи движений в документ. В дальнейшем результат работы правила хранится в оборотном регистре накопления Фактические данные бюджетирования. При построении отчетов данные используются из этого регистра специальным запросом, а не при помощи выполнения схемы получения факта, описанной в правиле.
Пользовательские сценарии
В статье опущены правила построения СКД, описанные в статье Настройка произвольных правил получения фактических данных для бюджетирования.
Эти правила должны быть учтены при построении СКД.
Рассмотрим варианты построения СКД:
● Простой случай отбора данных. В этом случае в правиле получения факта устанавливается признак хранимого факта, и этого достаточно. Такие случаи очевидны и не рассматриваются к данной статье. Будет проведено рассмотрение сложных случаев, когда нужно выполнить сложные пакетные запросы.
● Сложный случай. Программная запись движений в регистр Фактические данные бюджетирования произвольным алгоритмом (обработкой).
● Сложный случай. Запись движений в регистр фактических данных произвольным документом-регистратором.
Программная запись движений в регистр фактических данных бюджетирования обработкой
Так как логика движений будет определяться обработкой, то СКД может быть пустой:

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

Эти данные потребляются бюджетными отчетами, в том числе оборотной ведомостью по бюджетам:


Расшифровка данных до источников их получения показывает те же данные:

Запись данных в регистр фактических данных произвольным документом-регистратором
Сложные случаи. Отражение документов с решением распределительных задач с участием документов-регистраторов.
Для регистратора пишется запрос, например:

Ниже приведен текст примера запроса:
Копировать в буфер обменаВЫБРАТЬ РАЗРЕШЕННЫЕ ВыручкаИСебестоимостьПродаж.Период КАК Период, НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ) КАК ПериодСоединениеНачалоПериода, КОНЕЦПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ) КАК ПериодСоединениеКонецПериода, ВыручкаИСебестоимостьПродаж.Регистратор КАК Регистратор, ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент, ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродаж.Регистратор КАК Документ.РеализацияТоваровУслуг).Менеджер.ФизическоеЛицо КАК Продавец, СУММА(ВЫБОР КОГДА ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура = &ПродаваемаяРабота ТОГДА ВыручкаИСебестоимостьПродаж.СуммаВыручкиСНДСРегл ИНАЧЕ 0 КОНЕЦ) КАК СуммаВыручкиЗаРаботуРегл, СУММА(ВыручкаИСебестоимостьПродаж.СуммаВыручкиСНДСРегл) КАК СуммаВыручкиВсегоРегл ПОМЕСТИТЬ Продажи ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж ГДЕ ВыручкаИСебестоимостьПродаж.Период МЕЖДУ &НачалоПериода И &КонецПериода И ВыручкаИСебестоимостьПродаж.Активность И ВыручкаИСебестоимостьПродаж.ХозяйственнаяОперация = &ХозОперацияПродажи И ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг // для выполнения онлайн правил И &ПривилегированныйРежимИсточника = &ПривилегированныйРежим {ГДЕ // в случае отбора по регистратору при отражении хранимых ВыручкаИСебестоимостьПродаж.Регистратор.* КАК Регистратор, // для выполнения онлайн правил ("ИдентификаторИсточникаДанных") КАК ИдентификаторИсточникаДанных, // для выполнения онлайн правил - поле источника из карточки правила ("Комиссионные за продажу услуг по настройке оборуования") КАК ИсточникДанных, ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Контрагент.* КАК Контрагент, ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродаж.Регистратор КАК Документ.РеализацияТоваровУслуг).Менеджер.ФизическоеЛицо.* КАК Продавец } СГРУППИРОВАТЬ ПО Период, НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ), КОНЕЦПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ), Регистратор, ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Контрагент, ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродаж.Регистратор КАК Документ.РеализацияТоваровУслуг).Менеджер.ФизическоеЛицо ИМЕЮЩИЕ СУММА(ВЫБОР КОГДА ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура = &ПродаваемаяРабота ТОГДА ВыручкаИСебестоимостьПродаж.СуммаВыручкиРегл ИНАЧЕ 0 КОНЕЦ) > 0 ИНДЕКСИРОВАТЬ ПО ПериодСоединениеНачалоПериода, ПериодСоединениеКонецПериода ; ВЫБРАТЬ Продажи.Период, Продажи.Регистратор, Продажи.Контрагент, Продажи.Продавец, Продажи.СуммаВыручкиЗаРаботуРегл КАК СуммаВыручкиЗаРаботуРегл, Продажи.СуммаВыручкиВсегоРегл КАК СуммаВыручкиВсегоРегл, СУММА(Оплаты.СуммаОплатыРегл) КАК СуммаОплатыРегл ПОМЕСТИТЬ ВТ ИЗ Продажи КАК Продажи ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныеСредстваКонтрагент КАК Оплаты ПО Оплаты.Период МЕЖДУ Продажи.ПериодСоединениеНачалоПериода И Продажи.ПериодСоединениеКонецПериода И Оплаты.Активность И Оплаты.ХозяйственнаяОперация = &ХозОперацияОплатыОтКлиента И Оплаты.Контрагент = Продажи.Контрагент И Оплаты.ОбъектРасчетов = Продажи.Регистратор СГРУППИРОВАТЬ ПО Продажи.Период, Продажи.Регистратор, Продажи.Контрагент, Продажи.Продавец, Продажи.СуммаВыручкиЗаРаботуРегл, Продажи.СуммаВыручкиВсегоРегл ; ВЫБРАТЬ ВТ.Период, ВТ.Период КАК ПериодСекунда, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕНЬ) КАК ПериодДень, НАЧАЛОПЕРИОДА(ВТ.Период, НЕДЕЛЯ) КАК ПериодНеделя, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕКАДА) КАК ПериодДекада, НАЧАЛОПЕРИОДА(ВТ.Период, МЕСЯЦ) КАК ПериодМесяц, НАЧАЛОПЕРИОДА(ВТ.Период, КВАРТАЛ) КАК ПериодКвартал, НАЧАЛОПЕРИОДА(ВТ.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие, НАЧАЛОПЕРИОДА(ВТ.Период, ГОД) КАК ПериодГод, ВТ.Регистратор, ВТ.Контрагент, ВТ.Продавец, &ВалютаРуб КАК Валюта, ВЫБОР КОГДА ВТ.СуммаОплатыРегл > ВТ.СуммаВыручкиВсегоРегл ТОГДА ВТ.СуммаВыручкиВсегоРегл ИНАЧЕ ВТ.СуммаОплатыРегл КОНЕЦ * ВТ.СуммаВыручкиЗаРаботуРегл / ВТ.СуммаВыручкиВсегоРегл КАК СуммаВВалюте, ВЫБОР КОГДА ВТ.СуммаОплатыРегл > ВТ.СуммаВыручкиВсегоРегл ТОГДА ВТ.СуммаВыручкиВсегоРегл ИНАЧЕ ВТ.СуммаОплатыРегл КОНЕЦ * ВТ.СуммаВыручкиЗаРаботуРегл / ВТ.СуммаВыручкиВсегоРегл КАК СуммаРегл, // для выполнения онлайн правил ("ИдентификаторИсточникаДанных") КАК ИдентификаторИсточникаДанных, // для выполнения онлайн правил - поле источника из карточки правила ("Комиссионные за продажу услуг по настройке оборуования") КАК ИсточникДанных {ВЫБРАТЬ Период, ПериодСекунда, ПериодДень, ПериодНеделя, ПериодДекада, ПериодМесяц, ПериодКвартал, ПериодПолугодие, ПериодГод, Регистратор, Контрагент, Продавец, Валюта, СуммаВВалюте, СуммаРегл, ИдентификаторИсточникаДанных, ИсточникДанных } ИЗ ВТ КАК ВТ {ГДЕ ВТ.Период КАК ПериодСекунда, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕНЬ) КАК ПериодДень, НАЧАЛОПЕРИОДА(ВТ.Период, НЕДЕЛЯ) КАК ПериодНеделя, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕКАДА) КАК ПериодДекада, НАЧАЛОПЕРИОДА(ВТ.Период, МЕСЯЦ) КАК ПериодМесяц, НАЧАЛОПЕРИОДА(ВТ.Период, КВАРТАЛ) КАК ПериодКвартал, НАЧАЛОПЕРИОДА(ВТ.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие, НАЧАЛОПЕРИОДА(ВТ.Период, ГОД) КАК ПериодГод, ("ИдентификаторИсточникаДанных") КАК ИдентификаторИсточникаДанных, ("Комиссионные за продажу услуг по настройке оборуования") КАК ИсточникДанных}
Результат отражения данных в регистре и отчете по бюджету:

Соответственно, отчеты с расшифровкой исходных данных будут такими же:

Данные в регистре «хранимого» факта, а следовательно, и бюджетного отчета или документа будут согласно приведенному запросу.
Рассмотрим еще один случай. Отражение записей в «хранимый» факт с формированием движений для одного произвольного документа в отражаемом периоде.
Все необходимые данные отражаются в бюджетировании определенным документом, существующим в отражаемом периоде в одном экземпляре.
Запрос состоит из нескольких наборов данных. Первый набор обеспечит выборку регистраторов. Так как параметры &НачалоПериода и &КонецПериода не используются, должен примениться отбор нужных регистраторов. В последующих наборах, подготавливающих сами движения регистра Фактические данные бюджетирования, выполняется соединение с таблицей регистраторов для получения данных только по выбранным регистраторам в первом наборе данных.

Пример запроса:
Копировать в буфер обменаВЫБРАТЬ РАЗРЕШЕННЫЕ НАЧАЛОПЕРИОДА(ОперацияБух.Дата, МЕСЯЦ) КАК НачалоМесяца, КОНЕЦПЕРИОДА(ОперацияБух.Дата, МЕСЯЦ) КАК КонецМесяца, МАКСИМУМ(ОперацияБух.Ссылка) КАК Регистратор ПОМЕСТИТЬ Регистраторы ИЗ Документ.ОперацияБух КАК ОперацияБух ГДЕ ОперацияБух.Дата МЕЖДУ &НачалоПериода И &КонецПериода И ОперацияБух.Проведен И ОперацияБух.Содержание = "#Отражение премии за продажи" {ГДЕ ОперацияБух.Ссылка.* КАК Регистратор, // для выполнения онлайн правил ("ИдентификаторИсточникаДанных") КАК ИдентификаторИсточникаДанных, // для выполнения онлайн правил - поле источника из карточки правила ("Комиссионные за продажу услуг по настройке оборудования через ОперациюБух") КАК ИсточникДанных} СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(ОперацияБух.Дата, МЕСЯЦ), КОНЕЦПЕРИОДА(ОперацияБух.Дата, МЕСЯЦ) ; ВЫБРАТЬ РАЗРЕШЕННЫЕ Регистраторы.НачалоМесяца КАК НачалоМесяца, ВыручкаИСебестоимостьПродаж.Период КАК Период, НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ) КАК ПериодСоединениеНачалоПериода, КОНЕЦПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ) КАК ПериодСоединениеКонецПериода, ВыручкаИСебестоимостьПродаж.Регистратор КАК ДокументПродажи, ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент, ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродаж.Регистратор КАК Документ.РеализацияТоваровУслуг).Менеджер.ФизическоеЛицо КАК Продавец, СУММА(ВЫБОР КОГДА ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура = &ПродаваемаяРабота ТОГДА ВыручкаИСебестоимостьПродаж.СуммаВыручкиСНДСРегл ИНАЧЕ 0 КОНЕЦ) КАК СуммаВыручкиЗаРаботуРегл, СУММА(ВыручкаИСебестоимостьПродаж.СуммаВыручкиСНДСРегл) КАК СуммаВыручкиВсегоРегл ПОМЕСТИТЬ Продажи ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы ПО ВыручкаИСебестоимостьПродаж.Период МЕЖДУ Регистраторы.НачалоМесяца И Регистраторы.КонецМесяца И ВыручкаИСебестоимостьПродаж.Активность И ВыручкаИСебестоимостьПродаж.ХозяйственнаяОперация = &ХозОперацияПродажи И ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг // для выполнения онлайн правил И &ПривилегированныйРежимИсточника = &ПривилегированныйРежим {ГДЕ ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Контрагент.* КАК Контрагент, ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродаж.Регистратор КАК Документ.РеализацияТоваровУслуг).Менеджер.ФизическоеЛицо.* КАК Продавец } СГРУППИРОВАТЬ ПО Регистраторы.НачалоМесяца, Период, НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ), КОНЕЦПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ), ВыручкаИСебестоимостьПродаж.Регистратор, ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Контрагент, ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродаж.Регистратор КАК Документ.РеализацияТоваровУслуг).Менеджер.ФизическоеЛицо ИМЕЮЩИЕ СУММА(ВЫБОР КОГДА ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура = &ПродаваемаяРабота ТОГДА ВыручкаИСебестоимостьПродаж.СуммаВыручкиРегл ИНАЧЕ 0 КОНЕЦ) > 0 ИНДЕКСИРОВАТЬ ПО ПериодСоединениеНачалоПериода, ПериодСоединениеКонецПериода ; ВЫБРАТЬ Продажи.НачалоМесяца, Продажи.Период, Продажи.ДокументПродажи, Продажи.Контрагент, Продажи.Продавец, Продажи.СуммаВыручкиЗаРаботуРегл КАК СуммаВыручкиЗаРаботуРегл, Продажи.СуммаВыручкиВсегоРегл КАК СуммаВыручкиВсегоРегл, СУММА(Оплаты.СуммаОплатыРегл) КАК СуммаОплатыРегл ПОМЕСТИТЬ ВТ ИЗ Продажи КАК Продажи ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныеСредстваКонтрагент КАК Оплаты ПО Оплаты.Период МЕЖДУ Продажи.ПериодСоединениеНачалоПериода И Продажи.ПериодСоединениеКонецПериода И Оплаты.Активность И Оплаты.ХозяйственнаяОперация = &ХозОперацияОплатыОтКлиента И Оплаты.Контрагент = Продажи.Контрагент И Оплаты.ОбъектРасчетов = Продажи.ДокументПродажи СГРУППИРОВАТЬ ПО Продажи.НачалоМесяца, Продажи.Период, Продажи.ДокументПродажи, Продажи.Контрагент, Продажи.Продавец, Продажи.СуммаВыручкиЗаРаботуРегл, Продажи.СуммаВыручкиВсегоРегл ; ВЫБРАТЬ ВТ.Период, ВТ.Период КАК ПериодСекунда, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕНЬ) КАК ПериодДень, НАЧАЛОПЕРИОДА(ВТ.Период, НЕДЕЛЯ) КАК ПериодНеделя, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕКАДА) КАК ПериодДекада, НАЧАЛОПЕРИОДА(ВТ.Период, МЕСЯЦ) КАК ПериодМесяц, НАЧАЛОПЕРИОДА(ВТ.Период, КВАРТАЛ) КАК ПериодКвартал, НАЧАЛОПЕРИОДА(ВТ.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие, НАЧАЛОПЕРИОДА(ВТ.Период, ГОД) КАК ПериодГод, Регистраторы.Регистратор КАК Регистратор, ВТ.Контрагент, ВТ.Продавец, &ВалютаРуб КАК Валюта, ВЫБОР КОГДА ВТ.СуммаОплатыРегл > ВТ.СуммаВыручкиВсегоРегл ТОГДА ВТ.СуммаВыручкиВсегоРегл ИНАЧЕ ВТ.СуммаОплатыРегл КОНЕЦ * ВТ.СуммаВыручкиЗаРаботуРегл / ВТ.СуммаВыручкиВсегоРегл КАК СуммаВВалюте, ВЫБОР КОГДА ВТ.СуммаОплатыРегл > ВТ.СуммаВыручкиВсегоРегл ТОГДА ВТ.СуммаВыручкиВсегоРегл ИНАЧЕ ВТ.СуммаОплатыРегл КОНЕЦ * ВТ.СуммаВыручкиЗаРаботуРегл / ВТ.СуммаВыручкиВсегоРегл КАК СуммаРегл, // для выполнения онлайн правил ("ИдентификаторИсточникаДанных") КАК ИдентификаторИсточникаДанных, // для выполнения онлайн правил - поле источника из карточки правила ("Комиссионные за продажу услуг по настройке оборудования через ОперациюБух") КАК ИсточникДанных {ВЫБРАТЬ Период, ПериодСекунда, ПериодДень, ПериодНеделя, ПериодДекада, ПериодМесяц, ПериодКвартал, ПериодПолугодие, ПериодГод, Регистратор, Контрагент, Продавец, Валюта, СуммаВВалюте, СуммаРегл, ИдентификаторИсточникаДанных, ИсточникДанных } ИЗ ВТ КАК ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы ПО ВТ.НачалоМесяца = Регистраторы.НачалоМесяца {ГДЕ ВТ.Период КАК ПериодСекунда, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕНЬ) КАК ПериодДень, НАЧАЛОПЕРИОДА(ВТ.Период, НЕДЕЛЯ) КАК ПериодНеделя, НАЧАЛОПЕРИОДА(ВТ.Период, ДЕКАДА) КАК ПериодДекада, НАЧАЛОПЕРИОДА(ВТ.Период, МЕСЯЦ) КАК ПериодМесяц, НАЧАЛОПЕРИОДА(ВТ.Период, КВАРТАЛ) КАК ПериодКвартал, НАЧАЛОПЕРИОДА(ВТ.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие, НАЧАЛОПЕРИОДА(ВТ.Период, ГОД) КАК ПериодГод, ("ИдентификаторИсточникаДанных") КАК ИдентификаторИсточникаДанных, ("Комиссионные за продажу услуг по настройке оборудования через ОперациюБух") КАК ИсточникДанных}
Документ-регистратор отразил данные в регистр «хранимого» факта:

Результат работы запроса данных по бюджетной статье отражен в отчете:

Эта же информация отражена и в бюджетном отчете:

Важная информация по списку документов, которые отражаются в «хранимом» факте в типовой поставке:
В типовой поставке конфигурации подпиской на отражение движений регистров документов в «хранимом» факте бюджетирования обладают только те документы, которые являются регистраторами в составе оборотых регистров УУ. Для всех прочих документов нужно настраивать подписку на отражение факта дополнительно. При этом ограничений на работу с онлайн фактом нет.
Заключение
В статье разобраны примеры и инструкции по использованию СКД для «хранимого» факта бюджетирования, а именно:
1. Простые случаи, когда используются типовые документы отражения факта, при этом не требуются какие-то дополнительные модификации.
2. Сложные случаи, когда производится запись данных в регистр отдельной обработкой, при этом СКД на выборку данных из регистра не требует специальных инструкций.
3. Сложные случаи, когда отражение данных производится отдельным специальным регистратором и производится выборка из регистра согласно вводимым данным регистраторов в систему.