ст.169 НК
5. В счете-фактуре, выставляемом при реализации товаров (работ, услуг), передаче имущественных прав, должны быть указаны:
4) номер платежно-расчетного документа в случае получения авансовых или иных платежей в счет предстоящих поставок товаров (выполнения работ, оказания услуг);
основной вопрос: как ПРАВИЛЬНО и на основании чего трактовать данный п.4?
а) номер указывается только в СЧФ на аванс?
б) номер указывается в СЧФ отгрузки, по которым зачтены авансы?
Для нас, неспециалистов в области БУ, НУ, налогового законодательства и прочих "нормативно-правовых" документов, становится очевидно: что трактуют все как хотят. Чья версия правильнее - решать не нам (в конфликтных ситуациях решает только суд?). Общее правило такое: налогоплательщики трактуют "по минимуму", налоговики - "по макисмуму", т.е. "приплетая" то, что явно в НК не указано, обосновывая это фиг знает чем. Например, следующая подборочка:
http://www.pravcons.ru/publ09-02-05-1.php
http://www.r59.nalog.ru/document.php?id=136370&topic=imm59
http://www.gazeta-unp.ru/doc.htm?id=230
Делать будем просто - как поступает много бухгалтеров, по принципу: больше бумаги - чище апож - будем указывать ВСЁ.
Необходимые действия.
1. Берем внешнюю печатную форму типовой формы счет-фактуры выданного.
2. В начало модуля внедряем следующую функцию:
Функция глПолучитьСписокПлатежноРасчетныхДокументов(Докум)
Если Докум.Проведен() = 0 Тогда Возврат "№ от";
КонецЕсли;
Если Докум.Вид() <> "СчетаФактурыВыданные" Тогда Возврат "№ от";
КонецЕсли;
локТЗ = СоздатьОбъект("ТаблицаЗначений");
локТЗ.НоваяКолонка("НомерДок" ,"Строка");
локТЗ.НоваяКолонка("ДатаДок" ,"Дата");
СторнированАванс = Перечисление.КодыОпераций.СторнированАванс;
РегП = СоздатьОбъект("Регистр.Покупатели");
РегП.ВыбратьДвиженияДокумента(Докум.ДокОснование);
Пока РегП.ПолучитьДвижение()=1 Цикл
Если РегП.КодОперации <> СторнированАванс Тогда Продолжить;
КонецЕсли;
ПлРаДок = РегП.КредДокумент;
локТЗ.НоваяСтрока();
Если ПлРаДок.Вид()="ПКО" Тогда //кассовые чеки локТЗ.НомерДок = СокрЛП(ПлРаДок.НомерДок);
локТЗ.ДатаДок = ПлРаДок.ДатаДок;
Иначе //строки выписки банка и доки корректировки долгов... Попытка локТЗ.НомерДок = СокрЛП(ПлРаДок.НомерДокВходящий);
локТЗ.ДатаДок = ПлРаДок.ДатаДок;
Исключение ЗаписьЖурналаРегистрации("глПолучитьСписокПлатежноРасчетныхДокументов(): ПОПЫТКА: ошибка "+ОписаниеОшибки(),,,5);
локТЗ.УдалитьСтроку(локТЗ.КоличествоСтрок());
КонецПопытки;
КонецЕсли;
КонецЦикла;
Если локТЗ.КоличествоСтрок()=0 Тогда
Возврат "№ --- от ---" КонецЕсли;
локТЗ.Свернуть("ДатаДок,НомерДок",);
локТЗ.Сортировать("ДатаДок,НомерДок");
Результат = ""; локТЗ.ВыбратьСтроки();
Пока локТЗ.ПолучитьСтроку() = 1 Цикл Результат = Результат+РазделительСтрок+"№"+локТЗ.НомерДок+" от "+локТЗ.ДатаДок;
КонецЦикла;
Результат = СтрЗаменить(СокрЛП(Результат),РазделительСтрок,",");
Возврат Результат; КонецФункции //глПолучитьСписокПлатежноРасчетныхДокументов()
Что делает данная функция: по документу-основанию счет-фактуры собирает записи по зачету авансов по регистру взаиморасчетов с покупателями, для ПКО выбирает номер и дату чека, для прочих кредитных доков - входящие номера и формирует результирующую строку пл.-расчетных документов через зпт.
далее: ищем процедуру типа
Процедура ПодготовитьРеквизитыШапки(Докум, Рекв)
определяем в ней оператор типа
Рекв.ДобавитьЗначение(Шаблон("К платежно-расчетному документу...
и модифицируем этот оператор, чтобы он выглядел так:
Рекв.ДобавитьЗначение(Шаблон("К платежно-расчетному документу [глПолучитьСписокПлатежноРасчетныхДокументов(Докум)]"), "ПоДокументу");
В общем и главном - это все. В кончном итоге в счет-фактуре получаем что-то похожее на это: "К платежно-расчетному документу №566 от 14.09.09". В случае зачета нескольких авансов - реквизиты будут перечислены через запятую.
.
В данном материале не обсуждаем правильность/неправильность трактовок НК и правильность предложенного выше решения... Также никоим образом здесь я не буду обсуждать варианты определения платежно-расчетного документа на основании структуры подчиненности. Причины (кому охота) могут почитать здесь: //infostart.ru/projects/2375/