Имя: Пароль:
1C
1С v8
Как проверить модифицированность набора записей на управляемой форме?
0 xaozai
 
10.10.12
17:07
На управляемой форме справочника клиентов сделал набор записей регистра сведений "СтоимостьВыполнения".

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

И второй вопрос:
При закрытии формы справочника без записи, если были сделаны изменения в наборе записей, они пропадут. Как проверить модифицированность набора перед закрытием формы?
1 GLazNik
 
10.10.12
17:09
(0) Динамический список на форму. не?
2 xaozai
 
10.10.12
17:12
(1) Т.е., в данном случае более правильный вариант - использовать динамический список?
А можно ли в нем установить отбор в произвольном запросе? Как туда параметр передать?
3 GLazNik
 
10.10.12
17:15
Да. Можно. См динамический список, свойства Параметры
4 xaozai
 
10.10.12
17:23
(3) Параметр передать получилось.
Появился еще вопрос: когда добавляю запись в регистр, открывается форма записи и реквизит "Клиент" не заполнен - как сделать, чтобы он автоматически заполнялся?
5 and2
 
10.10.12
17:23
галку взвести - заполнять из данныхЗаполнения
6 GLazNik
 
10.10.12
17:24
как вариант повесить отбор на динамический список
7 xaozai
 
10.10.12
17:27
(5) Поставил галку на реквизит регистра сведений - не помогло.
8 GLazNik
 
10.10.12
17:29
(7) для того что б помогло, нужно что б у динамического списка была указана основная таблица (это скорее всего есть) и что бы был установлен отбор (а не условие в запросе по параметру).
9 xaozai
 
10.10.12
17:34
Всё получилось.
Всем спасибо!
10 Mort
 
10.10.12
17:58
Набор записей стоит читать не в ПриСозданииНаСервере, а в ПриЧтенииНаСервере
11 Mort
 
10.10.12
17:59
+ Дин список в форме элемента - ФУ.
12 GLazNik
 
10.10.12
18:02
(11) собственно в чем "ФУ"?
13 Mort
 
10.10.12
18:13
(12) Пользователь должен иметь возможность порезвиться в форме, а потом без последствий закрыть форму не сохраняя. А для непосредственного редактирования связанной инфы в УФ есть панель навигации.
14 GLazNik
 
10.10.12
18:15
(13) С этим согласен.
15 xaozai
 
10.10.12
18:29
(10) А как быть со вторым вопросом в (0)?
16 Mort
 
10.10.12
18:31
(15) Надо включить для реквизита галку "Сохраняемые данные". Тогда программа при изменении набора будет устанавливать модифицированность формы и, соответственно, запрашивать запись при закрытии.
17 Mort
 
10.10.12
18:31
+(16) Для реквизита - набора записей
18 xaozai
 
11.10.12
09:21
(17) Спасибо!
19 le_
 
11.10.12
09:50
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   НЗ = ДанныеФормыВЗначение(СтоимостьВыполнения, Тип("РегистрСведенийНаборЗаписей.СтоимостьВыполнения"));
   Если НЗ.Модифицированность() Тогда
       НЗ.Записать(Истина);
   КонецЕсли;
КонецПроцедуры
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан