Часто использую такую доработку именно в расширении.
При этом - только программная доработка запроса динамического списка и программный вывод колонки и обработчиков/команд.
Вместо доп.реквизита использую либо свой добавленный регистр сведений, либо регистр ДополнительныеСведения. Считаю использовать реквизит объекта не нужно - лишняя запись объекта.
В итоге слетает расширение очень редко, только если глобально изменен запрос динамического списка.
Например в УТ 11.5 было изменено много запросов в дин.списках относительно 11.4, что добавило работы при обновлении :)
Ну не очень хорошее решение, мягко говоря. Потому что обращение идёт к ещё одной таблице, доп.свойств. А на неё и РЛС могут быть навешены, и объёмчики могут быть неслабые... И документ записывать надо, а очень запросто может оказаться, что он при записи искажает некие данные или находится в закрытом периоде, или заблокирован кем-то... Словом, ваще не айс подход.
А способ передачи данных в ПриПолученииДанныхНаСервере я уже описывал в своей публикации.
(3) Наверное, лучше делать через дополнительные сведения (регистр сведений общий на все объекты).
Запрос будет чуть сложнее, но записывать будет легче.
А способ передачи данных в ПриПолученииДанныхНаСервере я уже описывал в своей публикации.
ознакомился - задача из твоей публикации отличается от представленной мною и поднятой Антоном... я исхожу всегда из того, что "каждой задаче - свое решение"... при этом, по итогу оказалось мы с Антоном решали две разные задачи - но про одно и тоже "флажок в динамическом списке" - как следствие решение и механизмы получились разные...
:)
Собственно, начинать вообще надо с методического анализа задачи.
Если речь о временных пометках, смысл имеющих и нужных только в рамках одного сеанса работы с ДС, или одного сеанса 1С, то однозначно выбирать следует некие временные коллекции, хранимые в ОЗУ, сеансовых данных, кэши и выборки, не относящиеся к БД. Можно использовать контекст формы и передавать выборку через хранилище либо настройку, можно (если расширение) сделать параметр сеанса либо общую функцию; можно применить даже кэширование во временный файл. Главное, что по истечении потребности эта выборка исчезнет, и затем более не будет востребована.
Если речь о постоянных пометках, либо о нужных в рамках нескольких сеансов (в т.ч. нескольких пользователей одновременно), то конечно следует применять средства БД. Также важно проанализировать имеющийся инструмент (его "тяжесть" и навороченность, если мы о контурах БСП), вероятность блокировок, конкурентного доступа и всех "прелестей" параллельной работы. В этом случае носителем может стать некий типовой механизм (показанные в публикации доп.реквизиты, механика прикреплённых файлов, хранилища значений, хранилища настроек итд), либо собственный, если расширение, и тут выигрышнее будет свой независимый непериодический регистр сведений, которому можно делать свои права доступа, блокировки, индексацию.
Если смотреть глубже, можно оценить объёмы этих пометок. Если помечается 5-10% от общего количества, и оно мало, то применимо быстрое сохранение в хранилища общих настроек, или вообще использование условного оформления ДС, а не выборка пометки запросом ДС. Если объёмы велики и прокрутка списка активно делается, тогда надо думать, куда и как такой объём адекватно "пролезет", будут ли повторы обращений, автообновляется ли ДС и как часто, итд.
Поэтому разговоры, чья публикация на эту тему "лучше", разумно вести, исходя из конкретных решаемых задач.
Пример получения признака без соединения с таблицей:
ВЫБРАТЬ
Р.Ссылка,
Р.Контрагент,
Р.Склад,
ВЫБОР
КОГДА 1 В
(ВЫБРАТЬ ПЕРВЫЕ 1
1
ИЗ
Документ.СчетФактураВыданный КАК Х
ГДЕ
Р.Ссылка = Х.ДокументОснование)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЕстьСФ
ИЗ
Документ.РеализацияТоваровУслуг КАК Р
ВЫБРАТЬ
Р.Ссылка,
Р.Контрагент,
Р.Склад,
ВЫБОР
КОГДА 1 В
(ВЫБРАТЬ ПЕРВЫЕ 1
1
ИЗ
Документ.СчетФактураВыданный КАК Х
ГДЕ
Р.Ссылка = Х.ДокументОснование)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЕстьСФ
ИЗ
Документ.РеализацияТоваровУслуг КАК Р
Показать
я бы запрос реализовал вот так :
1ый вариант - через левое соединение таблиц реализаций и СФ
или 2ой вариант - через временную таблицу документов-оснований СФ, далее в основной таблице Если Ссылка В (СписокДокОснований) то Истиина
ваш вариант мне совершенно не нравится (интуитивно)
Т.е. если один пользователь выбирает для себя галками документы, то и у всех остальных оно будет в галках?
По-моему флажки нужны конкретно для выбора и конкретно для ТЕКУЩЕГО пользователя.
А запись всего объекта документа ради этого мне кажется слишком затратной.
(9) моя история про веб-клиент и мобильный клиент... плюс про
Для чего можно использовать хранение флажков в документах БД? Возможно для задач визирования документов - когда например некоторое должностное лицо визирует документы, например проставляет статусы "Проверен", "Оригинал получен", "Акт сверки согласован" и т.д.
я лично веду такой учет по счетам на оплату - "акт подписан", "счет оплачен"...