Имя: Пароль:
1C
 
Отбор\сортировка по динамическому списку 8.3
0 Baris
 
20.03.24
04:36
Добрый день! УТ 11.4, есть динамический список на форме списка документа, внутри документа есть реквизит дата выполнения, нужно в форме списка показывать сколько дней просрочено. Дни то выводятся, но руководству нужно чтобы был фильтр по этому полю - например только просроченные, или хотя бы сортировка, сверху все просроченные. Она не работает, как я понимаю потому что перед ПриПолученииДанных это поле обнуляется. Как то можно решить это? Может есть идеи?
1 rphosts
 
20.03.24
05:58
(0) ну если в лоб - доработать отчёт так, что-бы этот реквизит выбирался запросом.
2 Baris
 
27.03.24
12:19
Поднимаю тему - отвлекли)
(1) да, дни вычислил в запросе дин.списка, это ладно. Есть еще одно поле - статус, там уже посложнее, нужно вычислять по подчиненным документам, была ли отгрузка(точнее заказ поставщику), по каждой номенклатуре документа. И в зависимости от результата статус отгружен/не отгружен/частично или вообще отменен.
В ПриПолученииДанных все ок, заполняется, но опять же потом это видимо затирается запросом самого дин.списка и пользователь вроде видит эти статусы, но отладчиком я вижу что они пустые. Меня бы устроило, главное визуально это видеть, а пользователю надо фильтровать по статусам) соот-но ни сортировка ни отбор не работают - поля же пустые.
В запрос дин.списка не знаю впихнется ли это все, может есть как обойти это? Кто-то может сталкивался?
3 lodger
 
27.03.24
12:53
(2) такую жесть со статусами всегда перепиливают на РС статусов, а потом просто левое соединение со срезом последних.
4 Волшебник
 
27.03.24
13:06
(3) За левое соединение со срезом последних отрывают руки
5 ptiz
 
27.03.24
13:11
(4) Почему? Если подхватывается физическая таблица среза - ничего страшного.
6 RVN
 
27.03.24
13:11
(2) 1. Статусы вынести в регистр сведений "АктуальныйСтатус" (если надо историю изменения статуса добавить еще и периодический регистр сведений "ИсторияСтатусов"). Данные в него писать по результатам проведения соотв. документов (ну или регл. заданием для эстетов)
2. В запросе дин. списка левое соединение основной таблицы и р/с "АктуальныйСтатус и поле "Статус"
3. Так же в запросе вычислять поле "ДнейПросрочено"
4. все это вывести на форму.
5 В "ПриПолученииДанных" не делать ничего
7 PR
 
27.03.24
13:11
(2) Читай внимательно https://wonderland.v8.1c.ru/blog/obrabotka-i-oformlenie-dannykh-dinamicheskogo-spiska/
Особенно то место, где "Если не предпринять дополнительных мер, то пользователь может быть сильно удивлён результатами группировки, сортировки или отбора (в том числе и поиска) по тем полям, которые вы изменили. Ведь эти действия будут выполняться по исходным данным, получаемым запросом, а не по тем данным, которые видит пользователь."
8 Волшебник
 
27.03.24
13:12
(5) Имейте в виду, я Вас предупредил
9 RVN
 
27.03.24
13:14
(5) Мммм.... а когда это появилась ФИЗИЧЕСКАЯ таблица среза последних?
10 ptiz
 
27.03.24
13:19
(9) С добрым утром! Щас заклюют :)
11 PR
 
27.03.24
13:21
(9) Мммм... уже давно, с добрым утром
Открой регистр сведений в конфигураторе, увидишь много интересного
12 RVN
 
27.03.24
13:25
(10) (11) Старею, однако. Отстал от жизни...
13 osa1C
 
27.03.24
14:06
(8) имеете ввиду, что надол срез последних сначала во временную таблицу загонять?
14 Волшебник
 
27.03.24
14:10
(13) Да, так будет быстрее
15 Garykom
 
27.03.24
14:13
Динамический список это фактически ВТ
Т.е. данные показываемые на форме в ДС и данные в базе могут различаться уже
Чтобы привести в соответствие есть специальный метод ОповеститьОбИзменении
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший