1С Предприятие. Практика программирования на платформе v7

  73c64bed     

Описание алгоритма расчета записи журнала расчетов в модуле вида расчета


Откроем модуль вида расчета «Вднях». В модуле вида расчета доступны атрибуты и реквизиты рассчитываемой записи журнала расчетов.

С помощью метода вида метаданных Календари - Дней(), определим количество дней отработанных оборудованием и запишем выражение для реквизита Журнала расчетов - «Часов».

Метод Дней(<ДатаНачала>,<ДатаОкончания>)позволяет получить количество "ненулевых" дней за

период.

Возвращает: целое положительное число - количество дней.

<ДатаНачала> - дата начала периода, в котором определяется количество дней.

<ДатаОкончания> - дата окончания периода, в котором определяется количество дней. Если

<ДатаНачала> больше, чем <ДатаОкончания>, будет выведено сообщение об ошибке.

Коэффициент амортизации оборудования задается у нас в процентах в час. Примем что в день у нас 10 рабочих часов для оборудования.

Процедура ПровестиРасчет()

Часов=Объект.График.Дней (ПериодДействия. ДатаНачала,

ПериодДействия.ДатаОкончания);

Результат=Стоимость* Часов *Объект.КоэффАморт/10 ;

КонецПроцедуры

182______________________ 1С:Предприятие. Практика программирования на платформе V7

Упражнение 35. Создайте алгоритм расчета записи для вида расчета «Вчасах», используя метод календарей Часов(ДатаНачала.ДатаКонца). Рассчитайте записи в режиме Предприятия.



Определим остаточную стоимость оборудования, чтобы определить момент полного списания оборудования. Мы его списываем по бухгалтерскому и по оперативному учету. Полная остаточная стоимость, таким образом, складывается из конечного дебетового сальдо по счету «ОБ.ПР» по разделителю учета «Белое» и остатков по Оперативному учету.

Упражнение 36. Создайте в глобальном модуле функцию ОстаточнаяСтоимость(КонДата,Объект), которая будет возвращать полную остаточную стоимость оборудования на заданную дату. Организуйте вызов функции из текстовой колонки «Ост.» табличной части формы списка журнала расчетов «Амортизация».

Функция ОстаточнаяСтоимость(КонДата,Объект,Документ)   Экспорт Рег=Создать0бъект("Регистр.Амортизация");

БИ=Создать0бъект("БухгалтерскиеИтоги");

БИ.ИспользоватьРазделительУчета(Перечисление.ТипыУчета.Бел);

Если КонДата<ПолучитьДатуТА() Тогда Peг.ВременныйРасчет();

РассчитатьРегистрыНа(КонДата);

КонецЕсли;

БИ.Рассчитать(,КонДата,"ОБ.ПР",,Перечисление.ТипыУчета.Бел);

Возврат БИ.СКД("ОБ.ПР",,,Объект,Документ) + Рег.СводныйОстаток(Объект,Документ,"Стоимость");

КонецФункции //ОстаточнаяСтоимость()

В этот остаток не вошли суммы списания по себестоимости по оперативному и бухгалтерскому учету, там в Партию записано значение документа списания.

XI. Основы построения объектов компоненты «Расчет»__________________________ 183



Содержание раздела