Vunicode
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Перелопаченная бухия для Казахстана 7.7 Люди добрые подскажите пожалуйста по закрытию периода, уже ночью не спится)): Дело в следующем: В 2008 году у нас НДС был 13%, а в 2009 стал 12% , сейчас закрываем 2009 год, в январе и феврале у нас не было производства, соответственно никаких доков исходящих, только входящие, у нас сделано перекидывание или копирование (незнаю как правильно назвать) суммы со счёта 1420 кредит на счёт 3130 дебет. Пока у нас нет выданных доков с указанием НДС на счёт 3130 падает 13%, стоит выдать хоть один док становиться 12% и потом как по маслу, ка-будто смотрит последнюю проводку или разницу дебет-кредит счёта 1420, в марте у нас пошло производство и стало 12%, делал не я (я с проводками пока на вы), где (//яя) это заременный стандартный код !!! Привожу пример кода: Код: //***************************************************************************** // ЗачетПоНДС() // // Вызывается: ОбработкаПроведения(). // Внешние переменные: БухИтоги - переменная обращения к бухгалтерским итогам. // Описание: // Выполняет расчет суммы НДС к зачету, перекрытие счетов 1420, 3130. // Процедура ЗачетПоНДС() Если ЗачетПоНДС = 0 Тогда Возврат; КонецЕсли; Сообщить("-- Зачет НДС к возмещению","i"); СформированоПроводок = 0; Если ПустоеЗначение(Организация.МетодОтнесенияНДСКЗачету) = 1 Тогда глСообщить(Операция, "Не установлен метод отнесения НДС к зачету. Документ не может быть проведен!", "!"); Возврат; КонецЕсли; Если ПустоеЗначение(Организация.ПериодСдачиДекларацииПоНДС.Получить(ДатаДок)) = 1 Тогда глСообщить(Операция, "Не установлен период сдачи декларации по НДС. Документ не может быть проведен!", "!"); Возврат; КонецЕсли; ПериодНеСовпадает = 0; Если Организация.ПериодСдачиДекларацииПоНДС.Получить(ДатаДок) = Перечисление.Периоды.Месяц Тогда ДатаНачалаПериода = НачМесяца(ДатаДок); Если ДатаДок <> КонМесяца(ДатаДок) Тогда ПериодНеСовпадает = 1; КонецЕсли; ИначеЕсли Организация.ПериодСдачиДекларацииПоНДС.Получить(ДатаДок) = Перечисление.Периоды.Квартал Тогда ДатаНачалаПериода = НачКвартала(ДатаДок); Если ДатаДок <> КонКвартала(ДатаДок) Тогда ПериодНеСовпадает = 1; КонецЕсли; ИначеЕсли Организация.ПериодСдачиДекларацииПоНДС.Получить(ДатаДок) = Перечисление.Периоды.Год Тогда ДатаНачалаПериода = НачГода(ДатаДок); Если ДатаДок <> КонГода(ДатаДок) Тогда ПериодНеСовпадает = 1; КонецЕсли; КонецЕсли; Если ПериодНеСовпадает = 1 Тогда глСообщить(Операция, "Дата закрытия периода не совпадает с периодичностью сдачи декларации по НДС!", "!"); Возврат; КонецЕсли; ДоляОблагаемогоОборота = ПолучитьДолюОблагаемогоОборота(ДатаНачалаПериода); тзНДСКЗачету = СоздатьОбъект("ТаблицаЗначений"); тзНДСКЗачету.НоваяКолонка("ВидНалога"); тзНДСКЗачету.НоваяКолонка("Сумма", "Число", 15, 2); тзНепринимаемыйНДС = СоздатьОбъект("ТаблицаЗначений"); тзНепринимаемыйНДС.НоваяКолонка("ВидНалога"); тзНепринимаемыйНДС.НоваяКолонка("Сумма", "Число", 15, 2); БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыНалогов); БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыОборота); БухИтоги.ВыполнитьЗапрос(ДатаНачалаПериода, ТекущийДокумент(), СчетПоКоду("ОБ")); БухИтоги.ВыбратьСубконто(1); Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл СтавкаНДС = глПолучитьСтавкуНалога(БухИтоги.Субконто(1),ДатаДок); Если ПустоеЗначение(СтавкаНДС) = 0 Тогда СтавкаНДС = СтавкаНДС.Ставка; Иначе глСообщить(Операция, "Не установлена ставка налога: " + СокрЛП(БухИтоги.Субконто(1).Код) + ", " + СокрЛП(БухИтоги.Субконто(1))+ " на "+ДатаДок, "i"); Продолжить; КонецЕсли; БухИтоги.ВыбратьСубконто(2); Пока БухИтоги.ПолучитьСубконто(2) = 1 Цикл // Оборот по приобретению за минусом возврата СуммаНДС = ((БухИтоги.ДО() - БухИтоги.КО())*СтавкаНДС)/(100 + СтавкаНДС); Если СуммаНДС > 0 Тогда Если Организация.МетодОтнесенияНДСКЗачету = Перечисление.МетодыОтнесенияНДСКЗачету.Пропорциональный Тогда //Если БухИтоги.Субконто(2) = Перечисление.ТипыОборотов.Общий Тогда // Не обращаем внимания на вид оборота // для пропорционального метода предполагаем, что // весь оборот - общий. тзНДСКЗачету.НоваяСтрока(); тзНДСКЗачету.ВидНалога = БухИтоги.Субконто(1); тзНДСКЗачету.Сумма = ДоляОблагаемогоОборота*СуммаНДС; тзНепринимаемыйНДС.НоваяСтрока(); тзНепринимаемыйНДС.ВидНалога = БухИтоги.Субконто(1); тзНепринимаемыйНДС.Сумма = (1-ДоляОблагаемогоОборота)*СуммаНДС; //КонецЕсли; Иначе // раздельный Если БухИтоги.Субконто(2) = Перечисление.ТипыОборотов.Облагаемый Тогда тзНДСКЗачету.НоваяСтрока(); тзНДСКЗачету.ВидНалога = БухИтоги.Субконто(1); тзНДСКЗачету.Сумма = СуммаНДС; ИначеЕсли БухИтоги.Субконто(2) = Перечисление.ТипыОборотов.Освобожденный Тогда тзНепринимаемыйНДС.НоваяСтрока(); тзНепринимаемыйНДС.ВидНалога = БухИтоги.Субконто(1); тзНепринимаемыйНДС.Сумма = СуммаНДС; Иначе // в целях облагаемого и освобожденного оборота тзНДСКЗачету.НоваяСтрока(); тзНДСКЗачету.ВидНалога = БухИтоги.Субконто(1); тзНДСКЗачету.Сумма = ДоляОблагаемогоОборота*СуммаНДС; тзНепринимаемыйНДС.НоваяСтрока(); тзНепринимаемыйНДС.ВидНалога = БухИтоги.Субконто(1); тзНепринимаемыйНДС.Сумма = (1-ДоляОблагаемогоОборота)*СуммаНДС; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; //яя=============================================== тзНДСКЗачету.УдалитьСтроки(); Спр=СоздатьОбъект("Справочник.НалогиСборыОтчисления"); Спр.НайтиПоКоду("00000014",0); // Налог на добавленную стоимость (12%) ВидНалогаХ = Спр.ТекущийЭлемент(); //яя=============================================== БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыНалогов); //яя БухИтоги.ВыполнитьЗапрос(ДатаНачалаПериода,, СчетПоКоду("142")); БухИтоги.ВыполнитьЗапрос(ДатаНачалаПериода,ТекущийДокумент(), СчетПоКоду("142")); БухИтоги.ВыбратьСубконто(1); Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл //яя=============================================== тзНДСКЗачету.НоваяСтрока(); //яя тзНДСКЗачету.ВидНалога = БухИтоги.Субконто(1); тзНДСКЗачету.ВидНалога = ВидНалогаХ; //яя тзНДСКЗачету.Сумма = БухИтоги.СНД(); тзНДСКЗачету.Сумма = БухИтоги.СКД(); КонецЦикла; //яя тзНДСКЗачету.Свернуть("ВидНалога, ВидНДС", "Сумма"); //яя тзНепринимаемыйНДС.Свернуть("ВидНалога, ВидНДС", "Сумма"); тзНДСКЗачету.Свернуть("ВидНалога", "Сумма"); тзНепринимаемыйНДС.Свернуть("ВидНалога", "Сумма"); БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыНалогов); БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыПлатежей, Перечисление.ВидыПлатежей.НалогВзнос); БухИтоги.ВключатьСубсчета(,-1); БухИтоги.ВыполнитьЗапрос(ДатаНачалаПериода, ТекущийДокумент(), СчетПоКоду("313"),,,3); БухИтоги.ВыбратьСубконто(); Пока БухИтоги.ПолучитьСубконто() = 1 Цикл НДСЗакрытия = БухИтоги.СКК(); // Не учитываем уплаченный в бюджет НДС Если БухИтоги.ПолучитьКорСчет(,СчетПоКоду("1021")) = 1 Тогда НДСЗакрытия = НДСЗакрытия + БухИтоги.КорДО(); КонецЕсли; Если БухИтоги.ПолучитьКорСчет(,СчетПоКоду("103")) = 1 Тогда НДСЗакрытия = НДСЗакрытия + БухИтоги.КорДО(); КонецЕсли; Если НДСЗакрытия <> 0 Тогда тзНДСКЗачету.ВыбратьСтроки(); Пока (тзНДСКЗачету.ПолучитьСтроку() = 1) и (НДСЗакрытия <> 0) Цикл Если тзНДСКЗачету.Сумма <> 0 Тогда //яя для АЗА СуммаЗакрытия = Мин(тзНДСКЗачету.Сумма, НДСЗакрытия); СуммаЗакрытия = тзНДСКЗачету.Сумма; глПроводка( Операция, СчетПоКоду("313"), глСубконто(БухИтоги.Субконто(), Перечисление.ВидыПлатежей.НалогВзнос,), СчетПоКоду("142"), глСубконто(тзНДСКЗачету.ВидНалога, ,), , СуммаЗакрытия,,, "Закрытие НДС", "ФР", Организация ); тзНДСКЗачету.Сумма = тзНДСКЗачету.Сумма - СуммаЗакрытия; НДСЗакрытия = НДСЗакрытия - СуммаЗакрытия; СформированоПроводок = СформированоПроводок + 1; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; НДС = глПолучитьВидЗатрат("Налог на добавленную стоимость"); тзНепринимаемыйНДС.ВыбратьСтроки(); Пока тзНепринимаемыйНДС.ПолучитьСтроку() = 1 Цикл СчетЗатрат = ?(НДС.ОтноситсяНаВычет = 1, СчетПоКоду("7211"), СчетПоКоду("7212")); глПроводка( Операция, СчетЗатрат , глСубконто(Организация.ОсновноеПодразделение, Организация.ОсновнойВидДеятельности, НДС), СчетПоКоду("142"), глСубконто(тзНепринимаемыйНДС.ВидНалога, ,), , тзНепринимаемыйНДС.Сумма,,, "НДС не принимаемый к зачету", "ФР", Организация, 1); СформированоПроводок = СформированоПроводок + 1; КонецЦикла; Если СформированоПроводок = 0 Тогда Сообщить("-- При зачете НДС к возмещению - проводки не сформированы","i"); КонецЕсли; Сообщить("---------------------"); Операция.ЗаписатьПроводки(); КонецПроцедуры // ЗачетПоНДС() //***************************************************************************** |
|