|
v7: Формула выполняется 2 раза | ☑ | ||
---|---|---|---|---|
0
vinogradъ
18.11.11
✎
12:51
|
В колонке ТЧ документа на реквизит с типом справочника прописана формула. При выборе элемента формула выполняется 2 раза: при выборе элемента еще на форме списка справочника и когда уже элемент собственно выбран в ТЧ. Раньше тоже сталкивался с этим, но как-то борол, а сейчас напрочь забыл. Смотрю как делал раньше (где выполнение 1 раз) и не нахожу отличий.
Как побороть? п.с. в формуле формирование контекстного меню с выбором. п.п.с. если написать ВыполнятьФормулуТолькоПриИзменении(1), то второй раз формула не выполняется, а нужно, чтобы не было первого выполнения. |
|||
1
vinogradъ
18.11.11
✎
12:58
|
?
|
|||
2
Ёпрст
18.11.11
✎
12:59
|
выкинуть всё вестимо
|
|||
3
Ёпрст
18.11.11
✎
13:02
|
из формулы
|
|||
4
vinogradъ
18.11.11
✎
13:04
|
и где писать обработчик события выбора элемента?
|
|||
5
Ёпрст
18.11.11
✎
13:05
|
в ПриНачалеВыбораЗначения или В ОбработкаВыбораЗначения .. смотря когда тебе надо - ДО выбора или После.
|
|||
6
aka AMIGO
18.11.11
✎
13:10
|
в формуле напиши в первых строках кода что-то типа
Если ПустоеЗначение(чтоТамВыбираешь)=1 Тогда Возврат; |
|||
7
vinogradъ
18.11.11
✎
13:11
|
ОбработкаВыбораЗначения помогло, спасибо.
Как раньше с формулой обходился - загадка, ну да х.. с ним |
|||
8
vinogradъ
18.11.11
✎
13:12
|
(6) было , не помогает
|
|||
9
Ёпрст
18.11.11
✎
13:13
|
(7) формула выполняется свегда , при беганьи по строкам (если только не стоит
ВыполнятьФормулуТолькоПриИзменении ), а так, только когда реквизит выберешь |
|||
10
vinogradъ
18.11.11
✎
13:20
|
Не, не прокатило: менюшка появляется на форме списка справочника, не в ТЧ документа.
|
|||
11
aka AMIGO
18.11.11
✎
13:27
|
вообще-то, если в ТЧ, то у меня стоит в проце ПриНачалеРедактированияСтроки()
|
|||
12
vinogradъ
18.11.11
✎
13:28
|
(11) нужно после выбора элемента
|
|||
13
aka AMIGO
18.11.11
✎
13:31
|
ну, возможно, в ПриОкончанииРедактированияСтроки()
|
|||
14
vinogradъ
18.11.11
✎
13:36
|
(13) :) после выбора элемента справочника строится менюшка, пользователь выбирает пункт и на основании выбора заполняются остальные колонки текущей строки. Нужно чтобы меню появлялось не на форме списка справочника, а на форме документа в тч.
|
|||
15
aka AMIGO
18.11.11
✎
13:41
|
(14)так в ТЧ и появляется менюшка..
а управление - двумя приведенными процами.. |
|||
16
aka AMIGO
18.11.11
✎
13:43
|
а можно и в виде ТЗ, или СЗ, а не меню
|
|||
17
aka AMIGO
18.11.11
✎
13:44
|
+16 либо небольшую обработку-диалог с реквизитами, вызываемую в модальном режиме
|
|||
18
vinogradъ
18.11.11
✎
13:55
|
Сделал.
Резюме: если в формуле колонки реквизита с типом справочник прописать процедуру, то она будет выполняться 2 раза: после выбора на форме списка справочника, когда форма списка еще открыта и после подтверждения выбора на ТЧ (перед выходом из ячейки). Решение: ОбработкаВыбораЗначения с присваиванием ВыбЗнач в реквизит и ФлагСтандОбр = 0. Получаем выполнение формулы только 1 раз и там где нужно. |
|||
19
aka AMIGO
18.11.11
✎
13:57
|
вот что вызывается - это обработка для выбора ячейки хранения:
http://s017.radikal.ru/i409/1111/f0/22effbd1c7e4.jpg а способов вызова - 2: Процедура ПриНачалеВыбораЗначения(ЭлементДиалога, ФлагОбработки) Если ЭлементДиалога="СкладКуда" Тогда СотрудникКуда = СкладКуда.Кладовщик; ИначеЕсли ЭлементДиалога = "Ячейка" Тогда // Отключаем стандартную процедуру выбора ФлагОбработки = 0; ПриВВодеЯчейки(2); //вызов обработки // и : Процедура ПриОкончанииРедактированияСтроки() Если Форма.ТекущаяКолонка() = "Цена" Тогда //... ИначеЕсли Форма.ТекущаяКолонка() = "Ячейка" Тогда Если ВнесеныЯчейки=0 Тогда ПриВВодеЯчейки(1); //вызов обработки (18) вот и ладушки :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |