|
перенос строк в поле ввода | ☑ | ||
---|---|---|---|---|
0
vadymdymdym
08.01.18
✎
13:35
|
Всем бобра. С праздниками прошедшими и еще не наступившими всех. Смотрите какая интересная проблема. Имеем управляемую форму и элемент ПолеФормы на ней с видом ПолеТекстовогоДокумента. Когда набираю длинный текст, он не переносится на следующую строку, а очень хотелось бы, чтобы переносилось. Конечно, сейчас найдутся хейтеры, которые скажут, а на фейхоа тебе сдалось поле текстового документа, если можно тупо использовать ПолеВвода, поставить там МногострочныйРежим=Истина, РасширенноеРедактирование=Истина и будет тебе великое счастье. Так-то оно так, дамы и господа, но есть небольшая проблемка. Дело в том, что у меня на форме каждые 10 секунд срабатывает процедура обработчика ожидания, которая ломится на сервер. Я все сделал для того, чтобы она ломилась без контекста, но это не помогает. Дело в том, что при возращении оттуда весь текст в поле ввода оказывается стертым. Т.е. писал, писал человек и на тебе. Чтобы он не был стерт, необходимо в течение 10 секунд успевать "сохраняться" (сходить с поля ввода), только тогда переменная, которая связана с полем ввода примет значение, которое там записано. Так вот, мне необходимо либо как-то умудриться реализовать перенос в первом случае, либо что-то сделать с текстом во-втором. Есть какие-нибудь идейки?))
|
|||
1
Волшебник
модератор
08.01.18
✎
13:40
|
Не надо ломиться на сервер каждые 10 минут
|
|||
2
jsmith82
08.01.18
✎
13:41
|
А форматированный документ?
|
|||
3
Гипервизор
08.01.18
✎
13:41
|
Что делает обработчик ожидания?
|
|||
4
vadymdymdym
08.01.18
✎
13:44
|
(1) Не 10 минут, а 10 секунд)). Спасибо, конечно, но... не могу не ломиться. Надо))
(2) На форматированном документе проблем нет, совершенно верно, но... мне надо, чтобы документ не форматировался)). Тем более, что на форме и так уже есть форматированный документ и человек выбирает между форматированным и неформатированным. Такие дела)) (3) Обработчик ожидания смотрит, не изменилось ли состояние базы и если что-то изменилось, отображает это изменение на форме. Так сказать, имитация в режиме реального времени))) |
|||
5
vadymdymdym
08.01.18
✎
13:48
|
Я вот уже начинаю думать, а может jsmith82 прав? Может мне действительно вместо текстового документа сделать форматированный, только кнопки форматирования убрать?... Интересная идейка, между прочим. Подумаю)
|
|||
6
Гипервизор
08.01.18
✎
13:50
|
(5) Все равно. Или я чего-то не догоняю и дьявол в деталях, или вся ваша концепция не верна.
|
|||
7
patya
08.01.18
✎
13:52
|
(0) > Я все сделал для того, чтобы она ломилась без контекста
https://otvet.imgsmail.ru/download/c914757572c87a649e63cb92d49b45ae_i-75.jpg |
|||
8
vadymdymdym
08.01.18
✎
13:53
|
(6) Не совсем понял, что Вам непонятно?))
|
|||
9
vadymdymdym
08.01.18
✎
13:54
|
(7) Я имею в виду, что использую директиву &НаСервереБезКонтекста :)
|
|||
10
Гипервизор
08.01.18
✎
13:57
|
(8) Для чего это вообще все реализовано именно так? У вас состязание между пользователем и обработчиком. Быстрее наберет текст юзер или с сервера придет инфа, что реквизит еще пустой? Потому мне такая реализация непонятна.
|
|||
11
patya
08.01.18
✎
14:00
|
(9) Где?
|
|||
12
vadymdymdym
08.01.18
✎
14:00
|
(10)Да нет. Пользователь вводит текст и записывает изменения в базу. Одновременно и другие пользователи могут делать то же самое. Этот обработчик ожидания просто информирует пользователя, не записали ли подобным образом другие пользователи что-то в базу
|
|||
13
vadymdymdym
08.01.18
✎
14:01
|
(11) В процедуре, которая запускается из процедуры обработчика ожидания
|
|||
14
Мимохожий Однако
08.01.18
✎
14:02
|
"Смотрите какая интересная проблема".Не стой на своём. Это больно. ИМХО. Сам себе проблему создал обработчиком ожидания.
|
|||
15
patya
08.01.18
✎
14:02
|
(13) Показывай
|
|||
16
vadymdymdym
08.01.18
✎
14:03
|
(14) Больно. согласен с Вами)) Жизнь - боль
|
|||
17
vadymdymdym
08.01.18
✎
14:03
|
(15) Что вам конкретно показать?
|
|||
18
patya
08.01.18
✎
14:04
|
(17) Обработчик ожидания и сигнатуры того что он вызыаает
|
|||
19
vadymdymdym
08.01.18
✎
14:05
|
(18) Я не могу понять, Вам код прислать? Или обработку целиком? Извините, код не пришлю. Выглядит это так:
|
|||
20
vadymdymdym
08.01.18
✎
14:06
|
&НаКлиенте
Процедура НазваниеПроцедурыОбработкиОжидания() НазваниеПроцедурыНаСервере() КонецПроцедуры &НаСервереБезКонтекста Процедура НазваниеПроцедурыНаСервере() //код процедуры КонецПроцедуры |
|||
21
Гипервизор
08.01.18
✎
14:06
|
Мда.. А в 1С-то не знают, что обрабатывать попытку записи изменений несколькими пользователями в один и тот же объект надо с помощью обработчиков ожидания..
|
|||
22
vadymdymdym
08.01.18
✎
14:08
|
(21) Что предлагаете?
|
|||
23
patya
08.01.18
✎
14:09
|
(19) > Извините, код не пришлю
Успехов тебе, счастья в новом году и много-много закрывающих скобочек |
|||
24
vadymdymdym
08.01.18
✎
14:11
|
(23)Спасибо. Вас тем же концом по тому же месту))
|
|||
25
vadymdymdym
08.01.18
✎
14:17
|
(21)Может Вы не поняли меня. Запись не происходит в один и тот же объект. Запись происходит в один и тот же регистр сведений. Реализацию с динамическим списком не предлагать. Слишком мудреный список получается. Во-первых, в таблице значений на форме есть поля, которые не отобразить в динамическом списке из-за проблемности их получения (Например, в одном и том же поле в таблице у меня строка и в скобках дата. Тут запросом сконкатенировать большая проблема). Во-вторых, мне нужно не все данные а только лишь некоторые последние (т.е. в запросе дин. списка нужно сделать что-то типа Упорядочить По и Выбрать Первые), в третьих, содержимое этого списка меняется в зависимости от того, куда щелкнет пользователь, т.е. мне нужно программно реализовать отборы по щелчку или установку параметров. По факту отображается от 4 до 10 записей регистра. Ради них делать динамический список?
|
|||
26
Гипервизор
08.01.18
✎
14:26
|
(25) И не понял, и продолжаю не понимать. Платформенная реализация уникальности записей регистра сведений чем вас не устраивает?
|
|||
27
vadymdymdym
08.01.18
✎
14:31
|
(26)Записи и так уникальны. Мне нужно в реальном времени отображать изменения в регистре сведений, которые сделали пользователи. Т.е. по сути мне надо, грубо говоря, динамический список регистра сведений с автообновлением каждые 10 секунд. Т.е. чтобы пользователь видел с этим интервалом не изменилось ли состояние регистра. Только я не пошел по пути динамического списка, а пошел по пути таблицы значений, которая красиво отформатирована и раскрашена, потому что мне не нужен весь регистр, а нужны только несколько последних записей)). И поэтому я использую обработчик ожидания, чтобы обновить таблицу на форме. Вот в чем дело))
|
|||
28
Волшебник
модератор
08.01.18
✎
14:39
|
(4) Если надо, то ССЗБ (сам себе злобный Буратино)
|
|||
29
Волшебник
модератор
08.01.18
✎
14:40
|
(27) Добавь уже кнопку "обновить". Пусть юзеры её жмут, когда ИМ надо.
|
|||
30
vadymdymdym
08.01.18
✎
14:50
|
(28) Согласен. Сам себе создал проблему, сам себе злобный Буратиборг))
(29) Тоже, кстати, интересный вариант. Однако, сам смысл обработки как раз и заключается в том, чтобы они постоянно не жмакали никуда, а чтобы они подождали... и у них выскочило. Ибо таково было ТЗ. А если обработка закрыта, то им еще и оповещалка приходила, шо дескать откройте обработку. Тама вас сюрприз ждет)). Кроме того, если кто-то из пользователей уже что-то пытается набрать в этом текстовом поле, то у других пользователей в обработке меняется шрифт, текст в таблице и еще сообщается, что вот такой-то вот пользователь что-то набирает. Будьте внимательны. Сейчас появится)) Я вот уже думаю, может правда заморочиться с дин. списком уже. Очень муторно будет, но можно попробовать, если толк будет. Итого сегодня мне предложили 3 варианта: 1. Самый простой - кнопка Обновить 2. Форматированный документ. Чуть посложнее 3. Самый сложный, но наверное, самый красивый. Динамический список. Правда он будет со сложным запросом, несколькими параметрами и/или отбором Что ж, всем спасибо. Если есть еще идеи - отписывайтесь |
|||
31
DrZombi
гуру
08.01.18
✎
14:50
|
(29) Интересная идея.
В момент редактирования отключать обработчик ожидания, по окончанию редактирования замерять время прошедшее между началом и концом редактирования, и если все ОК то запускать обработчик ожидания, при этом обработать обработчик "вручную" (вызвать насильно) И так по кругу, пользователь что-то пишет, форма периодически обновляется. Проблема только настает, когда пользователь слишком долго пишет :) |
|||
32
vadymdymdym
08.01.18
✎
14:51
|
(31) Спасибо огромное. Я об этом думал. Но вы вот сами ответили на вопрос. Проблема, если пользователь слишком долго пишет)). Мне эта мысль в голову тоже приходила)
|
|||
33
Волшебник
модератор
08.01.18
✎
14:52
|
(32) Переложите проблемы пользователей на них самих.
|
|||
34
DrZombi
гуру
08.01.18
✎
14:52
|
(32) Пользователь не будет слишком долго писать, если его обучить к работе с тонким клиентом.
Научится выходить из режима редактирования. |
|||
35
vadymdymdym
08.01.18
✎
14:56
|
(33) Как вариант можно))
(34) Будет. Они любят это дело)). Поле многострочное. Более того, у них есть выбор, писать в текстовом поле или в форматированном документе, где они вообще зависнут надолго)) Итак, четвертая идея - отключать обработчик ожидания в момент активизации поля ввода)) |
|||
36
Волшебник
модератор
08.01.18
✎
15:06
|
(35) Совсем его отключи и будет тебе щастье
|
|||
37
Волшебник
модератор
08.01.18
✎
15:07
|
— Доктор, когда я делаю вот так, мне больно.
— Не делайте так... |
|||
38
vadymdymdym
08.01.18
✎
15:09
|
(36) Я понял Вас. Вы это уже предлагали в (1). Ну... совсем отключить... нежелательно бы. Мне тогда надо что-то заказчику в альтернативу предложить, ибо задание было такое, чтоб... в реальном времени все было. Вот кнопка "Обновить" - в-принципе, неплохая альтернатива. Достаточно аргументированная. Если заказчик согласиться - можно будет последовать Вашему совету
|
|||
39
vadymdymdym
08.01.18
✎
15:11
|
согласится*. Совсем с русским языком проблемы начались
|
|||
40
Волшебник
модератор
08.01.18
✎
15:35
|
(39) Вместо дефиса ещё нужна запятая. Не парься на тему русского языка. У тебя с 1С проблемы.
|
|||
41
vadymdymdym
08.01.18
✎
15:44
|
(40) Ну тут спорный вопрос. Я там не дефис, а тире вставлял. Обновить - альтернатива. При таком формате, подлежащее - сказуемое ставится тире, насколько я помню. Хотя... действительно неважно. Что у меня с 1С-то не так?). Я ж не виноват, что заказчик так требует). 1С вообще не предназначена для того, что он просит, если вдуматься. Но... выкручиваться как-то надо)). Вот и пришлось извращаться))
|
|||
42
Волшебник
модератор
08.01.18
✎
16:03
|
(41) Ты виноват, что не объяснил заказчику цену и последствия его решения.
|
|||
43
vadymdymdym
08.01.18
✎
16:06
|
(42) Тут не поспоришь(((
|
|||
44
Волшебник
модератор
08.01.18
✎
16:07
|
(43) Покайся и будет тебе щастье! Отключи обработчик ожидания! Сделай добро людям!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |