Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_pr77_Lang2.doc
Скачиваний:
7
Добавлен:
20.11.2019
Размер:
2.52 Mб
Скачать

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

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

Синтаксис:

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

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

InsertRecalc

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

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

Описание:

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

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

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

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

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

Пример:

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

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

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

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

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

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

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

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

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

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

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

Сч = 1;

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

КонецЕсли;

КонецЕсли;

КонецЦикла;

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

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

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

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

Синтаксис:

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

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

InsertRecalcByReason

Параметры:

<Документ>

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

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

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

Описание:

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

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

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

Пример:

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

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

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

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

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

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

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

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

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

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

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

Сч = 1;

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

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

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

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

КонецЕсли;

КонецЦикла;

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

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

Вид

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

Синтаксис:

Вид()

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

Kind

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

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

Описание:

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

Пример:

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

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

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

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

КонецЕсли;

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

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

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

КонецЕсли;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]