|
ПодключитьОбработчикИзмененияДанных в УФ, как? | ☑ | ||
---|---|---|---|---|
0
novichok79
21.08.17
✎
11:04
|
Доброго времени суток, дорогие коллеги.
Вопрос - как отловить событие изменения отбора в динамическом списке? Платформа - 1С:Предприятие 8.3 (8.3.10.2299). Заранее благодарю за помощь. |
|||
1
novichok79
21.08.17
✎
11:07
|
ПриПолученииДанных, ОбновлениеОтображения?
|
|||
2
novichok79
21.08.17
✎
11:17
|
можно попробовать конечно еще ПриОбновленииСоставаПользовательскихНастроекНаСервере
кто-нибудь плавал, знает? |
|||
3
novichok79
21.08.17
✎
11:20
|
(2) не, не вариант
|
|||
4
novichok79
21.08.17
✎
11:35
|
Отстойные эти управляемые формы, не знаю почему на них здесь так много фапают. Такой гемор нало ловить, по сути, для реализации типовых функций - отловить изменение отбора в динамическом списке. Для моих целей подходит обработчик -
ПриПолученииДанныхНаСервере, но он на СервереБезКонтекста, то есть добраться до элементов формы я не могу. Кто б***ь это придумал? |
|||
5
Вафель
21.08.17
✎
11:36
|
(4) до недавнего времени и его не было
|
|||
6
novichok79
21.08.17
✎
11:41
|
(5) А смысл придумывать эту функцию, если она применима к каким-то общим данным базы, а не к элементам формы? Можно придумать недоступные элементы отбора и через элементы на форме устанавливать их в списке (по типу отбора по периоду на форме в УТ 11), тогда эти недоступные наборы всегда будут присутствовать в компоновщике списка, и я смогу отловить их значение когда угодно. Но до тех пор пока не попадется крутой бесстрашный пользователь, который способен сам установить произвольный отбор в демоническом списке, то что тогда?
|
|||
7
novichok79
21.08.17
✎
11:45
|
(0) решено обработчиком ожидания + при быстрых отборов на форме. еще раз, УФ - кусок какашки, даже в 8.3.10
|
|||
8
Вафель
21.08.17
✎
11:45
|
Это называется "Жри что дают"
|
|||
9
novichok79
21.08.17
✎
11:47
|
(8) только об этом подумал, что дали красивый велосипед с немножко квадратными колесами, без подписанных передач на переключателе.
|
|||
10
Господин ПЖ
21.08.17
✎
12:13
|
>не знаю почему на них здесь так много фапают
тупорезы не умеют настроить привязки в УФ все неплохо пока задача в рамках "2+2" |
|||
11
novichok79
21.08.17
✎
12:29
|
(10) не понимаю чего сложного в привязках, там все предельно ясно - 4 стороны и 3 типа привязок, остается только комбинировать, да и то, если привязывать левую границу, то по вертикали ее точно не увязать. уж лучше привязки с четкими размерами, чем плавучая хрень в УФ, где надо изращаться с декорациями заданной длины, вместо наименований, чтобы сделать аналогичную ОФ шапку документа.
|
|||
12
Вафель
21.08.17
✎
12:33
|
Основная проблема ОФ была не в самих привязках, а то что в конфигураторе не растягивались элементы при изменении размера формы
|
|||
13
Господин ПЖ
21.08.17
✎
12:45
|
>а то что в конфигураторе не растягивались элементы при изменении размера формы
щито вы говорите... |
|||
14
novichok79
21.08.17
✎
12:47
|
(12) чего? по умолчанию они тянутся, там даже думать не надо про привязки иногда.
|
|||
15
Fedor-1971
21.08.17
✎
13:46
|
(7)(10) ну зачем же, вот так, категорично. 1С развивает свою систему, несколько скачками (туда, сюда, обратно ...), но движется к балансу производительность/удобство и для программиста, и для пользователя.
Что УФ, что ОФ имеют свои ограничения (что-то проще в ОФ, что-то в УФ). Сейчас в УФ добавляются некоторые плюшки из арсенала ОФ. На мой взгляд, чисто моё мнение, от ОФ отказались из-за слишком хитрых программеров (очень уж просто выдать го-но код без раздумий "А что будет с системой"). Хотя тормозов на УФ можно устроить больше, при грамотном использовании они ничем не хуже ОФ, а ограничения программера не такие уж и больше (хоть мысли появляются "а что и где я собственно делаю?". Веток "как показать ТабличныйДокумент" или "как открыть форму" наСервере предостаточно). Лично мне несколько не понятно принятое 1С решение: об отсутствии "Напечатать" у ТабличногоДокумента на сервере - с одной стороны, печатаем на принтер у пользователя и тут всё логично, но с другой стороны PDF принтер можно поставить только на сервере и всем выдавать готовые PDF файлы (админу проще) и доступ раздавать не нужно |
|||
16
novichok79
21.08.17
✎
14:00
|
(15) потрачен был час времени, чтобы сделать вывод состояния отбора в форме списка, да и то с костылями. это не какая уж сильно "нагружающая сервер или клиент" операция, это что-то элементарное в моем понимании. время бесценно, поэтому мои суждения столь категоричны. только на полностью УГ можно потратить час, чтобы вывести надпись на форме.
|
|||
17
Fedor-1971
21.08.17
✎
14:13
|
(16) так нужна была просто универсальная индикация выставленных пользователем отборов?
|
|||
18
Fedor-1971
21.08.17
✎
14:16
|
17+ примерно как в журнале платежей на БП 3? (там такси и отображаются выставленные пользователем фильтры и отборы с пометкой "Х", типа удалить)
|
|||
19
novichok79
21.08.17
✎
14:17
|
(17) Была старая крутая CRM на Delphi и BDE, при пролистывании списков тормозила, да и вообще, по сравнению с 1С с тем же объемом данных и работающих пользователей - тормозила. Я переписал ее на управляемые формы на базе БСП 2.4.2
В данный момент, осталось допиливание рюшечек в формах, "сделай как было в старой программе", или максимально похоже. Индикация отборов - это не совсем то, что нужно, но довольно близко. |
|||
20
novichok79
21.08.17
✎
14:18
|
(18) ну то есть посчитать количество документов заданного вида с таким-то статусом, с учетом наложенного (наклатого :D ?) пользователем фильтра в динамическом списке.
|
|||
21
novichok79
21.08.17
✎
14:25
|
https://s30.postimg.org/8jnap8ia7/example.png
вот надпись под фильтром по периоду, как сделать ее вычисление только по нужному событию, а не по таймеру, я не знаю. |
|||
22
Вафель
21.08.17
✎
14:57
|
так пользовательские отборы сами создают элементы.
Зачем еще какая то индикация? |
|||
23
novichok79
21.08.17
✎
15:22
|
(22) задача - вывести количество ссылок в списке по каждому статусу, в зависимости от отбора, установленного в дин. списке. как это сделать быстро?
|
|||
24
FIXXXL
21.08.17
✎
16:22
|
(23) ПодключитьОбработчикОжидания() с интервалом 0,1
|
|||
25
novichok79
21.08.17
✎
16:28
|
(24) а, то есть, вызывать сервер каждые 0.1 секунды? замечательное решение.
|
|||
26
Вафель
21.08.17
✎
16:29
|
(24) с таким интервалом только разово
|
|||
27
FIXXXL
21.08.17
✎
16:30
|
(26) соответственно на событие повесить
|
|||
28
Вафель
21.08.17
✎
16:34
|
(27) на какое?
|
|||
29
FIXXXL
21.08.17
✎
16:35
|
(28) ПриОбновленииСоставаПользовательскихНастроекНаСервере() прокатит?
|
|||
30
novichok79
21.08.17
✎
16:36
|
(29) см. (2) и (3)
|
|||
31
Вафель
21.08.17
✎
16:37
|
(29) и ты хочешь подключить обработчик ожидания из события на сервере?
|
|||
32
FIXXXL
21.08.17
✎
16:57
|
(31) не хочу
(30) что не получилось? |
|||
33
novichok79
21.08.17
✎
17:00
|
(32) не всегда отрабатывает
|
|||
34
Вафель
21.08.17
✎
17:01
|
(33) может ты поиск (помимо отбора) тоже хочешь обрабатывать?
|
|||
35
novichok79
21.08.17
✎
18:49
|
(34) только отбор в дин. списке
|
|||
36
lexasan
21.08.17
✎
19:25
|
Метод Оповестить() и ОбработкаОповещения() не пробовали?
|
|||
37
lexasan
21.08.17
✎
19:35
|
(36) Немного тупанул, невнимательно прочитал постановку задачи.
Нашел вот такую статейку от 1С https://its.1c.ru/db/metod8dev#content:2836:hdoc |
|||
38
lexasan
21.08.17
✎
19:38
|
(37) Но чтобы получить количество ссылок по отбору, нужно будет делать отдельный запрос с этим отбором, либо получать СКД динамического списка и колдовать уже с ним, например изменять текст запроса так, чтобы посчитать количество ссылок с доп. условиями
|
|||
39
novichok79
21.08.17
✎
20:41
|
(37) метод недоступен в режиме тонкого клиента.
(38) я и сделал отдельный запрос. |
|||
40
novichok79
21.08.17
✎
20:42
|
(36) когда конкретно оповещать, если нет события, откуда можно выполнить команду?
|
|||
41
Fedor-1971
22.08.17
✎
09:06
|
(36) Оповестить() не работал (не работает?) между сеансами, т.е. один пользователь изменил, второму пользователю пришло оповещение про изменение для ДС - это надо поколдовать.
(40) вот из ОбработкаОповещения() и выполняй свой подсчёт. Суть идеи в (36): например, в подписке на событие ПослеЗаписи всего что влияет на данный ДС ставим Оповестить("ИзмененыДанныеДСЛяЛя"), а в ОбработкаОповещения проверяем Если Событие="ИзмененыДанныеДСЛяЛя" тогда считаем, что нужно КонецЕсли; Недостаток описан выше. Тогда уж лучше использовать: ОповеститьОбИзменении(<Ссылка>), то же есть НО, у ДС должна быть заполнена таблица по умолчанию. Сработает ли ОбработкаОповещеия не скажу, надо проверять |
|||
42
novichok79
22.08.17
✎
09:40
|
(41) автообновление списка документов происходит каждые 30 секунд и по обработке оповещения тоже. как отловить событие, когда пользователь, знающий не по наслышке что такое управляемый интерфейс, добрался до настроек отбора в динамическом списке и поменял их?
|
|||
43
Fedor-1971
22.08.17
✎
10:09
|
(42) Можно попробовать: ПодключитьОбработчикИзмененияДанных(<ИмяДанных>, <ИмяПроцедуры>, <ОтслеживатьПодчиненныеДанные>) с отслеживание м изменения отбора, или таки выяснить причины почему не всегда срабатывает (2)
|
|||
44
novichok79
22.08.17
✎
10:32
|
(43) ха, если бы обработчик ПодключитьОбработчикИзмененияДанных для управляемых форм был доступен, этой темы бы не появилось.
|
|||
45
Fedor-1971
22.08.17
✎
10:39
|
(44) да, тупанул малость. Тогда остаётся разобраться с ПриОбновленииСоставаПользовательскихНастроекНаСервере.
Надо выделить время порыться в новых версиях 8.3 |
|||
46
novichok79
22.08.17
✎
10:43
|
(45) Это тоже не помогло. Я тоже сначала на этот обработчик подумал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |