Прикладной код

Функция «СоздатьФактуруАв»

Функция «СоздатьФактуруАв»

Создает счет-фактуру на аванс по платежному документу на указанную сумму. Дата и контрагент заполняются аналогично полям в платеже. Ставка НДС берется по умолчанию из настроек учета.

Синтаксис

СоздатьФактуруАв(Платеж, Сумма, Параметры);

Параметры

НазваниеТипОписаниеОбязательно к указанию

Платеж

Число

Идентификатор платежного документа

Да

Сумма

Число

Сумма авансового платежа

Нет

Параметры

Объект

Параметры для записи

Нет

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

Ничего не возвращает. Выполняет запись.

Пример

// Пример с параметрами
var пДатНач = НачКвартала(Период),
   пДатКнц = КнцКвартала(Период),
   пДатКнцСальдо = пДатКнц,
   пСуммаДок = 0,
   чСтавкаНДС = ОсновнаяСтавкаНДС(пДатНач),
   пСтавкаНДС = String(чСтавкаНДС),
   АналитСтавкаНДС = НайтиАналитику('СтавкиНДС', 'НДС' + пСтавкаНДС);

ДляВсех(ПроводокКредит('62-02', Нет, Нет, Нет, АналитСтавкаНДС, пДатНач, пДатКнц), function(ПроводкаАванс) {
   var пПриходАванса = ПроводкаАванс.Сумма;
   if (пПриходАванса > 0 && ПроводкаАванс.Лицо3) {
      var оСальдо62 = СальдоКонечное(ДокументНашаОрганизация, пДатКнцСальдо, '62-02', [Нет, Нет, ПроводкаАванс.Лицо3]),
         пСумма62 = оСальдо62.СальдоКредит;
      if (пСумма62 > 0.05) {
         var ПоСчетам = СведАВПоСчетам(НайтиДокументПоЛицу(ПроводкаАванс.Лицо3)["@Документ"], пСумма62);
            пСумма62 = Math.min(пСумма62, ПоСчетам.СуммаАВ);
         if (пСумма62 > 0.05) {
            var Параметры = ПоСчетам.ЕстьКомис ? ПоСчетам.Комис : Нет;
            СоздатьФактуруАв(ПроводкаАванс.Лицо3, пСумма62, Параметры);
         }
      }
   }
});

//Пример без параметров — отражение Авансы_от_покупателей_—_начисление_НДС
var пДатНач = НачКвартала(Период),
   пДатКнц = КнцКвартала(Период);

var пНДСнаОстаток = НастройкаУчета(пДатКнц, 'НДСнаОстатокАванса', '0'), // если нет такого параметра, то 0 
   СтавкаНДС = ОсновнаяСтавкаНДС(пДатНач),
   оСтавкаНДС = НайтиАналитику('СтавкиНДС', 'НДС' + СтавкаНДС);

ДляВсех(ПроводокКредит('62-02', [Нет, Нет, Нет, оСтавкаНДС], пДатНач, пДатКнц), function(ПроводкаАванс) {
   var пПриходАванса = ПроводкаАванс.Сумма;
   if (пПриходАванса > 0) {
      if (пНДСнаОстаток == '1') {
         var оСальдо62 = СальдоКонечное(ДокументНашаОрганизация, пДатКнц, '62-02', [Нет, Нет, ПроводкаАванс.Лицо3]),
            пСумма62 = оСальдо62.СальдоКредит;
      } else
      var пСумма62 = пПриходАванса;
   var пСуммаНДС = НалогВключая(пСумма62, СтавкаНДС);
   if (пСумма62 > 0.03)
      СоздатьФактуруАв(ПроводкаАванс.Лицо3, пСумма62);
   }
});