Описание встроенного языка системы 1С Предприятие

       

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


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

Синтаксис:

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

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

InsertCalculation

Параметры:



<Объект>

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

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

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

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

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

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

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

<Результат>

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

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

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

Описание:

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

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

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

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




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

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

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

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

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

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

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

Пример:

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

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

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

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

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

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

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

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


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