Основная страница

Глава 22-2
Работа с Журналами расчетов


 

Методы журнала расчетов

НачалоТекущегоПериода

Возвращает дату начала текущего расчетного периода.

Синтаксис:

НачалоТекущегоПериода()

Англоязычный синоним:

CurrentPeriodBegin

Возвращаемое значение:

Значение типа «дата» — начало текущего расчетного периода журнала рас­четов.

Описание:

Возвращает дату начала текущего периода журнала расчетов. Текущий пе­риод — отрезок времени, обсчитываемый журналом расчетов в данный момент. Величина расчетного периода журнала расчетов определяется при конфигури­ровании журнала и может принимать значения: день, неделя, месяц, квартал, год.

Текущий период журнала расчетов устанавливается при выполнении опера­ции «Установить период расчета» меню «Действия» журнала расчетов. В слу­чае, если периодичность журнала расчетов равна дню, методы НачалоТекущегоПериода и КонецТекущегоПериода возвращают одно и то же значение.

Пример:

//

ЖРЗарп = СоздатьОбъект("ЖурналРасчета.Зарплата");

Начало = ЖРЗарп.НачалоТекущегоПериода();

См. также: КонецТекущегоПериода, ПериодДействия, ПериодРегистрации

КонецТекущегоПериода

Возвращает дату окончания текущего расчетного периода.

Синтаксис:

КонецТекущегоПериода();

Англоязычный синоним:

CurrentPeriodEnd

Возвращаемое значение:

Значение типа «дата» — окончание текущего расчетного периода журнала расчетов.

Описание:

Возвращает дату окончания текущего расчетного периода журнала расчетов. Текущий расчетный период — это отрезок времени, обсчитываемый журналом расчетов в настоящее время. См. описание метода НачалоТекущегоПериода.

Пример:

// ЖРЗарп = СоздатьОбъект("ЖурналРасчета.Зарплата");

Календ = СоздатьОбъект("Календарь.Служащие");

НормаОтработки = Календ.Дней(ЖРЗарп.НачалоТекущегоПериода(),

                              ЖРЗарп.КонецТекущегоПериода());

См. также: НачалоТекущегоПериода, ПериодДействия, ПериодРегистрации

НачалоПериодаПоДате

Возвращает дату начала произвольного расчетного периода.

Синтаксис:

НачалоПериодаПоДате{<Дата>)

Англоязычный синоним:

PeriodBeginByDate

Параметры:

<Дата>

Любая дата, которая попадает в требуемый период.

Возвращаемое значение:

Значение типа «дата» — начало расчетного периода журнала расчетов.

Описание:

Метод позволяет определить дату начала того периода журнала расчетов, в который попадает заданная <Дата>. Работа метода не зависит от наличия в журнале расчетов данных за соответствующий расчетный период.

Пример:

// В каждой строке журнала расчетов проставим в реквизит Дни

// количество банковских дней того периода расчета, в который

// попадает запись

ЖР = СоздатьОбъект("ЖурналРасчетов.Дивиденды");

Календ = СоздатьОбъект("Календарь.РаботаБанка");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись() = 1 Цикл

   ЖР.Дни = Календ.Дней(НачалоПериодаПоДате(ЖР.ДатаНачала),

                         КонецПериодаПоДате(ЖР.ДатаНачала));

КонецЦикла;

См. также: КонецПериодаПоДате

КонецПериодаПоДате

Возвращает дату окончания произвольного расчетного периода.

Синтаксис:

КонецПериодаПоДате(<Дата>)

Англоязычный синоним:

PeriodEndByDate

Параметры:

<Дата>

Любая дата, которая попадает в требуемый период.

Возвращаемое значение:

Значение типа «дата» — окончание расчетного периода журнала расчетов.

Описание:

Метод позволяет определить дату окончания того периода журнала расче­тов, в который попадает заданная дата. Работа метода не зависит от наличия в журнале расчетов данных за соответствующий расчетный период.

Пример:

См. предыдущий пример.

См. также: НачалоПериодаПоДате

ПериодПоДате

Возвращает период журнала расчетов по дате.

Синтаксис:

ПериодПоДате(<Дата>)

Англоязычный синоним:

PeriodByDate

Параметры:

<Дата>

Значение типа «дата».

Возвращаемое значение:

Период журнала расчетов.

Описание:

Метод ПериодПоДате возвращает период журнала расчетов по дате — т. е. период, в который попадает заданная дата.

Пример:

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Пер = ЖР.ПериодПоДате(РабочаяДата());

См. также: НачалоТекущегоПериода, ПериодДействия, ПериодРегистрации, КонецПериодаПоДате

УстановитьТекущийПериод

Устанавливает текущий период журнала расчетов.

Синтаксис:

УстановитьТекущийПериод(<Период>, <Способ>)

Англоязычный синоним:

SetCurrentPeriod

Параметры:

<Период>

Значение типа «период журнала расчетов».

<Способ>

Необязательный параметр, число: 0 — не отрабатывать системные действия, связанные со сменой периода; 1 -отработать системные процедуры по умолчанию (на­пример, отменить рассчитанность записей при откате назад или провести архивацию документов при смене периода «вперед»). В этом режиме метод ведет себя как интерактивная смена периода но без вопросов. Значение параметра по умолчанию 1.

Возвращаемое значение:

Число: 1 — вополнено; 0 — не выполнено.

Описание:

Метод УстановитьТекущийПериод устанавливает текущий период жур­нала расчетов. Ведет себя так же, как интерактивная смена текущего периода, но без диалоговых окон.

Пример:

//Установить следующий период

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Пер = ЖР.ТекущийПериод();

Пер = Пер.ПрибавитьПериод(1);

Сообщение("Смена периода журнала займет некоторое время...");

ЖР.УстановитьТекущийПериод(Пер);

См. также: НачалоТекущегоПериода, ПериодДействия, ПериодРегистрации, КонецПериодаПоДате

ТекущийПериод

Возвращает текущий расчетный период журнала расчетов.

Синтаксис:

ТекущийПериод()

Англоязычный синоним:

CurrentPeriod

Возвращаемое значение:

Значение типа «Период журнала расчетов».

Описание:

Метод предназначен для определения текущего расчетного периода журнала расчетов.

Пример:

// Модуль формы журнала расчетов

Пер = ТекущийПериод();

// установим границу просмотра записей на два расчетных периода

ГраницаПросмотра(Пер.ПрибавитьПериод(-1));

ПолучитьЗапись

Получить из выборки следующую запись журнала расчетов.

Синтаксис:

ПолучитьЗапись()

Англоязычный синоним:

GetRecord

Возвращаемое значение:

Числовое значение — 1, если очередная запись журнала расчетов найдена, и 0, если очередная запись журнала не найдена или отсутствует (выборка пуста).

Описание:

Метод предназначен для позиционирования очередной записи журнала рас­четов в выборке, установленной одним из следующих методов:

·         ВыбратьЗаписи

·         ВыбратьЗаписиПоОбъекту

·         ВыбратьПериод

·         ВыбратьПериодПоОбъекту

·         ВыбратьЗаписиПоДокументу

Как правило, применяется в цикле после использования одного из вышепе­речисленных методов.

Пример:

// Переберем все записи текущего периода журнала расчетов

//по текущему основному средству и просуммируем результат

ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");

ЖР.ВыбратьПериодПоОбъекту(Объект, ЖР.НачалоТекущегоПериода());

// Инициализируем переменную

Сумма = 0;

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Сумма = Сумма + ЖР.Результат;

КонецЦикла;

ВыполнитьРасчет

Выполнить расчет текущей записи журнала расчетов.

Синтаксис:

ВыполнитьРасчет()

Англоязычный синоним:

RunCalculate

Возвращаемое значение:

Числовое значение — 1, если расчет записи выполнен успешно, и 0 — в про­тивном случае (в том числе, при прерывании процедуры расчета пользователем путем нажатия клавиши <Esc>).

Описание:

Выполняет расчет текущей строки журнала расчетов.

Как правило, применяется в цикле, выполняющем перебор записей журнала расчетов при помощи метода ПолучитьЗапись. Работает точно так же, как и метод Рассчитать, но имеет возвращаемое значение. Применяется в том слу­чае, если при обработке в цикле записей журнала расчетов бывает необходимо прервать выполнение расчета.

Пример:

// процедура выполняет расчет по журналу Зарплата

Процедура Выполнить()

   ЖрнЗарплата.ВыбратьПериод{ЖрнЗарплата.НачалоТекущегоПериода());

   Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

      Если Считать() = 1 Тогда

         Если ЖрнЗарплата.ВыполнитьРасчет()= 0 Тогда

            // прерываем процедуру, если расчет неудачен или

            // пользователь нажал Езс

            Прервать;

         КонецЕсли;

      КонецЕсли;

   КонецЦикла;

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

ОписательПериода

Возвращает строку-описатель расчетного периода.

Синтаксис:

ОписательПериода(<Дата>)

Англоязычный синоним:

PeriodDescriptor

Параметры:

<Дата>

Дата периода, описатель которого требуется полу­чить.

Возвращаемое значение:

Строка — описатель расчетного периода.

Описание:

Метод предназначен для получения строкового представления расчетного периода журнала расчетов. Возвращает значение для того расчетного периода, в который попадает параметр <Дата>. Тип формируемой строки различается для разной периодичности журнала расчетов. Например, для журналов с ме­сячной периодичностью строка имеет вид "Январь 1997г", в случае квартальной периодичности — "1 Квартал 1997г", а в случае недельной периодичности — "12.02.97 — 18.02.97".

Как правило, применяется при формировании отчетов.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Сообщить("Текущий период — " + ЖЗ.ОписательПериода(РабочаяДата()));

См. также: НачалоПериодаПоДате, КонецПериодаПоДате

ТекущаяЗапись

Возвращает значение текущей записи журнала расчетов.

Синтаксис:

ТекущаяЗапись()

Англоязычный синоним:

CurrentRecord

Возвращаемое значение:

Значение текущей записи журнала расчетов.

Описание:

Метод возвращает ссылку на текущую запись (позиционированную в дан­ный момент) журнала расчетов.

Возвращенное значение может, например, затем передаваться в качестве па­раметра методу журнала расчетов НийтиЗапись.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖЗ.ВыбратьЗаписиПоОбъекту(Сотрудник, ДН, ДО);

Пока ЖЗ.ПолучитьЗапись() = 1 Цикл

   Если ЖЗ.ПлатВедомость.Выбран() = 1 Тогда

      ЗаписьЖР = ЖЗ.ТекущаяЗапись();

   КонецЕсли;

КонецЦикла;

// теперь найдем запись и что-нибудь с ней поделаем

ЖЗ.НайтиЗапись(ЗаписьЖР);

ЖЗ.ПлатВедомость.Проведена = 1;

ЖЗ.ФиксироватьЗапись();

См. также: НайтиЗапись

НайтиЗапись

Позиционирует в журнале расчетов заданную запись.

Синтаксис:

НайтиЗапись(<Запись>)

Англоязычный синоним:

FindRecord

Параметры:

<3апись>

Запись журнала расчетов.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод позиционирует запись журнала расчетов, переданную в качестве па­раметра <3апись>. Передаваемое в качестве параметра значение, как правило, ранее получается за счет применения метода журнала расчетов ТекущаяЗапись. Фактически, данный метод открывает выборку журнала рас­четов, заведомо состоящую из одной записи, и позиционирует ее.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖЗ.ВыбратьЗаписиПоОбъекту(Сотрудник, ДН, ДО);

Пока ЖЗ.ПолучитьЗапись() = 1 Цикл

   Если ЖЗ.ПлатВедомость.Выбран() = 1 Тогда

      ЗаписьЖР = ЖЗ.ТекущаяЗапись();

   КонецЕсли;

КонецЦикла;

// теперь найдем запись и что-нибудь с ней поделаем

ЖЗ.НайтиЗапись(ЗаписьЖР);

ЖЗ.ПлатВедомость.Проведена = 1;

ЖЗ.ФиксироватьЗапись();

См. также: ТекущаяЗсшись

ФиксироватьЗапись

Фиксирует текущую запись журнала расчетов, предотвращая редак­тирование результата ее расчета.

Синтаксис:

ФиксироватьЗапись()

Англоязычный синоним:

LockRecord

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод фиксирует текущую запись журнала расчетов. После применения этого метода атрибут записи Фиксирована принимает значение 1. Фиксация записи, фактически, означает невозможность отредактировать результат ее рас­чета любым, в том числе программным, способом.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖЗ.ВыбратьЗаписиПоОбъекту(Сотрудник, ДН, ДО);

Пока ЖЗ.ПолучитьЗапись() = 1 Цикл

   Если (ЖЗ.Документ = ТекущийДокумент()) И

        (ЖЗ.ВидРасч = ВидРасчета.ПоТарифу) Тогда

      ЖЗ.ФиксироватьЗапись();

   КонецЕсли;

КонецЦикла;

См. также: атрибут Фиксирована, метод ОсвободитьЗапись

ОсвободитьЗапись

Снимает фиксацию с текущей записи журнала расчетов.

Синтаксис:

ОсвободитьЗапись()

Англоязычный синоним:

ReleaseRecord

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод снимает фиксацию с текущей записи журнала расчетов. После при менения этого метода атрибут записи Фиксирована принимает значение 0. Действие, обратное фиксации записи, фактически, означает возможность редактирования результата ее расчета.

Пример:

Если ЖрнЗарплата.Фиксирована = 1 Тогда

   Если ДатаДок > ЖрнЗарплата.НачалоТекущегоПериода() Тогда

      ОсвободитьЗапись();

   Иначе

      // отказ от расчета!

      // ....

   КонецЕсли;

КоненцЕсли;

См. также: Фиксирована, ФиксироватьЗапись

ВвестиПерерасчет

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

Синтаксис:

ВвестиПерерасчет()

Англоязычный синоним:

InsertRecalc

Возвращаемое значение:

Число: 1 — если операция успешно выполнена, и 0 — в противном случае.

Описание:

Метод предназначен для ввода строк-перерасчетов в журнал расчетов. Как правило, используется в модуле документа, но может использоваться и в мо­дуле вида расчета. Метод вводит полную копию текущей записи в журнал рас­четов, не заполняя лишь атрибут Результат. Впоследствии система распознает «обычные» записи и записи-перерасчеты.

Записи-перерасчеты могут вводиться только для записей одного из про­шлых расчетных периодов. Невозможно ввести перерасчет записи, которая в свою очередь является перерасчетом. При этом система позволяет вводить не­сколько записей-перерасчетов в разных расчетных периодах для одной и той же записи журнала.

Например, в случае если журнал расчетов имеет месячную периодичность, для «мартовской» записи журнала могут быть введены перерасчеты в апреле, мае и т. д.

Для записей, введенных в журнал одним из методов ВвестиПерерасчет или ВвестиПерерасчетНаОсновании, атрибут Перерасчет принимает зна­чение 1.

При расчете записи-перерасчета результат вычисляется с учетом результата первичной (перерассчитываемой) записи. Это значит, что если в журнале рас­четов введен перерасчет записи прошлого периода, то результат перерасчета будет рассчитан за вычетом значения Результат первичной записи.

Пример:

Процедура Перерасчет(Группа, Сотрудник, Основание, Начало, Окончание)

   //Группа расчетов "оплата по среднему"

   ОС = ГруппаРасчетов.ОплатаПоСреднему;

   // перерасчет по журналу "зарплата"

   ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   // дата, начиная с которой нужно перерассчитывать и начисления

   ДатаНачислений = ЖрнЗарплата.КонецПериодаПоДате(Начало) + 1;

   // выделим все записи ЖР по сотруднику

   ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Сотрудник,

                    ЖрнЗарплата.НачалоПериодаПоДате(Начало),

                    Минимум(Окончание, ЖрнЗарплата.НачалоТекущегоПериода() - 1));

   Сч = 1;

   Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

      Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(Группа) = 1 Тогда

         Пересчитать = 1;

         Если ((ЖрнЗарплата.ВидРасч.ВходитВГруппу(ОС) = 1)И

               (ЖрнЗарплата.ДатаНачала<ДатаНачислений)) Тогда

            // надо перерассчитывать начисления, оплачиваемые

            //по среднему заработку только следующего

            // (за началом действия данного документа-основания)

            // периода расчета

            Пересчитать = 0;

         КонецЕсли;

         Если Пересчитать = 1 Тогда

            ЖрнЗарплата.ВвестиПерерасчет(};

         КонецЕсли;

      КонецЕсли;

   КонецЦикла;

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

См. также: Перерасчет, ВвестиПерерасчетНаОсновании

ВвестиПерерасчетНаОсновании

Вводит перерасчет текущей записи журнала расчетов на основании произвольного документа.

Синтаксис:

ВвестиПерерасчетНаОсновании(<Документ>)

Англоязычный синоним:

InsertRecalcByReason

Параметры:

<Документ>

Документ, на основании которого вводится запись (или записи) в журнал расчетов.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк-перерасчетов в журнал расчетов на ос­новании произвольного документа. Как правило, используется в модуле доку­мента, но может использоваться и в модуле вида расчета. Метод вводит полную копию текущей записи в журнал расчетов, не заполняя лишь атрибут Результат и вводя в качестве документа-основания параметр <Документ>.

В отличие от метода ВвестиПерерасчет (который вводит записи журнала на основании того документа, в модуле которого используется метод), данный метод вводит записи-перерасчеты, задавая для них произвольный документ-основание.

Записи-перерасчеты могут вводиться только для записей одного из про­шлых расчетных периодов. Невозможно ввести перерасчет записи, которая в свою очередь является перерасчетом. При этом система позволяет вводить не­сколько записей-перерасчетов в разных расчетных периодах для одной и той же записи журнала.

Пример:

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

   //Группа расчетов "оплата по среднему"

   ОС = ГруппаРасчетов.ОплатаПоСреднему;

   // перерасчет по журналу "зарплата"

   ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   // дата, начиная с которой нужно перерасчитывать и начисления

   ДатаНачислений = ЖрнЗарплата.КонецПериодаПоДате(Начало) + 1;

   // выделим все записи ЖР по сотруднику

   ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Док.Сотрудник,

                ЖрнЗарплата.НачалоПериодаПоДате(Док.Начало),

                Минимум(Док.Окончание, ЖрнЗарплата.НачалоТекущегоПериода() - 1));

   Сч = 1;

   Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

      Если ((ЖрнЗарплата.ВидРасч.ВходитВГруппу(ОС) = 1) И

            (ЖрнЗарплата.ДатаНачала < ДатаНачислений)) Тогда

         ЖрнЗарплата.ВвестиПерерасчетНаОсновании(Док);

      КонецЕсли;

   КонецЦикла;

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

См. также: Перерасчет, ВвестиПерерасчет

Вид

Название журнала расчетов.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строка — название журнала расчетов, как оно задано при конфигурирова­нии.

Описание:

Метод возвращает название журнала расчетов, как оно задано при конфигу­рировании журнала. Один из вариантов использования метода — определение вида журнала в предопределенной процедуре глобального модуля ПриСменеРасчетногоПериода.

Пример:

Процедура ПриСменеРасчетногоПериода(ЖР, Период)

   Если ЖР.Вид() = "Зарплата" Тогда

      Предупреждение("Это смена текущего расчетного периода

                     | для журнала Зарплата");

   КонецЕсли;

   Если Период.ДатаНачала <= ЖР.НачалоТекущегоПериода Тогда

      // не позволяем откатывать период назад

      СтатусВозврата(0);

   КонецЕсли;

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

ПредставлениеВида

Определить пользовательское представление вида журнала расчетов.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида журнала расчетов.

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида журнала расчетов, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния

Состояние(ЖР.ПредставлениеВида());

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>}

Англоязычный синоним:

SetType

Параметры:

<ИмяРеквизита>

Строковое выражение — название реквизита журнала расчетов неопределенного типа, как он назван в кон­фигураторе.

<ИмяТипа>

Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту жур­нала расчетов. Например, «Строка», «Число», «Справочник.Товары», «Документ.РасходнаяНакладная» и т. п.

<Длина>

Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.

<Точность>

Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

// будем записывать несколько реквизитов

ЖЗ.НазначитьТип("ТМЦ", "Справочник.Товары");

ЖЗ.УстановитьРеквизит("ТМЦ", ВыбТовар);

ЖЗ.ВвестиРасчет(Сотр, ВР, Нач, Оконч, Сумма * Процент);

УстановитьРеквизит

Установить значение реквизита журнала расчетов для последующей записи.

Синтаксис:

УстановитьРеквизит(<ИмяРеквизита>, <Значение>)

Англоязычный синоним:

SetAttribute

Параметры:

<ИмяРеквизита>

Строка — наименование реквизита журнала расче­тов.

<Значение>

Значение, устанавливаемое для записи в реквизит <ИмяРеквизита>.

Описание:

Метод предназначен для организации заполнения дополнительных реквизи­тов журнала расчетов при вводе новых записей в журнал расчетов. Метод при­меняется в двух случаях: во-первых, при вводе записей журнала расчетов в процедуре проведения документа одним из перечисленных ниже методов:

·         ВвестиРасчет;

·         ВвестиРасчетНаОсновании;

·         ЗаписатьРасчет;

·         ЗаписатьРасчетНаОсновании.

Во-вторых, при вводе произвольных новых записей журнала расчетов (ме­тоды Новая и Записать).

В этих двух случаях метод УстановитьРеквизит работает по-разному. В случае, когда метод применяется перед вводом записей при проведении документа, не имеет смысла устанавливать значения для следующих реквизи­тов:

·         Объект,

·         Документ,

·         РодительскийДокумент,

·         ВидРасчета,

·         ДатаНачала,

·         ДатаОкончания,

·         ПервичнаяЗапись.

Данные установки игнорируются последующими методами ВвестиРасчет, ЗаписатьРасчет и им подобными. Т. е. при вводе записей журнала этими мето­дами возможна установка только реквизитов журнала, заданных при конфигу­рировании, реквизита Результат и таких признаков записи журнала, как: Рас­считана, Исправлена, Сторно, Фиксирована, Перерасчет.

В случае, когда метод применяется при вводе записей методами Новая и Записать, в качестве первого параметра <ИмяРеквизита> могут применятся наименования реквититов журнала расчетов, заданные при конфигураировании системы или следующие атрибуты, соответствующие предопределенным рекви­зитам журнала расчетов:

·         Документ

·         РодительскийДокумент

·         Объект

·         ВидРасч

·         ДатаНачала

·         ДатаОкончания

·         Сторно

·         Рассчитана

·         Исправлена

·         Фиксирована

·         Перерасчет

·         ПервичнаяЗапись

·         Результат

Внимание! Атрибуты журнала расчетов ПериодДействия и ПериодРегистрации не устанавливаются пользователем. Атрибут ПериодРегистрации при вводе записи принимает значение текущего (установленного в данный момент для журнала расчетов) периода, а атри­бут ПериодДействия соответствует установленным значениям ДатаНачала и ДатаОкончания.

Замечание. Установленные методом значения используются однократно, при первом же вызове одного из вышеперечисленных методов ввода новых записей журнала расчетов установленные значения «сбрасываются». Для записи нескольких реквизитов необходимо использовать метод несколько раз.

Пример:

Процедура ВвестиЗапись(Сотр, ВР, Сумма, Процент)

   ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   // будем записывать несколько реквизитов

   ЖЗ.УстановитьРеквизит("Сторно", 1);

   ЖЗ.УстановитьРеквизит("Рассчитана", 1);

   // введенные записи будут сторнированными и отмеченными

   // как рассчитанные

   ЖЗ.ВвестиРасчет(Сотр, ВР, Нач, Оконч, Сумма*Процент);

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

См. также: ВвестиРасчет, ЗаписатьРасчет

ВвестиРасчет

Ввести запись в журнал расчетов.

Синтаксис:

ВвестиРасчет(<06ъект>, <ВидРасчета>, <ДатаНачала> , <ДатаОкончания>, <Результат>}

Англоязычный синоним:

InsertCalculation

Параметры:

<Объект>

Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.

<ВидРасчета>

Вид вводимого расчета — ссылка на агрегатный объект «ВидРасчета».

<ДатаНачала>

Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего периода журнала расчетов.

<ДатаОкончания>

Необязательный параметр. Дата окончания дейст­вия вводимого расчета. По умолчанию — дата окончания текущего периода журнала расчетов.

<Результат>

Необязательный параметр. Результат расчета. По умолчанию — 0.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод ВвестиРасчет предназначен для ввода строк в журнал расчетов. Как правило, используется в модуле расчета документа, но может использо­ваться и в модуле вида расчета. Метод вводит одну или несколько записей в журнал расчетов, и результат ее действия зависит от того, вводится «вытес­няющий» расчет или обычный.

При вводе вытесняющего расчета проводится анализ уже существующих за­писей журнала расчетш; для интервала времени, заданного параметрами ДатаНачала и ДатаОкончания. Если в этом периоде уже существуют записи, приоритет вытеснения которых меньше либо равен приоритету вытеснения вводимого расчета, будет проводиться редактирование периода их действия или полное их удаление. Это приведет, например, к тому, что вводимая запись бу­дет вытеснять записи с тем же видом расчета.

В том случае, если вытесняемые данные принадлежат не текущему периоду расчета, проводится не корректировка или полное удаление записей, а их стор­нирование

Если приоритет вытеснения уже существующих записей больше приоритета вытеснения вводимого расчета, то корректируется период действия вводимой записи. Это может привести, например, к тому, что новая запись вовсе не будет введена, если ее место во времени уже занято записями с большим приорите­том вытеснения.

Для случая ввода невытесняющих расчетов анализ существующих записей журнала расчетов и их протяженности во времени не проводится, и расчет вво­дится в любом случае.

Во всех вышеописанных случаях ввод записей в журнал расчетов проводит­ся в пределах границ расчетных периодов журнала расчетов. Например, если при месячной периодичности журнала задать дату начала и дату окончания, отстоящие друг от друга более, чем на месяц, будет введено более одной записи журнала расчетов — для всех периодов, затрагиваемых временным интервалом от <ДатаНачала> до <ДатаОкончания>.

Важно! Следует помнить, что ввод записи с временем действия расчета, не принадлежащим текущему расчетному периоду, не означает ввода записей прошлого или будущего периода. Вводимые записи всегда принадлежат текущему периоду (т. е. введены в текущем периоде), хотя и производят расчеты прошлого или будущего периодов.

Атрибуты Документ и РодительскийДокумент журнала расчетов запол­няются значением того документа, в модуле расчета которого сработал метод ВвестиРасчет. Этот документ будет «родителем» и «основанием» вводимой записи журнала расчетов. В том случае, когда метод сработал в модуле вида расчета, реквизиты Документ и РодительскийДокумент заполняются значе­ниями этих атрибутов той записи журнала расчетов, при расчете которой вы­полнен метод ВвестиРасчет.

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

Параметр <Результат> можно использовать в том случае, когда сразу при вводе записей журнала расчетов можно записать их результат.

Важно! Метод ВвестиРасчет можно применять только для тех объектов, ко­торые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расче­тов или в модуле видов расчета.

Пример:

// Ввод выбранного расчета.

// Атрибут "Расчет" — реквизит формы документа

Процедура ПровестиДокумент()

   // Процедура выполняется при проведении документа расчета

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   ЖР.ВвестиРасчет(Сотрудник, Расчет, ДатаН, ДатаК, 0);

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

См. также: ВвестиРасчетНаОсновании, ЗаписатьРасчет

ВвестиРасчетНаОсновании

Ввести запись в журнал расчетов на основании произвольного доку­мента.

Синтаксис:

ВвестиРасчетНаОсновании(<Основание>, <Объект>, <ВидРасчета>, <ДатаНачала>,

                <ДатаОконч>, <Результат>)

Англоязычный синоним:

InsertCalculationByReason

Параметры:

<Основание>

Документ, на основании которого вводится запись (или записи) в журнал расчетов.

<Объект>

Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.

<ВидРасчета>

Вид вводимого расчета — ссылка на агрегатный объ­ект типа «ВидРасчета».

<ДатаНачала>

Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего расчетного периода журнала расчетов.

<ДатаОконч>

Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию — дата окончания текущего расчетного периода журнала расчетов.

<Результат>

Необязательный параметр. Результат расчета. По умолчанию — ноль.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк в журнал расчетов. Работает так же, как и метод ВвестиРасчет, но при этом реквизит Документ вводимых строк журнала расчетов заполняется значением параметра <Основание>. Использо­вание метода ВвестиРасчетНаОсновании — один из способов непосредствен­но установить родительские отношения между любым документом и вводимы­ми записями журнала расчетов.

Важно! Метод ВвестиРасчетНаОсновании можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, на­пример, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.

Пример:

// Модуль выполняется при проведении документа расчета "Начало месяца"

Процедура ПровестиДокумент()

   // Если можно проводить...

   Если (МожноПроводить = 1) Тогда

      // Журнал расчетов — Зарплата

      ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

      ЖРКомп = СоздатьОбъект("ЖурналРасчетов.Компенсации");

      // конец и начало текущего периода

      КТП = ЖР.КонецТекущегоПериода();

      НТП = ЖР.НачалоТекущегоПериода();

      Сотр = СоздатьОбъект("Справочник.Сотрудники");

      Спр = СоздатьОбъект("Справочник.ПриказыДлительногоДействия");

      Сотр.ВыбратьЭлементы();

      Пока Сотр.ПолучитьЭлемент() > 0 Цикл

         // расчет "приказов длительного действия"

         // типа доплат исп. листов, штрафов и пр...

         Спр.ИспользоватьВладельца(Сотрудник);

         Спр.ВыбратьЭлементы();

         // предполагается, что в каждом приказе есть

         // реквизиты Начало, Окончание и Сотрудник

         Пока Спр.ПолучитьЭлемент() > 0 Цикл

            //. . .

            Если Спр.Приказ.Вид() <> "" Тогда

               Если ((Спр.Приказ.Окончание >= НТП) И

                     (Спр.Приказ.Начало <= КТП)) Тогда

                  // предполагается, что в каждом приказе

                  // есть реквизиты Начало и Окончание

                  ЖР.ВвестиРасчетНаОсновании(Спр.Приказ, Спр.Приказ.Сотрудник,

                        Спр.Приказ.Расчет, Макс(Спр.Прика з.Начало, НТП),

                        Мин(Спр.Приказ.Окончание, КТП), 0);

               КонецЕсли;

            КонецЕсли;

         КонецЦикла;

      КонецЦикла;

   ИначеЕсли МожноПроводить = 0 Тогда

      Сообщить("Документ не проведен!!!");

   КонецЕсли;

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

См. также: ВвестиРасчет, ЗаписатьРасчетНаОсновании

ЗаписатьРасчет

Записать расчет в журнал расчетов.

Синтаксис:

ЗаписатьРасчет (<Объект>, <ВидРасчета>, <ДатаНачала>, <ДатаОкончания>,

                <Результат>)

Англоязычный синоним:

EnterCalculation

Параметры:

<Объект>

Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.

<ВидРасчета>

Вид вводимого расчета — ссылка на агрегатный объект «Вид Расчета».

<ДатаНачала>

Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего периода журнала расчетов.

<датаОкончания>

Необязательный параметр. Дата окончания дейст­вия вводимого расчета. По умолчанию — дата окончания текущего периода журнала расчетов.

<Результат>

Необязательный параметр. Результат расчета. По умолчанию — ноль.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк в журнал расчетов так же, как и метод ВвестиРасчет. Отличие заключается в том, что ввод вытесняющих расчетов приводит к вытеснению только тех расчетов, которые имеют меньший приори­тет, а не меньший либо равный, как в случае с методом ВвестиРасчет. Это приводит, в частности, к тому, что за счет применения этого метода расчет не вытесняет «сам себя».

При записи невытесняющего расчета ввод новых записей также происходит «осмотрительно» — новые записи вводятся только в том случае, если в журнале расчетов нет точно такой же записи. Под точно такой же записью здесь подра­зумевается запись с таким же видом расчета, для того же объекта и с тем же периодом действия.

Важно! Метод ЗаписатьРасчет можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.

Пример:

См. предыдущий пример.

См. также: ВвестиРасчет, ЗаписатьРасчетНаОсновании

ЗаписатьРасчетНаОсновании

Ввести запись в журнал расчетов на основании произвольного доку­мента.

Синтаксис:

ЗаписатьРасчетНаОсновании(<Основание>, <Объект>, <ВидРасчета>, <ДатаНачала>,

                   <ДатаОконч>, <Результат>)

Англоязычный синоним:

EnterCalculationByReason

Параметры:

<Основание>

Документ, на основании которого вводится запись (или записи) в журнал расчетов.

<Объект>

Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.

<ВидРасчета>

Вид вводимого расчета — ссылка на агрегатный объ­ект «Вид Расчета».

<ДатаНачала>

Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего периода журнала расчетов.

<ДатаОконч>

Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию — дата окончания текущего периода журнала расчетов.

<Результат>

Необязательный параметр. Результат расчета. По умолчанию — ноль.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк в журнал расчетов. Работает так же, как и метод ЗаписатьРасчет, но при этом реквизит Документ вводимых строк журнала расчетов заполняется значением параметра <Основание>. Ис­пользование метода ЗаписатьРасчетНаОсновании — один из способов непо­средственно установить родительские отношения между любым документом и вводимыми записями журнала расчетов.

Данный метод отличается от метода ВвестиРасчетНаОсновании тем, что ввод вытесняющих расчетов приводит к вытеснению только тех расчетов, кото­рые имеют меньший приоритет, а не меньший либо равный, как в случае с ме­тодом ВвестиРасчетНаОсновании. Это приводит, в частности, к тому, что за счет применения этого метода расчет не вытесняет «сам себя».

При записи невытесняющего расчета ввод новых записей также происходит «осмотрительно» — новые записи вводятся только в том случае, если в журнале расчетов нет точно такой же записи. Под точно такой же записью здесь подра­зумевается запись с таким же видом расчета, для того же объекта и с тем же периодом действия.

Важно! Метод ЗаписатьРасчетНаОсновании можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.

Пример:

Процедура Перерасчет(Группа, Сотрудник, Основание, Начало, Окончание) Экспорт

   // перерасчет по журналу зарплата

   ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");

   ЖР.ВыбратьЗаписиПоОбъекту(Сотрудник, ЖР.НачалоПериодаПоДате(Начало),

       Мин(Окончание, ЖР.НачалоТекущегоПериода() - 1));

   Сч = 1;

   Пока (Сч < 50...) Цикл

      Если (Расчеты[Сч].ВходитВГруппу(ВсеУд)=1) Тогда

         ЖР.ЗаписатьРасчетНаОсновании(Основание, Сотрудник, Расчеты[Сч],

                  Начала[Сч], Окончания[Сч], 0);

      Иначе

         ЖР.ВвестиРасчетНаОсновании(Основания[Сч], Сотрудник, Расчеты[Сч],

                  Начала[Сч], Окончания[Сч], 0);

      КонецЕсли;

      Сч = Сч + 1;

   КонецЦикла;

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

См. также: ВвестиРасчетНаОсновании

Рассчитать

Провести расчет текущей записи.

Синтаксис:

Рассчитать()

Англоязычный синоним:

Calculate

Описание:

Выполняет расчет текущей строки журнала расчетов. Фактически, выполня­ет модуль вида расчета текущей строки журнала расчетов, точнее — предопре­деленную процедуру этого модуля ПровестиРасчет. Как правило, применяет­ся в цикле, выполняющем перебор записей журнала расчетов при помощи ме­тода ПолучитьЗапись. Расчет записей прошлых расчетных периодов не про­изводится.

При расчете фиксированных записей текущего расчетного периода, модуль вида расчета выполняется, но изменение результата расчета не производится.

Метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Рассчитаем все основные средства категории определенного типа

ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Если ЖР.Объект.Тип = Тип;

      ЖР.Рассчитать();

   КонецЕсли;

КонецЦикла;

См. также: ВыполнитьРасчет

ВыбратьЗаписи

Выбрать записи, действующие в определенном временном интервале.

Синтаксис:

ВыбратьЗаписи(<Начало>, <Окончание>}

Англоязычный синоним:

SelectRecords

Параметры:

<Начало>

Дата начала периода.

<Окончание>

Дата окончания периода.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. со­держит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все запи­си, период действия которых хоть на один день затрагивается тем периодом, который задан параметрами <Начало> и <Окончание>. Это значит, например, что если запись журнала расчетов имеет даты начала и окончания '15.12.96' и '25.12.96' то она попадет в выборку, открытую при помощи любого из следующих методов:

·         ВыбратьЗаписи(•10.10.96', •15.12.96')

·         ВыбратьЗаписи('25.12.96', '01.01.97')

·         ВыбратьЗаписи('17.12.96', '17.12.96').

Как правило, после применения данного метода проводится перебор всех записей выборки в цикле при помощи метода журнала расчетов ПолучитьЗапись.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Расчет количества дней, отработанных всеми сотрудниками

// за прошлый период

//

// журнал расчета зарплаты

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

// дата начала прошлого периода

ДатаНачала = ЖР.НачалоПериодаПоДате(ЖР.НачалоТекущегоПериода() - 1);

ЖР.ВыбратьЗаписи(ДатаНачала, ЖР.КонецПериодаПоДате(ДатаНачала));

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Сумма = Сумма + ЖР.ДНИ;

КонецЦикла;

См. также: методы ВыбратьЗаписиПоОбъекту, ВыбратьПериод, атрибуты ДатаНачала, ДатаОкончания

ВыбратьПериод

Выбрать записи, введенные в журнал в определенном расчетном пе­риоде.

Синтаксис:

ВыбратьПериод(<Дата>)

Англоязычный синоним:

SelectPeriod

Параметры:

<Дата>

Дата, лежащая в выбираемом периоде.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. со­держит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все запи­си за тот расчетный период, в который попадает <Дата>. Выбираются именно те записи, которые введены в заданном периоде, но не записи, имеющие дату начала и дату окончания, лежащие в заданном периоде. Следовательно, метод ВыбратьПериод отличается от метода ВыбратьЗаписи лишь тем, что осуще­ствляет выборку в другом временном разрезе. В первом случае — это выбор записей по времени их появления (регистрации) в системе, т. е. по расчетным периодам, во втором случае — это выбор записей по времени их действия. Как правило, применяется перед циклом, выполняющим перебор записей журнала расчетов при помощи метода ПолучитьЗапись.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Расчет суммы амортизации по результатам всех расчетов

// в текущем периоде

// журнал расчета амортизации

ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись()>0 Цикл

   Сумма = Сумма + ЖР.Результат;

КонецЦикла;

См. также: методы ВыбратьПериодПоОбъекту, ВыбратьЗаписи, атрибут ПериодРегистрации

ВыбратьЗаписиПоОбъекту

Выбрать записи, действующие в определенном временном интервале и принадлежащие одному объекту расчета.

Синтаксис:

ВыбратьЗаписиПоОбъекту(<Объект>, <Начало>, <Окончание>)

Англоязычный синоним:

SelectRecordsByObject

Параметры:

<Объект>

Объект расчета, записи которого выбираются.

<Начало>

Дата начала периода.

<Окончание>

Дата окончания периода.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. со­держит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все запи­си, рассчитанные для объекта, заданного параметром <Объект>, период дейст­вия которых хоть на один день затрагивается тем периодом, который задан па­раметрами <Начало> и <Окончание>. Следовательно, метод ВыбратьЗаписиПоОбъекту отличается от ВыбратьЗаписи лишь тем, что в первом случае в выборку попадают записи по одному конкретному объекту расчета, а во втором — по всем объектам расчета.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Проходя по справочнику акционеров, проведем по некоторому

// условию полный расчет дивидендов

// Готовим справочник акционеров

Акционеры = СоздатьОбъект("Справочник.Акционеры");

Акционеры.ПорядокКодов();

Акционеры.ВыбратьЭлементы();

// Журнал расчетов дивидендов

ЖР = СоздатьОбъект("ЖурналРасчетов.Дивиденды");

// Начало и конец текущего периода

Нач = ЖР.НачалоТекущегоПериода();

Кон = ЖР.КонецТекущегоПериода();

Пока Акционеры.ПолучитьЭлемент() > 0 Цикл

   Если Акционеры.Статус = 2 Тогда

      ЖР.ВыбратьЗаписиПоОбъекту(Акционеры.ТекущийЭлемент(), , );

      Пока ЖР.ПолучитьЗапись() > 0 Цикл

         ЖР.Рассчитать();

      КонецЦикла;

   КонецЕсли;

КонецЦикла;

См. также: ВыбратьПериодПоОбъекту, ВыбратьЗаписи

ВыбратьЗаписиПоДокументу

Выбрать записи по документу-основанию.

Синтаксис:

ВыбратьЗаписиПоДокументу(<Документ>)

Англоязычный синоним:

SelееtRecordsByDocument

Параметры:

<Документ>

Документ расчета, который является докумен­том-основанием для отбираемых записей.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. со­держит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все запи­си, документом-основанием для которых служит заданный <Документ>, вне зависимости от того, в каком расчетном периоде записи порождались. Как и все остальные методы выборки журнала расчетов, как правило, применяется перед циклом, в котором перебираются записи. Работает только для переменных, соз­данных функцией СоздатьОбъект.

Важно! Документом-основанием записи журнала расчетов может являться:

·         документ, непосредственно породивший записи в систему за счет при­менения методов ВвестиРасчет и ЗаписатьРасчет;

·         документ, ссылка на который передана в качестве параметра одному из методов: ВвестиРасчетНаОсновании или ЗаписатьРасчетНаОсновании.

Пример:

// Рассчитаем все записи по наряду (процедура выполняется

// в контексте журнала расчетов)

// Журнал расчетов

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.ВыбратьЗаписиПоДокументу(Документ);

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   ЖР.Рас считать();

КонецЦикла;

См. также: методы ВыбратьПериод, ВыбратьтЗаписи, атрибут Документ

ВыбратьПериодПоОбъекту

Выбрать записи по одному объекту расчета, зарегистрированные в определенном расчетном периоде журнала расчетов.

Синтаксис:

ВыбратьПериодПоОбъекту(<Объект>, <Дата>)

Англоязычный синоним:

SelectPeriodByObject

Параметры:

<Объeкт>

Объект расчета, записи которого выбираются.

<Дaтa>

Дата, лежащая в выбираемом периоде.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. со­держит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Работает так же, как метод ВыбратьПериод, за исключением того, что выбираются все записи для того объекта расчета, который задан параметром <Объект>.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

*

Процедура Начислено(Сотрудник)

   Начисл = 0;

   ПН = 0;

   ЖрнЗарплата.ВыбратьПериодПоОбъекту (Сотрудник, ДатаАктуальности);

   Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл

      Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)-1 Тогда

         Начисл = Рез + ЖрнЗарплата.Результат;

      ИначеЕсли ЖрнЗарплата.ВидРасч = ВидРасчета.ПодоходныйНалог

         Тогда ПН = ПН+ЖрнЗарплата.Результат;

      КонецЕсли;

   КонецЦикла;

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

*

// расчет начального сальдо

ЖрнЗарплата.ВыбратьПериодПоОбъекту(Сотрудник, НТП - 1);

Сальдо = 0;

Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл

   Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеУдержания) = 1 Тогда

      Сальдо = Сальдо-ЖрнЗарплата.Результат;

      // выплаты с деполнента и выплаты дивидендов — не считатем!

   ИначеЕсли ВыплатаЗрп(ЖрнЗарплата.ВидРасч, ЖрнЗарплата.Документ) = 1 Тогда

      Сальдо = Сальдо - ЖрнЗарплата.Результат;

   ИначеЕсли ЖрнЗарплата.ВидРасч.

                  ВходитВГруппу(ГруппаРасчетов.ПоложительноеСальдо) = 1 Тогда

      Сальдо = Сальдо + ЖрнЗарплата.Результат;

   КонецЕсли;

КонецЦикла;

Если Сальдо <> 0 Тогда

   ЖрнЗарплата.ЗаписатьРасчет(Сотрудник,

   ВидРасчета.НачальноеСальдо, НТП, КТП, Сальдо);

КонецЕсли;

См. также: методы ВыбратьПериод, ВыбратьтЗаписи, атрибут Объект

ВыбратьПоЗначению

Осуществляет выборку записей по значению в графе отбора.

Синтаксис:

ВыбратьПоЗначению(<ИмяГрафы>, <ЗначениеОтбора>, <ПериодНачала>,

                  <ПериодОкончания>)

Англоязычный синоним:

SelеctByValue

Параметры:

<ИмяГрафы>

Строковое значение. Наименование графы от­бора, как она определена при конфигурирова­нии.

<ЗначениеОтбора>

Отбираемое значение.

<ПериодНачала>

Значение типа «период журнала расчетов» -первый расчетный период отбора.

<ПериодОкончания>

Значение типа «период журнала расчетов» -последний расчетный период отбора.

Возвращаемое значение:

Число: 1 — если отбор успешно установлен; 0 — в противном случае.

Описание:

Метод предназначен для выборки записей журнала расчетов, которые со­держат в графе отбора <ИмяГрафы> заданное <ЗначеяиеОтбора>, период регистрации которых лежит в пределах, заданных параметрами <ПериодНачала> и <ПериодОкончания>.

Если первый параметр задан неверно — т. е. нет такой графы отбора, выбор­ка не будет выполнена и метод возвратит 0. Если заданное <ЗначениеОтбора> не содержится ни в одной строке журнала расчетов, вы­борка окажется пустой (т. е. в нее не попадет ни одна запись журнала расчетов), но метод возвратит значение 1.

Метод используется так же, как и другие методы создающие выборки запи­сей в журнале расчетов, такие как ВыбратьЗаписи, ВыбратьПериод и т. д. Как и все остальные методы выборки журнала расчетов, как правило, применяется перед циклом, в котором перебираются записи. Работает только для перемен­ных, созданных функцией СоздатьОбъект.

Замечание. Наименованиями граф отбора журнала расчетов могут служить реквизиты справочника объектов расчета, заданного для журнала расче­тов, а также значения «Владелец» и «Родитель» этого справочника. Это значит, что в общем случае, в качестве первого параметра, методу могут передаваться предопределенные имена «Родитель» и «Владелец», а также названия реквизитов справочника.

Какие именно графы отбора задействованы в журнале расчетов, задается при конфигурировании.

Данный метод работает так же как и метод формы журнала расчетов УстановитьОтбор, но, разумеется не осуществляет визуального управления формой журнала.

Пример:

// Рассчитаем все записи текщего расчетного периода по

// подразделению (переменная Подр)

Процедура РасчетПодразделения(Подр)

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   ТекПер = ЖР.ТекущийПериод();

   ЖР.ВыбратьПоЗначению("Подразделение", Подр, ТекПер.ТекПер);

   Пока ЖР.ПолучитьЗапись() > 0 Цикл

      ЖР.Рассчитать();

   КонецЦикла;

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

См. также: УстановитьОтбор

Новая

Создает новую запись журнала расчетов.

Синтаксис:

Новая()

Англоязычный синоним:

New

Описание:

Метод инициализирует создание новой строки журнала расчетов. Собствен­но запись новой строки журнала расчетов происходит при вызове метода Записать. После инициализации создания новой строки, как правило, произ­водится заполнение ее реквизитов с последующим вызовом метода Записать.

Пример:

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.Новая();

ЖР.Записать();

Записать

Вносит изменения записи в журнал расчетов.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать вносит изменения записи или новую запись в журнал расчетов. Данный метод применяется после метода Новая и заполнения рекви­зитов журнала расчетов при помощи метода УстановитьРеквизит.

Данный метод проверяет корректность заполненных реквизитов журнала расчетов. При вводе новых записей журнала расчетов методами Новая и Записать обязательно должны быть заполнены следующие реквизиты записи журнала: Объект, Документ, ВидРасч. Кроме того, проверяется корректность реквизитов ДатаНачала и ДатаОкончания. Если реквизиты ДатаНачала и ДатаОкончания не установленвы явным образом, при записи они устанавли­ваются как начало и окончание текущего расчетного прериода, соответственно. Реквизит ПериодРегистрации заполняется текущим значением расчетного периода, установленным для журнала расчетов (см. метод УстановитьПериодРасчета). Если реквизит РодительскийДокумент не установлен явным образом, для него устанавливается то же значение, что и для реквизита Документ. Если реквизиты Рассчитана, Сторно, Перерасчет, Фиксирована не установлены, то запись вводится как простая нерассчитанная, нефиксированная запись.

Внимание! При вводе новых записей в журнал расчетов методами Новая и Записать записи вводятся «как есть». Система не выполняет правила перерасчетов, а также правила взаимного вытеснения видов расчета. Ввод произвольных записей журнала расчетов очень ответственная операция. При использовании этих методов следует внимательно следить за логиче­ской целостностью журнала расчетов.

Пример:

Перем Док;

Перем Сотр;

Перем Рез;

// документы

Док = СоздатьОбъект("Документ");

// ...позиционируется нужный документ

// сотрудники

Сотр = СоздатьОбъект("Справочник.Сотрудники");

// ...позиционируется нужный элемент справочника сотрудники

// считаем результат...

Рез =

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.Новая();

ЖР.УстановитьПериод(ЖР.ПолучитьпериордПоДате(ТекДата));

ЖР.УстановитьРеквизит("Документ", Док.ТекущийДокумент());

ЖР.УстановитьРеквизит("Объект", Сотр.ТекущийЭлемент());

ЖР.УстановитьРеквизит("ВидРасч", Вид Расчета.ПоОкладу);

ЖР.УстановитьРеквизит("Рассчитана", 1);

ЖР.УстановитьРеквизит("Результат", Рез);

ЖР.Записать();

УдалитьЗапись

Удалить запись журнала расчетов.

Синтаксис:

УдалитьЗапись()

Англоязычный синоним:

DeleteRecord

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для удаления записей журнала расчетов. Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Процедура выполняется в контексте журнала расчетов

// Удалим записи, по которым нет рабочих дней!

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Календ = СоздатьОбъект("Календарь.Служащие");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Если Календ.Дней(ЖР.ДатаНачала, ЖР.ДатаОкончания) = 0 Тогда

      ЖР.УдалитьЗапись();

   КонецЕсли;

КонецЦикла;

Исправить

Исправление результата записи журнала расчетов.

Синтаксис:

Исправить(<НовыйРезультат>)

Англоязычный синоним:

Update

Параметры:

<НовыйРезультат>

Новый результат записи журнала расчетов.

Описание:

Метод выполняет то же действие, что и интерактивная процедура исправле­ния результата, т. е. при исправлении записи текущего расчетного периода про­сто редактируется результат и метится запись «ручкой», а при исправлении записи прошлого периода — вводится сторно той записи и еще одна запись-исправление. Описание интерактивной процедуры исправления результата можно посмотреть в книге «Руководство пользователя».

ОтменитьИсправление

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

Синтаксис:

ОтменитьИсправление()

Англоязычный синоним:

UndoUpdate

Описание:

Отменяет исправление, сделанное ранее (вручную или из языка методом Исправить). Метод выполняет те же действие, что и интерактивная процедура отмены исправления записи журнала расчетов. Описание интерактивной про­цедуры отмены исправления результата записи журнала расчетов можно по­смотреть в книге «Руководство пользователя».






Перейти  к оглавлению: Описание встроенного языка