|
v7: "НазначитьВид" все равно выдает список с видами справочников. | ☑ | ||
---|---|---|---|---|
0
Andreyyy
25.04.12
✎
14:47
|
Есть в табличной части реквизит "Погрузка" с типом "Справочник".
В модуле формы процедура (взял пример из бухии типовой в требовании накладной): Процедура ПриНачалеВыбораЗначения(ЭлементДиалога, Флаг) Если (ЭлементДиалога = "Погрузка") Тогда СписокВидовПогрузок = СоздатьОбъект("СписокЗначений"); СписокВидовПогрузок.ДобавитьЗначение("Склады", "Склад"); СписокВидовПогрузок.ДобавитьЗначение("Контрагенты", "Поставщик"); ВыбранныйВид = ""; ВыбраннаяПозиция = ""; Если СписокВидовПогрузок.ВыбратьЗначение(ВыбранныйВид,, ВыбраннаяПозиция,, 2) = 0 Тогда Флаг = 0; Возврат; Иначе НазначитьВид(Погрузка, ВыбранныйВид); КонецЕсли; КонецЕсли; КонецПроцедуры При начале редактирования ячейки все равно выходит список со видами справочников, только лишь позиционируется на выбранном. В Бухгалтерии сразу открывает выбор нужного справочника. Вроде все сделал одинаково, в чем ошибка ? |
|||
1
andrewks
25.04.12
✎
14:53
|
у тебя Флаг=0 не устанавливается, если выбрано значение
|
|||
2
Andreyyy
25.04.12
✎
14:54
|
(1) С флагом форма выбора не выходит совсем, тогда придется открывать форму подбора и писать обработку подбора.
|
|||
3
Andreyyy
25.04.12
✎
14:56
|
Повторюсь, сделал так же как в бухгалтерии типовой в документе "Требование накладная", там все работает именно так (в частности когда выбирается вид справочника "Материалы" все отрабатывает корректно без дополнительных усилий).
|
|||
4
andrewks
25.04.12
✎
15:00
|
мне (1) по слогам повторить?
|
|||
5
viktor_vv
25.04.12
✎
15:04
|
А че так сложно. Должно и так прокатить.
Процедура ПриРедактированииНовойСтроки() Погрузка.ВидыДляВыбора("Склады, Контрагенты"); КонецПроцедуры Процедура ПриНачалеРедактированияСтроки() Погрузка.ВидыДляВыбора("Склады, Контрагенты"); КонецПроцедуры |
|||
6
viktor_vv
25.04.12
✎
15:05
|
(5)+ И твоя не нужна. Для типа значения реквизита "Документ" работает.
|
|||
7
Andreyyy
25.04.12
✎
15:15
|
(4) да хоть стихами.
(5) Спасибо. |
|||
8
viktor_vv
25.04.12
✎
15:18
|
Еще может и сюда надо будет.
Процедура ПриВводеСтроки() Погрузка.ВидыДляВыбора("Склады, Контрагенты"); КонецПроцедуры Че-то оно уже совсем не просто получается :). |
|||
9
Andreyyy
25.04.12
✎
15:57
|
(4) Процедура из бухгалтерии, где все работает. Ткните пальцем, где "флаг = 0" когда выбирается вид справочника "Материалы".
Процедура ПриНачалеВыбораЗначения(ЭлементДиалога, Флаг) Если (ЭлементДиалога = "СчетЗатрат") и (Константа.ИспользоватьСписокКорректныхПроводок = Да) Тогда СписокКорректныхПроводок = СоздатьОбъект("СписокЗначений"); СписокКорректныхПроводок.Установить("Счет", СчетПоКоду("10")); глЗначениеОтбора = СписокКорректныхПроводок; ИначеЕсли (ЭлементДиалога = "Материал") Тогда СписокВидовМПЗ = СоздатьОбъект("СписокЗначений"); СписокВидовМПЗ.ДобавитьЗначение("Материалы", "Материалы"); СписокВидовМПЗ.ДобавитьЗначение("Номенклатура", "Продукция"); СписокВидовМПЗ.ДобавитьЗначение("Номенклатура", "Полуфабрикат"); ВыбранныйВид = ""; ВыбраннаяПозиция = ""; Если СписокВидовМПЗ.ВыбратьЗначение(ВыбранныйВид,, ВыбраннаяПозиция,, 2) = 0 Тогда УдалитьСтроку(); Флаг = 0; Возврат; Иначе НазначитьВид(Материал, ВыбранныйВид); КонецЕсли; Если Материал.Вид() = "Номенклатура" Тогда Флаг = 0; Если ВыбраннаяПозиция = 2 Тогда // продукция ОткрытьФорму("Справочник.Номенклатура.ГотоваяПродукция", Перечисление.ТипыНоменклатуры.Продукция); Иначе // полуфабрикат ОткрытьФорму("Справочник.Номенклатура.ГотоваяПродукция", Перечисление.ТипыНоменклатуры.Полуфабрикат); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
10
chief accountant
25.04.12
✎
15:58
|
(7) А ничего, что у тебя не полностью код из типовой. Конфа откуда знает какой справочник открывать, ась?
|
|||
11
chief accountant
25.04.12
✎
15:59
|
(9) забей на флаг
|
|||
12
andrewks
25.04.12
✎
15:59
|
(9) тыкаю пальцем:
Если Материал.Вид() = "Номенклатура" Тогда Флаг = 0; |
|||
13
Andreyyy
25.04.12
✎
16:02
|
(12) Внимательно смотрим, если выбран был справочник "Материалы", то где устанавливается флаг ?
|
|||
14
chief accountant
25.04.12
✎
16:03
|
Мде, маразм крепчал
|
|||
15
Andreyyy
25.04.12
✎
16:04
|
(10) Код изменен в (0), виды справочников описаны и устанавливаются: НазначитьВид(Погрузка, ВыбранныйВид);
|
|||
16
Andreyyy
25.04.12
✎
16:06
|
Если Материал.Вид() = "Номенклатура" Тогда
Флаг = 0; А если Материал.Вид() = "Материалы" Тогда ГДЕ ЕПТЬ ФЛАГ = 0 ? И все работает ! |
|||
17
chief accountant
25.04.12
✎
16:13
|
(10,11) Был не прав, погорячился
(16) У тебя вообще условие отрабатывается или как? |
|||
18
Andreyyy
25.04.12
✎
16:23
|
У меня в (0) нет условия, в типовой очевидно его замутили чтобы открывать подбор с фильтром по типу номенклатуры.
|
|||
19
Andreyyy
25.04.12
✎
16:23
|
(18) к (17)
|
|||
20
Andreyyy
25.04.12
✎
16:24
|
Как в (5) подсказали все работает как надо.
|
|||
21
andrewks
25.04.12
✎
16:25
|
значит, давай с начала.
ты хочешь не сам открывать форму выбора, а просто назначить тип, чтобы потом открылся штатный диалог выбора, теперь я правильно тебя понял? тогда в (0) написано верно. отладчик пробовал? |
|||
22
chief accountant
25.04.12
✎
16:27
|
(18) А это что по твоему?
Если (ЭлементДиалога = "Погрузка") Тогда |
|||
23
chief accountant
25.04.12
✎
16:29
|
(21) Ставлю на ЭлементДиалога <> "Погрузка"
|
|||
24
Andreyyy
25.04.12
✎
16:33
|
(22) Да, это условие отрабатывается и даже позиционируется в списке видов справочников на строке с установленным видом: НазначитьВид(Погрузка, ВыбранныйВид)
|
|||
25
chief accountant
25.04.12
✎
16:35
|
(24) Вот твой код в типовой, всё работает
ИначеЕсли (ЭлементДиалога = "Материал") Тогда СписокВидовМПЗ = СоздатьОбъект("СписокЗначений"); СписокВидовМПЗ.ДобавитьЗначение("МестаХранения", "Склад"); СписокВидовМПЗ.ДобавитьЗначение("Контрагенты", "Поставщик"); ВыбранныйВид = ""; ВыбраннаяПозиция = ""; Если СписокВидовМПЗ.ВыбратьЗначение(ВыбранныйВид,, ВыбраннаяПозиция,, 2) = 0 Тогда УдалитьСтроку(); Флаг = 0; Возврат; Иначе НазначитьВид(Материал, ВыбранныйВид); КонецЕсли; КонецЕсли; |
|||
26
andrewks
25.04.12
✎
16:36
|
(24) выкладывай мдэшник
|
|||
27
chief accountant
25.04.12
✎
16:37
|
(26) +1
|
|||
28
Andreyyy
25.04.12
✎
16:46
|
||||
29
andrewks
25.04.12
✎
16:56
|
(28) архив битый
|
|||
30
chief accountant
25.04.12
✎
16:59
|
(29) У меня норм. Ковыряю
|
|||
31
andrewks
25.04.12
✎
17:00
|
(30) хммм... ща перекачаю
|
|||
32
chief accountant
25.04.12
✎
17:10
|
Приоткрытии()
Форма.Погрузка.НеИзменятьВид(1); всё |
|||
33
andrewks
25.04.12
✎
17:13
|
(32) ну вот, только у меня база раскрылась, а интриги уже нет :(
|
|||
34
chief accountant
25.04.12
✎
17:15
|
(33) :)
|
|||
36
Andreyyy
25.04.12
✎
17:35
|
(32) Проклятая невнимательность, куда отправлять пиво-чипсы ?)
|
|||
37
chief accountant
25.04.12
✎
17:55
|
(36) Ну мы с andrewks тоже изначально не туда рыли, так что в расчете :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |