Есть некий нетиповой процесс с документом. Сначала сам документ оформляется пользователем и проводится. При этом он должен как-то отметиться, что его надо далее по процессу обработать - включить в некие механизмы расчёта. Затем вводится документ расчёта и он по "Заполнить" должен выбирать такие документы, которые уже введены и ещё не были рассчитаны другими документами расчёта.

Вопрос в том, как оптимально организовать архитектуру.
На данный момент я сделал периодический подчинённый РС с колонками РассчитываемыйДокумент и ДокументРасчёта. Первично документ записывается туда с пустым документом расчёта. Сам документ расчёта при проведении по документам из своей ТЧ записывает в этот РС строки, где в ДокументРасчёта ставит себя, отмечая т.о., что он рассчитал документы.

Всё работает, но есть какое-то смутное чувство, что можно сделать оптимальнее.
---
В продолжение , если же ваш документ расчета, просто делает свои телодвижении на основании этих 300, то ясно что для каждого документа основания из Таблицы Основания документа расчета целесообразнее делать движения в РС при проведении документа расчета
Движения РС подчиненного документу расчета
Документ-Расчитан

И таких движений у одного документа расчета будет 300 в вашем описаном примере
---
в типовых посмотреть как делается связь между реализацией и счет-фактурой
---
Посмотрел. Похоже, они выбирают почти все поля ТЧ Товары (исключая суммовые) из накладной и сравнивают по всем ним с таким же набором данных из ТЧ Товары счетов-фактур, которые были введены до вводимой в данный момент.
Я не уверен, что анализировать ТЧ документов - это правильнее, чем РС.
---
там плюс в том, что в структуре подчиненности видны будут связанные документы.
---
Это действительно плюс. Тут мы контролируем, что на основании одной накладной не введут две СФ. А как ответить на вопрос "какие накладные на данный момент без СФ"? Ведь документ расчёта должен включить в себя множество нерассчитанных документов.
---
смысл РС только если ты уверен что ты правильно создал измерения у тебя будут нужные индексы и тогда запрос будет быстрее а так что РС что Документ это таблица в БД. все равно из какой таблицы запрашивать данные
---
чем простые статусы не угодили? очень нужно знать каким документом рассчитан обрабатываемый документ? так просто реквизит в документ добавить - например, ДокументОснование? запрос по документам религия не позволяет делать?
---
Всё так. Нужно знать, кем был рассчитан. А документ-основание не совсем подходит, т.к. документ расчёта включает в себя все нерассчитанные документы до момента своего ввода. Т.е. "оснований" много.
Запрос по документам религия не позволяет делать, да.
---
Запрос по документам религия не позволяет делать, да.

почему?
---
если нужна именно история расчета то тут регистр сведений без вариантов
---
Вот как сказано в (11) нужна история кто, как и когда рассчитывал, то тут ясно нужен РС .
Других причин использовать РС - нету
---
Правильным значит будет добавить табличную часть в документ Документы Основания.
Причем в типовых делается именно так!
А делать РС для рассчетов - не айс совершенно. Ну не для того РС были задуманы...
Там лучше хранить конечные результаты все же...
---
Согласен со всем. Но как ответить на вопрос из (13)?
какие накладные на данный момент без СФКрасиво не решишь. Надо выбирать все основания из всех СФ, а потом искать накладные не из этого массива. Так?
---
Какой вопрос ? какие накладные на данный момент без СФ
?
Ну так у вас же будут все документы основания прописаны в документе расчета!
---
Но так новый документ расчёта вводится независимо, не на основании. В нём есть механизм заполнения, который должен включить в документ (например,заполнить ТЧ ДокументыОснования) все нерассчитанные на данный момент документы.
В нынешней реализации я ищу все записи в РС с пустым документом расчёта.
---
Вот вы и подошли к верному механизму...
Команда "Заполнить" ТЧ ДокументыОснования....
А в документах , которые нерасчитаны, после включения в этот документ расчета статус можно менять (расчитан-НЕРасчитан)
И по нему в том числе заполнять документ расчета в выше указанной команде
---
Статус в данном решении - реквизит документа? Т.е. я беру и программно перезаписываю все документы-основания при включении их в документ расчёта? Со всеми проверками и обработчиками записи/проведения? А если мы рассчитываем одним документом штук 300 документов, то процедура перезаписи документов умножается на 300. И, конечно, надо менять статус расчёта обратно в случае, если документ расчёта распровели.
Оптимально ли это?
---
Я не знаю что и как вы расчитываете...
Если данные всех этих 300 документов меняются, а именно так я воспринимаю слова - документ расчитывается, то ясно что только так и должно быть...
Как в ЗУПе например - кадровики создают документ отпуск, а потом его расчитывает бухгалтер-расчетчик и ставится статус документа РАСЧИТАН.
Если же расчет этот никак не связан с изменениями данных в документе, то это и расчетом его вряд ли назовешь, то безусловно статус документа в самом документе - нелепость.
Поэтому вы либо распишите подробнее, либо сами определяйте, как определить "расчитанность" документа....
---
В продолжение , если же ваш документ расчета, просто делает свои телодвижении на основании этих 300, то ясно что для каждого документа основания из Таблицы Основания документа расчета целесообразнее делать движения в РС при проведении документа расчета
Движения РС подчиненного документу расчета
Документ-Расчитан

И таких движений у одного документа расчета будет 300 в вашем описаном примере
---
опять же именно этот РС позволит исключать в команде Заполнить те документы , которые уже расчитаны
---
проверь ситуации отмены проведения обоих документов. Т.е. у тебя документы связались, а потом старый удалили например
---
Действия с документом будут запрещаться, если он был рассчитан. Если же распровели документ расчёта, то появилась пачка необработанных документов, которые войдут автоматом в следующий документ расчёта.
---
Что значит красиво?
Главное быстро и правильно...
А красота - понятие очень скользкое... Квадрат Малевича - красив? А туча маньяков им восхищаются... Вот то-то
---
Спасибо всем участникам за то, что откликнулись. Ваши советы мне помогли.