|
округление НДС в документе налоговая накладная | ☑ | ||
---|---|---|---|---|
0
Ardov
16.10.14
✎
14:03
|
налоговая накладная, как сделать округление
Всем привет, подскажите пожалуйста, как в налоговой накладной настроить правильно округление? Документ выгружается в медок округление тянет одно а итог другой, рвет на 1 копейку. Я понимаю что нужно сделать два знака после запятой, и вопрос решится, но по некторым причинам это сделать не возможно, можно ли как то программно это сделать? пробовал при печати выводить три знака, но не помогло, кто сталкивался с таким, подскажите пожалуйста http://s014.radikal.ru/i328/1410/1f/ba029886ea2f.jpg http://i008.radikal.ru/1410/6d/ad054a42c5c2.jpg |
|||
1
Ardov
16.10.14
✎
14:04
|
1с 7.7
|
|||
2
Ardov
16.10.14
✎
14:09
|
Перем НачальнаяДатаДокумента;
Перем СтарЧтоПродаем; Перем СтарыйКонтрагент; Перем СписокДействий; Перем СтараяДата; Перем СтарВидНДС; Перем СтарКатегорияЦен; Перем СтарыйВидОперации; Перем РеализацияВУкраине; Перем НоваяНакладная; Перем ОбновитьБазуНДС; перем флИзм,фАвто; Процедура ИзмТипПричины() далее Процедура ИзмКонтрагент() далее //======================================== Процедура ЗаполнитьДоговор() Если Договор.Выбран()=1 тогда ДатаДог = Договор.ДатаДок; НомДог = СокрЛП(Договор.НомерДоговора); ВидДоговора="Договір поставки" ; иначе ВидДоговора="Договір поставки"; ДатаДог = " "; НомДог = " "; Конецесли; КонецПроцедуры // =============================== Процедура ВыбратьЛьготу() Перем Выб; Спр = СоздатьОбъект("Справочник.ШкалаСтавок"); Спис = СоздатьОбъект("СписокЗначений"); ГрЛьгот = ?(ДатаДок >= '10.01.2011', "ЛьготыНДС2011","ЛьготыНДС"); Если Спр.НайтиПоКоду(ГрЛьгот) = 1 Тогда Льготы = Спр.ТекущийЭлемент(); Спр.ИспользоватьРодителя(Льготы); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Спис.ДобавитьЗначение(Спр.ТекущийЭлемент()); КонецЦикла; Выб = ПолучитьПустоеЗначение("Справочник.ШкалаСтавок"); Выб = ЛьготаНДС; // справочник ТМЦ Если Спис.ВыбратьЗначение(Выб,,,,2) = 1 Тогда ЛьготаНДС = Выб; КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Процедура РассчитатьБазуНДС() НачВалюта = ?(ПустоеЗначение(Валюта)=1,Гривня,Валюта); Если ЕстьНулевыеСтавкиНДС = 0 Тогда Если ПродажаНижеОЦ = 0 Тогда СуммаНДС = Окр(Окр(глПересчет(Итог("НДС"), НачВалюта,Гривня,Курс,ДатаДок),3),2); БазаНДС = Окр(Окр(глПересчет(Итог("СуммаБезНДС"),НачВалюта,Гривня,Курс,ДатаДок),3),2); Иначе СуммаНДС = Окр(Окр(глПересчет(Итог("НДС")+Итог("НДСПревышения"), НачВалюта,Гривня,Курс,ДатаДок),3),2); БазаНДС = Окр(Окр(глПересчет(Итог("СуммаБезНДС")+Итог("СуммаПревышения"),НачВалюта,Гривня,Курс,ДатаДок),3),2); КонецЕсли; Иначе ГруппировочныеКолонки = "НулеваяСтавкаНДС"; СуммируемыеКолонки = "НДС, СуммаБезНДС"; Если ПродажаНижеОЦ = 1 Тогда СуммируемыеКолонки = СуммируемыеКолонки + ", НДСПревышения, СуммаПревышения"; КонецЕсли; ТЗ = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТЗ, ГруппировочныеКолонки + ", " + СуммируемыеКолонки); ТЗ.Свернуть(ГруппировочныеКолонки, СуммируемыеКолонки); БазаНДС = 0; СуммаНДС = 0; БазаНДС0 = 0; ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Если ПродажаНижеОЦ = 0 Тогда СумНДС = ТЗ.НДС; База = ТЗ.СуммаБезНДС; Иначе СумНДС = ТЗ.НДС + ТЗ.НДСПревышения; База = ТЗ.СуммаБезНДС + ТЗ.СуммаПревышения; КонецЕсли; Если ТЗ.НулеваяСтавкаНДС = Да Тогда БазаНДС0 = глПересчет(База,НачВалюта,Гривня,Курс,ДатаДок); Иначе СуммаНДС = глПересчет(СумНДС,НачВалюта,Гривня,Курс,ДатаДок); БазаНДС = глПересчет(База,НачВалюта,Гривня,Курс,ДатаДок); КонецЕсли; КонецЦикла; КонецЕсли; Если ПродажаНижеОЦ = 1 Тогда Оставляем=0; КонецЕсли; КонецПроцедуры // =============================== // Назначение: Пересчет сумм в строке документа // // Аргументы: НоваяЦена - новая цена для текущей строки документа // Процедура ПересчетСтроки(НоваяЦена=0) Если Константа.ОсновнаяЦена = Перечисление.ВидыЦенВДокументах.ЦенаБезНДС Тогда Если ПустоеЗначение(НоваяЦена) = 0 Тогда // определим ставку НДС Если ВидНДС = ОсновнаяСтавкаНДС Тогда СтавкаНДС = ТМЦ.СтавкаНДС; Иначе СтавкаНДС = ВидНДС; КонецЕсли; // устанавливаем цену без НДС ЦенаБезНДС = НоваяЦена*100/(глПроцентНДС(СтавкаНДС,ДатаДок)+100); КонецЕсли; глВыч_Суммы_Накл(Контекст,-1); Иначе Если ПустоеЗначение(НоваяЦена) = 0 Тогда ЦенаСНДС = НоваяЦена; КонецЕсли; глВыч_Суммы_Накл(Контекст,1); КонецЕсли; КонецПроцедуры //ПересчетСтроки // =============================== // Назначение: пересчитывает цену и суммы в строке документа по категори цен // Процедура ПресчитатьЦенуПоКатегории() ЦенаТовара = глВернутьЦену(ТМЦ, КатегорияЦен); Если ПустоеЗначение(ЦенаТовара) = 0 Тогда // получим параметры цены ЦенаТовара.ИспользоватьДату(ДатаДок); ЦенаЦены = ЦенаТовара.Цена; ВалютаЦены = ЦенаТовара.Валюта; ЕдЦены = ЦенаТовара.Единица; ЦенаЦены = ЦенаЦены * Коэффициент / ЕдЦены.Коэффициент; ЦенаЦены = глПересчет(ЦенаЦены,ВалютаЦены,ДатаДок,Валюта,Курс,Дата_курса); ПересчетСтроки(ЦенаЦены); Иначе ПересчетСтроки(); КонецЕсли; КонецПроцедуры //ПресчитатьЦенуПоКатегории // Назначение: пересчитывает суммы в строках документа при изменении реквизитов шапки // // Аргументы: Реквизит - наименование измененного реквизита // // =============================== Процедура ИзмРеквизитШапки(Реквизит) // пересчитаем суммы НДС в строках табличной части Если (СтарВидНДС=ВидНДС) И (СтарКатегорияЦен=КатегорияЦен) Тогда // ничего не изменилось Возврат; Иначе СтарВидНДС =ВидНДС; СтарКатегорияЦен=КатегорияЦен; КонецЕсли; Если КоличествоСтрок() = 0 Тогда Возврат; КонецЕсли; текОтвет = Вопрос("В документе изменен реквизит """+Реквизит+""". Перезаполнить цены заново?","Да+Нет"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если текОтвет = "Да" Тогда // изменим цены ПресчитатьЦенуПоКатегории(); ИначеЕсли Реквизит = "ВидНДС" Тогда ПересчетСтроки(); КонецЕсли; КонецЦикла; КонецПроцедуры // =============================== Процедура ИзмВидТорговли() Если ВидТорговли = Перечисление.ВидыТорговли.Нал Тогда ФормаРасчетов = "оплата готiвкою"; ИначеЕсли ВидТорговли = Перечисление.ВидыТорговли.Бартер Тогда ФормаРасчетов = "бартерна угода"; Иначе ФормаРасчетов = "оплата з поточного рахунку"; КонецЕсли; КонецПроцедуры // =============================== Процедура ИзмДоговор() Если Договор.Выбран() = 1 Тогда Если Договор.Вид() = "Договір поставки" Тогда Валюта_Прежн = Валюта; Валюта = Договор.Валюта; Если Валюта <> Валюта_Прежн Тогда Дата_Курса=ДатаДок; Курс_Прежн = Курс; Курс = глКурсДляВалюты(Валюта,ДатаДок); Если ((Валюта_Прежн <> Валюта) Или (Курс_Прежн <> Курс)) Тогда // что-то изменилось, надо пересчитать цены глУстан_Вал(Контекст, Валюта, Валюта_Прежн, Курс, Курс_Прежн); КонецЕсли; КонецЕсли; ВидТорговли = Договор.ВидТорговли; ИзмВидТорговли(); ВидНДС = Договор.ВидНДС; ИзмРеквизитШапки("ВидНДС"); ДатаДог = Договор.ДатаДок; НомДог = СокрЛП(Договор.НомерДоговора); КонецЕсли; КонецЕсли; КонецПроцедуры // ====================================== Процедура ИзмСамостИсправлОшибка() Если СамостИсправлОшибка = 0 Тогда УточняющийРасчет = 0; КонецЕсли; КонецПроцедуры // ====================================== Процедура ИзмУточняющийРасчет() Если УточняющийРасчет = 1 Тогда Сообщить("При установленном флажке ""Включено в уточняющий расчет к Декларации по НДС""" "документ не будет отражаться в отчете ""Декларация по НДС"". ", "!"); Сообщить("Необходимо вручную заполнить отчет ""Уточняющий расчет к Декларации по НДС"".", "!"); КонецЕсли; КонецПроцедуры // =============================== Функция ФРМЦена(ЧислЗнач) // без разделения на триады, не меньше двух и не больше пяти знаков после запятой Стр=СокрЛ(Формат(Окр(ЧислЗнач,5),"Ч15.5")); Для Инд=1 по 3 Цикл Если Прав(Стр,1)="0" Тогда Стр = Лев(Стр,СтрДлина(Стр)-1); Иначе Прервать; КонецЕсли; КонецЦикла; Возврат Стр; КонецФункции // =============================== Функция ФРМСумма(ЧислЗнач) // без разделения на Триады Возврат СокрЛ(Формат(ЧислЗнач,"Ч15.2")); КонецФункции // =============================== Процедура ВыборОплаты() // Процедура по кнопке редактирования параметров оплаты в документе ОткрытьФормуМодально("Обработка.ИнформацияОВалюте", Контекст); КонецПроцедуры // =============================== // Назначение: определяет признак розничной продажи конечному потребителю // Аргументы: КонечныйПотребитель - признак продажи в розницу конечному потребителю из документа // Док - документ продажи в розницу // Возвращает: 1 - продажа конечному потребителю // 0 - продажа не конечному потрбителю Функция ЭтоКонечныйПотребитель(КонечныйПотребитель,Док) Если (ПустоеЗначение(КонечныйПотребитель) = 1) И (Док.Вид() = "ОтчетКА") Тогда Возврат 1; Иначе Возврат КонечныйПотребитель; КонецЕсли; КонецФункции //ЭтоКонечныйПотребитель // ====================================== Процедура ЗаполнитьРозница() Предоплата = Перечисление.ВидыТорговли.Предоплата; Розн = СоздатьОбъект("Запрос"); ТекстЗапр = "//{{ЗАПРОС(Розн) |Период с ДатаДок по ДатаДок; |ОбрабатыватьДокументы Проведенные; |Док = Документ.РасходнаяРозничная.ТекущийДокумент, Документ.ОтчетКА.ТекущийДокумент; |Дат = Документ.РасходнаяРозничная.ТекущийДокумент.ДатаДок, Документ.ОтчетКА.ТекущийДокумент.ДатаДок; |Фрм = Документ.РасходнаяРозничная.Фирма, Документ.ОтчетКА.Фирма; |ВидНДСРозн = Документ.РасходнаяРозничная.ВидНДС, Документ.ОтчетКА.ВидНДС; |Скидка = Документ.РасходнаяРозничная.Скидка; |КонечныйПотребитель= Документ.РасходнаяРозничная.КонечныйПотребитель; |ВидТорговли = Документ.РасходнаяРозничная.ВидТорговли; |ДокБазаНДС_БезНДС = Документ.РасходнаяРозничная.БазаНДС1, Документ.ОтчетКА.БазаНДС1; |ДокБазаНДС_0 = Документ.РасходнаяРозничная.БазаНДС2, Документ.ОтчетКА.БазаНДС2; |ДокБазаНДС_20 = Документ.РасходнаяРозничная.БазаНДС3, Документ.ОтчетКА.БазаНДС3; |ДокНДС_БезНДС = Документ.РасходнаяРозничная.НДС1, Документ.ОтчетКА.НДС1; |ДокНДС_0 = Документ.РасходнаяРозничная.НДС2, Документ.ОтчетКА.НДС2; |ДокНДС_20 = Документ.РасходнаяРозничная.НДС3, Документ.ОтчетКА.НДС3; |Функция БазаНДС_БезНДС = Сумма(ДокБазаНДС_БезНДС) Когда (ЭтоКонечныйПотребитель(КонечныйПотребитель,Док) = 1); |Функция БазаНДС_0 = Сумма(ДокБазаНДС_0) Когда (ЭтоКонечныйПотребитель(КонечныйПотребитель,Док) = 1); |Функция БазаНДС_20 = Сумма(ДокБазаНДС_20) Когда (ЭтоКонечныйПотребитель(КонечныйПотребитель,Док) = 1); |Функция НДС_БезНДС = Сумма(ДокНДС_БезНДС) Когда (ЭтоКонечныйПотребитель(КонечныйПотребитель,Док) = 1); |Функция НДС_0 = Сумма(ДокНДС_0) Когда (ЭтоКонечныйПотребитель(КонечныйПотребитель,Док) = 1); |Функция НДС_20 = Сумма(ДокНДС_20) Когда (ЭтоКонечныйПотребитель(КонечныйПотребитель,Док) = 1); |Условие(Фрм = Фирма); |Условие(ВидНДСРозн = ВидНДС); |Условие(ВидТорговли <> Предоплата); |"//}}ЗАПРОС ; Если Розн.Выполнить(ТекстЗапр)=0 Тогда Предупреждение("Не выполнился запрос по розничным накладным!"); Возврат; КонецЕсли; Если КоличествоСтрок() > 0 Тогда Если Вопрос("Очистить табличную часть?","Да+Нет")="Нет" Тогда Возврат; КонецЕсли; УдалитьСтроки(); КонецЕсли; НоваяСтрока(); ТМЦ = Константа.НоменклатураДляННПоРознице; НулеваяСтавкаНДС = Нет; Если ВидНДС = БезНДС тогда СуммаСНДС = Розн.БазаНДС_БезНДС; НДС = Розн.НДС_БезНДС; СуммаБезНДС = СуммаСНДС-НДС; СуммаБезСкидки =СуммаСНДС; Если Константа.ОсновнаяЦена = Перечисление.ВидыЦенВДокументах.ЦенаСНДС Тогда СуммаБезСкидки = СуммаСНДС; Иначе СуммаБезСкидки = СуммаСНДС/ (1 + ВидНДС.Ставка.Получить(ДатаДок)); КонецЕсли; ИначеЕсли ВидНДС = ЛьготнаяСтавкаНДС тогда СуммаСНДС = Розн.БазаНДС_0; НДС = Розн.НДС_0; СуммаБезНДС = СуммаСНДС-НДС; Если Константа.ОсновнаяЦена = Перечисление.ВидыЦенВДокументах.ЦенаСНДС Тогда СуммаБезСкидки = СуммаСНДС; Иначе СуммаБезСкидки = СуммаСНДС/ (1 + ВидНДС.Ставка.Получить(ДатаДок)); КонецЕсли; Иначе СуммаСНДС = Розн.БазаНДС_20; НДС = Розн.НДС_20; СуммаБезНДС = СуммаСНДС-НДС; Если Константа.ОсновнаяЦена = Перечисление.ВидыЦенВДокументах.ЦенаСНДС Тогда СуммаБезСкидки = СуммаСНДС; Иначе СуммаБезСкидки = СуммаСНДС/ (1 + ВидНДС.Ставка.Получить(ДатаДок)); КонецЕсли; КонецЕсли; ЦенаСНДС = СуммаСНДС; ЦенаБезНДС = СуммаБезНДС; Если ЕстьНулевыеСтавкиНДС = 1 Тогда НоваяСтрока(); ТМЦ = Константа.НоменклатураДляННПоРознице; НулеваяСтавкаНДС = Да; СуммаСНДС = Розн.БазаНДС_0; НДС = Розн.НДС_0; СуммаБезНДС = СуммаСНДС-НДС; Если Константа.ОсновнаяЦена = Перечисление.ВидыЦенВДокументах.ЦенаСНДС Тогда СуммаБезСкидки = СуммаСНДС; Иначе СуммаБезСкидки = СуммаСНДС/ (1 + ВидНДС.Ставка.Получить(ДатаДок)); КонецЕсли; ЦенаСНДС = СуммаСНДС; ЦенаБезНДС = СуммаБезНДС; КонецЕсли; РассчитатьБазуНДС(); КонецПроцедуры // ====================================== Процедура Заполнить(Док=0) Док=ДокументОснование; ДокОснование=Док; Если ПустоеЗначение(ДокументОснование.Договор)=1 тогда НомерДог=" "; датаДог=" "; ВидДоговора="Дого"; Иначе Договор=Док.Договор; НомДог = СокрЛП(Договор.НомерДоговора); ДатаДог = Договор.ДатаДок; ВидДоговора="Договір поставки" ; Конецесли; // Если ПустоеЗначение(Док) = 1 Тогда //// Если (РодительскийДокумент.Выбран() = 1) И (Найти("Счет,РасходнаяНакладная,ЛиквидацияНеоборАктивов,ОказаниеУслуг",РодительскийДокумент.Вид()) > 0) Тогда // Если (РодительскийДокумент.Выбран() = 1) И (Найти("Счет,РасходнаяНакладная,РасходнаяНакладнаяК,ЛиквидацияНеоборАктивов,ОказаниеУслуг",РодительскийДокумент.Вид()) > 0) Тогда // ДокОснование = РодительскийДокумент; // Иначе // ДокОснование = ДокументОснование; // КонецЕсли; // КонецЕсли; // // Если ПустоеЗначение(ДокОснование) = 1 Тогда // // не удалось выбрать основание для заполнения // Возврат; // КонецЕсли; Если ПустоеЗначение(Док) = 1 Тогда Если (РодительскийДокумент.Выбран() = 1) И (Найти("Счет,РасходнаяНакладная,РасходнаяНакладнаяК,ЛиквидацияНеоборАктивов,ОказаниеУслуг",РодительскийДокумент.Вид()) > 0) Тогда ДокОснование = РодительскийДокумент; //-- Если ПустоеЗначение(Договор)=1 Тогда Договор=ДокОснование.Договор; Валюта_Прежн = Валюта; Валюта = Договор.Валюта; Если Валюта <> Валюта_Прежн Тогда Дата_Курса=ДатаДок; Курс_Прежн = Курс; Курс = глКурсДляВалюты(Валюта,ДатаДок); Если ((Валюта_Прежн <> Валюта) Или (Курс_Прежн <> Курс)) Тогда // что-то изменилось, надо пересчитать цены глУстан_Вал(Контекст, Валюта, Валюта_Прежн, Курс, Курс_Прежн); КонецЕсли; КонецЕсли; ВидТорговли = Договор.ВидТорговли; ИзмВидТорговли(); ВидНДС = Договор.ВидНДС; ИзмРеквизитШапки("ВидНДС"); ДатаДог = Договор.ДатаДок; НомДог = СокрЛП(Договор.НомерДоговора); Если (ДокОснование.Вид() = "РасходнаяНакладная") ИЛИ (ДокОснование.Вид() = "РасходнаяНакладнаяК") ИЛИ (ДокОснование.Вид() = "РасходнаяРозничная") Тогда УсловиеПродажи="по договору"; ФормаРасчетов="оплата з поточного рахунку"; ВидДоговора="Договір поставки" ; КонецЕсли; КонецЕсли; Если ПустоеЗначение(Контрагент)=1 Тогда Контрагент=ДокОснование.Контрагент; ИзмКонтрагент(); КонецЕсли; //-- Иначе ДокОснование = ДокументОснование; Если ПустоеЗначение(Договор)=1 Тогда Договор=ДокОснование.Договор; Валюта_Прежн = Валюта; Валюта = Договор.Валюта; Если Валюта <> Валюта_Прежн Тогда Дата_Курса=ДатаДок; Курс_Прежн = Курс; Курс = глКурсДляВалюты(Валюта,ДатаДок); Если ((Валюта_Прежн <> Валюта) Или (Курс_Прежн <> Курс)) Тогда // что-то изменилось, надо пересчитать цены глУстан_Вал(Контекст, Валюта, Валюта_Прежн, Курс, Курс_Прежн); КонецЕсли; КонецЕсли; ВидТорговли = Договор.ВидТорговли; ИзмВидТорговли(); ВидНДС = Договор.ВидНДС; ИзмРеквизитШапки("ВидНДС"); ДатаДог = Договор.ДатаДок; НомДог = СокрЛП(Договор.НомерДоговора); Если (ДокОснование.Вид() = "РасходнаяНакладная") ИЛИ (ДокОснование.Вид() = "РасходнаяНакладнаяК") ИЛИ (ДокОснование.Вид() = "РасходнаяРозничная") Тогда УсловиеПродажи="по договору"; ФормаРасчетов="оплата з поточного рахунку"; ВидДоговора="Договір поставки" ; КонецЕсли; КонецЕсли; Если ПустоеЗначение(Контрагент)=1 Тогда Контрагент=ДокОснование.Контрагент; ИзмКонтрагент(); КонецЕсли; КонецЕсли; КонецЕсли; Если Вопрос("Заполнить накладную номенклатурой из документа-основания?","Да+Нет") = "Нет" Тогда Возврат; КонецЕсли; УдалитьСтроки(); ЧтоПродаем = Перечисление.ЧтоПродаем.ТМЦ; Если ДокОснование.Вид() = "Счет" Тогда ЧтоПродаем = ДокОснование.ЧтоПродаем; ИначеЕсли ДокОснование.Вид() = "ЛиквидацияНеоборАктивов" Тогда ЧтоПродаем = Перечисление.ЧтоПродаем.НеоборотныеАктивы; КонецЕсли; Попытка ВидНДС = ДокОснование.ВидНДС; Исключение ВидНДС=ОсновнаяСтавкаНДС; КонецПопытки; НДС20 = ?(СокрЛП(ВидНДС.Код) = "НДС20", 1, 0); ДокОснование.ВыбратьСтроки(); // пересчитаем возвратную тару СуммаВозвратнойТары = 0; Пока ДокОснование.ПолучитьСтроку() = 1 Цикл // добавим строку НоваяСтрока(); Если ЧтоПродаем = Перечисление.ЧтоПродаем.НеоборотныеАктивы Тогда НазначитьВид(ТМЦ,"ОФ"); Иначе НазначитьВид(ТМЦ,"ТМЦ"); КонецЕсли; Форма.ТМЦ.НеИзменятьВид(1); Если ДокОснование.Вид() = "ЛиквидацияНеоборАктивов" Тогда ТМЦ = ДокОснование.НеоборотныйАктив; ИначеЕсли ДокОснование.Вид() = "ОказаниеУслуг" Тогда ТМЦ = ДокОснование.Услуга; Иначе ТМЦ = ДокОснование.ТМЦ; глУстановкаБазЕд(Контекст, ТМЦ); КонецЕсли; Если ТМЦ.Вид() = "ТМЦ" Тогда Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Тара Тогда Если (глЕстьРеквизитШапки("ВидТары",ДокОснование.Вид()) = Да) Тогда Если (ДокОснование.ВидТары <> Перечисление.ВидыТары.Покупная) Тогда // возвратная тара не должна попадать в табличную часть СуммаВозвратнойТары = СуммаВозвратнойТары + ДокОснование.СуммаБезНДС; УдалитьСтроку(); Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; СуммаСНДС = ДокОснование.СуммаСНДС; НулеваяСтавкаНДС = Нет; Если ДокОснование.Вид() = "ЛиквидацияНеоборАктивов" Тогда ЦенаБезНДС = ДокОснование.ЦенаБезНДС; ЦенаСНДС = ЦенаБезНДС * (1 + ВидНДС.Ставка.Получить(ДатаДок)); СуммаБезНДС = ДокОснование.СуммаБезНДС; СуммаБезСкидки = СуммаБезНДС; НДС = ДокОснование.НДС; Кво = 1; глУстановкаБазЕд(Контекст,,ТМЦ.БазЕдиница); иначеесли ДокОснование.Вид() = "РНМатериалы" Тогда Кво = ДокОснование.Кво; //Ед = ТМЦ.БазоваяЕдиница; Коэффициент = 1; ЦенаСНДС = ДокОснование.ЦенаСНДС; ЦенаБезНДС = окр(ЦенаБезНДС/6*5,2); НДС = ДокОснование.НДС; Скидка = 0; СуммаБезСкидки = ДокОснование.СуммаСНДС; СуммаБезНДС = окр(СуммаСндс/6*5,2); Иначе // счета и накладные Кво = ДокОснование.Кво; Ед = ДокОснование.Ед; Если ДокОснование.Вид() = "РасходнаяНакладная" Тогда Коэффициент = ДокОснование.Коэффициент; ЦенаБезНДС = ДокОснование.ЦенаБезНДС; ЦенаСНДС = ДокОснование.ЦенаСНДС; Скидка = ДокОснование.Скидка; СуммаБезСкидки = ДокОснование.СуммаБезСкидки; СуммаБезНДС = ДокОснование.СуммаБезНДС; НДС = СуммаСНДС - СуммаБезНДС; ИначеЕсли ДокОснование.Вид() = "РасходнаяНакладнаяК" Тогда ЦенаСНДС = ДокОснование.ЦенаСНДС; Скидка = ДокОснование.Скидка; СуммаБезСкидки = ДокОснование.СуммаБезСкидки; СуммаБезНДС = ДокОснование.СуммаБезНДС; НДС = СуммаСНДС - СуммаБезНДС; ЦенаБезНДС = СуммаБезНДС/кво; ИначеЕсли ДокОснование.Вид() = "РасходнаяРозничная" Тогда Коэффициент = ДокОснование.Коэффициент; ЦенаСНДС = ДокОснование.ЦенаСНДС; Если ДокОснование.ВидНДС = ОсновнаяСтавкаНДС Тогда СтНДС = ТМЦ.СтавкаНДС.Ставка.Получить(ДатаДок); &n |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |