Имя: Пароль:
1C
1С v8
Как исправить Модифицированность() при открытии формы.
,
0 Serdolik55
 
12.03.12
16:39
Коллеги, шаманил с формой документа счет-фактура выданный и в результате, получил: открываю уже проведённую счет-фактуру, пытаюсь сформировать печатную форму, он просит повторно провести его. Нашёл в какойм месте Модифицированность()= Истина (В обработчике "при открытии"). Как это побороть?
1 Vladal
 
12.03.12
16:41
В отладчике, в событиях что есть?

Ставь точку останова в модуле документа, в основном разделе, в ПередОткрытием и приОткрытии, то же и с формой - основной раздел модуля, перед и при открытии.

В табло поставь Модифицированность и пошагово лови, когда она у тебя станет Истина
2 butterbean
 
12.03.12
16:41
не изменять реквизиты при открытии
3 and2
 
12.03.12
16:41
вернуться к стандартной поставке 1с.....
4 Genius
 
12.03.12
16:42
Перенеси действие, которое вызывает модифицированность на какой-нибудь клик на форме (т.е. действие пользователя).
5 pumbaEO
 
12.03.12
16:42
Каков вопрос, таков и ответ:

ЭтаФорма.Модифицированность = Ложь;
6 Kashemir
 
12.03.12
16:44
Метод Модифицированость() проверяет изменение объекта.
Свойство формы Модифицированость позволяет читать/изменят значение для формы. Чего нужно то ? Форма / объект ?
7 Serdolik55
 
12.03.12
16:45
(6) Форма.
Нашёл где Модифицированность() = Истина (после КонецЕсли:

Процедура ПриОткрытии()//+
   
   
   Если не ЗначениеЗаполнено(ВидСчетаФактуры) Тогда
       ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
   КонецЕсли;
8 Vladal
 
12.03.12
16:46
(0) Не все буквы до конца прочитал... тупой одинэсник... А нафейхоа "Модифицированность()= Истина (В обработчике "при открытии")"?
9 Fish
 
12.03.12
16:46
(7) А условие выполняется?
10 Reset
 
12.03.12
16:47
(7) Искать место, где создаются сф с незаполненным видом. Править там.
11 Kashemir
 
12.03.12
16:47
(7)
МодифицированостьДоИзменения = Модифицированость;
Если не ЗначениеЗаполнено(ВидСчетаФактуры) Тогда
       ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
   КонецЕсли;
Модифицированость = МодифицированостьДоИзменения;
12 Vladal
 
12.03.12
16:48
(11)  ВПриОткрытии модифицированность обычно отлична от истины.
13 Kashemir
 
12.03.12
16:48
(7) Да и если форма - то проверяй свойство, а не вызывай метод.
14 Kashemir
 
12.03.12
16:48
(12) Кто знает что там еще влепят например ПередОткрытием
15 Serdolik55
 
12.03.12
16:49
(8) Ну я же написал, что корёжил форму нашей нетиповой торговли( в связи с последними изменениями). Добавлял реквизиты ВидСчетаФактуры и т.д., переколбашивал модули документа и объекта, всё работает, формы формируются. НО при открытии уже проведённого документа, при формировании печатной формы счета фактуры просит опять документ провести, хотя он проведён
16 Reset
 
12.03.12
16:49
(11) Ну это же неправильно. Изменился вид документа, как минимум перепроведение нужно.
Нельзя избавляться от модифицированности, она абсолютно логично появляется.
17 Vladal
 
12.03.12
16:50
(14) Я ж и пишу, "обычно". В модуле объекта захренячил реквизит, а на форме всегда модифицированность = истина.
18 Kashemir
 
12.03.12
16:50
(16) Перепроведение нужно если требуется сохранить изменения - если можно забить и не сохранять (в данном случае распечатать форму) - то можно ничего не сохранять и не проводить.
19 ptiz
 
12.03.12
16:51
(15) А что тогда тебе после (7) непонятно?
20 Vladal
 
12.03.12
16:52
(15) Совет:

Добавляй даты. Ввели новый реквизит - так или сделай групповое заполнение и перепроведение всех документов за период, или поставь дату - мол, с 1 марта этот реквизит обязателен и предупредим об этом пользователя. Это спасёт от геморроя при групповом перепроведении или восстановлении последовательности
21 Serdolik55
 
12.03.12
16:52
(16) Так я его перпровожу, потом опять захожу опять провит провести и так до бесконечности.
(19) Непонятно как сделать чтобы он постоянно не просил перепроведения документа
22 Reset
 
12.03.12
16:53
А, у него еще видно и типы не совпадают.
23 Kashemir
 
12.03.12
16:54
(21) Так значит проблема в другом

Если не ЗначениеЗаполнено(ВидСчетаФактуры) Тогда
       ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
   КонецЕсли;

Вот это твое условие нифига не пашет. Ты уверен что реквизит ВидСчетаФактуры содержит значение нужного типа ?
24 Reset
 
12.03.12
16:55
Если это единственное место, то явно не совпадают. Попытка присвоения идет, взводит флаг, а значение остается незаполненным. Потом по новой.
25 Serdolik55
 
12.03.12
16:55
(23) По типу всё совпадает, проверял
26 КМ155
 
12.03.12
16:56
(25) а движения у тебя счёт-фактура делает по Рг Журналсчетфактур ?
27 Reset
 
12.03.12
16:56
(25) Значит, в (21) неправда или что-то ты не рассказел еще.
28 Reset
 
12.03.12
16:56
не рассказал* ;)
29 Kashemir
 
12.03.12
16:57
(25) Тогда возьми отладчик и еще раз проверь, какого установленное значение с последующей записью имеет опять пустое значение при последующем открытии ?
30 Reset
 
12.03.12
16:58
Или ВидСчетаФактуры - это реквизит формы (не объекта) с установленным ИзменяетДанные.
Правда, это уже фантазия пошла.
31 Kashemir
 
12.03.12
16:59
(30) Подозреваю, что все банальнее - где-нибудь перед записью ВидСчетаФактуры  опять сбрасывается в ноль.
32 Serdolik55
 
12.03.12
17:00
(25) Движений я по этому регистру я не стал делать.
(30) -это мысль, сейчас гляну