Вход | Регистрация
 

Очистить реквизит формы

Очистить реквизит формы
Я
   rowvg
 
16.03.20 - 09:50
У формы есть реквизит, с типом СправочникСсылка. Подскажите, пжл, как его программно очистить? Формы управляемые.
 
 
   Ц_У
 
1 - 16.03.20 - 09:51
очистить в где?
   rowvg
 
2 - 16.03.20 - 09:57
На форме есть элемент управления, связанный с этим реквизитом. Когда пользователь выполнит определенные действия нужно в этом элементе управления его очистить.
   Михаил Михайлович
 
3 - 16.03.20 - 09:58
(2) в чем вопрос?
   rowvg
 
4 - 16.03.20 - 10:00
как это сделать? На клиенте справочники недоступны, есл реквизиту присвоить пустое значение на сервере, то на клиента это никак не влияет, при возращении на клиента реквизит остается заполненным
   Ц_У
 
5 - 16.03.20 - 10:02
(4) ты определись или реквизит формы или поле объекта
если реквизит формы, то на клиенте, если объекта то на сервере
от этого и пляши
   rowvg
 
6 - 16.03.20 - 10:03
4+ То есть на клиенте
ЭтотОбъект.Элементы.Собственник = Справочники.Контрагенты.ПустаяСсылка(); выполнить нельзя

на сервере такое присваивание срабатывает, но при возращении в клиентскую процедуру ЭтотОбъект.Элементы.Собственник снова заполнен.
   rowvg
 
7 - 16.03.20 - 10:04
5+ я однозначно в теме написал - реквизит формы
   Михаил Михайлович
 
8 - 16.03.20 - 10:05
(6) врешь, наверное или не правильно написал
   sqr4
 
9 - 16.03.20 - 10:05
.Собственник = Справочники.Контрагенты.ПустаяСсылка();
   sqr4
 
10 - 16.03.20 - 10:06
без точки
   sqr4
 
11 - 16.03.20 - 10:07
(6) Срочно книжки читать по управляемому интерфейсу и не трепать форум
   rowvg
 
12 - 16.03.20 - 10:14
(11) Спасибо, получилось

Почему вот так нельзя ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();  ?
   hhhh
 
13 - 16.03.20 - 10:19
(12) так можно
   Ц_У
 
14 - 16.03.20 - 10:19
(12)

Процедура Сменить()
    СменитьНаСервере()
Конецпроцедуры

СменитьНаСервере()
   ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка()
Конецпроцедуры
   rowvg
 
15 - 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) Реквизит формы можно очистить и без вызова сервера.
   rowvg
 
19 - 16.03.20 - 10:31
15+  Вернее не срабатывает вот такой вызов

&НаКлиенте
Процедура ДобавитьСобственника(Команда) 
    ДобавитьСобственникаНаСервере(ЭтотОбъект.Собственник);
КонецПроцедуры



&НаСервере
Процедура ДобавитьСобственникаНаСервере(Собственник)
    ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();
КонецПроцедуры
   rowvg
 
20 - 16.03.20 - 10:32
(16)  Александр Б, у меня реквизит формы, а не объекта
   rowvg
 
21 - 16.03.20 - 10:33
19+ А вот так все прекрасненько срабатывает!
15+  Вернее не срабатывает вот такой вызов

&НаКлиенте
Процедура ДобавитьСобственника(Команда) 
    ДобавитьСобственникаНаСервере();
КонецПроцедуры



&НаСервере
Процедура ДобавитьСобственникаНаСервере()
    ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();
КонецПроцедуры


Это что за фокусы?
   Александр Б
 
22 - 16.03.20 - 10:33
(20) Тогда просто на клиенте делаешь Собственник = ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка");
   Александр Б
 
23 - 16.03.20 - 10:34
(21) Реквизит формы находится в контексте формы. Тебе не нужно обращаться к форме через ЭтотОБъект. Можно сразу обращаться к реквизиту.
   rowvg
 
24 - 16.03.20 - 10:35
22 Спасибо, не знал
   rowvg
 
25 - 16.03.20 - 10:36
23 Это я для читабельности. Меня интересует почему если я реквизит формы передал аргументом на сервер, то ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); не срабатывает?
   ptiz
 
26 - 16.03.20 - 10:37
Вы тут прикалываетесь, что-ли?
Реквизит1 = Неопределено;

и всё
   Александр Б
 
27 - 16.03.20 - 10:38
(25) Не думай об этом. Два глупых и бесполезных действия одновременно
   Ц_У
 
28 - 16.03.20 - 10:39
(26) не ломай кайф
   rowvg
 
29 - 16.03.20 - 10:41
(27) Вопрос уже не об очистке реквизита, что меняется от вызова с параметром и без него?
   Жан Пердежон
 
30 - 16.03.20 - 10:41
(25) почитай что-нибудь про формальные и фактические параметры, как они работают при клиент-серверных вызовах, заодно и этот пример проверишь:

&НаСервере
Процедура ДобавитьСобственникаНаСервере(ЗНАЧ Собственник)
    ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();
КонецПроцедуры
 
 Рекламное место пустует
   Александр Б
 
31 - 16.03.20 - 10:43
(25) Вообще тебе на заметку. Реквизиты формы существуют одновременно и на клиенте и на сервере. Если ты вызываешь процедуры &НаСервере или &НаКлиенте.
Реквизит формы с клиента на сервер имеет смысл передавать только тогда, когда ты делаешь безконтекстный вызов &НаСервереБезКонтекста. Тогда в этом методе форма и её реквизиты не будут видны, кроме того, что ты передашь в параметрах.
   rowvg
 
32 - 16.03.20 - 11:02
(30) Все, спасибо, разобрался. Оказывается 1С для того чтобы уменьшить трафик не передает параметр, который передавался по значению, обратно на клиента. Хотя как можно передавать по значению ссылочный объект?
   Жан Пердежон
 
33 - 18.03.20 - 13:41
(32) нет, не для этого. И ссылка - это ещё не весь объект.
   DrZombi
 
34 - 18.03.20 - 13:49
(0) Выбрать их "программно", пройтись по массиву реквизитов и понять, что данный реквизит содержит тип "СправочникСсылка". И очистить.
   DrZombi
 
35 - 18.03.20 - 13:49
(30) Можно просто:

Объект.Собственник = Неопределено;


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.