|
Вопрос по управляемым формам | ☑ | ||
---|---|---|---|---|
0
Мисти
05.01.15
✎
19:12
|
В форме элемента справочника был такой текст -
ФормаРегистра = РегистрыСведений.Кос_ИсторияКонтрагентов.ПолучитьФорму("ФормаСписка", ЭтаФорма); ФормаРегистра.Отбор.Контрагент.Значение = Объект.Ссылка; ФормаРегистра.Отбор.Контрагент.Использование = Истина; ФормаРегистра.Отбор.Контрагент.ВидСравнения = ВидСравнения.Равно; ФормаРегистра.Открыть(); Куда его теперь вписать? Не НаКлиенте и не НаСервере... |
|||
1
vicof
05.01.15
✎
19:14
|
Впиши НаКонсоли
|
|||
2
vicof
05.01.15
✎
19:16
|
В условном оформлении.
Когда ты уже вопросы научишься формулировать и книжки читать? |
|||
3
Мисти
05.01.15
✎
19:16
|
ФормаРегистра = ПолучитьФорму("РегистрыСведений.Кос_ИсторияКонтрагентовФорма.ФормаСписка");
А так? |
|||
4
Euguln
05.01.15
✎
19:17
|
(3) кури СП и типовые конфы.
|
|||
5
vicof
05.01.15
✎
19:20
|
(3) Пока ты не поймешь, зачем этот так называемый "текст" нужен, не поймешь, куда и вставлять.
|
|||
6
Мисти
05.01.15
✎
19:22
|
Так я же его там сама и писала! в 2.0
Зачем - понятно. {Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(1773)}: Ошибка при вызове метода контекста (ПолучитьФорму) ФормаРегистра = ПолучитьФорму("РегистрыСведений.Кос_ИсторияКонтрагентов.Форма.ФормаСписка"); по причине: Неизвестное имя формы. Имя: "РегистрыСведений.Кос_ИсторияКонтрагентов.Форма.ФормаСписка" Вроде, сделала всё, как было в типовой (подсмотрела кусочек) |
|||
7
Rie
05.01.15
✎
19:32
|
(6) Тогда уж "РегистрСведений...", а не "РегистрыСведений...".
|
|||
8
Мисти
05.01.15
✎
19:38
|
(7) Ага, так скушало, спасибо, так и знала - где-то там собака порылась.
|
|||
9
Мисти
05.01.15
✎
19:45
|
Теперь еще отбор переделывать надо.
Загнать в параметры, а в регистре при открытии заполнить? |
|||
10
iceman2112
05.01.15
✎
19:45
|
(0) попробуй директиву &ИменемБорисаНуралиеваВыполнисьГдеБыНиБыл
|
|||
11
Rie
05.01.15
✎
19:54
|
Так а почему бы сразу не ОткрытьФорму(...)? Зачем её надо предварительно получать?
|
|||
12
Мисти
05.01.15
✎
19:55
|
Где-то украла такой вариант. А не всё равно?
|
|||
13
Ник080808
05.01.15
✎
20:09
|
(12) не все равно. В упр формах лучше через ОткрытьФорму() и отбор в параметры передавать
|
|||
14
Мисти
05.01.15
✎
20:12
|
(13) А чем лучше?
Ну хорошо, сделаю так! |
|||
15
Ник080808
05.01.15
✎
20:17
|
(14) чем получить форму)))
|
|||
16
Ник080808
05.01.15
✎
20:19
|
(14) получилось?
|
|||
17
Мисти
05.01.15
✎
20:20
|
Не-а, застряла на установке отбора в списке -
Список.Параметры.УстановитьЗначениеПараметра(" В отладчике там видно только "Элементы" и всё, как мне мой отбор-то вставить? |
|||
18
Ник080808
05.01.15
✎
20:20
|
(17) в параметры
|
|||
19
Ник080808
05.01.15
✎
20:22
|
(17) ОткрытьФорму(<ИмяФормы>, Новый Структура("Отбор",Новый Структура("Контрагент",Объект,Ссылка)), ЭтаФорма,КлючУникальности)
|
|||
20
Ник080808
05.01.15
✎
20:22
|
(19) писал по памяти, так что звыняйте
|
|||
21
Мисти
05.01.15
✎
20:24
|
Так туда я их запихнула!
Теперь открывается регистр - &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Отбор.Количество()>0 Тогда Отбор = Параметры.Отбор; Список.Параметры.УстановитьЗначениеПараметра("Значение", Отбор.Значение); Список.Параметры.УстановитьЗначениеПараметра("Использование", Отбор.Использование); Список.Параметры.УстановитьЗначениеПараметра("ВидСравнения", Отбор.ВидСравнения); КонецЕсли; КонецПроцедуры В отборе всё есть, а как теперь эти данные вставить в отбор в списке? |
|||
22
Мисти
05.01.15
✎
20:25
|
А без этого открывается полный регистр.
|
|||
23
Ник080808
05.01.15
✎
20:26
|
(22) я же написал выше как надо без всяких запихиваний
|
|||
24
Мисти
05.01.15
✎
20:28
|
У меня в той строке только этого "ЭтаФорма,КлючУникальности"
не хватает. Это принципиально? |
|||
25
Мисти
05.01.15
✎
20:28
|
Т.е. приСозданииНаСервере - вообще в регистре такой процедуры не нужно?
|
|||
26
Ник080808
05.01.15
✎
20:29
|
(25) да
|
|||
27
Мисти
05.01.15
✎
20:38
|
Сработало!!
Спасибочки. |
|||
28
Мисти
05.01.15
✎
22:54
|
Продолжаю перевод! (люди, там еще документы и отчеты!!)
&НаКлиенте Процедура ВалютаПриИзменении(Элемент) ВалютаПриИзмененииНаСервере(); КонецПроцедуры &НаСервере Процедура ВалютаПриИзмененииНаСервере() Набор = РегистрыСведений.АР_НастройкаКурсовВалютПоУмолчанию.СоздатьНаборЗаписей(); Набор.Отбор.Валюта.Установить(Объект.Валюта); Набор.Прочитать(); Для Каждого Стр Из Набор Цикл Если ЗначениеЗаполнено(Объект.НижняяГраница) ИЛИ ЗначениеЗаполнено(Объект.ВерхняяГраница) Тогда ТекстСообщения = "Для данной валюты заданы настройки верхней и нижней границы. Установить из настроек?"; Если Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; КонецЕсли; Объект.НижняяГраница = Стр.НижняяГраница; Объект.ВерхняяГраница = Стр.ВерхняяГраница; Объект.РазницаСКурсом = Стр.РазницаСКурсомВалюты; КонецЦикла; КонецПроцедуры Сама знаю, что так работать не будет, но как вопрос-то задать? Разве можно из наСервере обратно наклиенте вызвать? |
|||
29
XLife
05.01.15
✎
22:56
|
(28) з/п поделишься?
|
|||
30
Мисти
05.01.15
✎
23:00
|
(29) Немножко! За особенно ценные советы.
|
|||
31
Мисти
05.01.15
✎
23:24
|
Пока приходит в голову только циклическое обращение к процедуре "НаСервере", но это как-то глупо, может, есть другая возможность задать вопрос?
|
|||
32
Ник080808
06.01.15
✎
11:26
|
(31) зачем Вам цикл, если вы проверяете заполненность реквизитов, причем одних и тех же, но в цикле?
|
|||
33
Ник080808
06.01.15
✎
11:27
|
(31) опять же. Вы заполняете все равно последним значением.
|
|||
34
Ник080808
06.01.15
✎
11:28
|
&НаКлиенте
Процедура ВалютаПриИзменении(Элемент) Если ЗначениеЗаполнено(Объект.НижняяГраница) ИЛИ ЗначениеЗаполнено(Объект.ВерхняяГраница) Тогда ТекстСообщения = "Для данной валюты заданы настройки верхней и нижней границы. Установить из настроек?"; Если Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда ВалютаПриИзмененииНаСервере(); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
35
Ник080808
06.01.15
✎
11:29
|
&НаСервере
Процедура ВалютаПриИзмененииНаСервере() Набор = РегистрыСведений.АР_НастройкаКурсовВалютПоУмолчанию.СоздатьНаборЗаписей(); Набор.Отбор.Валюта.Установить(Объект.Валюта); Набор.Прочитать(); Объект.НижняяГраница = Набор[0].НижняяГраница; Объект.ВерхняяГраница = Набор[0].ВерхняяГраница; Объект.РазницаСКурсом = Набор[0].РазницаСКурсомВалюты; КонецПроцедуры |
|||
36
Defender aka LINN
06.01.15
✎
12:06
|
(35) Нафига контекстный вызов?
|
|||
37
Ник080808
06.01.15
✎
12:16
|
(36) по сравнению с остальным, это такая детская шалость)
|
|||
38
Мисти
06.01.15
✎
14:48
|
(32) Я посмотрела хорошенько - (не я делала) - это и в старой версии не работает, никому не нужно, я просто закомментировала этот кусок.
Ник08080! Спасибо Вам большое, я прошлый кусок использовала уже в 3 местах разных - "работает как часы" Этот тоже еще где-нибудь пригодится. |
|||
39
Ник второй
06.01.15
✎
14:51
|
новый год, тупни все теже ((((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |