Как программно найти счет-фактуру по документу-основанию в 1С:Комплексная автоматизация 2

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Налоговый учет Торговля и дистрибуция
← На главную

При разработке отчетов или доработке механизмов в конфигурации 1С:Комплексная автоматизация 2 (КА2) часто возникает задача поиска связанной счет-фактуры на основании первичного документа (например, Реализация товаров и услуг или Приобретение товаров и услуг). В современных версиях конфигураций архитектура учета НДС изменилась по сравнению со старыми базами, поэтому прямое использование устаревших функций не всегда корректно. Рассмотрим, как правильно решать эту задачу.

Вариант 1: Использование типовых функций (Рекомендуемый подход)

Самым надежным и профессиональным способом является использование встроенных механизмов платформы. Разработчики 1С уже предусмотрели функции, которые корректно обрабатывают логику подсистемы НДС, включая работу с корректировками и комиссионными операциями.

Для конфигураций уровня ERP и КА2 рекомендуется использовать методы общих модулей, например УчетНДСРФВызовСервера. Давайте рассмотрим пример использования такой функции:


// Пример вызова функции для поиска счета-фактуры
// ДокументОснование - ссылка на ваш документ (РТиУ, Приобретение и т.д.)
// Организация - ссылка на организацию, по которой ищем СФ

СчетФактура = УчетНДСРФВызовСервера.СчетФактураВыданныйПоОснованию(ДокументОснование, Организация);

Если ЗначениеЗаполнено(СчетФактура) Тогда
    // Работаем с найденным документом
    Номер = СчетФактура.Номер;
    Дата = СчетФактура.Дата;
КонецЕсли;

Использование подобных функций предпочтительнее, так как они учитывают внутренние проверки системы и специфику учета НДС, что избавляет вас от необходимости самостоятельно реализовывать сложную логику проверки прав или видов документов.

Вариант 2: Использование запроса к табличной части документов-оснований

Если вам требуется реализовать поиск самостоятельно или существующая функция не покрывает специфический случай, вы можете воспользоваться прямым запросом к табличной части ДокументыОснования документа СчетФактураПолученный (или СчетФактураВыданный). Этот подход эффективен, если документ прямо указан в соответствующей табличной части.

Разберем, как это выглядит в коде:


ВЫБРАТЬ
    СчетФактураПолученныйДокументыОснования.Ссылка КАК СчетФактура
ИЗ
    Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования
ГДЕ
    СчетФактураПолученныйДокументыОснования.ДокументОснование = &НужныйДокумент

Важное замечание: Этот метод подходит только для документов, которые напрямую зафиксированы как основания. Если вы пытаетесь найти счет-фактуру для ЗаказаКлиента, помните, что сам заказ не является документом-основанием для счета-фактуры. В такой ситуации необходимо сначала найти документ отгрузки (например, Реализацию товаров и услуг), созданную на основании заказа, и уже для нее выполнять поиск счета-фактуры.

Как понять, какой путь выбрать?

  1. Проанализируйте форму документа. В КА2 в формах многих документов есть гиперссылка «Счет-фактура». Откройте конфигуратор, найдите форму документа и посмотрите обработчик нажатия на эту гиперссылку. Вы увидите, какую именно функцию 1С использует для поиска и отображения связанного документа. Это самый точный способ найти «родной» метод для вашей версии конфигурации.
  2. Используйте «Структуру подчиненности». Если документ не является прямым основанием для счета-фактуры (как Заказ клиента), вы можете воспользоваться механизмом связанных документов. Сначала найдите цепочку подчиненности, дойдите до документа реализации, и только потом применяйте функцию СчетФактураВыданныйПоОснованию.
  3. Не изобретайте велосипед. Попытки перебрать все виды документов через длинные конструкции Если...Тогда...ИначеЕсли — путь к ошибкам и трудноподдерживаемому коду. Всегда старайтесь использовать штатные функции модулей УчетНДС или НДССервер.

Разбирая логику поиска, всегда помните, что счет-фактура привязывается к факту отгрузки или получения предоплаты. Поэтому, работая с документами планирования (заказы), всегда делайте шаг в сторону первичных финансовых документов. Таким образом, используя предложенные методы, вы сможете быстро и корректно реализовать поиск счетов-фактур в любой сложной конфигурации 1С.

← На главную