1С-Предприятие 8.0. Практическое пособие разработчика


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


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

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

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

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


[345]

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

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

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

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




Начало  Назад  Вперед



Книжный магазин