![]() |
|
v7: Не срабатывает ОбработкаПодбора() | ☑ | ||
---|---|---|---|---|
0
kathleen
26.12.11
✎
09:38
|
В обработчике выбора значения реквизита ставлю флагстандартнойобработки=0, использую ОткрытьПодбор(), но почему-то значение выбранное подставляется в реквизит, а ОбработкаПодбора() не срабатывает. Что не так?
|
|||
1
Tatitutu
26.12.11
✎
09:39
|
форма подбора появляется ? код в студию
|
|||
2
kathleen
26.12.11
✎
09:40
|
Ага появляется, счас
|
|||
3
Ёпрст
гуру
26.12.11
✎
09:40
|
Лови в ОбработкаВыбораЗначения
|
|||
4
kathleen
26.12.11
✎
09:42
|
Процедура ПриНачалеВыбораЗначения(ИдентЭлементаДиалога, ФлагСтандартнойОбработки)
... ИначеЕсли ИдентЭлементаДиалога = "Договор" Тогда Если (ПустоеЗначение(ВидЗадолженности) = 1) и (ВидКорректировки = 0) Тогда Предупреждение("Необходимо выбрать вид задолженности.",60); Активизировать("ВидЗадолженности"); ФлагСтандартнойОбработки = 0; Возврат; ИначеЕсли (СокрЛП(ВидЗадолженности) = "Кредиторская") или (ВидКорректировки = 2) или (ВидКорректировки = 4) Тогда Если Кредитор.Выбран() = 0 Тогда Спр = СоздатьОбъект("Справочник.Контрагенты"); Если Спр.Выбрать("Выберите контрагента-кредитора!","ФормаСписка") = 1 Тогда Кредитор = Спр.ТекущийЭлемент(); Иначе ФлагСтандартнойОбработки = 0; Возврат; КонецЕсли; КонецЕсли; Договор.ИспользоватьВладельца(Кредитор); Контр=Кредитор; ИначеЕсли (СокрЛП(ВидЗадолженности) = "Дебиторская") или (ВидКорректировки = 1) или (ВидКорректировки = 3) Тогда Если Дебитор.Выбран() = 0 Тогда Спр = СоздатьОбъект("Справочник.Контрагенты"); Если Спр.Выбрать("Выберите контрагента-дебитора!","ФормаСписка") = 1 Тогда Дебитор = Спр.ТекущийЭлемент(); Иначе ФлагСтандартнойОбработки = 0; Возврат; КонецЕсли; КонецЕсли; Договор.ИспользоватьВладельца(Дебитор); Контр=Дебитор; КонецЕсли; Если (Счет.ПринадлежитГруппе(СчетПоКоду("60"))=1) ИЛИ (Счет.ПринадлежитГруппе(СчетПоКоду("62"))=1) Тогда ФлагСтандартнойОбработки = 0; КонтекстФормыПодбора = СоздатьОбъект("СписокЗначений"); КонтекстФормыПодбора.ДобавитьЗначение(Контекст, "Контекст"); КонтекстФормыПодбора.ДобавитьЗначение(Контр, "Контрагент"); КонтекстФормыПодбора.ДобавитьЗначение(Счет, "Счет"); ОткрытьПодбор("Справочник.Договоры", "СОстатками", КонтекстФормыПодбора,0); КонецЕсли; КонецЕсли; КонецПроцедуры // ПриНачалеВыбораЗначения() //****************************************************************************** Процедура ОбработкаПодбора(Дог, Конт) Договор=Дог; СуммаКред=Конт.Задолженность; КонецПроцедуры //****************************************************************************** |
|||
5
kathleen
26.12.11
✎
09:43
|
(3)Мне нужен контекст формы подбора, там остатки расчитываются.
|
|||
6
1Сергей
26.12.11
✎
09:44
|
(5) он у тебя есть в ПриНачалеВыбораЗначения
|
|||
7
Ёпрст
гуру
26.12.11
✎
09:45
|
(4) любое открытие формы (хоть ОткрытьФорму, хоть ОткрытьПодбор) в ПриНачалеВыбораЗначения будет открыто в режиме Выбора значения => обработка выбора значения будет всегда в ОбработкаВыбораЗначения
И.. это [:]|||||||[:] |
|||
8
kathleen
26.12.11
✎
09:50
|
(7)Все равно не понимаю как мне сделать:(
|
|||
9
Ёпрст
гуру
26.12.11
✎
09:51
|
(8) перенести код из обработки подбора в обработку выбора значения вестимо.
|
|||
10
Ёпрст
гуру
26.12.11
✎
09:52
|
или вызвать обработку подбора в обработка выбора значения
|
|||
11
kathleen
26.12.11
✎
10:25
|
(9)В обработку выбора значения не передадутся остатки
|
|||
12
ДенисЧ
26.12.11
✎
10:29
|
бредишь...
открывай нужную форму и... |
|||
13
kathleen
26.12.11
✎
10:38
|
Блин, я не понимаю, как к ним обратиться?
|
|||
14
1Сергей
26.12.11
✎
10:42
|
(13)
Процедура ПриНачалеВыбораЗначения(ИдентЭлементаДиалога, ФлагСтандартнойОбработки) ... ИначеЕсли ИдентЭлементаДиалога = "Договор" Тогда ... ИначеЕсли (СокрЛП(ВидЗадолженности) = "Дебиторская") или (ВидКорректировки = 1) .... Если (Счет.ПринадлежитГруппе(СчетПоКоду("60"))=1) ИЛИ (Счет.ПринадлежитГруппе(СчетПоКоду("62"))=1) Тогда ФлагСтандартнойОбработки = 0; КонтекстФормыПодбора = СоздатьОбъект("СписокЗначений"); КонтекстФормыПодбора.ДобавитьЗначение(Контекст, "Контекст"); КонтекстФормыПодбора.ДобавитьЗначение(Контр, "Контрагент"); КонтекстФормыПодбора.ДобавитьЗначение(Счет, "Счет"); ОткрытьПодбор("Справочник.Договоры", "СОстатками", КонтекстФормыПодбора,0); //** тут можешь с КонтекстФормыПодбора делать всё, что нужно |
|||
15
kathleen
26.12.11
✎
10:49
|
(14)
ОткрытьПодбор("Справочник.Договоры", "СОстатками", КонтекстФормыПодбора,0); СуммаКред=КонтекстФормыПодбора.Контекст.Задолженность; Так ругается ОткрытьПодбор("Справочник.Договоры", "СОстатками", КонтекстФормыПодбора,0); СуммаКред=КонтекстФормыПодбора.Задолженность; Так тожи |
|||
16
1Сергей
26.12.11
✎
10:52
|
(15) чего? тебе контекстом управлять или всё-таки вытаскивать оттуда значения?
|
|||
17
kathleen
26.12.11
✎
10:55
|
значение мне надо подставить в документ, остаток нужен
|
|||
18
1Сергей
26.12.11
✎
10:56
|
(17) объясни мне смысл этого шаманства. в подборе выбираются элементы справочника. На кой ляд тянуть остатки из формы подбора? Их можно посчитать и тут
|
|||
19
kathleen
26.12.11
✎
10:57
|
Сделала вот так
СуммаКред=КонтекстФормыПодбора.Форма.Задолженность; не ругается, но в отладчике показывает пусто и соответственно ниче не подставляет |
|||
20
kathleen
26.12.11
✎
10:58
|
(18)Ну думала, что проще будет, зачем два раза считать))
|
|||
21
kathleen
26.12.11
✎
10:58
|
придется считать?
|
|||
22
1Сергей
26.12.11
✎
11:00
|
(19) в форме списка делай Форма.ВыполнитьВыбор(<Знач>);
и запихивай всё что нужно в Знач |
|||
23
kathleen
26.12.11
✎
12:01
|
Короче посчитала второй раз, спасибочки)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |