|
v7: Как при открытии документа определить, что изменилось? | ☑ | ||
---|---|---|---|---|
0
Масянька
18.02.16
✎
16:50
|
День добрый!
Как при открытии документа (уже существующего) определить, что изменилось? Ничего руками не менялось. Кода много. Спасибо. |
|||
50
PuhUfa
19.02.16
✎
09:34
|
(46) Ты же пишешь в (2): В два разных документа добавлено: реквизит и реквизит таб. части
|
|||
51
PuhUfa
19.02.16
✎
09:34
|
+ В (28)
|
|||
52
aka AMIGO
19.02.16
✎
09:34
|
(48) ЕслиПроц ПриЗакрытии() нет - можно ведь и дописать..
Касательно второй табчасти - делал я такую штуку лет 10 назад.. Увы, помочь не в силах :) |
|||
53
Масянька
19.02.16
✎
09:35
|
(50) И?...
|
|||
54
PuhUfa
19.02.16
✎
09:38
|
(53) "Твоя" функция рассчитывает некую переменную "Доход" и возвращает полученное значение в место вызова.
Если у тебя есть РеквизитДокумента с именем "Доход", то при выполнении этой функции произойдет замена значения этого реквизита. И получаем модифицированность |
|||
55
Масянька
19.02.16
✎
09:39
|
(54) Тоже самое и в первом док-те - но модифицированности не возникает. Почему?
|
|||
56
Mikeware
19.02.16
✎
09:43
|
(55) значит, в первом документе либо реквизит с другим именем, либо он не в документе, а, скажем, в ТЗ...
сделай в функции Доход=50;, и увидишь, что изменилось |
|||
57
Масянька
19.02.16
✎
09:48
|
(56) Будешь смеяться, но в первом док-те (который молча) - также молча закрылся. Хотя, в таб. части вижу "50".
В функцию "Доход" скопировала из реквизита таб. части. По-моему, кто-то потихоньку сходит с ума... |
|||
58
Mikeware
19.02.16
✎
10:03
|
(57) ну, значит в одной табчасти это текст, а в другой - реквизит дока
|
|||
59
Mikeware
19.02.16
✎
10:03
|
кинь "выкошеный" мд на почту
|
|||
60
PuhUfa
19.02.16
✎
10:03
|
Прикольно...
Документ Новый1 РеквизитШапки: новый1 На форме текст с функцией: Функция ТекстНаФорме() новый1 = -330; Возврат новый1; КонецФункции https://pp.vk.me/c631524/v631524674/15551/b0WInB-bwRo.jpg Никакой модифицированности после открытия... Документ закрывается молча. И даже пофиг что в записанной версии документа: новый1 = 50 |
|||
61
Mikeware
19.02.16
✎
10:04
|
(60) хочешь сказать, что локальная перекрывает реквизит?
|
|||
62
PuhUfa
19.02.16
✎
10:08
|
(61) на форме лежит и сам реквизит новый1 и там он поменялся...
|
|||
63
Масянька
19.02.16
✎
10:08
|
(60) А ты мне не верил :((((((
Я уже докопалась: во втором док-те есть ПослеОткрытия и там (как раз) и возникает модифицированность. |
|||
64
PuhUfa
19.02.16
✎
10:16
|
(63) Ну потому, что это неправильно -)
|
|||
65
palpetrovich
19.02.16
✎
10:53
|
(60) +1 прикольно блин, это-ж наверное можно использовать когда нужно что-то записать Без перепроведения :)
|
|||
66
HawkEye
19.02.16
✎
10:55
|
(65) так то, для того чтобы что-то записать совсем не обязательно это перепроводить...
|
|||
67
palpetrovich
19.02.16
✎
11:08
|
(66) не знаю как кто, а мне, в документе с "ПриЗаписиПерепроводить", в случае необходимости записи "левого" реквизита, к примеру "ПутьКСкриншоту" приходится извращаться с "ложным закрытием"
|
|||
68
Mikeware
19.02.16
✎
11:19
|
(67) а таких реквизитов быть не должно :-)
|
|||
69
HawkEye
19.02.16
✎
11:20
|
(67) записывай программно, какие проблемы?
|
|||
70
HawkEye
19.02.16
✎
11:20
|
+69, в смысле без открытия формы
|
|||
71
Масянька
19.02.16
✎
11:31
|
Есть вопрос:
функция - когда ловить Модифицированность() до или после Возврат? |
|||
72
palpetrovich
19.02.16
✎
11:36
|
(69) специфика такая, что некоторые реквизиты, типа "ПутьКСкриншоту", или "ДатаПечатиЦенников"
...можно конечно сделать обработку - почти копию документа и записывать оттуда, но - "работает-не трожь", да и лом :) |
|||
73
Масянька
19.02.16
✎
13:08
|
Ну, что, мыслей никаких ни у кого?
|
|||
74
Mikeware
19.02.16
✎
13:15
|
(73) а зачем?
|
|||
75
Mikeware
19.02.16
✎
13:15
|
(74) ну, не "мысли зачем", а зачем ловить?
|
|||
76
Gunner
19.02.16
✎
13:18
|
(11) Да ты что? я смотрю тут одни гуру 1с сидят, а в реальной жизни с реал. задачами справиться не могут. Сколько видел программистов, которые отладчиком не умеют пользоваться
|
|||
77
Масянька
19.02.16
✎
13:19
|
(74) А нормально - документ открыли, посмотрели, закрывают - а он требует сохранить?
|
|||
78
Mikeware
19.02.16
✎
13:28
|
(77) ну так убери изменеие значений реквизитов документа, и все.
Если уж так надо - заполняй, только если новый док. |
|||
79
Масянька
19.02.16
✎
13:30
|
(78) Видищь - двор, на дворе - кол, на колу - мочало, начинай сначала. (С)
Почему в другом док-те не спрашивает при сохранении и модифицированность = 0? |
|||
80
Mikeware
19.02.16
✎
13:32
|
Попутно вопрос Ёп'у - а что, ДобавитьАтрибут() атрибуты с 12 - CHECKBOX (Флажок) и 13 - RADIO (Переключатель) - не создает?
кнопки получаются, ТЗ получается, списки - коряво, а флажок и радиодырку - ну никак.... |
|||
81
Mikeware
19.02.16
✎
13:33
|
(79) ну, видимо, фича платформы. недокуметированная возможность. Используй нормальный правильный подход, и не будешь по граблям ходить.
|
|||
82
Масянька
19.02.16
✎
13:34
|
(81) О, как... А что не правильно?
|
|||
83
Mikeware
19.02.16
✎
13:35
|
(82) ну ты ж заполняешь документ? изменяешь его реквизиты?
|
|||
84
Ёпрст
19.02.16
✎
13:36
|
(80) там пришлось бы еще со стилем играть. Вообще, в ДобавитьАтрибут не хватает только одной главной вещи - 9 контрол (текстовая колонка в многострочных частях)
|
|||
85
Mikeware
19.02.16
✎
13:37
|
(84) а как "поиграть"? кинь пример, или научим ламера. вроде все по инструкции, а оно никак. кнопка вместо флажка, и все тут...
|
|||
86
Масянька
19.02.16
✎
13:37
|
(83) И?...
В другом док-те - все аналогично. Но - при закрытии не спрашивает и модифицированность = 0. |
|||
87
Mikeware
19.02.16
✎
13:39
|
(86) ну то, что "не спрашивает" - неправильное поведение. фича платформы.
|
|||
88
Масянька
19.02.16
✎
13:40
|
А джедай 80lvl - не объяснит? :)
|
|||
89
Mikeware
19.02.16
✎
13:42
|
(88) он, может, и объяснит. Хотя это нужно, наверное, АЛьФу вопрос задавать - он порядок прохождения смотрел, когда перехват событий делал.
но проще сделать, "как правильно", и не мучиться. |
|||
90
Ёпрст
19.02.16
✎
13:42
|
(86) Другой документ, того же вида ?
|
|||
91
Ёпрст
19.02.16
✎
13:43
|
(85) проще уж контрол типа активикса кинуть через добавить атрибут
|
|||
92
Mikeware
19.02.16
✎
13:44
|
(90) нет, другого.
и в одном доке, в котором мудифицированность появляется, есть ПослеОткрытиия, а в том, в котором не появляется - нету |
|||
93
Ёпрст
19.02.16
✎
13:44
|
чем играться со штатным радиобуттоном, aluev на 1cpp все знает про стили
|
|||
94
Масянька
19.02.16
✎
13:44
|
(90) Первый (в котором молча закрывает) - Розничная реализация. Второй (где ругается) - Реализация. Оба стандартные, но дописанные.
|
|||
95
Ёпрст
19.02.16
✎
13:45
|
(94) ну, чего ты хочешь тогда ? Можифицированность можно убрать же, как штатно, через записать, так и не штатно, тем же формексом + некоторые события можно отменить, тем же перехватчиком - вот и не будет модифицированности
|
|||
96
Масянька
19.02.16
✎
13:46
|
(92) Уже при входе в функцию подсчета - модифицированность = 1. Где меняется - не смогла поймать.
Везде воткнула (в каждой процедуре/функции) в начале и конце модифицированность(). |
|||
97
Ёпрст
19.02.16
✎
13:46
|
У тебя в ПослеОткрытия, чего хоть понаписано ?
|
|||
98
Масянька
19.02.16
✎
13:47
|
(95) Нету перехватчиков. и модифицированность не изменяется.
|
|||
99
Масянька
19.02.16
✎
13:47
|
(97) оПривязки.ПослеОткрытия();
|
|||
100
Масянька
19.02.16
✎
13:47
|
Хоть сотку возьму...
|
|||
101
Масянька
19.02.16
✎
13:48
|
+ (99) В НастроитьПривязки и ПриИзмененииРазмераОкна - модиф. не меняется.
Кстати, в первом док-те - привязок нет. |
|||
102
Mikeware
19.02.16
✎
13:51
|
(91) :-(
я уж форму сделал с двумя флажками, которую привязываю через Прикрепить форму. правда, при уменьшении ее размера 1с падает (93) на форуме там шняга какая-то - сообщения непойми как отображаются. |
|||
103
Mikeware
19.02.16
✎
13:51
|
(101) ну так поставь привязки, да глянь
|
|||
104
Ёпрст
19.02.16
✎
13:53
|
(102) прикрепитьформу - это вообще за гранью добра и зла :)
|
|||
105
Ёпрст
19.02.16
✎
13:56
|
(101) класс привязок то хоть чей ?
|
|||
106
Ёпрст
19.02.16
✎
13:56
|
напиши установку хоть одной привязки любого контрола (для понимания, какой у тя класс)
|
|||
107
Mikeware
19.02.16
✎
13:56
|
(104) а в какую сторону "за гранью" - в сторону добра или в сторону зла? :-)
ну надо "два флажка". Блин, ну не делать же раскрашенными кнопками... |
|||
108
Ёпрст
19.02.16
✎
13:58
|
(107) АЛьФ сам грил что глючный метод, + вызывает частое падение конфы и память не освобождает
|
|||
109
Ёпрст
19.02.16
✎
13:58
|
А зачем тебе лепить флажки динамически ? Не известно, че за форма будет ?
|
|||
110
Масянька
19.02.16
✎
13:58
|
(105) Ты давал. Не понмишь?
(106) Это - оПривязки.Добавить("КодПроизводителя", "ВН", "Форма"); Нет? |
|||
111
Mikeware
19.02.16
✎
13:59
|
(108) посоветуй насчет двух флажков. а то придется готовить три конверта....
Лень на два десятка доков их вручную добавлять |
|||
112
Mikeware
19.02.16
✎
14:00
|
(110) Вроде А.Диркса. который со сплиттерами?
|
|||
113
Масянька
19.02.16
✎
14:00
|
(112) Мне - Ё давал.
|
|||
114
Ёпрст
19.02.16
✎
14:00
|
(112) не, это типовой, из репозитария
|
|||
115
Mikeware
19.02.16
✎
14:03
|
(109) - см (111).
Хочу в перехватчике на формы документов лепить, в зависимости от типа документов и роли пользователя.. |
|||
116
Масянька
19.02.16
✎
14:05
|
Так...
Либо вы мне говорите в чем у меня проблема, либо ... (щас придумаю). |
|||
117
Mikeware
19.02.16
✎
14:06
|
(116) не будить в тебе зверя, а то проснется заяц и убежит?
|
|||
118
Масянька
19.02.16
✎
14:10
|
Если дело в привязках - почему в НастроитьПривязки модиф. = 0?
(117) Насчет зайца - не уверена... |
|||
119
patapum
19.02.16
✎
14:19
|
(0) все внимательно не прочитал, только просмотрел. если еще есть сомнения, почему встает модифицированность, напиши обработку, которая программно откроет форму, а потом пробежится по реквизитам контекста формы и документа в базе (по метаданным). вдруг чё покажет.
|
|||
120
Ёпрст
19.02.16
✎
14:23
|
(115) ну, на ум приходит только лепить кнопку через добавитьатрибут и натягивать на неё контрол с флажком, это проще всего.
|
|||
121
Ёпрст
19.02.16
✎
14:24
|
и уже ловить события активикса
|
|||
122
Масянька
19.02.16
✎
14:29
|
Кстати, в рабочей базе 2 док-т (который ругается) уже с привязками, но при открытии-закрытии не ругается.
Ничего не понимаю.... |
|||
123
Mikeware
19.02.16
✎
14:30
|
(120) контрол с флажком - в смысле, активикс?
|
|||
124
Ёпрст
19.02.16
✎
14:31
|
(123) ага
|
|||
125
Ёпрст
19.02.16
✎
14:32
|
(122) мот только на просмотр форма открывается у тебя ?
|
|||
126
Mikeware
19.02.16
✎
14:32
|
(124) понял. Не удается обмануть природу.... :-(
|
|||
127
Масянька
19.02.16
✎
14:32
|
(125) Нет. Обычно.
|
|||
128
Mikeware
19.02.16
✎
14:33
|
(122)ну выклади на чонибуть кастрированный мд.
|
|||
129
Масянька
19.02.16
✎
14:50
|
Чем плохо так:
Функция РасчетДохода(Списание) Если (Списание = 1) Тогда Доход = (ЦенаИсходная - Цена) * Количество; КонецЕсли; Если (Число(ТекстОбщийДоход) > 0) Тогда Форма.ТекстОбщийДоход.Цвет(0, 0, 0); Иначе Форма.ТекстОбщийДоход.Цвет(128, 0, 0); КонецЕсли; Возврат Доход; КонецФункции // РасчетДохода Доход - реквизит таб. части док-та. |
|||
130
Ёпрст
19.02.16
✎
14:50
|
(126) через стиль удалось добится, что он стал флажком, но.. пока не совсем работает, ща еще поиграюсь
|
|||
131
Ёпрст
19.02.16
✎
14:51
|
(129) вот так добавь и забудь о модифицированности
Функция РасчетДохода(Списание) Перем Доход; |
|||
132
Масянька
19.02.16
✎
15:02
|
(131) А чем плохо не инициализировать нулем?
|
|||
133
Mikeware
19.02.16
✎
15:06
|
(132) тем, что ты меняешь данные...
|
|||
134
Масянька
19.02.16
✎
15:08
|
(133) Не поняла - объясни.
|
|||
135
Ёпрст
19.02.16
✎
15:10
|
(133)
если делаешь вот так: Расш = СоздатьОбъект("РасширениеФормы"); Расш.УстановитьФорму(Форма); Флажок= Расш.ПолучитьАтрибут("Флажок"); Атр = Расш.ДобавитьАтрибут("Вася",12); Атр.Стиль = Флажок.Стиль; // Атр.ИзменитьСтиль(Атр.Стиль,Флажок.Стиль); Атр.Формула = "Сообщить(""ой-ё"")"; то новый атрибут выглфдит, как флажок, но, не работает :( |
|||
136
Ёпрст
19.02.16
✎
15:14
|
Уррррааа!
Я подебил эту шляпу :)) |
|||
137
Ёпрст
19.02.16
✎
15:15
|
Короче, от так всё работает, как надо. Тебе всего лишь в перехватчике нужно на форме класса разместить флажок, чтобы взять его стиль, и далее:
Атр = Расш.ДобавитьАтрибут("Вася",12,"Число"); //тип надо было указать |
|||
138
Mikeware
19.02.16
✎
15:17
|
(137) указывал. только что удалил
|
|||
139
Ёпрст
19.02.16
✎
15:17
|
Ну, или попрообовать Стиль сохранить где-нибудь еще
|
|||
140
Масянька
19.02.16
✎
15:18
|
Мальчики! Вы опять отвлеклись...
|
|||
141
Mikeware
19.02.16
✎
15:20
|
(134) ну ты меняешь данные документа на форме, у удивляешься, что у тебя флаг мудифицированности устанавливается...
а удивляться нужно тому, что он иногда не устанавливается. а чтоб не удивляться вааще - нужно не менять данные. только и всего |
|||
142
Mikeware
19.02.16
✎
15:20
|
(139) стиль - попробую
|
|||
143
Ёпрст
19.02.16
✎
15:20
|
||||
144
Масянька
19.02.16
✎
15:24
|
(141) Данные меняются только при определенном условии (ты, наверное, не увидел). Чтобы это условие возникло - нужно именно редактировать документ. При редактировании все, что надо работает. А при просмотре (но не в режиме просмотра) - условие не возникает, следовательно, данные менять не нужно.
И я спрашивала об инициализации 0. А по поводу "модифицированности" - вопрос к разработчикам. |
|||
145
Ёпрст
19.02.16
✎
15:37
|
(144) ты вот как в (131) добавь и успокойся :)
|
|||
146
Ёпрст
19.02.16
✎
15:38
|
на счет "не работает" в другом, проверь настройку порядка обхода, сделай, чтоб ТЧ дока была на первом месте и "заработает"
|
|||
147
Ёпрст
19.02.16
✎
15:39
|
т.е будет модифицированность при смене реквизита тч
|
|||
148
Масянька
19.02.16
✎
15:44
|
(146) Там (в котором работает) таб. часть одна из последних (при обходе).
(145) Я плохого ничего не нашла. Даже в dbf. Вот и интересуюсь - может чего не увидела. |
|||
149
Mikeware
19.02.16
✎
16:11
|
(143) спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |