|
Очистить реквизит формы | ☑ | ||
---|---|---|---|---|
0
rowvg
naïve
16.03.20
✎
09:50
|
У формы есть реквизит, с типом СправочникСсылка. Подскажите, пжл, как его программно очистить? Формы управляемые.
|
|||
1
Ц_У
16.03.20
✎
09:51
|
очистить в где?
|
|||
2
rowvg
naïve
16.03.20
✎
09:57
|
На форме есть элемент управления, связанный с этим реквизитом. Когда пользователь выполнит определенные действия нужно в этом элементе управления его очистить.
|
|||
3
Михаил Михайлович
16.03.20
✎
09:58
|
(2) в чем вопрос?
|
|||
4
rowvg
naïve
16.03.20
✎
10:00
|
как это сделать? На клиенте справочники недоступны, есл реквизиту присвоить пустое значение на сервере, то на клиента это никак не влияет, при возращении на клиента реквизит остается заполненным
|
|||
5
Ц_У
16.03.20
✎
10:02
|
(4) ты определись или реквизит формы или поле объекта
если реквизит формы, то на клиенте, если объекта то на сервере от этого и пляши |
|||
6
rowvg
naïve
16.03.20
✎
10:03
|
4+ То есть на клиенте
ЭтотОбъект.Элементы.Собственник = Справочники.Контрагенты.ПустаяСсылка(); выполнить нельзя на сервере такое присваивание срабатывает, но при возращении в клиентскую процедуру ЭтотОбъект.Элементы.Собственник снова заполнен. |
|||
7
rowvg
naïve
16.03.20
✎
10:04
|
5+ я однозначно в теме написал - реквизит формы
|
|||
8
Михаил Михайлович
16.03.20
✎
10:05
|
(6) врешь, наверное или не правильно написал
|
|||
9
sqr4
16.03.20
✎
10:05
|
.Собственник = Справочники.Контрагенты.ПустаяСсылка();
|
|||
10
sqr4
16.03.20
✎
10:06
|
без точки
|
|||
11
sqr4
16.03.20
✎
10:07
|
(6) Срочно книжки читать по управляемому интерфейсу и не трепать форум
|
|||
12
rowvg
naïve
16.03.20
✎
10:14
|
(11) Спасибо, получилось
Почему вот так нельзя ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); ? |
|||
13
hhhh
16.03.20
✎
10:19
|
(12) так можно
|
|||
14
Ц_У
16.03.20
✎
10:19
|
(12)
&К Процедура Сменить() СменитьНаСервере() Конецпроцедуры &С СменитьНаСервере() ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка() Конецпроцедуры |
|||
15
rowvg
naïve
16.03.20
✎
10:23
|
(14)
&НаСервере Процедура ДобавитьСобственникаНаСервере() ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); Собственник = Справочники.Контрагенты.ПустаяСсылка(); КонецПроцедуры Верхняя строчка не срабатывает... |
|||
16
Александр Б
16.03.20
✎
10:26
|
Можешь на клиенте сделать
Объект.Собственник = Неопределено |
|||
17
Ц_У
16.03.20
✎
10:27
|
||||
18
Александр Б
16.03.20
✎
10:29
|
(14) Реквизит формы можно очистить и без вызова сервера.
|
|||
19
rowvg
naïve
16.03.20
✎
10:31
|
15+ Вернее не срабатывает вот такой вызов
&НаКлиенте Процедура ДобавитьСобственника(Команда) ДобавитьСобственникаНаСервере(ЭтотОбъект.Собственник); КонецПроцедуры &НаСервере Процедура ДобавитьСобственникаНаСервере(Собственник) ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); КонецПроцедуры |
|||
20
rowvg
naïve
16.03.20
✎
10:32
|
(16) Александр Б, у меня реквизит формы, а не объекта
|
|||
21
rowvg
naïve
16.03.20
✎
10:33
|
19+ А вот так все прекрасненько срабатывает!
15+ Вернее не срабатывает вот такой вызов &НаКлиенте Процедура ДобавитьСобственника(Команда) ДобавитьСобственникаНаСервере(); КонецПроцедуры &НаСервере Процедура ДобавитьСобственникаНаСервере() ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); КонецПроцедуры Это что за фокусы? |
|||
22
Александр Б
16.03.20
✎
10:33
|
(20) Тогда просто на клиенте делаешь Собственник = ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка");
|
|||
23
Александр Б
16.03.20
✎
10:34
|
(21) Реквизит формы находится в контексте формы. Тебе не нужно обращаться к форме через ЭтотОБъект. Можно сразу обращаться к реквизиту.
|
|||
24
rowvg
naïve
16.03.20
✎
10:35
|
22 Спасибо, не знал
|
|||
25
rowvg
naïve
16.03.20
✎
10:36
|
23 Это я для читабельности. Меня интересует почему если я реквизит формы передал аргументом на сервер, то ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); не срабатывает?
|
|||
26
ptiz
16.03.20
✎
10:37
|
Вы тут прикалываетесь, что-ли?
Реквизит1 = Неопределено; и всё |
|||
27
Александр Б
16.03.20
✎
10:38
|
(25) Не думай об этом. Два глупых и бесполезных действия одновременно
|
|||
28
Ц_У
16.03.20
✎
10:39
|
(26) не ломай кайф
|
|||
29
rowvg
naïve
16.03.20
✎
10:41
|
(27) Вопрос уже не об очистке реквизита, что меняется от вызова с параметром и без него?
|
|||
30
Жан Пердежон
16.03.20
✎
10:41
|
(25) почитай что-нибудь про формальные и фактические параметры, как они работают при клиент-серверных вызовах, заодно и этот пример проверишь:
&НаСервере Процедура ДобавитьСобственникаНаСервере(ЗНАЧ Собственник) ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); КонецПроцедуры |
|||
31
Александр Б
16.03.20
✎
10:43
|
(25) Вообще тебе на заметку. Реквизиты формы существуют одновременно и на клиенте и на сервере. Если ты вызываешь процедуры &НаСервере или &НаКлиенте.
Реквизит формы с клиента на сервер имеет смысл передавать только тогда, когда ты делаешь безконтекстный вызов &НаСервереБезКонтекста. Тогда в этом методе форма и её реквизиты не будут видны, кроме того, что ты передашь в параметрах. |
|||
32
rowvg
naïve
16.03.20
✎
11:02
|
(30) Все, спасибо, разобрался. Оказывается 1С для того чтобы уменьшить трафик не передает параметр, который передавался по значению, обратно на клиента. Хотя как можно передавать по значению ссылочный объект?
|
|||
33
Жан Пердежон
18.03.20
✎
13:41
|
(32) нет, не для этого. И ссылка - это ещё не весь объект.
|
|||
34
DrZombi
гуру
18.03.20
✎
13:49
|
(0) Выбрать их "программно", пройтись по массиву реквизитов и понять, что данный реквизит содержит тип "СправочникСсылка". И очистить.
|
|||
35
DrZombi
гуру
18.03.20
✎
13:49
|
(30) Можно просто:
Объект.Собственник = Неопределено; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |