Создание записей в Журнале расчетов
Записи журнала расчетов формируются документами расчета. Алгоритм создания записей журнала расчетов, как и другие движения в системе, описывается в модуле документа расчета.
XI. Основы построения объектов компоненты «Расчет»__________________________ 177
Упражнение 34. Установите флаг расчета в свойствах документа «Приход» и создайте в нем реквизит табличной части «Расчет» типа «ВидРасчета», чтобы можно было откорректировать вид расчета перед вводом записи в журнал расчетов. Опишите в свойствах соответствующего поля диалога документа выражение для ввода из справочника «Оборудование» значения по умолчанию для реквизита «Расчет».
Метод ВвестиРасчет() позволяет ввести одним документом несколько записей в журнал расчетов по одному объекту.
Метод ЗаписатьРасчетО вводит документом только одну запись по объекту и виду расчета в одном периоде журнала расчетов. Если документом вводится запись по такому же объекту с таким же видом расчета, которая уже есть в данном периоде журнала расчетов, то существующая запись будет замещена новой записью.
Списки параметров для обоих методов одинаковы.
ВвестиРасчет(<Объект>,< ВидРасчета >,<ДатаНачала>,<ДатаОкончания>,<Результат>) позволяет
ввести запись в журнал расчетов.
<Объект> - объект расчета - элемент справочника, заданного при конфигурировании журнала расчетов.
<ВидРасчета> - вид вводимого расчета - ссылка на агрегатный обьект ВидРасчета.
<ДатаНачала> - дата начала действия вводимого расчета. По умолчанию - дата начала текущего
периода журнала расчетов.
<ДатаОкончания> - дата окончания действия вводимого расчета. По умолчанию - дата окончания
текущего периода журнала расчетов.
<Результат> - результат расчета. По умолчанию - ноль.
Возвращаемое значение:
1 - если операция успешно выполнена, и 0 - в противном случае.
178______________________ 1С:Предприятие. Практика программирования на платформе V7
Для ввода записей расчета на основании существуют методы ВвестиРасчетНаОсновании() и ЗаписатьРасчетНаОсновании() с аналогичными различиями.
ВвестиРасчетНаОсновании(<Основание>,<Объект>,<ВидРасчета>,<ДатаНачала>,<ДатаОкончания>,<Результат>)
позволяет ввести запись в журнал расчетов на основании произвольного документа.
<Основание> - документ, на основании которого вводится запись (или записи) в журнал расчетов.
<Объект> - объект расчета - элемент справочника, заданного при конфигурировании журнала расчетов.
<ВидРасчета> - вид вводимого расчета - ссылка на агрегатный объект ВидРасчета.
<ДатаНачала> - дата начала действия вводимого расчета. По умолчанию - дата начала текущего
периода журнала расчетов.
<ДатаОкончания> - дата окончания действия вводимого расчета. По умолчанию - дата окончания
текущего периода журнала расчетов.
<Результат> - результат расчета. По умолчанию - ноль.
Возвращаемое значение:
1 - если операция успешно выполнена, и 0 - в противном случае.
Параметр «Основание» попадает в атрибут РодительскийДокумент записи журнала расчетов.
Для ввода значений реквизитов журнала расчетов используется метод УстановитьРеквизит().
УстановитьРеквизит(<ИмяРеквизита>,<Значение>) устанавливает значение реквизита журнала расчетов для записи.<ИмяРеквизита> - наименование реквизита журнала расчетов. <3начение> -значение, устанавливаемое для записи в реквизит <ИмяРеквизита>.
Откроем Модуль документа «Приход» и пропишем создание записей журнала расчетов по каждой строке документа. Для этого, в отличие от регистров и бухгалтерской операции, необходимо создать объект "ЖурналРасчетов.Амортизация" и в цикле перебора строк документа вызвать метод журнала расчетов ВвестиРасчет().
// ********************************************
Процедура ОбработкаПроведения()
ЖурнРасчетов=Создать0бъект("ЖурналРасчетов.Амортизация"); ВыбратьСтроки();
Пока ПолучитьСтроку() =1 Цикл
// Создать запись журнала расчетов
ЖурнРасчетов.УстановитьРеквизит("Стоимость",Сумма); ЖурнРасчетов.ВвестиРасчет(оборудование,Расчет,Датадок,,);
КонецЦикла;
КонецПроцедуры
XI. Основы построения объектов компоненты «Расчет»__________________________ 179
Сохраните изменения, и откройте Предприятие. Перевведите оборудование в приходных документах, чтобы ввести вид расчета, перепроведите их и откройте журнал расчетов.
Вы увидите в нем записи созданные документами, они пока ещё не рассчитываются. Чтобы научить систему рассчитывать записи, рассмотрим подробнее свойства объектов метаданных ВидРасчета.