Имя: Пароль:
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
хм.. тогда правильнее наверно вообще менять тип только для нового документа, т.к. для существующего там уже введено чтото будет
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой