Имя: Пароль:
1C
1С v8
1с 8 управляемое приложение. Обновить форму
,
0 jenny_tea
 
21.12.11
13:12
Подскажите пожалуйста, как в коде написать аналог кнопки обновить форму. Судя по всему это не просто Прочитать() или ОтобразитьИзменениеДанных()

Обновить() не работает в управляемых формах
1 NcSteel
 
21.12.11
13:13
ОбновитьИнтерфейс();
ОбновитьОтображениеДанных();
2 NcSteel
 
21.12.11
13:14
И в общем для чего ?
3 jenny_tea
 
21.12.11
13:18
сложно полностью описать проблему. в кратце делаю запись элемента. а когда пытаюсь записать во второй раз пишет что было произведено изменение данных. кнопка Обновить форму спасает вот и хочу ее заменить в коде
4 NcSteel
 
21.12.11
13:45
тогда ОбновитьОтображениеДанных();
5 jenny_tea
 
21.12.11
13:47
не спасло. но все же спасибо
6 NcSteel
 
21.12.11
13:48
(5) Значит что то не так делаешь .

ЗначениеВДанныеФормы()

Суть в том что ты изменил версию объекта в БД , а форма об этом не знает .
7 jenny_tea
 
21.12.11
13:58
существует такая процедура ЗаписатьДокумент(). может

ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Записать();
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
8 jenny_tea
 
21.12.11
13:58
может из-за этого че не так?
9 NcSteel
 
21.12.11
13:58
да именно, из-за того что не так )))0

смотри (6)
10 Mort
 
21.12.11
14:11
Расширение управляемой формы для справочника.Прочитать (Managed form extension for catalogs.Read)
Расширение управляемой формы для справочника (Managed form extension for catalogs)
Прочитать (Read)
Синтаксис:

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

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

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

Тонкий клиент, веб-клиент, сервер, толстый клиент.
11 Mort
 
21.12.11
14:13
+(10) Можно, конечно и (7), но на форме могут быть косвенные реквизиты вычисляемые из реквизитов объекта в процедуре ПриЧтенииНАСервере (хотя некоторые дятлы делают это в ПриСозданииНаСервере)
12 NcSteel
 
21.12.11
14:18
(11) Не надо путать мальчика.
13 Mort
 
21.12.11
14:19
(12) Как раз не надо вводить в заблуждение советами (6)(7)(9)
14 Asmody
 
21.12.11
14:21
(12) вообще-то, ТС — девочка
15 NcSteel
 
21.12.11
14:30
(13) Нечего сказать )

ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Записать();
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");

код надо заменить , а всякие Прочитать, обновитьИнтерфейс - в данном контексте признак быдлокодинга.
16 NcSteel
 
21.12.11
14:31
(14) Точно !

извиняюсь !
17 Mort
 
21.12.11
14:31
(15) А сейчас будет вопрос на засыпку.
18 NcSteel
 
21.12.11
14:32
Давай
19 Mort
 
21.12.11
14:35
(18) В таблицу формы, отображающую ТЧ добавлена служебная колонка, которая заполняется по строкам при чтении на сервере. При записи документа извне были добавлены строки. (15) строки эти прочитает, да. А как же значение служебной колонки кто его заполнит и когда? Добавлять вызов заполнения после ЗначениеВРеквизитФормы? Это уже точно г-код.

P/s А Вообще-то это основы.
20 NcSteel
 
21.12.11
14:56
(19) ты предложил совсем другую задачу нежели объявлена автором.

Автор сам записал объект и хочет его обновить .

Делать два серверных выхова при такой задачи это г-код

P/s А Вообще-то это основы.
21 Mort
 
21.12.11
15:01
(20) Какие два серверных вызова? Прочитать() с сервера вызывается. А задача вполне конкретная. Если бы объект не записывался бы, то другое дело.
22 Mort
 
21.12.11
15:02
Хотя начать стоило с того, зачем форма записывать объект извне.
23 Mort
 
21.12.11
15:07
Так, чтобы меня лучше понятно было.

ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Записать();
Прочитать();

=

ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Записать();
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
ВызватьФункциюПоЗаполнениюКосвенныхЗначений();
24 NcSteel
 
21.12.11
15:07
Короче придумавыем за автора. Можно еще взять ее документ и переписать как правильно . И потом дать резюме:
------------------------------------------------------------------


Автор девочка красивая , но учиться и учиться

Подпись MORT
Подпись NcSteel
25 NcSteel
 
21.12.11
15:09
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Записать();
Прочитать();

=

ДокументОбъект = ДанныеФормыВЗначение("Объект");
ДокументОбъект.Записать();
ЗначениеВДанныеФормы(ДокументОбъект, "Объект");
ВызватьФункциюПоЗаполнениюКосвенныхЗначений();
26 jenny_tea
 
22.12.11
11:42
Объясняю суть проблемы. Так как уже совсем запарилась. понимаю суть проблемы но не понимаю почему так.

Есть Документ - Док1

На форме есть список элементов справочника - Спр1.

У Спр1 есть реквизит - Рекв1, который может быть ссылкой на данный документ.
В список попадают все элементы Спр1 у которых Рекв1 = Док1.Ссылка;

На форме документа есть еще 3 кнопки по работе со справочником. Добавить, Редактировать, Удалить. Которые модально делают соответствующие действия и не открывают сами элементы справочника.

Так вот когда в документе нажимаешь сохранить(сам документ), потом добавить , а потом опять сохранить как раз и вылетает Ошибка. что данные изменились, причем эта ошибка есть и в управляемых формах и в обычных.

Я понимаю что это из-за того что я записываю элемент справочника в котором ссылаюсь на текущий документ, но мне ведь это и надо.

Если нажать Обновить на форме документа то все становится хорошо. но ведь в период между записью документа и Действиями со справочником могли что-то изменить в самом документе и эти изменения не сохранятся а это совершенно не гуд
27 YF
 
22.12.11
11:43
28 jenny_tea
 
22.12.11
12:41
неужто побороли. оказалось была подписка о которой я еще не сном ни духом оставшаяся со старых данных, ее убрали и стало все отлично
Основная теорема систематики: Новые системы плодят новые проблемы.