Оптимальный алгоритм поиска документа основания не зная реквизит

1. olo_lo4 27.11.19 10:30 Сейчас в теме
Найти документы, введенные на основании определенного документа
Здравствуйте, есть документ, на основании которого введено несколько документов.
Подскажите, пожалуйста, оптимальный алгоритм поиска всех документов у которых данный документ является основанием!
Нужно, чтобы потом получить табличные части этих документов для выгрузки в ТЗ!
Спасибо
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 27.11.19 10:31 Сейчас в теме
Это называется запрос.
3. olo_lo4 27.11.19 10:33 Сейчас в теме
(2)теперь буду знать! очень благодарен за ответ.
4. Unk92 280 27.11.19 10:37 Сейчас в теме
Создать критерий отбора (или использовать имеющийся). Подключить туда нужные реквизиты и делать запрос по этому критерию
5. VmvLer 27.11.19 10:38 Сейчас в теме
мегаоптимально, уникальный и блестящий код

Выбрать 
    Т.ДокументОсновние
Из Документы.Заказы КАК Т
8. olo_lo4 27.11.19 10:59 Сейчас в теме
(5) заранее реквизит неизвестен, соответственно ваш код превращается из гениального в мусорный.
9. Sashares 35 27.11.19 11:04 Сейчас в теме
(8)У вас конфигурация меняется каждый день?
Реквизиты переименовываются?

Узнать реквизит в чем проблема?

Для этого надо в конфигураторе правой кнопкой мыши на документе - Поиск ссылок на объект.
10. olo_lo4 27.11.19 11:06 Сейчас в теме
(9) сразу видно вы не ленивый программист!

(6) ок, буду делать через него. спасибо
11. Sashares 35 27.11.19 11:13 Сейчас в теме
(10)Вы что-то пытаетесь делать в конфигурации, которую не знаете и, судя по ответу, вам даже лень ее изучать))
Соболезнования пользователям вашего "творчества"
6. herfis 513 27.11.19 10:42 Сейчас в теме
"Критерии отбора" создавались спецом под эту задачу.
7. aezdakov 6 27.11.19 10:55 Сейчас в теме
ТипЗначения = Тип(ТипЗначенияСтрокой); //где, например, ТипЗначенияСтрокой = "СправочникСсылка.Номенклатура"
Для Каждого ОбъектМетаданныхДокумент Из Метаданные.Документы Цикл
Для Каждого ОбъектМетаданныхРеквизитШапки Из ОбъектМетаданныхДокумент.Реквизиты Цикл
Если ОбъектМетаданныхРеквизитШапки.Тип.СодержитТип(ТипЗначения) Тогда
КонецЕсли;
КонецЦикла;
КонецЦикла;

Поместить это в общий модуль с включённым режимом повторного использования на время сеанса. А внутри цикла строить запрос.
Суть: перебрать метаданные на наличие реквизита с требуемым типом. Таким образом вы получите имя реквизита и таблицы, на основании этих данных можете построить запрос, который вернёте из этого общего модуля туда, где вы осуществляете поиск документа основания, сам запрос закешируется на время сеанса и обращения к СУБД не будет для построения запроса. Логику построения запроса ресуйте уже сами, тут я уже не помощник. Тип метаданных можете менять, вам лучше знать свою конфигурацию.
Реквизитом основания не всегда будет "ДокументОсновние", встречал, где связка происходит в журналах и регистрах сведений, критериях отбора, тут уж зависит что у вас.
12. VmvLer 27.11.19 11:19 Сейчас в теме
у тс все шансы стать моим заместителем - уровень тонкого хамства вполне достойный.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот