1С бухгалтерия

При списании материалов на 08 счет ставим переключатель "Включать НДС в стоимость товаров".
Происходит движение по регистру накопления "НДС по приобретенным ценностям". Минусуется приход без признака "НДС включен в стоимость", ставится приход с этим признаком и дальше списание с этим признаком.

Проводка по восстановлению НДС: Дт 19.03 - Кт 68.02
Списание восстановленного НДС: Дт 08.03 - Кт 19.03

При этом первой проводки может не оказаться и тогда 19.03 по определенной счет-фактуре (Поступлению товаров) будет в остатке с минусом. При проведении анализируются еще остатки по регистру накопления "НДС предъявленный". Программа считает, что если в этом регистре есть остатки по партии, то значит НДС не был принят к вычету и его не надо восстанавливать. Проверка происходит в общем модуле УчетНДСБП.

Процедура ОпределитьСуммуСписанияНаРасходыРанееПринятогоКВычетуНДС(СтрокиВключениеВСтоимость, Реквизиты)
 
	Если СтрокиВключениеВСтоимость.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
 
	ОстаткиНепринятогоКВычетуНДС = ПолучитьОстаткиНепринятогоКВычетуНДС(СтрокиВключениеВСтоимость, Реквизиты);
 
	Отбор = Новый Структура("СчетФактура,ВидЦенности,СтавкаНДС,СчетУчетаНДС,Поставщик");
 
	Для каждого СтрокаТаблицы Из СтрокиВключениеВСтоимость Цикл
 
		СтоимостьСписанияНаРасходы	= СтрокаТаблицы.Стоимость;
		НДССписанияНаРасходы		= СтрокаТаблицы.НДС;
 
		ОстаткиПоСФ = ОстаткиНепринятогоКВычетуНДС.Строки.Найти(СтрокаТаблицы.СчетФактура, "СчетФактура");
 
		Если НЕ ОстаткиПоСФ = Неопределено Тогда
 
			СтрокаТаблицы.ИсправленныйСчетФактура	= ОстаткиПоСФ.ИсправленныйСчетФактура;
 
			ЗаполнитьЗначенияСвойств(Отбор, СтрокаТаблицы);
			НайденныеСтроки = ОстаткиПоСФ.Строки.НайтиСтроки(Отбор);
 
			Для каждого СтрокаОстатков Из НайденныеСтроки Цикл
				СтоимостьНеПринятоКВычету = СтрокаОстатков.СуммаБезНДС + СтрокаОстатков.НДС;
				НДСНеПринятоКВычету       = СтрокаОстатков.НДС;
 
				СтоимостьСписанияНаРасходы	= СтоимостьСписанияНаРасходы - СтоимостьНеПринятоКВычету;
				НДССписанияНаРасходы		= НДССписанияНаРасходы - НДСНеПринятоКВычету;
			КонецЦикла;
 
		КонецЕсли;
 
		СтрокаТаблицы.СтоимостьСписанияНаРасходы = Макс(СтоимостьСписанияНаРасходы, 0);
		СтрокаТаблицы.НДССписанияНаРасходы       = Макс(НДССписанияНаРасходы, 0);
 
	КонецЦикла;
 
КонецПроцедуры

Все это работает, если не делать ручных проводок. Например, был отсторнирован документ по списанию материалов, вышеприведенные регистры были полностью отсторнированы, а в проводках бухгалтер удалил лишние сторнировки и оставил только то что ему было нужно отсрорнировать. В результате на 19 счете образовались минусовые остатки