Иллюстрация механизмов вытеснения и зависимости от базы

 

 
 

Создадим новый объект конфигурации Отчет. Назовем его « Перерасчет». На закладке « Макеты» откроем конструктор выходной формы, и выберем следующие поля из виртуальной таблицы перерасчета « Начисления.Перерасчет»:

 

На закладке « Отчет» сбросим флаг « Использовать построитель отчета» и нажмем « OK» - наш отчет готов.

Запустим 1С:Предприятие в режиме отладки, сформируем отчет « Перерасчет» и убедимся, что пока он не содержит никаких данных.

 
 

Создадим новый документ Начисление сотрудникам № 2, в котором начислим премию за март Гусакову и Деловому:

 

Этим документом мы зафиксируем тот факт, что сотрудникам Гусакову и Деловому нужно начислить премию по итогам работы за март. Поскольку размер премии нам неизвестен ( он будет рассчитываться по некоторому алгоритму), поля « Результат» мц оставляем пустыми. Нажмем « ОК».

Теперь снова откроем документ Начисление Сотрудникам № 1 и изменим оклад Гусакова с 10 000 на 7 000. Нажмем « ОК». Сформируем отчет « Перерасчет»:

 

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

Вы можете спросить: « почему в перерасчет попали записи как про Делового, так и про Гусакова, хотя оклад мы меняли только Гусакову»? Дело в том, что платформа не отслеживает конкретные изменения, которые пользователь внес в записи документа. Она отслеживает лишь факт изменения набора записей регистра расчета в результате проведения ( перепроведения) документа. Поэтому в набор записей перерасчета она включает информацию о ВСЕХ записях регистра, значение ресурсов которых МОЖЕТ измениться в результате перепроведения документа, создавшего базовые записи регистра.

 
 

Перепроведем документ Начисления сотрудникам № 2 ( которым мы начисляли премию) и сформируем отчет « Перерасчет». Он снова не содержит никаких данных - система отметила тот факт, что мы« пересчитали» зависимые записи и очистила таблицу перерасчета.