1С Предприятие 7.7. Документация

       

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


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

Синтаксис:

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

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

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

InsertCalculationByReason

Параметры:

<Основание>

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



<Объект>

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

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

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

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

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

<ДатаОконч>

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

<Результат>

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

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

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

Описание:

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

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

Пример:

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            //. . .

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

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

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

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

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

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

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

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

               КонецЕсли;

            КонецЕсли;

         КонецЦикла;

      КонецЦикла;

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

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

   КонецЕсли;

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

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


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