Имя: Пароль:
1C
1С v8
Форма не видит изменений
0 bahtik
 
20.12.12
23:22
Такая проблема: в управляемой форме документа есть кнопочка, по ней происходит некоторое изменение данных в БД на сервере, потом нужно обновить отображение данных формы. Выглядит примерно так:



&НаКлиенте
Процедура Кнопочка()
   СерверИзменитьДанныеНаСервере(Объект.Ссылка);
   ОбновитьОтображениеДанных();
   Если Объект.Подтверждена = Истина Тогда
       ...
   КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Процедура СерверИзменитьДанныеНаСервере(Ссылка)
  Док = Ссылка.ПолучитьОбъект();
  Док.Подтверждена = Истина;
  Док.Записать();
КонецПроцедуры



Проблема в том, что после выполнения серверной процедуры клиентская процедура не видит, что поменялись данные в БД (т.е. Объект.Подтверждена = Ложь). Что надо сделать, чтобы форма обновила свои данные?
1 vmv
 
20.12.12
23:25
обновить на клиенте
2 vmv
 
20.12.12
23:25
перечитать в этом случае
3 bahtik
 
20.12.12
23:28
Как перечитать программно?
4 bahtik
 
20.12.12
23:29
Я думал, для этого подходит ОбновитьОтображениеДанных(). Но получается, что нет.
5 bahtik
 
20.12.12
23:32
Еще пробовал ОтобразитьИзменениеДанных(...). Тоже не сработало.
6 vmv
 
20.12.12
23:35
почитай СП по перечитать не нервируй меня
7 zak555
 
20.12.12
23:35
зачем по кнокпе записывать что-то в объект ?
8 bahtik
 
20.12.12
23:36
(6) А че ты такой нервный тут делаешь?

(1)(2)
- Как открывается коробочка?
- Нужно открыть коробочку.

Отличный ответ на вопрос.
9 bahtik
 
20.12.12
23:37
(7) Надо.
10 vmv
 
20.12.12
23:37
(7) стандартная кнопка "Записать" есть в любом документе, - почему нет, кто запрещает ее переопределить
11 bahtik
 
20.12.12
23:37
(7) Вопрос не в этом.
12 zak555
 
20.12.12
23:37
есть ещё записатьВФорме
13 bahtik
 
20.12.12
23:41
Надо сделать изменение на сервере. Примите это как данное. Вопрос в том, как потом эти изменения сообщить форме в этой же процедуре?
14 vmv
 
20.12.12
23:41
&НаСервере
Процедура СерверИзменитьДанныеНаСервере(Ссылка)
  Док = Ссылка.ПолучитьОбъект();
  Док.Подтверждена = Истина;
  Док.Записать();
  ЗначениеВРеквизитФормы(...);
КонецПроцедуры

типа так, вне контекста не взлетит
15 zak555
 
20.12.12
23:41
дубы
16 vmv
 
20.12.12
23:43
(15) не то слово, ты сосна шоли?
17 zak555
 
20.12.12
23:43
(16) носорог
18 vmv
 
20.12.12
23:45
(17) я так и думал, записать в форме пашет только в толстом носороге, а нужен тоненький гепард, мдя одни животные
19 bahtik
 
20.12.12
23:45
(14) Не подойдет. Я привел упрощенный пример. В реале, там в серверной процедуре вызывается процедура менеджера объекта.
20 bahtik
 
20.12.12
23:46
Ну должен же быть в 1С механизма, чтобы сообщить управляемой форме о том, что данные в БД поменялись и надо как-то обновиться!
21 bahtik
 
20.12.12
23:46
... механизм
22 zak555
 
20.12.12
23:46
есть

Расширение управляемой формы для объектов.Записать (Managed form extension for objects.Write)
Расширение управляемой формы для объектов (Managed form extension for objects)
Записать (Write)
Синтаксис:

Записать(<ПараметрыЗаписи>)
Параметры:

<ПараметрыЗаписи> (необязательный)

Тип: Структура.
Структура параметров записи, которые могут быть обработаны в обработчиках событий записи. Состав параметров произвольный.
Возвращаемое значение:

Тип: Булево.
Истина - успешно записан; Ложь - в противном случае.
Описание:

Записывает объект.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
23 vmv
 
20.12.12
23:47
(19) не взлиетит без контекста формы, смирись и сделай правильно, но рев носорога не ведись)
24 vmv
 
20.12.12
23:48
(22) для это нужен контекст формы, а тс хочет и рыбку сьесть и на ... короче ты понял
25 bahtik
 
20.12.12
23:49
(22) Это не запись на сервере. Если коротко - у пользователя, который будет жать эту кнопочку вообще нет прав на этот документ.
26 bahtik
 
20.12.12
23:51
+(25) Поэтому этот подход не подходит. Неподходящий подход.
27 vmv
 
20.12.12
23:52
я чую тут запах свежих грибов
28 bahtik
 
20.12.12
23:54
Короче, можно получить ответ на конкретный вопрос: есть ли в 1С механизм (процедура), который обновляет (перечитывает) данные управляемой формы из БД? Если есть, то как эта процедура обзывается? Если нет, то обходные пути я как-нибудь постараюсь придумать.
29 vmv
 
20.12.12
23:56
(28) все варианты уже перечислены, но у тебя в голове еще дурман, поспи, соль и картошку приготовь на завтра
30 vmv
 
21.12.12
00:00
с учетом метода работы с правами через Ж

взлетит только так

&НаСервере
Процедура СерверИзменитьДанныеНаСервере(Ссылка)
  УстановитьПривилегированныйРежим(Истина);
  Док = Ссылка.ПолучитьОбъект();
  Док.Подтверждена = Истина;
  Док.Записать();
  ЗначениеВРеквизитФормы(Док, "Объект");
КонецПроцедуры


усе, не кури на ночь
31 bahtik
 
21.12.12
00:01
(29) Для начала, научись понимать вопросы, а потом уже перечисляй варианты ответов. Еще раз прочитай мой вопрос (0), (28) и попробуй найти среди своих вариантов хоть один, который на него отвечает. Зачем человеку на вопрос "Сколько градусов на улице" получать ответы "Есть красный зонт", "Синий плащ как раз твоего размера" и т.п.???
32 vmv
 
21.12.12
00:02
(31) прочисти мозг и не вякай тут не поделу - учи мат часть
33 bahtik
 
21.12.12
00:03
По-моему, ты вопросы через Ж читаешь. ))
34 vmv
 
21.12.12
00:06
(33) я их вообще нечитаю, т.к. 99% из них глупы в отличие от моих ответов, цени это "щенок, тысяча чертей" уже конец света, а я кофе не заварил!
35 bahtik
 
21.12.12
00:15
(34) Вот, щенок, тебе ответ на МОЙ вопрос (сам дошел):

ЭтотОбъект.Прочитать();
36 bahtik
 
21.12.12
00:16
И все! А у тебя "взлетит, не взлетит..."
37 vmv
 
21.12.12
00:17
в это ткули носом (2), но с абстрактынм мышлением у тебя не очень и допирал час

все же это решение через Ж, т.к. работает только в толстом, правда ты еще слишком наивен, чтобы обращать внимание на этот факт
38 bahtik
 
21.12.12
00:20
А теперь прочти (2) еще раз, только глазами, а не Ж, и найди там, где написано, что эта процедура называется Прочитать()? И вообще, купи себе мозг. ))
39 bahtik
 
21.12.12
00:21
(37) Наивен? ))))) Вот тебе текст СП:

Расширение управляемой формы для документа (Managed form extension for documents)
Прочитать (Read)
Синтаксис:

Прочитать()
Описание:

Обновляет объект управляемой формы.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
40 vmv
 
21.12.12
00:21
(38) мдя, теперь я верю, что мы вымрем, вернее все умрут а я останусь.

Ты смотрел комедию "Тупой и еще тупее" какой эпизод более приятен?
41 bahtik
 
21.12.12
00:22
Кажется, там написано ТонкийКлиент? ;)
42 vmv
 
21.12.12
00:24
(39) обалдеть ты научился читать и копиипастить СП

про метод Прочитать() надо знать еще с 7.7, что в режиме синонима есть перечитать, заставить тебя найти и прочесть самому моя святая цель, но я все еще бескокоюсь поможет ли)
43 bahtik
 
21.12.12
00:24
Для тебя "Умного" еще раз поясню, в последний раз: я задал тут вопрос как раз о том, как называется процедура, которая позволяет ПЕРЕЧИТАТЬ данные из БД. А ты мне в (2) ответил - "надо перечитать". Так ты тупой или еще тупее?
44 bahtik
 
21.12.12
00:25
Набери "Перечитать" в СП - тебе это ничего не даст.
45 bahtik
 
21.12.12
00:26
+(44) Разве что, про библиотеку картинок кой-чего нового узнаешь.
46 vmv
 
21.12.12
00:27
(43)
я острый как бритва ковбоя
быстрый как его мустан
суров как его блестящий кольт
безразличен как дым его сигары

а ты кто такой? довай до сведания)
47 bahtik
 
21.12.12
00:28
Иди, учись, "знаток" )))
48 bahtik
 
21.12.12
00:30
Чтобы хотя бы процедуры, которые должны работать в тонком клиенте, у тебя не только в толстом работали, лошадь ковбоя )))
49 vmv
 
21.12.12
00:35
ты потерл 2 часа на флуд с чудовещем по пустяковому вопросу, ответ на который знали даже дети и самомстоятельный посик ответа занимает 10 секунд

теперь спроси себя еще раз - кто тут идиот?

я не буду отвечать из скромности
2 + 2 = 3.9999999999999999999999999999999...