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

Использование внешней обработки:
1) открываете через Файл-Открыть…
2) сначала выбираете документ — слева сверху есть таблица — можете выбрать несколько документов — сразу для них заполняется таблица снизу слева — заполняется всеми регистрами для дальнейшего анализа.
3) справа сверху выбираете реквизиты документов — они в списке выбора выходят как ссылки на объект метаданных (справочник или документ), которые входят в состав реквизитов документов. Сразу после выбора заполняются поля, показывающие как эти ссылки на объекты метаданных называются в документах и в регистрах (измерениях, ресурсах, реквизитах). Для примера, в документах есть реквизит "Проект", это ссылка на справочник "Проекты", в регистрах он может храниться под другим названием — мы еще не видели алгоритм проведения — не знаем в какое поле сохраняется наш реквизит документа "Проект", но мы знаем, как называются поля в регистре со ссылкой на справочник "Проекты"…
4) проходим в цикле все отчеты конфигурации (встроенные и не из расширений), ищем только СКДшные отчеты — имеющие признак ОсновнойСхемыКомпоновкиДанных, читаем запрос только по тем СКД, которые имеют тип Набора Данных = Запрос.
5) подбираем только такие отчеты СКД, в которых есть регистр из списка слева снизу, и в которых имеются разрезы учета из списка сверху справа. Здесь нет условий, что ищем отчеты со всеми разрезами учета или со всеми регистрами. Есть пока только одно условие — в запросе должен использоваться один из регистров и один из разрезов учета (реквизитов).
6) На выходе получаем список потенциальных отчетов.
Алгоритм подходит для схем учет 1 и 2 (см. рисунки ниже), для схемы 3 — не подходит.

Схема 1

Схема 2

Схема 3
Внешняя обработка разрабатывалась на конфигурации Управление нашей фирмой, редакция 1.6 (1.6.26.220), на платформе 1С:Предприятие 8.3 (8.3.18.1741). Используется вызовы функций СтрНайти(), СтрРазделить() — которые доступны, начиная с версии 8.3.6 (в режиме совместимости с версией 8.3.6 и последующими).
В будущем сделаю признак "ИспользоватьСтаруюФункциюНайти" — для примера, я использовал этот признак и описал в публикации Перенумерация документов и справочников с учетом префиксов (учет уникальности кодов) для управляемых форм.
В целом, обработка может подойти для любых конфигураций на управляемых формах (с учетом условий абзацем выше). Обработка не является сейчас законченным продуктом, но в планах добавить дополнительные условия на анализ и поиск отчетов СКД — в планах расширить функционал. Вашему внимаю представлена версия 1.
На этом все.
Всем добра!
С пользой для клиентов, Rustig

