В практике разработчика 1С часто возникает задача построения отчетов или алгоритмов, связывающих первичные документы поступления с документами налогового учета, такими как «Заявление о ввозе товаров и уплате косвенных налогов». Основная сложность заключается в том, что в типовых конфигурациях (БП 3.0, ERP 2, КА 2) прямая ссылка в «шапке» документа (реквизитах) между ними часто отсутствует. Традиционный путь через обращение к табличной части Товары и реквизиту ДокументПартии не всегда удобен, особенно при работе с поврежденными базами данных или при необходимости оптимизации тяжелых запросов. Рассмотрим подробнее альтернативные способы решения этой задачи.
Прежде всего, разберем, как сама система 1С строит дерево «Структуры подчиненности». Для этого используется объект метаданных Критерий отбора, который называется СвязанныеДокументы. Этот механизм позволяет найти все документы, в которых упоминается ссылка на исходный объект, не прописывая сложные связи вручную.
Проанализируем ситуацию: если нам нужно получить список связанных документов программно, мы можем обратиться к этому критерию. В запросе это будет выглядеть как обращение к виртуальной таблице критерия отбора. Это позволяет абстрагироваться от структуры конкретных табличных частей.
Пример логики запроса к критерию отбора:
ВЫБРАТЬ
СвязанныеДокументы.Ссылка КАК ЗаявлениеОВвозе
ИЗ
КритерийОтбора.СвязанныеДокументы(&ДокументПоступления) КАК СвязанныеДокументы
ГДЕ
ТИПЗНАЧЕНИЯ(СвязанныеДокументы.Ссылка) = ТИП(Документ.ЗаявлениеОВвозеТоваров)
Этот способ эффективен, так как платформа 1С оптимизирует поиск по индексам, созданным специально для критериев отбора. Однако стоит помнить, что «под капотом» критерий все равно сканирует реквизиты, включенные в его состав.
Если стоит задача получить «чистую» биекцию (однозначное соответствие) или если данные в документах частично утеряны, обратимся к регистрам накопления. Документ «Заявление о ввозе товаров» является регистратором для учета НДС при импорте из стран ЕАЭС. Проанализируем регистры, в которых фиксируются движения этих документов.
Одним из ключевых регистров является НДС предъявленный. В нем при проведении заявления фиксируется информация о партии (которой и выступает документ поступления). Выясним причину, по которой этот метод считается надежным: данные в регистр записываются в момент проведения и жестко связывают аналитику учета с финансовыми показателями.
Рассмотрим структуру запроса к регистру накопления:
ВЫБРАТЬ РАЗЛИЧНЫЕ
НДСПредъявленный.Регистратор КАК ЗаявлениеОВвозе,
НДСПредъявленный.ДокументОснование КАК ПоступлениеТоваров
ИЗ
РегистрНакопления.НДСПредъявленный КАК НДСПредъявленный
ГДЕ
НДСПредъявленный.Регистратор ССЫЛКА Документ.ЗаявлениеОВвозеТоваров
И НДСПредъявленный.ДокументОснование ССЫЛКА Документ.ПоступлениеТоваровУслуг
В данном случае ДокументОснование (или в некоторых конфигурациях Партия) будет содержать ссылку на исходное поступление. Это позволяет нам связать документы без прямого обращения к Документ.ЗаявлениеОВвозеТоваров.Товары.
В современных конфигурациях на базе платформы 8.3 (таких как ERP Управление предприятием или Комплексная автоматизация) существует служебный регистр сведений Связи документов. Посмотрим на его назначение: он хранит кэшированные связи между объектами для ускорения работы интерфейса и отчетов.
Связь в этом регистре строится по парам «Исходный документ — Подчиненный документ». Проанализируем, как это можно использовать в коде:
ВЫБРАТЬ
СвязиДокументов.СвязанныйДокумент КАК Заявление
ИЗ
РегистрСведений.СвязиДокументов КАК СвязиДокументов
ГДЕ
СвязиДокументов.СтатьяДокумент = &Поступление
И ТИПЗНАЧЕНИЯ(СвязиДокументов.СвязанныйДокумент) = ТИП(Документ.ЗаявлениеОВвозеТоваров)
Важный момент: данный регистр может быть заполнен не для всех документов, а только для тех, связь между которыми была инициирована через механизмы «Создать на основании» или при ручном выборе основания в специализированных формах.
В ряде случаев, когда мы имеем дело с импортом, документы связываются через справочник НомераГТД или специализированные регистры аналитики учета номенклатуры. Разберем этот вариант по шагам:
Ключи аналитики учета номенклатуры, которые были созданы или изменены обоими документами.Этот метод наиболее сложен в реализации, но он позволяет восстановить цепочку связей даже в условиях сильной фрагментации данных («бинарного мяса»), так как опирается на физическое движение товара по складам и счетам учета.
Для целей налогового учета заявление часто регистрируется в журналах, аналогичных счетам-фактурам. Посмотрим на регистр сведений Журнал учета счетов-фактур. В нем записи о заявлении и о поступлении могут быть связаны через общие поля, такие как контрагент, договор и сумма сделки. Хотя этот метод не гарантирует 100% биекции при наличии множества одинаковых поставок, он может служить вспомогательным инструментом проверки.
Рассмотрим рекомендации по выбору метода:
Таким образом, мы выяснили, что отсутствие прямых реквизитов в шапке документа не является препятствием для построения качественного запроса. Использование регистров накопления и механизмов платформы позволяет эффективно связывать документы, обеспечивая целостность учетных данных.