![]() |
![]() |
![]() |
|
Проблема с ВвестиЧисло... | ☑ | ||
---|---|---|---|---|
0
Maja
17.01.05
✎
21:05
|
Подскажите, как решить задачку? Использую следующий код:
Цен = ВыбрМатериал.Цена; //предустановленная цена ВвестиЧисло(Цен, "Введите цену", 15, 2); Проблема в том, что при появлении диалога ввода курсор ставиться ПЕРЕД текущей ценой по справочнику. То есть если предустановленная цена 200, и оператор начинает забивать 440, получается ввод числа 440200. Как можно при воявлении диалога ввода числа перевести предустановленную цену в режим редактирования? - то есть чтобы она была выделенна синим цветов и если оператор начал забивать другую цену, старое значение затиралось и новое писалось поверх, а не перед старым? |
|||
1
Таня
17.01.05
✎
21:08
|
Это уже было где-то здесь, но давно. Надо написать обработку, в котором будет поле число, и вызывать ее когда надо.
|
|||
2
Таня
17.01.05
✎
21:09
|
а потом через контекст возвращать значение
|
|||
3
NiGMa
17.01.05
✎
21:12
|
Там только одна сложность - таймаут назначить.
|
|||
4
NiGMa
17.01.05
✎
21:13
|
(3+) , если вызывать ее модально.
|
|||
5
Maja
17.01.05
✎
21:16
|
спасибо
|
|||
6
Maja
19.01.05
✎
19:15
|
Извините, продолжу тему... Попробовала сделать как написал NiGMA, но появилась новая проблема -
.......... Если ОткрытьФормуМодально("Обработка.ВводЧисла", Кол) = 0 Тогда Возврат; Иначе .......... Я нормально открываю форму обработки, но почему-то всегда возвращается ноль, в смысле не в Кол (здесь все нормально), а как результат выполнения ОткрытьФормуМодально(). Вот на всякий случай код самой обработки (ВыбЧисло-это поле для ввода числа в форме обработки): //_____________________________________________________________________________ Процедура ПриОткрытии() Форма.ПанельИнструментов(0); ВыбЧисло=Форма.Параметр; КонецПроцедуры //ПриОткрытии() //_____________________________________________________________________________ Процедура Выполнить() //вызывается по кнопке ок и как функция ВыбЧисло Форма.Закрыть(); КонецПроцедуры //Выполнить() //_____________________________________________________________________________ Процедура ПриЗакрытии() Форма.Параметр=ВыбЧисло; КонецПроцедуры //ПриЗакрытии() |
|||
7
Матрейя
19.01.05
✎
19:24
|
ОткрытьФормуМодально("Обработка.ВвестиЧисло",Кол);
Сообщить(Кол); |
|||
8
Maja
19.01.05
✎
19:30
|
<<Сообщить(Кол)
0 |
|||
9
Матрейя
19.01.05
✎
19:32
|
8. Не знаю, спроси у Волшебника.
|
|||
10
Дурочка 1С
19.01.05
✎
19:33
|
Выход один - ВК.
|
|||
11
Матрейя
19.01.05
✎
19:34
|
Не слушай 10, она дурочка.
|
|||
12
Дурочка 1С
19.01.05
✎
19:36
|
(11) Здравствуйте, Света! Как Ваше ничего себе?
|
|||
13
Матрейя
19.01.05
✎
19:48
|
Дурочки постоянно путают меня с питом.
|
|||
14
Maja
19.01.05
✎
19:49
|
Что-то я неправильно написала...
Кол получает значение! Меня волнует следующее: Флаг=ОткрытьФормуМодально("Обработка.ВвестиЧисло",Кол); Сообщить (Флаг); Флаг всегда равен нулю! =================================================== Из ЖКК: ОткрытьФормуМодально Возвращаемое значение: см.ОткрытьФорму .... ОткрытьФорму Возвращаемое значение: Число 1-Если действие выполнено, Число 0 - если действие не выполнено |
|||
15
Maja
19.01.05
✎
19:50
|
NiGMA, Волшебник, - помогите!
|
|||
16
Матрейя
19.01.05
✎
19:50
|
Майя, зачем тебе флаг модальной формы?
|
|||
17
Дурочка 1С
19.01.05
✎
19:55
|
(16) Все правильно она делает. Теперь этот флаг в руки и ВК.
|
|||
18
Матрейя
19.01.05
✎
19:58
|
17. достаточно глобальной переменной, дурочка.
|
|||
19
Maja
19.01.05
✎
19:59
|
(Растерянно...)Проверить, открылась форма или нет (операция завершилась с ошибкой). Я неправильно/нелогично действую?
|
|||
20
Матрейя
19.01.05
✎
20:04
|
19. Если в обработке ошибки нет и открытие не помещено в транзацию - то всегда откроется.
|
|||
21
Maja
19.01.05
✎
20:04
|
ВК- это что? - использование внешних компонент? Мне это пока не надо, хочу работать на стандартной 1С без расширений. Я конечно могу вместо кол передать и получить обратно ТЗ, в которой сама форма обработки установит флаг успешного выполнения и кол, но хочется докопаться до сути, да и не хочется лишних движений типа разложения полученной ТЗ на возвращаемые значения... Может, в описании оператора ОткрытьФормуМодально - ошибка?
|
|||
22
Maja
19.01.05
✎
20:07
|
Я бы так не сказала, а если я допишу некорректный код в обработку в процедуру ПриОткрытии() и забуду его откорректировать? Может и не открыться
|
|||
23
Матрейя
19.01.05
✎
20:07
|
21. Возвращает - после исполнения метода. А модальное открытие перехватывает исполнение алгоритма.
|
|||
24
Матрейя
19.01.05
✎
20:08
|
22. Передавай список значений. Успех=Спис.Получить("Работала")
|
|||
25
АЛьФ
модератор
19.01.05
✎
20:08
|
2(19) Логично. Только этот метод всегда вернет ноль, т.к. когда доходит до присваивания модальное окно уже закрыто (из определения модальности).
Если надо проверять нажата в обработке кнопка "Ок" или пользователь решил отменить ввод, надо или глобальную процедуру использовать, или сделать что-то типа такого: //в месте ввода значения Конт = СоздатьОбъект("СписокЗначений"); Конт.Установить("Значение",Кол); ОткрытьФормуМодально("Обработка.ВвестиЧисло",Конт); Если Конт.Получить("ВыборСделан") = 1 Тогда Кол = Конт.ПОлучить("Значение"); КонецЕсли; // в обработке Процедура ПриОткрытии() // ... всякие проверки на корректность открытия обработки опускаю ... // получаем текущее значение РеквЧисло = Форма.Параметр.Получить("Значение"); КонецПроцедуры Процедура Ок() // вызывается по нажатию кнопки "Ок" // устанавливаем флаг выбора Форма.Параметр.Установить("ВыборСделан",1); // устанавливаем новое значение Форма.Параметр.Установить("Значение",РеквЧисло); Форма.Закрыть(0); КонецПроцедуры |
|||
26
NiGMa
19.01.05
✎
20:08
|
Модально-то это правильно, конешно... нам же хочется чтобы было как бы ВвестиЧисло() - а оно модальное...
А вот почему 0 возвращает - не знаю. Я сам такое делал - но немного иначе. Открытие формы не проверял. Возвращал 2 значения: собственно число и признак успешного завершения ввода (взводится функцией в поле ввода). При модальном окне ОбработкаОжидания() не работает, к сожалению - и таймаут сделать не удалось :( |
|||
27
Матрейя
19.01.05
✎
20:09
|
Кол="ФФФ";
//затем открываем форму модально и передаем кол Если кол="ффф" Тогда не открывалась! |
|||
28
NiGMa
19.01.05
✎
20:14
|
(27) Неудобно это.
Обычно хочется значение по умолчанию передать. |
|||
29
Матрейя
19.01.05
✎
20:16
|
28. Все возможные способы я уже перечислил.(18,24,27). Остался последний: Попытка-Исключение
|
|||
30
Maja
19.01.05
✎
20:46
|
Всем спасибо, видимо буду делать все-же через ТЗ..
|
|||
31
Матрейя
19.01.05
✎
20:48
|
30. Есть более изящное решение (если по сабжу 0)
|
|||
32
NiGMa
19.01.05
✎
20:51
|
(31) Решение - в студию!!!
|
|||
33
Матрейя
19.01.05
✎
20:53
|
32. Я не буду отвечать на тематические вопросы до тех пор, пока не увижу подпись "Последний Будда" под своим оригинальным ником.
|
|||
34
Матрейя
19.01.05
✎
20:54
|
http://www.forum.mista.ru/topic.php?id=26263&
Но особо страждущим могу ответить по электронной почте matreya@mail.ru |
|||
35
427
19.01.05
✎
21:15
|
хм... Да Света вообще отвечать не может, ибо .....
и читает только религиозную литературу... |
|||
36
Матрейя
19.01.05
✎
21:19
|
35. Кретинка, ламерша, курица. Питух.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |