![]() |
|
v7: Модифицированность - вылазит после печати | ☑ | ||
---|---|---|---|---|
0
Масянька
17.08.18
✎
09:33
|
День добрый!
В док-те есть несколько печ. форм. Открываем док-т только для просмотра и давим на кнопку печать. Затем закрываем печ. форму. И вот при закрытии док-та (после описанных манипуляций) - спрашивает про сохранить. Причем, только после двух печ. формах. После других трех пче. форм - не спрашивает. Да, после двух печ. форм вылазит модифицированность. Как отловить? До открытия печ. формы (нажатия на кнопку), после формирования печ. формы - модифицированность = 0. Как только выводится на экран - всё, есть модифицированность... Спасибо. |
|||
1
butterbean
17.08.18
✎
09:34
|
проанализировать обработки печати, возможно даже с отладчиком
|
|||
2
kossmatiy
17.08.18
✎
09:35
|
Ты видимо реквизит пытаешся изменить при формировании печ.формы. сюСмотри код.
|
|||
3
lxndr
17.08.18
✎
09:36
|
проверить свойство команды "Изменяет сохраняемые данные"
|
|||
4
butterbean
17.08.18
✎
09:37
|
(3) судя по модифицированность = 0, там 7.7
|
|||
5
Масянька
17.08.18
✎
09:37
|
(1) В конце процедуры печати:
КонецЕсли; Сообщить("5 - " + Модифицированность()); КонецПроцедуры // ПечатьАкта выводит = 0. |
|||
6
Масянька
17.08.18
✎
09:38
|
По кнопке печать:
КонецЕсли; Сообщить("11 - " + Модифицированность()); КонецПроцедуры // ПоКнопкеПечать тоже = 0. |
|||
7
Масянька
17.08.18
✎
09:40
|
Блин... Пардон - вроде, выбирала 7.7.
Конечно, семерка. |
|||
8
butterbean
17.08.18
✎
09:40
|
(6) это внешняя печатная форма?
|
|||
9
Масянька
17.08.18
✎
09:41
|
(8) Нет. Внутри док-а все.
|
|||
10
вым
17.08.18
✎
09:49
|
реквизит какой-то меняется в процедуре печати. Проверь имена переменных используемых, какая то совпадает с реквизитом
|
|||
11
Масянька
17.08.18
✎
09:58
|
(10) Не нашла.
|
|||
12
Масянька
17.08.18
✎
10:28
|
У меня (вообще-то) стоит OpenConf. Реквизиты (шапки и ТЧ) подсвечиваются голубым.
Нету переопределения. |
|||
13
Сияющий Асинхраль
17.08.18
✎
10:41
|
Если бы переопределения не было, то и сообщения об изменении тоже не было бы... Вполне возможно отрабатывает какая-то процедура глобальника или еще что. Поставь в некоторых местах процедур формирования печ. форм (через несколько строчек пронумерованные вызовы Сообщить()) что-нибудь типа Сообщить("№" + 1 + " - " + Модифицированность())
И гляди, в какой момент появляется модифицированность, а там уж локализуешь |
|||
14
vladko
17.08.18
✎
10:59
|
+(13) сложно что ли отладчиком пройтись и посмотреть где возникает модифицированность? А так, гадаем на кофейной гуще!
|
|||
15
Сияющий Асинхраль
17.08.18
✎
11:15
|
(14) Смотря какая печатная форма... Одно дело проходить форму с кодом в 100 строчек, другое в пару тысяч. Во втором случае я бы предпочел не ходить пару тысяч по строчке, а хотя бы для начала локализовать место, где смотреть повнимательней...
|
|||
16
Salimbek
17.08.18
✎
11:30
|
(0) Если в процедуре ничего не меняется, то может в кнопке прописано что-то, что меняет модифицированность уже после этой процедуры?
|
|||
17
Peltik
17.08.18
✎
11:31
|
(15) про Двоичный поиск никогда не слышал? Ставишь точку останова в середине кода, и опа, уже в половину меньше анализировать надо, ну и т.д. в худшем случае за 12 точек останова для 2000 строк кода
|
|||
18
Масянька
17.08.18
✎
11:45
|
(13) Так и тыкала...
Пока нет на экране (печ. формы) - 0. Как только появилась (моё ощущение) - 1. |
|||
19
Масянька
17.08.18
✎
11:49
|
+ (18) У меня в печати - 20 штук сообщить... Везде - 0.
А закрываешь печ. форум - и звездочка в заголовке... Бред какой-то... |
|||
20
NSSerg
17.08.18
✎
11:57
|
(15) Какая разница сколько строчек, если перед "конец процедуры" модифицированность=0. Туда и поставить точку останова.
|
|||
21
Масянька
17.08.18
✎
12:04
|
(20) Таб.Напечатать(0);
КонецЕсли; Сообщить("18 - " + Модифицированность()); КонецПроцедуры // ПечатьЗаказа |
|||
22
NSSerg
17.08.18
✎
12:05
|
(21) Точку останова в отладчике, а не "сообщить".
|
|||
23
Масянька
17.08.18
✎
12:06
|
Я уже и таблица пустую впихнула - все равно есть 1...
|
|||
24
Масянька
17.08.18
✎
12:06
|
(22) Я не умею им пользоваться. А какая разница?
|
|||
25
NSSerg
17.08.18
✎
12:07
|
(24) Код может выполняться и после выхода из процедуры.
|
|||
26
Кац
17.08.18
✎
12:07
|
в макете печформы наверняка функция
|
|||
27
Кац
17.08.18
✎
12:09
|
(22) она не умеет отладчик, издревле так сложилось
|
|||
28
Сияющий Асинхраль
17.08.18
✎
12:12
|
+(26) Кстати, да, может быть и так, тогда надо еще и всю печ. форму просматривать на навешенные функции.
|
|||
29
Масянька
17.08.18
✎
12:14
|
(26) (28) Я же говорю - тупо взяла пустую таблицу...
В тех макетах, где вылазит мод. И опять (пустая печ. форма) вылазит. |
|||
30
Кац
17.08.18
✎
12:27
|
в кнопке формула, не?
|
|||
31
Масянька
17.08.18
✎
12:31
|
(30) ПоКнопкеПечать()
Процедура ПоКнопкеПечать(СразуНаПринтер = 0, КолЭкз = 1) СпецПечать = 0; Если ПроверкаЗаполнения() = 0 Тогда ИнициализацияОбщихПолейДляПечати(); фКнопка = Форма.кнПечать.Заголовок(); Если (фКнопка = "Заказ") Тогда ПечатьЗаказа(СразуНаПринтер, КолЭкз); Иначе Ответ = Вопрос("Печатать 2 экземпляра на странице?", "Да+Нет", 60); Если Ответ = "Да" Тогда СпецПечать = 1; КонецЕсли; Если (фКнопка = "Акт передачи") Тогда ПечатьАкта(СпецПечать, СразуНаПринтер, КолЭкз, 1); ИначеЕсли (фКнопка = "Акт возврата") Тогда Если (ПустоеЗначение(ДатаВыполнения) = 1) Тогда Предупреждение("Не заполнена дата выполнения ремонта."); Активизировать("Выполнение"); СтатусВозврата(0); Иначе ПечатьАкта(СпецПечать, СразуНаПринтер, КолЭкз, 2); КонецЕсли; ИначеЕсли (фКнопка = "Квитанция") Тогда ПечатьКвитанции(СпецПечать, СразуНаПринтер, КолЭкз, "Квитанция"); ИначеЕсли (фКнопка = "Заправка") Тогда ПечатьКвитанции(СпецПечать, СразуНаПринтер, КолЭкз, "Заправка"); КонецЕсли; КонецЕсли; КонецЕсли; |
|||
32
Масянька
17.08.18
✎
12:31
|
Семерка.
|
|||
33
Мимохожий Однако
17.08.18
✎
12:34
|
(24) не научишься потратишь времени в несколько раз больше
|
|||
34
Мимохожий Однако
17.08.18
✎
12:35
|
(31) Проверь функцию ИнициализацияОбщихПолейДляПечати();
|
|||
35
s03
17.08.18
✎
12:36
|
(31) а "СпецПечать" это переменная или такой реквизит в документе есть?
|
|||
36
Масянька
17.08.18
✎
12:38
|
(34) Процедура ИнициализацияОбщихПолейДляПечати()
СтрокаТелефоны = СокрЛП(Фирма.ЮрЛицо.Телефоны); СтрокаМыло = СокрЛП(Фирма.ЭлПочта); ПечИнфо = "телефон: " + СтрокаТелефоны + ", e-mail: " + СтрокаМыло; СтрокаИНН = СокрЛП(Фирма.ЮрЛицо.ИНН); Если Найти(СтрокаИНН, "/") <> 0 Тогда // найден разделитель ИНН = Лев(СтрокаИНН, Найти(СтрокаИНН, "/") - 1); КПП = Сред(СтрокаИНН, Найти(СтрокаИНН, "/") + 1); КонецЕсли;; СтрокаОКПО = СокрЛП(Фирма.ЮрЛицо.ОКПО); СтрокаОКОНХ = СокрЛП(Фирма.ЮрЛицо.ОКОНХ); СтрокаОГРН = СокрЛП(Фирма.ЮрЛицо.ОГРН); ПечКоды = ?(ПустоеЗначение(ИНН) = 0, "ИНН " + СокрЛП(ИНН), "") + ?(ПустоеЗначение(КПП) = 0, ", КПП " + СокрЛП(КПП), "") + ?(ПустоеЗначение(СтрокаОКПО) = 0, ", ОКПО " + СокрЛП(СтрокаОКПО), "") + ?(ПустоеЗначение(СтрокаОКОНХ) = 0, ", ОКОНХ " + СокрЛП(СтрокаОКОНХ), "") + ?(ПустоеЗначение(СтрокаОГРН) = 0, ", ОГРН " + СокрЛП(СтрокаОГРН), ""); ПечКоды1 = "ООО ""Компью-Сервис""" + ?(ПустоеЗначение(ИНН) = 0, ", ИНН " + СокрЛП(ИНН), "") + ?(ПустоеЗначение(КПП) = 0, ", КПП " + СокрЛП(КПП), "") + ?(ПустоеЗначение(СтрокаОКПО) = 0, ", ОКПО " + СокрЛП(СтрокаОКПО), ""); ПечКоды2 = ?(ПустоеЗначение(СтрокаОКОНХ) = 0, "ОКОНХ " + СокрЛП(СтрокаОКОНХ), "") + ?(ПустоеЗначение(СтрокаОГРН) = 0, ", ОГРН " + СокрЛП(СтрокаОГРН), ""); КонецПроцедуры // ИнициализацияОбщихПолейДляПечати (35) Переменная, не глобальная. |
|||
37
Сияющий Асинхраль
17.08.18
✎
12:40
|
Если уж выкладываешь код, то неплохо бы еще выложить имеющиеся в документе реквизиты (шапки и тч), плюс в какой из форм меняется док... Ну и процедуры печати тоже. Проще пустой мд выложить, чем все это сюда постить...
|
|||
38
s03
17.08.18
✎
12:40
|
(36) также и остальные функции, которые из печати вызываются проверять надо
|
|||
39
Масянька
17.08.18
✎
12:41
|
Мужики!!!!
Я нашла!!!! Всем спасибо!!!!!! |
|||
40
Кац
17.08.18
✎
12:43
|
обращайтесь!
|
|||
41
Масянька
17.08.18
✎
12:44
|
(40) Главное - никогда не сдаваться :)))))))))))))))
|
|||
42
Мимохожий Однако
17.08.18
✎
12:44
|
(39) Не благодари. Лучше скажи, где ошибка была. А то маяться будем
|
|||
43
Кац
17.08.18
✎
12:45
|
(41) включи отладчик или сдавайся!
|
|||
44
Масянька
17.08.18
✎
12:46
|
(42) ПроверкаЗаполнения - там почему-то реквизиты присваиваются. Буду ковырять...
|
|||
45
Эльниньо
17.08.18
✎
12:47
|
(43) Отладчик придумали для слабаков и трусов
|
|||
46
Масянька
17.08.18
✎
12:47
|
(43) Мне уже и инструкцию (бумажную давали) - не получается...
В данном случае - на пальцах никак не выходит научиться... |
|||
47
Масянька
17.08.18
✎
12:47
|
(45) Точно! :))))))))))
|
|||
48
Кац
17.08.18
✎
12:48
|
нужно больше скобок!)
|
|||
49
Сияющий Асинхраль
17.08.18
✎
12:48
|
(45) +100500 :-)))
|
|||
50
MWWRuza
гуру
17.08.18
✎
16:02
|
Где-нибудь имя переменной в процедуре, совпадает с именем реквизита в документе... Какой-нибудь "ИНН" или что-то в этом роде. Поэтому, при печати и изменяются данные самого дока...
|
|||
51
Злопчинский
18.08.18
✎
00:38
|
..поржал...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |