//************************************* Процедура ПриОткрытии() ПриЗаписиПерепроводить(1); Если ПустоеЗначение(ВидВекселя)=1 Тогда ВидВекселя=1; КонецЕсли; КонецПроцедуры //************************************ Процедура ВводНового() ДатаДок=КонМесяца(ДатаДок); КонецПроцедуры //************************************ Процедура ПриВводеДаты() //Предупреждение("Изменена дата документа. Табличная часть будет очищена. Если дата сохраненного изменена ошибочно, отмените сохранение изменений документа"); УдалитьСтроки(); //ДатаДок=КонМесяца(ДатаДок); КонецПроцедуры //*********************************** Процедура Заполнить() УдалитьСтроки(); Если ВидВекселя=1 //выданные Тогда Сч=Строка(Константа.нпзСчОДВекселейВыданных);//*** "58.3"; Иначе //полученные Сч=Строка(Константа.нпзСчОДВекселейПолученных);//*** "66.1" КонецЕсли; Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Договоры,, 1); Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1); Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок),ДатаДок, Сч,,, 1,, "С"); Ит.ВыбратьСубконто(ВидыСубконто.Договоры); Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл Если (Ит.ДО()=0)и(Ит.КО()=0) Тогда //начисляем за весь месяц НоваяСтрока(); Договор=Ит.Субконто(1); Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты); Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл Контрагент=Ит.Субконто(2); КонецЦикла; Если ВидВекселя=1 //выданные Тогда База=Ит.СКК(); Процент=Константа.нпзПроцентВекселяВыданные;//***0.2; Иначе //полученные База=Ит.СКД(); Процент=Константа.нпзПроцентВекселяПолученные;//***0.1; КонецЕсли; Дней=ДатаДок-НачМесяца(ДатаДок)+1; Сумма=База*Процент*Дней/(((КонГода(ДатаДок)-НачГода(ДатаДок))+1)*100);//365 оно не всегда ;) Иначе Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты); Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл ТекКонтрагент=Ит.Субконто(2); КонецЦикла; Ит2 = СоздатьОбъект("БухгалтерскиеИтоги"); Ит2.ИспользоватьСубконто(ВидыСубконто.Договоры, Ит.Субконто(1), 2); Ит2.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ТекКонтрагент, 2); Ит2.ВыполнитьЗапрос(НачМесяца(ДатаДок),ДатаДок, Сч,,, 1, "Проводка", "СК"); ДатаС=НачМесяца(ДатаДок); Ит2.ВыбратьПериоды(); Пока Ит2.ПолучитьПериод() = 1 Цикл НоваяСтрока(); Договор=Ит.Субконто(1); Контрагент=ТекКонтрагент; Если ВидВекселя=1 //выданные Тогда База=Ит2.СНК()-Ит2.СНД(); БазаХвоста=Ит2.СКК()-Ит2.СКД(); Процент=Константа.нпзПроцентВекселяПолученные;//***0.1; Иначе //полученные База=Ит2.СНД()-Ит2.СНК(); БазаХвоста=Ит2.СКД()-Ит2.СКК(); Процент=Константа.нпзПроцентВекселяВыданные;//***0.2; КонецЕсли; Дней=Ит2.НачДата-ДатаС+1; Сумма=База*Процент*Дней/(((КонГода(ДатаДок)-НачГода(ДатаДок))+1)*100);//365; Если Ит2.НачДата<>ДатаДок Тогда ЕстьХвост=1 Иначе ЕстьХвост=0; КонецЕсли; ДатаС=Ит2.НачДата+1; Если База=0 Тогда УдалитьСтроку(); КонецЕсли; КонецЦикла; Если (ЕстьХвост=1)и(БазаХвоста>0) Тогда НоваяСтрока(); Договор=Ит.Субконто(1); Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты); Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл Контрагент=Ит.Субконто(2); КонецЦикла; Дней=ДатаДок-ДатаС+1; Если ВидВекселя=1 //выданные Тогда Процент=Константа.нпзПроцентВекселяВыданные; Иначе //полученные Процент=Константа.нпзПроцентВекселяПолученные; КонецЕсли; База=БазаХвоста; Сумма=БазаХвоста*Процент*Дней/(((КонГода(ДатаДок)-НачГода(ДатаДок))+1)*100);//365; Если База=0 Тогда УдалитьСтроку(); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры //********************************** Процедура ПересчитатьСтроку() Сумма=База*Процент*Дней/(((КонГода(ДатаДок)-НачГода(ДатаДок))+1)*100);//365; КонецПроцедуры //********************* Процедура ПриСменеВидВекселя() УдалитьСтроки(); КонецПроцедуры