Имя: Пароль:
1C
1С v8
Изменение типа поля изменяет модифицированность, как побороть?
0 badboychik
 
27.03.13
12:34
Есть реквизит составного типа в документе. При открытии проверяется одна настройка и тип реквизита меняется:

Настройка = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "НашаНастройка");
Если Настройка=ИСТИНА Тогда
   ЭлементыФормы.Поле1.ВыбиратьТип = Ложь;
   ЭлементыФормы.Поле1.КнопкаВыбора = Ложь;
   ЭлементыФормы.Поле1.ОграничениеТипа = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(200));
   ЭлементыФормы.Поле1.Значение = ЭлементыФормы.Поле1.ОграничениеТипа.ПривестиЗначение(ЭлементыФормы.Поле1.Значение);
   ЭтаФорма.Модифицированность = Ложь;        
КонецЕсли;

И косяк в том что при открытии все равно документ становится модифицированным и просит проведение, когда казалось бы пользователь ничего не изменял. Может я неправильно тип меняю? Вроде из УПП типовой кусок взял
1 hhhh
 
27.03.13
12:39
вы не тип, вы значение реквизита меняете

ЭлементыФормы.Поле1.Значение = ЭлементыФормы.Поле1.ОграничениеТипа.ПривестиЗначение(ЭлементыФормы.Поле1.Значение);
2 badboychik
 
27.03.13
12:40
ну да, везде пишут что так и надо приводить тип
3 kosts
 
27.03.13
12:41
Так попробуй

Если ЭлементыФормы.Поле1.Значение <> ЭлементыФормы.Поле1.ОграничениеТипа.ПривестиЗначение(ЭлементыФормы.Поле1.Значение) Тогда
   ЭлементыФормы.Поле1.Значение = ЭлементыФормы.Поле1.ОграничениеТипа.ПривестиЗначение(ЭлементыФормы.Поле1.Значение);
КонецЕсли;
4 Peltzer
 
27.03.13
12:45
Возвращаемое значение:
Тип: Произвольный.
Если значение передано, то выполняется проверка на соответствие значения описанию типа. Если значение соответствует, то метод возвращает переданное значение. Если значение не соответствует, то оно приводится к типу, доступному в описании типа.
Если значение не передано, то выдается значение по умолчанию для данного описания типа.
5 badboychik
 
27.03.13
12:45
хм.. тогда правильнее наверно вообще менять тип только для нового документа, т.к. для существующего там уже введено чтото будет
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан