public void КорректировкаРегистровНДСПоСуммовымРазницам_Приобретение(/*СтруктураШапкиДокумента, ИсходнаяТаблицаСуммовыхРазниц, КорректировкаДокумента = Ложь, ЗачетАванса = Ложь, КорректироватьПоРасчетамНА = Ложь, Проводки = Неопределено*/)
{
if(true/*ИсходнаяТаблицаСуммовыхРазниц.Количество() = 0*/)
{
}
/*// Возможно во входящей таблице нет ненулевых разниц
*/
if(true/*ИсходнаяТаблицаСуммовыхРазниц.Итог("СуммоваяРазница") = 0*/)
{
/*// Возможно Итог() сложил положительные и отрицательные разницы, детализируем проверку
*/
//СтруктураПоискаНулевыхРазниц = Новый Структура("СуммоваяРазница", 0);
//МассивНайденныхНулевыхРазниц = ИсходнаяТаблицаСуммовыхРазниц.НайтиСтроки(СтруктураПоискаНулевыхРазниц);
/*// Если количество нулевых разниц равно количеству строк таблицы, то выходим из процедуры - обрабатывать нечего
*/
if(true/*МассивНайденныхНулевыхРазниц.Количество() = ИсходнаяТаблицаСуммовыхРазниц.Количество()*/)
{
}
}
if(true/*СтруктураШапкиДокумента.Свойство("Период")
И ЗначениеЗаполнено(СтруктураШапкиДокумента.Период)*/)
{
//ДатаДвижений = СтруктураШапкиДокумента.Период;
}
if(true/*Не СтруктураШапкиДокумента.Свойство("ОрганизацияПрименяетУСН")
Или Не СтруктураШапкиДокумента.Свойство("НДСНалоговыйПериод")
Или Не СтруктураШапкиДокумента.Свойство("УчитыватьПоложительныеСуммовыеРазницыПриОпределенииВычетовПоНДС")
Или Не СтруктураШапкиДокумента.Свойство("УчитыватьОтрицательныеСуммовыеРазницыПриОпределенииВычетовПоНДС")*/)
{
//УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(СтруктураШапкиДокумента.Дата, СтруктураШапкиДокумента.Организация);
if(true/*Не СтруктураШапкиДокумента.Свойство("ОрганизацияПрименяетУСН")*/)
{
//СтруктураШапкиДокумента.Вставить("ОрганизацияПрименяетУСН",(ЗначениеЗаполнено(УчетнаяПолитика) и (УчетнаяПолитика.СистемаНалогообложения = Перечисления.СистемыНалогообложения.Упрощенная)));
}
if(true/*Не СтруктураШапкиДокумента.Свойство("НДСНалоговыйПериод")*/)
{
//СтруктураШапкиДокумента.Вставить("НДСНалоговыйПериод",?(Не ЗначениеЗаполнено(УчетнаяПолитика), ?(СтруктураШапкиДокумента.Дата < '20080101', Перечисления.Периодичность.Месяц, Перечисления.Периодичность.Квартал), УчетнаяПолитика.НДСНалоговыйПериод));
}
if(true/*Не СтруктураШапкиДокумента.Свойство("УчитыватьПоложительныеСуммовыеРазницыПриОпределенииВычетовПоНДС")*/)
{
//СтруктураШапкиДокумента.Вставить("УчитыватьПоложительныеСуммовыеРазницыПриОпределенииВычетовПоНДС", ?(Не ЗначениеЗаполнено(УчетнаяПолитика), Ложь, УчетнаяПолитика.УчитыватьПоложительныеСуммовыеРазницыПриОпределенииВычетовПоНДС));
}
if(true/*Не СтруктураШапкиДокумента.Свойство("УчитыватьОтрицательныеСуммовыеРазницыПриОпределенииВычетовПоНДС")*/)
{
//СтруктураШапкиДокумента.Вставить("УчитыватьОтрицательныеСуммовыеРазницыПриОпределенииВычетовПоНДС", ?(Не ЗначениеЗаполнено(УчетнаяПолитика), Ложь, УчетнаяПолитика.УчитыватьОтрицательныеСуммовыеРазницыПриОпределенииВычетовПоНДС));
}
}
if(true/*ДатаДвижений >= '20111001'
И НЕ ЗачетАванса
И НЕ КорректироватьПоРасчетамНА*/)
{
/*// Начиная с 01.10.2011 при расчетах в у.е. налоговая база по НДС, определенная на дату приобретения,
*/
/*// при последующей оплате по другому курсу не корректируется
*/
}
//УчитыватьПоложительныеРазницыДляНДС = СтруктураШапкиДокумента.УчитыватьПоложительныеСуммовыеРазницыПриОпределенииВычетовПоНДС Или КорректироватьПоРасчетамНА;
//УчитыватьОтрицательныеРазницыДляНДС = СтруктураШапкиДокумента.УчитыватьОтрицательныеСуммовыеРазницыПриОпределенииВычетовПоНДС Или КорректироватьПоРасчетамНА;
//ВыделятьНДСпоСР = (УчитыватьПоложительныеРазницыДляНДС или УчитыватьОтрицательныеРазницыДляНДС Или ЗачетАванса);
if(true/*СтруктураШапкиДокумента.ОрганизацияПрименяетУСН*/)
{
/*// Движения по этому документу делать не нужно
*/
}
if(true/*Не ВыделятьНДСпоСР*/)
{
/*// Суммовые разницы не нужно учитывать для НДС по приобретеннию
*/
}
//РеестрСчетовФактур = ПолучитьДанныеДляНДСПоСуммовымРазницам_Приобретение(СтруктураШапкиДокумента, ИсходнаяТаблицаСуммовыхРазниц, КорректировкаДокумента, ЗачетАванса, КорректироватьПоРасчетамНА);
if(true/*Не ЗачетАванса*/)
{
//СтрокиКУдалению = Новый Массив();
}
if(true/*РеестрСчетовФактур.Количество()=0*/)
{
}
//СсылкаНаДокумент = СтруктураШапкиДокумента.Ссылка;
//Движения = новый Структура();
//УдаляемыеВидыОпераций = Новый Массив;
//УдаляемыеВидыОпераций.Добавить(Перечисления.ВидыРегламентныхОпераций.КорректировкиПриВалютныхРасчетах);
if(true/*КорректироватьПоРасчетамНА*/)
{
/*//Отразить проводки при исполнении обязанностей налогового агента
*/
if(true/*Проводки = Неопределено*/)
{
//Проводки = ОбщегоНазначения.ПолучитьНаборЗаписейПоСсылке(СсылкаНаДокумент, РегистрыБухгалтерии.Хозрасчетный, Истина);
//БухгалтерскийУчет.ЗачиститьНаборЗаписейОтРегламентныхОпераций(Проводки, УдаляемыеВидыОпераций);
if(true/*Проводки.Модифицированность()*/)
{
//Проводки.Записать();
}
//СформироватьПроводкиПоРазницамНалоговыйАгент(СтруктураШапкиДокумента, РеестрСчетовФактур, Проводки);
//Проводки = Неопределено;
/*// Набор движений не должен передаваться обратно из процедуры.
*/
}
}
//НДСПредъявленный = ОбщегоНазначения.ПолучитьНаборЗаписейПоСсылке(СсылкаНаДокумент, РегистрыНакопления.НДСПредъявленный, Истина);
if(true/*НДСПредъявленный = Неопределено*/)
{
/*// Документ не может отражать проводиться по регистру "НДС предъявленный"
*/
}
//БухгалтерскийУчет.ЗачиститьНаборЗаписейОтРегламентныхОпераций(НДСПредъявленный, УдаляемыеВидыОпераций);
if(true/*НДСПредъявленный.Модифицированность()*/)
{
//НДСПредъявленный.Записать();
}
//ДобавитьНаборЗаписейВСтруктуруДвижений(Движения, "НДСПредъявленный", СсылкаНаДокумент);
/*// Отражение сумовой разницы в регистре НДСПредъявленный
*/
//ТаблицаДвижений_НДСПредъявленный = Движения.НДСПредъявленный.ВыгрузитьКолонки();
//СоответствиеКолонок = Новый Соответствие();
//СоответствиеКолонок.Вставить("СуммаБезНДС","СР_БезНДС");
//СоответствиеКолонок.Вставить("НДС","СР_НДС");
//УчетНДС.ПереименованиеКолонок(ТаблицаДвижений_НДСПредъявленный, СоответствиеКолонок);
//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(РеестрСчетовФактур,ТаблицаДвижений_НДСПредъявленный);
//ТаблицаДвижений_НДСПредъявленный.ЗаполнитьЗначения(ВидДвиженияНакопления.Приход,"ВидДвижения");
//ТаблицаДвижений_НДСПредъявленный.ЗаполнитьЗначения(Перечисления.СобытияПоНДСПокупки.ПредъявленНДСПоставщиком,"Событие");
//ТаблицаДвижений_НДСПредъявленный.ЗаполнитьЗначения(Перечисления.ВидыРегламентныхОпераций.КорректировкиПриВалютныхРасчетах,"ВидРегламентнойОперации");
//УчетНДС.ПереименованиеКолонок(ТаблицаДвижений_НДСПредъявленный, СоответствиеКолонок,Истина);
if(true/*(РеестрСчетовФактур.Итог("ЕстьВключениеВСтоимость")>0)
или (РеестрСчетовФактур.Итог("ЕстьОстаткиПоПартиям")>0)
или (РеестрСчетовФактур.Итог("ЕстьОСНМА")>0)
или (РеестрСчетовФактур.Итог("ЕстьРеализация0")>0)
или (РеестрСчетовФактур.Итог("ЕстьКосвенныеРасходы")>0)
или (РеестрСчетовФактур.Итог("ЕстьНезавершенноеПроизводство")>0)*/)
{
//Построитель_РеестрСчетовФактур = новый ПостроительЗапроса();
//ОписаниеИсточника_РеестрСчетовФактур = новый ОписаниеИсточникаДанных(РеестрСчетовФактур);
//Построитель_РеестрСчетовФактур.ИсточникДанных = ОписаниеИсточника_РеестрСчетовФактур;
}
/*// Если есть включение НДС в стоимость, необходимо пропорционально уменьшить
*/
/*// сумму НДС предъявленного и зафиксировать включение НДС в стоимость в специальном регистре
*/
if(true/*РеестрСчетовФактур.Итог("ЕстьВключениеВСтоимость")>0*/)
{
//ДобавитьНаборЗаписейВСтруктуруДвижений(Движения,"НДСВключенныйВСтоимость",СсылкаНаДокумент);
//ТаблицаДвижений_НДСВключенныйВСтоимость = Движения.НДСВключенныйВСтоимость.ВыгрузитьКолонки();
//ОтборПостроитель = Построитель_РеестрСчетовФактур.Отбор;
//ОтборПостроитель.Добавить("ЕстьВключениеВСтоимость");
//ОтборПостроитель.ЕстьВключениеВСтоимость.Значение = 1;
//ОтборПостроитель.ЕстьВключениеВСтоимость.Использование = Истина;
//Построитель_РеестрСчетовФактур.Выполнить();
//Корректировки_НДСВключенныйВСтоимость = Построитель_РеестрСчетовФактур.Результат.Выгрузить();
//ОтборПостроитель.ЕстьВключениеВСтоимость.Использование = Ложь;
//Корректировки_НДСВключенныйВСтоимость.Колонки.Добавить("СуммаБезНДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
//Корректировки_НДСВключенныйВСтоимость.Колонки.Добавить("НДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(Корректировки_НДСВключенныйВСтоимость,ТаблицаДвижений_НДСВключенныйВСтоимость);
/*// Внесем корректирующие записи в регистр "НДС предъявленный"
*/
//ТаблицаДвижений_НДСВключенныйВСтоимость.Колонки.Добавить("ВидДвижения");
//ТаблицаДвижений_НДСВключенныйВСтоимость.ЗаполнитьЗначения(ВидДвиженияНакопления.Расход,"ВидДвижения");
//ТаблицаДвижений_НДСВключенныйВСтоимость.Колонки.Добавить("Событие");
//ТаблицаДвижений_НДСВключенныйВСтоимость.ЗаполнитьЗначения(Перечисления.СобытияПоНДСПокупки.НДСВключенВСтоимость,"Событие");
//ТаблицаДвижений_НДСВключенныйВСтоимость.ЗаполнитьЗначения(Перечисления.ВидыРегламентныхОпераций.КорректировкиПриВалютныхРасчетах,"ВидРегламентнойОперации");
//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаДвижений_НДСВключенныйВСтоимость,ТаблицаДвижений_НДСПредъявленный);
//ТаблицаДвижений_НДСВключенныйВСтоимость.Колонки.Удалить("ВидДвижения");
//ТаблицаДвижений_НДСВключенныйВСтоимость.Колонки.Удалить("Событие");
//Движения.НДСВключенныйВСтоимость.мПериод = ДатаДвижений;
//Движения.НДСВключенныйВСтоимость.мТаблицаДвижений = ТаблицаДвижений_НДСВключенныйВСтоимость;
//Движения.НДСВключенныйВСтоимость.ДобавитьДвижение();
//Движения.НДСВключенныйВСтоимость.Записать(Ложь);
}
/*//РеестрСчетовФактур.Итог("ЕстьВключениеВСтоимость")>0 Тогда
*/
/*// Далее корректировка регистра НДСПредъявленный не планируется
*/
/*// Заполним набор записей регистра полученным результатом
*/
//Движения.НДСПредъявленный.мПериод = ДатаДвижений;
//Движения.НДСПредъявленный.мТаблицаДвижений = ТаблицаДвижений_НДСПредъявленный;
//Движения.НДСПредъявленный.ДобавитьДвижение();
//Движения.НДСПредъявленный.Записать(Ложь);
/*// Если есть остатки в регистре косвенных расходов, необходимо пропорционально отразить
*/
/*// там же и суммовую разницу
*/
if(true/*РеестрСчетовФактур.Итог("ЕстьКосвенныеРасходы")>0*/)
{
//ОтборПостроитель = Построитель_РеестрСчетовФактур.Отбор;
//ОтборПостроитель.Добавить("ЕстьКосвенныеРасходы");
//ОтборПостроитель["ЕстьКосвенныеРасходы"].Значение = 1;
//ОтборПостроитель["ЕстьКосвенныеРасходы"].Использование = Истина;
//Построитель_РеестрСчетовФактур.Выполнить();
//Корректировки_НДСКосвенныеРасходы = Построитель_РеестрСчетовФактур.Результат.Выгрузить();
//ОтборПостроитель["ЕстьКосвенныеРасходы"].Использование = Ложь;
//Корректировки_НДСКосвенныеРасходы.Колонки.Добавить("СуммаБезНДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
//Корректировки_НДСКосвенныеРасходы.Колонки.Добавить("НДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
/*// Если суммовая разница невелика, велика вероятность того, что в реестре СФ присутствуют записи
*/
/*// на которые суммовая разница не относится
*/
//СтрокиКУдалению = новый Массив();
if(true/*СтрокиКУдалению.Количество()>0*/)
{
}
//Корректировки_НДСКосвенныеРасходы.Свернуть("СчетФактура, ВидЦенности, СтавкаНДС, СчетУчетаНДС","СуммаБезНДС,НДС");
//ОтразитьСуммовыеРазницыПоКосвеннымРасходам(СтруктураШапкиДокумента,Корректировки_НДСКосвенныеРасходы,СтруктураШапкиДокумента.НДСНалоговыйПериод);
}
/*//РеестрСчетовФактур.Итог("ЕстьКосвенныеРасходы")>0 Тогда
*/
/*// Если есть остатки в регистре незавершенного производства, необходимо пропорционально отразить
*/
/*// там же и суммовую разницу.
*/
if(true/*РеестрСчетовФактур.Итог("ЕстьНезавершенноеПроизводство")>0*/)
{
//ОтборПостроитель = Построитель_РеестрСчетовФактур.Отбор;
//ОтборПостроитель.Добавить("ЕстьНезавершенноеПроизводство");
//ОтборПостроитель["ЕстьНезавершенноеПроизводство"].Значение = 1;
//ОтборПостроитель["ЕстьНезавершенноеПроизводство"].Использование = Истина;
//Построитель_РеестрСчетовФактур.Выполнить();
//Корректировки_НДСНезавершенноеПроизводство = Построитель_РеестрСчетовФактур.Результат.Выгрузить();
//ОтборПостроитель["ЕстьНезавершенноеПроизводство"].Использование = Ложь;
//Корректировки_НДСНезавершенноеПроизводство.Колонки.Добавить("Стоимость",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
//Корректировки_НДСНезавершенноеПроизводство.Колонки.Добавить("НДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
/*// Если суммовая разница невелика, велика вероятность того, что в реестре СФ присутствуют записи
*/
/*// на которые суммовая разница не относится
*/
//СтрокиКУдалению = новый Массив();
if(true/*СтрокиКУдалению.Количество()>0*/)
{
}
//Корректировки_НДСНезавершенноеПроизводство.Свернуть("СчетФактура, ВидЦенности, СтавкаНДС, СчетУчетаНДС","Стоимость,НДС");
//ОтразитьСуммовыеРазницыПоНезавершенномуПроизводству(СтруктураШапкиДокумента,Корректировки_НДСНезавершенноеПроизводство, СтруктураШапкиДокумента.НДСНалоговыйПериод);
}
/*// Если РеестрСчетовФактур.Итог("ЕстьНезавершенноеПроизводство")>0 Тогда
*/
/*// Если есть остатки в регистре ОС (НМА), необходимо пропорционально отразить
*/
/*// там же и суммовую разницу
*/
if(true/*РеестрСчетовФактур.Итог("ЕстьОСНМА")>0*/)
{
//ОтборПостроитель = Построитель_РеестрСчетовФактур.Отбор;
//ОтборПостроитель.Добавить("ЕстьОСНМА");
//ОтборПостроитель["ЕстьОСНМА"].Значение = 1;
//ОтборПостроитель["ЕстьОСНМА"].Использование = Истина;
//Построитель_РеестрСчетовФактур.Выполнить();
//Корректировки_НДСпоОСиНМА = Построитель_РеестрСчетовФактур.Результат.Выгрузить();
//ОтборПостроитель["ЕстьОСНМА"].Использование = Ложь;
//Корректировки_НДСпоОСиНМА.Колонки.Добавить("СуммаБезНДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
//Корректировки_НДСпоОСиНМА.Колонки.Добавить("НДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
/*// Если суммовая разница невелика, велика вероятность того, что в реестре СФ присутствуют записи
*/
/*// на которые суммовая разница не относится
*/
//СтрокиКУдалению = новый Массив();
if(true/*СтрокиКУдалению.Количество()>0*/)
{
}
//Корректировки_НДСпоОСиНМА.Свернуть("СчетФактура, ВидЦенности, СтавкаНДС, СчетУчетаНДС","СуммаБезНДС,НДС");
//ОтразитьСуммовыеРазницыПоОСНМА(СтруктураШапкиДокумента,Корректировки_НДСпоОСиНМА, КорректировкаДокумента);
}
/*//Если РеестрСчетовФактур.Итог("ЕстьОСНМА")>0 Тогда
*/
/*// Если есть остатки в регистре партий, необходимо пропорционально отразить
*/
/*// там же и суммовую разницу
*/
if(true/*РеестрСчетовФактур.Итог("ЕстьОстаткиПоПартиям")>0*/)
{
//ОтборПостроитель = Построитель_РеестрСчетовФактур.Отбор;
//ОтборПостроитель.Добавить("ЕстьОстаткиПоПартиям");
//ОтборПостроитель["ЕстьОстаткиПоПартиям"].Значение = 1;
//ОтборПостроитель["ЕстьОстаткиПоПартиям"].Использование = Истина;
//Построитель_РеестрСчетовФактур.Выполнить();
//Корректировки_НДСПартииТоваров = Построитель_РеестрСчетовФактур.Результат.Выгрузить();
//ОтборПостроитель["ЕстьОстаткиПоПартиям"].Использование = Ложь;
//Корректировки_НДСПартииТоваров.Колонки.Добавить("Стоимость",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
//Корректировки_НДСПартииТоваров.Колонки.Добавить("НДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
/*// Если суммовая разница невелика, велика вероятность того, что в реестре СФ присутствуют записи
*/
/*// на которые суммовая разница не относится
*/
//СтрокиКУдалению = новый Массив();
if(true/*СтрокиКУдалению.Количество()>0*/)
{
}
//Корректировки_НДСПартииТоваров.Свернуть("СчетФактура, ВидЦенности, СтавкаНДС, СчетУчетаНДС","Стоимость,НДС");
//ОтразитьСуммовыеРазницыПоПартиям(СтруктураШапкиДокумента,Корректировки_НДСПартииТоваров, КорректировкаДокумента);
}
/*//Если РеестрСчетовФактур.Итог("ЕстьОстаткиПоПартиям")>0 Тогда
*/
/*// Если были обороты по предположению 0%, необходимо пропорционально отразить
*/
/*// там же и суммовую разницу
*/
if(true/*РеестрСчетовФактур.Итог("ЕстьРеализация0")>0*/)
{
//ОтборПостроитель = Построитель_РеестрСчетовФактур.Отбор;
//ОтборПостроитель.Добавить("ЕстьРеализация0");
//ОтборПостроитель["ЕстьРеализация0"].Значение = 1;
//ОтборПостроитель["ЕстьРеализация0"].Использование = Истина;
//Построитель_РеестрСчетовФактур.Выполнить();
//Корректировки_НДСПредъявленныйРеализация0 = Построитель_РеестрСчетовФактур.Результат.Выгрузить();
//ОтборПостроитель["ЕстьРеализация0"].Использование = Ложь;
//Корректировки_НДСПредъявленныйРеализация0.Колонки.Добавить("СуммаБезНДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
//Корректировки_НДСПредъявленныйРеализация0.Колонки.Добавить("НДС",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
/*// Если суммовая разница невелика, велика вероятность того, что в реестре СФ присутствуют записи
*/
/*// на которые суммовая разница не относится
*/
//СтрокиКУдалению = новый Массив();
if(true/*СтрокиКУдалению.Количество()>0*/)
{
}
//Корректировки_НДСПредъявленныйРеализация0.Свернуть("СчетФактура, ВидЦенности, СтавкаНДС, СчетУчетаНДС","СуммаБезНДС,НДС");
//ОтразитьСуммовыеРазницыПоРеализации0_НДСПредъявленный(СтруктураШапкиДокумента,Корректировки_НДСПредъявленныйРеализация0);
}
/*//Если РеестрСчетовФактур.Итог("ЕстьОстаткиПоПартиям")>0 Тогда
*/
}