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

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

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

Синтаксис:

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

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

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

InsertCalculationByReason

Параметры:

<Основание>

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

<Объект>

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

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

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

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

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

<ДатаОконч>

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

<Результат>

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

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

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

Описание:

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

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

Пример:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//. . .

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

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

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

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

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

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

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

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

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецЦикла;

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

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

КонецЕсли;

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

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

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