Журнал расчетов — это средство для просмотра и редактирования результатов расчета. Каждая строка журнала отражает единичное событие расчета для того или иного объекта. Такие события называются «расчетами» и характеризуются следующими данными:
· объект, для которого произведен расчет;
· вид (т. е. способ) расчета;
· документ, на основании которого введен этот расчет;
· результат расчета;
· время действия (т. е. расчет имеет дату начала и дату окончания). период регистрации, во время которого расчет введен в журнал (это понятие не совпадает с понятием времени действия, так как время действия акта расчета и период регистрации, во время которого он введен в систему, могут не совпадать)
Справочник объектов расчета. Одним из самых важных свойств журнала расчетов является ссылка на справочник, элементы которого являются объектами расчета. Справочник объектов расчета может быть как простым, так и иерархическим. Не обязательно все элементы этого справочника должны рассчитываться конкретным журналом расчетов, но, в свою очередь, все строки журнала расчетов должны соответствовать тому или иному элементу справочника объектов расчета. Как правило, журнал расчетов содержит несколько записей по одному объекту расчета, но одна запись журнала расчетов не может соответствовать сразу нескольким объектам.
Расчетный период. Журнал расчетов имеет определенную периодичность, т. е. все расчеты в нем выполняются в пределах определенного временного интервала. Каждая запись журнала расчетов, соответствующая одному акту расчета, также имеет временное протяжение (т. е. имеет дату начала и дату окончания).
Важно! Временной интервал каждой отдельной записи журнала не может лежать в разных расчетных периодах журнала.
Записи, лежащие в текущем расчетном периоде, могут, тем не менее, иметь период действия, не принадлежащий текущему расчетному периоду. Это значит, что даты начала и окончания конкретной записи могут «выпадать» из текущего периода расчета и относиться к одному из прошлых или будущих периодов. Самым очевидным примером здесь может служить перерасчет зарплаты сотрудника за прошлый период или начисления будущего периода.
Примеры. Журнал расчета заработной платы сотрудников предприятия (каждый сотрудник — объект расчета), при этом выполняется расчет тех или иных начислений и удержаний (виды расчета), имеющих определенную продолжительность и результат. Другой пример — журнал расчета амортизации основных средств, где справочником объектов расчета является справочник основных средств предприятия, а видами расчета —алгоритм расчета амортизации, списания, переоценки и т. д. Третий пример — журнал расчета дивидендов для акционеров АО, где объекты расчета — список акционеров предприятия, а виды расчета — способы начислений дивидендов на акции разных типов.
Так же, как и при работе с другими данными системы 1С:Предприятие, доступ к атрибутам журнала расчетов и вызов его методов зависит от контекста выполнения модуля программы. В контексте выполнения расчета (см. «Виды программных модулей»), доступны атрибуты, методы журнала расчетов, т. е. они пишутся непосредственно, с указанием необходимых параметров.
Пример:
// Запись рассчитанного значения в атрибут Результат журнала расчетов
Результат = Объект.Оклад * Дни / ВсегоДней;
Во всех остальных случаях доступ к атрибутам и методам журнала расчетов производится через переменную, являющуюся ссылкой на объект типа «Журнал расчетов», т. е. созданную функцией СоздатьОбъект с ключевым словом ЖурналРасчетов.
Англоязычный синоним ключевого слова ЖурналРасчетов — CalcJournal.
Пример:
// Рассчитаем все записи журнала расчетов Зарплата
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖР.ВыбратьПериод(НачалоТекущегоПериода());
Пока ПолучитьЗапись() = 1 Цикл
ЖР.Рассчитать();
КонецЦикла;
При работе с журналом расчетов приходится сталкиваться с понятием «записи журнала расчетов». Ссылкой на объект типа «запись журнала расчетов» является, например, атрибут ПервичнаяЗапись журнала расчетов. Метод журнала ТекущаяЗапись также возвращает объект такого типа.
Кроме того, объект этого типа передается как параметр предопределенной процедуре формы журнала расчетов ПриРасчете в том случае, если выполняется расчет одной записи журнала расчетов. С точки зрения встроенного языка, ссылки на записи журнала расчетов — агрегатные объекты, имеющие свои атрибуты.
При работе с переменными или параметрами, представляющими собой ссылки на записи журнала расчетов, можно использовать любые атрибуты, присущие журналу расчетов, как агрегатному объекту (см. ниже).
Запись журнала расчетов как агрегатный объект не имеет методов.
Пример:
Процедура ПриРасчете(Объект)
// определим, что считаем?
Если ТипЗначения(Объект) = 12 Тогда
// имеем дело с документом
Если Объект.Автор <> Расчетчик Тогда
// если автор данного документа не есть текущий расчетчик
// запретим расчет чужого документа!
СтатусВозврата(0);
КонецЕсли;
ИначеЕсли ТипЗначения(Объект) = 11 Тогда
// а это — элемент справочника
Если Объект.Владелец <> Расчетчик Тогда
// если рассчитываемый объект лежит в папке текущего
// расчетчика — считать можно, иначе — нет
СтатусВозврата(0);
КонецЕсли;
Иначе
// иначе — считаем одну запись
Если (Объект.Документ.Автор <> Расчетчик) ИЛИ
(Объект.Объект.Владелец <> Расчетчик) Тогда
// не дадим считать запись чужого документа или объекта
СтатусВозврата(0);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
При работе с журналом расчетов приходится сталкиваться с понятием «период журнала расчетов». Ссылкой на такого рода объект являются, например, атрибуты ПериодРегистрации и ПериодДействия журнала расчетов. Кроме того, объект этого типа передается в качестве одного из параметров предопределенной процедуре глобального модуля ПриСменеРасчетногоПериода. С точки зрения встроенного языка, период журнала расчетов — агрегатный объект, имеющий свои атрибуты (см. ниже) и методы. Атрибуты периода журнала расчетов предназначены только для чтения.
Дата начала периода журнала расчетов.
Синтаксис:
ДатаНачала
Англоязычный синоним:
DateFrom
Описание:
Атрибут типа «дата» — дата начала периода журнала расчетов.
Пример:
Процедура ПриСменеРасчетногоПериода(ЖР, Период)
Если ЖР.Вид() = "Зарплата" Тогда
Предупреждение("Это смена текущего расчетного периода
| для журнала Зарплата");
КонецЕсли;
Если Период.ДатаНачала <= ЖР.НачалоТекущегоПериода Тогда
//не позволяем откатывать период назад
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
См. также: ДатаОкончания
Дата окончания периода журнала расчетов.
Синтаксис:
ДатаОкончания
Англоязычный синоним:
DateTill
Описание:
Атрибут типа «дата» — дата окончания периода журнала расчетов.
См. также: ДатаНачала
Возвращает строку-описатель периода.
Синтаксис:
ОписательПериода
Англоязычный синоним:
РеriodDescriptor
Описание:
Атрибут ОписательПериода является строковым представлением расчетного периода журнала расчетов. Тип формируемой строки различный для разной периодичности журнала расчетов. Например, для периода журналов с месячной периодичностью строка имеет вид "Январь 1997г", в случае квартальной периодичности журнала расчетов — "1 Квартал 1997г", а в случае недельной периодичности — "12.02.97 - 18.02.97".
Как правило, применяется при формировании отчетов.
Пример:
Процедура ВыводПоПериодам()
Перем Запрос, ТекстЗапроса, Таб;
Перем ДатаАкт;
ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ДатаАкт = ЖЗ.НачалоТекущегоПериода();
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ВыводПоПериодам)
|Период с ДатаАкт по ДатаАкт;
|Сотр = ЖурналРасчетов.Зарплата.Объект;
|Пер = ЖурналРасчетов.Зарплата.ПериодРегистрации;
|Рез = ЖурналРасчетов.Зарплата.Результат;
|Группировка Сотр упорядочить по Сотр.МестоРаботы без групп;
|Группировка Пер;
|Функция Сум = Сумма(Рез);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка("Сотр") = 1 Цикл
Сообщить(Запрос.Сотр.Наименование);
Пока Запрос.Группировка("Пер") = 1 Цикл
Сообщить(Запрос.Пер.ОписательПериода + "-" + 3апрос.Сум);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Возвращает очередной период журнала на базе текущего периода.
Синтаксис:
ПрибавитьПериод(<Количество>)
Англоязычный синоним:
AddPeriod
Параметры:
<Количество> |
Число периодов, на которое отстоит текущий период от искомого. По умолчанию — 1 (т. е. метод возвращает следующий период). |
Возвращаемое значение:
Период журнала, отстоящий от заданного на определяемое параметром <Количество> число периодов.
Описание:
Метод предназначен для получения периода отстоящего от текущего на заданное число периодов. Если <Количество> положительное число, возвращаемое значение — будущий период, в противном случае — прошлый период.
Пример:
ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");
ЖР.ВыбратьПериод(РабочаяДата());
//на три расчетных периода (месяца) назад
Пер = ЖР.ПериодДействия.ПрибавитьПериод(-3);
// теперь отбираем записи по нужному нам периоду
ЖР.ВыбратьПериод(Пер.ДатаНачала);
Всего = 0;
Пока ПолучитьЗапись() = 1 Цикл
Если ЖР.ВидРасч = ВидРасчета.Доплата Тогда
Всего = Всего + ЖР.Результат;
КонецЕсли;
КонецЦикла;
Документ-основание текущей записи журнала расчетов.
Синтаксис:
Документ
Англоязычный синоним:
Document
Описание:
Атрибут типа «Документ». Ссылка на документ, на основании которого данная запись (расчет) введена в журнал расчетов. Это может быть, например, документ «Больничный лист», породивший одну или несколько записей с видом расчета «Оплата больничного листа».
Этот атрибут журнала расчетов заполняется в момент проведения документа ссылкой на этот документ, в случае использования методов ВвестиРасчет, ВвестиПерерасчет, ЗаписатьРасчет, или ссылкой на другой документ, в случае использования методов ВвестиРасчетНаОсновании, ЗаписатьРасчетНаОсновании, ВвестиПерерасчетНаОсновании (см. ниже).
Атрибут Документ предназначен только для чтения.
Пример:
Процедура ПровестиРасчет()
Календ = Объект.Категория.Получить(ДатаНачала).Календарь;
Дней = Календ.Дней(ДатаНачала, ДатаОкончания);
Если ОткрытДок(Документ) = 0 Тогда
РассчитатьСреднюю(Документ, Константа.МесСреднБЛ,
ГруппаРасчетов.СредняяДляБЛ, 0);
КонецЕсли;
// среднюю зарплату берем из документа породившего расчет
Результат =Окр(Дней * Документ.СрЗарплата);
Дни = ?(Сторно = 1, -Дней, Дней);
КонецПроцедуры
См. также: ВвестиРасчет, ЗаписатьРасчет, ВвестиПерерасчет, ЗаписатьРасчетНаОсновании, ВестиРасчетНаОсновании, ВвестиПерерасчетНаОсновании
Документ, который ввел данную запись в журнал расчетов.
Синтаксис:
РодительскийДокумент
Англоязычный синоним:
ParentDocument
Описание:
Атрибут типа «Документ». Ссылка на документ расчета, который ввел данную запись (расчет) журнала расчетов.
В момент проведения документа, при вводе новых записей в журнал расчетов любым способом, атрибут РодительскийДокумент заполняется ссылкой на тот документ, который проводится.
Атрибут РодительскийДокумент предназначен только для чтения.
Пример:
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖР.ВыбратьЗаписиПоОбъекту();
Пока ЖР.ПолучитьЗапись() = 1 Цикл
Если (ЖР.ВидРасч = ВидРасчета.ПоОкладу) И
(ЖР.РодительскийДокумент.Вид() <> "НачалоМесяца") Тогда
СообщитьОПерерасчете();
КонецЕсли;
КонецЦикла;
См. также: ВвестиРасчет, ЗаписатьРасчет, ВвестиПерерасчет, ЗаписатьРасчетНаОсновании, ВвестиРасчетНаОсновании, ВвестиПерерасчетНаОсновании
Элемент справочника, для которого введена данная запись журнала расчетов.
Синтаксис:
Объект
Англоязычный синоним:
Object
Описание:
Атрибут типа «Справочник». Ссылка на конкретный элемент того справочника, который при конфигурировании журнала расчетов задан как список объектов расчета (справочник объектов расчета). К этому конкретному элементу справочника имеет отношение данная запись (расчет) журнала расчетов.
Атрибут Объект предназначен только для чтения.
Пример:
// Расчет профвзносов
Процедура ПровестиРасчет()
// объект расчета — сотрудник
Если Объект.Профсоюз.Получить(ДатаОкончания) = Да Тогда
// Зануляем результат перед расчетом для того,
// чтобы не учитывать его при расчете уже взятого налога!!!
Результат = 0;
// Журнал расчетов
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖР.ВыбратьЗаписиПоОбъекту(Объект, ЖР.НачалоПериодаПоДате(ДатаНачала),
ЖР.КонецПериодаПоДате(ДатаНачала));
Облагаем = 0;
УжеВзяли = 0;
Группа = ГруппаРасчетов.ОблагаетсяПроф;
Пока ЖР.ПолучитьЗапись() > 0 Цикл
Если ЖР.ВидРасч.ВходитВГруппу(Группа) = 1 Тогда
Облагаем = Облагаем + ЖР.Результат;
ИначеЕсли ЖР.ВидРасч = ВидРасчета.ПрофВзносы Тогда
УжеВзяли = УжеВзяли + ЖР.Результат;
КонецЕсли;
КонецЦикла;
Результат = Окр(Константа.ПроцентПроф.Получить(ДатаНачала) / 100 *
Облагаем - УжеВзяли);
Иначе
Результат = 0;
КонецЕсли;
КонецПроцедуры
См. также: ВыбратьПериодПоОбъекту, ВыбратьЗаписиПоОбъекту
Вид расчета текущей записи журнала расчетов.
Синтаксис:
ВидРасч
Англоязычный синоним:
CalculKind
Описание:
Атрибут типа «ВидРасчета». Ссылка на конкретный вид расчета, алгоритм которого будет использован при вычислении результата данной записи журнала расчетов (акта расчета).
Атрибут ВидРасч предназначен только для чтения.
Пример:
// Перечисление в банк
Процедура ПровестиРасчет()
// Процедура выполняется при проведении расчета
// посчитаем сумму на руки
НаРуки = 0;
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
Пока ЖР.ПолучитьЗапись() = 1 Цикл
// если строка журнала расчетов имеет вид расчета,
// входящий в группу "Все начисления"
Если ЖР.ВидРасч.ВходитВГруппу(Группа.ВсеНачислнения) Тогда
НаРуки = НаРуки + ЖР.Результат;
// ...или "Все удержания"
ИначеЕсли ЖР.ВидРасч.ВходитВГруппу(Группа.ВсеУдержания) Тогда
НаРуки = НаРуки - ЖР.Результат;
КонецЕсли;
КонецЦикла;
Если Документ.Сумма <> 0 Тогда
Результат = Окр(Мин(Документ.Сумма, НаРуки));
ИначеЕсли Документ.Процент <> 0 Тогда
НаРуки = 0;
Результат = Окр(НаРуки * Процент / 100);
КонецЕсли;
Если Документ.Банк.Выбран() Тогда
ПроцентУд = Документ.Банк.ПроцентУдержания;
Иначе
Сообщение("Не указан банк для перечисления средств!");
Возврат;
КонецЕсли;
ЖР.ВвестиРасчет(Объект, ВидРасчета.БанковскиеИздержки,
ДатаНачала, ДатаОкончания, Окр(Результат * ПроцентУд / 100));
КонецПроцедуры
Дата начала действия записи журнала расчетов.
Синтаксис:
ДатаНачала
Англоязычный синоним:
DateFrom
Описание:
Атрибут типа «дата» — дата начала действия текущего акта расчета (записи журнала расчетов). Эта дата может не совпадать с периодом регистрации Атрибут ДатаНачала предназначен только для чтения.
Пример:
// процедура выполняется в контексте журнала расчетов
// ДатаНачала и ДатаОкончания доступны непосредственно!
// календарь
Календ = Объект.Категория.Получить(ДатаНачала).Календарь;
// размер оклада
Тариф = Объект.Тариф.Получить(ДатаОкончания);
Часов = Календ.Часов(ДатаНачала.ДатаОкончания);
Результат = Окр(Тариф*Часов);
Часы = ?(Сторно = 1, -Часов, Часов);
См. также: ДатаОкончания, ПериодДействия, ПериодРегистрации
Дата окончания действия записи журнала расчетов.
Синтаксис:
ДатаОкончания
Англоязычный синоним:
DateTill
Описание:
Атрибут типа «дата» — дата окончания действия текущего акта расчета (записи журнала расчетов).
Атрибут ДатаОкончания предназначен только для чтения.
Пример:
См. предыдущий пример.
См. также: ДатаНачала, ПериодДействия, ПериодРегистрации
Период действия записи журнала расчетов.
Синтаксис:
ПериодДействия
Англоязычный синоним:
EffectivePeriod
Описание:
Атрибут типа «период журнала расчетов» — период действия текущей записи журнала расчетов. Под периодом действия подразумевается тот расчетный период журнала, в который попадают ДатаНачала и ДатаОкончания действия записи журнала расчетов (акта расчета).
Атрибут ПериодДействия предназначен только для чтения.
Пример:
Процедура ПоПодр()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПоПодр)
|Период с ДатаНач по ДатаКон;
|Док = ЖурналРасчетов.Зарплата.ТекущийДокумент;
|ПД = ЖурналРасчетов.Зарплата.ПериодДействия;
|Подр = ЖурналРасчетов.Зарплата.Объект.МестоРаботы.Владелец;
|Рез = ЖурналРасчетов.Зарплата.Результат;
|Группировка ПД;
|Группировка Подр без групп;
|Функция Итог = Сумма(Рез);
|"//}}ЗАПРОС
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ПоПодр");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Пока Запрос.Группировка("ПД") = 1 Цикл
// Заполнение полей ПД
Таб.ВывестиСекцию("ПД");
Сообщение(Запрос.ПД.Описатель);
Пока Запрос.Группировка("Подр") = 1 Цикл
// Заполнение полей Подр
Таб.ВывестиСекцию("Подр");
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.Опции(1, 0, 1, 0);
Таб.Показать("ПоПодр", "");
КонецПроцедуры
См. также: ДатаНачала, ПериодДействия, ПериодРегистрации
Период регистрации записи журнала расчетов.
Синтаксис:
ПериодРегистрации
Англоязычный синоним:
RegistrationPeriod
Описание:
Атрибут типа «период журнала расчетов» — расчетный период, в котором текущая запись была введена в журнал расчетов. Это тот расчетный период, который на момент ввода данной записи был установлен для журнала расчетов как текущий.
Атрибут ПериодРегистрации предназначен только для чтения.
Пример:
См. предыдущий пример.
См. также: ДатаНачала, ДатаОкончания, ПериодДействия
Признак сторнирующей записи.
Синтаксис:
Сторно
Англоязычный синоним:
Storno
Описание:
Атрибут типа «число», принимает два значения: 1 — для сторнирующих записей журнала расчетов и 0 — для обычных записей. Признак «сторно» равен 1 не только для простых сторно-записей, но и для рассчитанных, отредактированных вручную или зафиксированных (не подлежащих редактированию) сторно-записей.
Сторнирующие записи могут появляться в журнале расчетов в результате выполнения методов ВвестиРасчет, ЗаписатьРасчет и им подобных, если при этом затрагиваются один или несколько прошлых расчетных периодов и вводимый вид расчета является «вытесняющим». При этом система автоматически вводит необходимые сторнирующие записи. Для таких записей (введенных системным образом) признак сторнирования не может быть переопределен.
Если сторнирующая запись введена программным образом, т. е. атрибут Сторно задан за счет применения метода УстановитьРеквизит или непосредственным присвоением:
ЖрнРасчета = СоздатьОбъект("ЖурналРасчета.Зарплата");
ЖрнРасчета.Сторно = 1;
тогда он может быть переопределен программным образом.
Пример:
*
Процедура ПровестиРасчет()
// календарь
Календ = Объект.Категория.Получить(ДатаОкончания).Календарь;
// размер оклада
Оклад = Объект.Оклад.Получить(ДатаОкончания);
Дней = Календ.Дней(ДатаНачала, ДатаОкончания);
ВсегоДней = Календ.Дней(НачалоПериодаПоДате(ДатаНачала),
КонецПериодаПоДате(ДатаНачала));
Если ВсегоДней > 0 Тогда
Результат = Окр(Оклад * Дней / ВсегоДней);
// если запись-сторно — поставим отрицательные дни!
Дни = ?(Сторно = 1, -Дней, Дней);
Иначе
Результат = 0;
Дни = 0;
Сообщить("Неправильный календарь!");
КонецЕсли;
КонецПроцедуры
*
// вводим сторнирующие рассчитанные записи
ВР = ВидРасчета.ДоплатаКОкладу;
ЖрнЗарплата.УстановитьРеквизит("Сторно", 1);
ЖрнЗарплата.УстановитьРеквизит("Рассчитана", 1);
ЖрнЗарплата.ВвестиРасчет(Сотрудник, ВР, , , Сумма * Процент);
См. также: УстановитьРеквизит, ВвестиРасчет, ЗаписатьРасчет, Рассчитана
Признак того, что запись рассчитана.
Синтаксис:
Рассчитана
Англоязычный синоним:
Calculated
Описание:
Атрибут типа «число», принимает два значения: 1 — для рассчитанных записей журнала расчетов и 0 — для нерассчитанных записей.
Запись журнала расчетов становится рассчитанной в результате удачного выполнения одной из соответствующих команд меню «Действия» или при выполнении методов журнала расчетов Рассчитать, ВыпролнитьРасчет.
Атрибут Рассчитана предназначен только для чтения.
Пример:
// Перед выводом отчета проверим, все ли записи рассчитаны
ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖрнЗарплата.ВыбратьПериодПоОбъекту(Сотрудник, ДатаОтчета);
// признак нерассчитанности
ПлохоДело=0;
Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл
Если ЖрнЗарплата.Рассчитана = 0 Тогда
ПолохоДело = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Если ПлохоДело = 1 Тогда
Предупреждение("Не проведен полный расчет сотрудника!
| Формирование отчета невозможно");
Возврат;
КонецЕсли;
// продолжим формирование документа
См. также: Исправлена, Фиксирована
Признак того, что запись исправлена вручную.
Синтаксис:
Исправлена
Англоязычный синоним:
Updated
Описание:
Атрибут типа «число», принимает два значения: 1 — для записей журнала расчетов, результат которых исправлен «вручную» и 0 — для остальных записей.
Запись журнала расчетов становится исправленной при редактировании результата расчета непосредственно в журнале расчетов. Исправленные вручную записи не редактируются при очередном сеансе расчета, т. е. результат автоматического расчета не заменяет результат ручного ввода. Это значит, что результат ручного редактирования «главнее» результата автоматического расчета.
Атрибут Исправлена предназначен только для чтения.
Пример:
// Проверим, не редактировали ли результаты ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖрнЗарплата.ВыбратьЗаписиПоДокументу(ТекущийДокумент());
Счетчик = 0;
Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл
Если ЖрнЗарплата.Исправлена = 1 Тогда
Счетчик = Счетчик + 1;
КонецЕсли;
КонецЦикла;
Если Счетчик <> 0 Тогда
Сообщение("Исправленных записей — " + Счетчик);
КонецЕсли;
// продолжим формирование документа
См. также: Рассчитана, Фиксирована
Признак того, что результат расчета записи защищен от исправления.
Синтаксис:
Фиксирована
Англоязычный синоним:
Locked
Описание:
Атрибут типа «число», принимает два значения: 1 — для фиксированных записей журнала расчетов и 0 — для остальных записей.
Запись журнала расчетов становится фиксированной при выполнении метода журнала расчетов ФиксироватьЗапись. Признак фиксированности записи можно снять, применив метод журнала расчетов ОсвободитьЗапись.
После фиксации записи результат ее расчета не может быть изменен никаким, в том числе, программным способом.
Атрибут Фиксирована предназначен только для чтения.
Пример:
Если ЖрнЗарплата.Фиксирована = 1 Тогда
Если ДатаДок > ЖрнЗарплата.НачалоТекущегоПериода() Тогда
ОсвободитьЗапись();
Иначе
// отказ от расчета;
// ....
КонецЕсли;
КоненцЕсли;
См. также: ФиксироватьЗапись, ОсвободитьЗапись
Признак того, что запись является перерасчетом другой записи прошлого периода.
Синтаксис:
Перерасчет
Англоязычный синоним:
Recalc
Описание:
Атрибут типа «число», принимает два значения: 1 — для записей-перерасчетов и 0 — для остальных записей.
Записи-перерасчеты вводятся в журнал расчетов при выполнении одного из методов журнала расчетов: ВвестиПерерасчет или ВвестиПерерасчетНаОсновании.
Атрибут Перерасчет предназначен только для чтения.
Пример:
ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖрнЗарплата.ВыбратьПериодПоОбъекту(Сотрудник, ДатаОтчета);
Есть = 0;
Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл
Если ЖрнЗарплата.Перерасчет = 0 Тогда
Есть = 1;
Пер = ЖрнЗарплата.ПервичнаяЗапись.ПериодРегистрации;
Прервать;
КонецЕсли;
КонецЦикла;
Если Есть = 1 Тогда
Предупреждение("За истекший период проводились перерасчеты
| прошлого периода " + Пер.Описатель);
Возврат;
КонецЕсли;
// продолжим формирование документа
См. также: ПервичнаяЗапись
Первичная запись записи-перерасчета. Запись, на основании которой введена текущая запись-перерасчет.
Синтаксис:
ПервичнаяЗапись
Англоязычный синоним:
ParentRecord
Описание:
Атрибут типа «запись журнала расчетов». Имеет непустое значение для записей-перерасчетов, т. е. тех записей, которые введены в систему одним из методов журнала расчетов: ВвестиПерерасчет или ВвестиПерерасчетНаОсновании.
Атрибут ПервичнаяЗапись предназначен только для чтения.
Пример:
См. предыдущий пример.
См. также: Перерасчет, ВвестиПерерасчет, ВвестиПерерасчетНаОсновании
Результат расчета,
Синтаксис:
Результат
Англоязычный синоним:
Result
Описание:
Атрибут типа «число». Используется для доступа к результату расчета записи. Как правило, самым важным действием процедуры ПровестиРасчет модуля расчета является вычисление результата расчета и заполнение атрибута Расчет.
Пример:
*
// Переберем все записи текущего периода журнала расчетов
//по текущему основному средству и просуммируем результат
ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");
ЖР.ВыбратьПериодПоОбъекту(Объект, ЖР.НачалоТекущегоПериода());
// Инициализируем переменную
Сумма = 0;
Пока ЖР.ПолучитьЗапись() > 0 Цикл
Сумма = Сумма + ЖР.Результат;
КонецЦикла
*
Результат = Оклад * Дней / ОтработаноДней;
Значение реквизита журнала расчетов.
Синтаксис:
<Реквизит> |
Идентификатор реквизита журнала расчетов, как он задан в конфигураторе. |
Описание:
Атрибут <Реквизит> предоставляет доступ к значению реквизита записи журнала расчетов. В тексте программного модуля в качестве названия реквизита используется идентификатор конкретного реквизита журнала расчетов, созданного в конфигураторе.
Пример:
//В этом примере журнал расчетов "Зарплата"
// имеет реквизит "ХозОперация"
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());
Пока ЖР.ПолучитьЗапись() = 1 Цикл
ЖР.ХозОперация = ПолучитьХО(ЖР.ТекущаяЗапись());
// вызвали вспомогательную функцию пользователя: ПолучитьХО
КонецЦикла;