|
v7: Вылет 1с при нажатии Enter в печатной форме | ☑ | ||
---|---|---|---|---|
0
AL CAPONE
01.08.16
✎
16:44
|
1с - 7.7 для SQL 7.70.027.
Windows 2008 Server R2 Standart. Подключение к 1с через терминальный сеанс по локальной сети. Имеем сформированную по документу печатную форму. Пользователь заходит в одну из ячеек и через строку ввода над таблицей редактирует многострочный текст под себя. По нажатии Enter в этой строке 1с с вероятностью 80% захлопывается с ошибкой "Прекращена работа программы 1с. Возникшая проблема привела к прекращению программы. Закройте эту программу." с единственной кнопкой "Закрыть программу". При редактировании ячейки по кнопке "Свойства" 1с не вылетает, но пользователю это крайне неудобно из-за большого количества текста. Если не пользоваться Enter-ом, а просто кликать в соседнюю ячейку, то отредактированный текст вовсе не меняется в половине случаев и приходится всё делать заново. В просмотре событий имеем: Имя сбойного приложения: 1cv7s.exe, версия: 7.70.0.27, отметка времени: 0x4573fcd8 Имя сбойного модуля: Moxel.dll, версия: 7.70.0.27, отметка времени 0x4573f908 Код исключения: 0xc0000005 Смещение ошибки: 0x00051171 Идентификатор сбойного процесса: 0x697f4 Время запуска сбойного приложения: 0x01d1ebf8e2a0d57a Путь сбойного приложения: C:\Program Files (x86)\1Cv77\BIN\1cv7s.exe Путь сбойного модуля: C:\Program Files (x86)\1Cv77\BIN\Moxel.dll Код отчета: fca357d5-57ec-11e6-ad96-001e672f187c Кто-то сталкивался с подобным ? |
|||
1
Это_mike
01.08.16
✎
16:46
|
как дружили с 2008-м?
|
|||
2
AL CAPONE
01.08.16
✎
16:48
|
(1)
дружили много лет назад, уже не вспомню к сожалению |
|||
3
Это_mike
01.08.16
✎
16:48
|
если секрелиз поставить?
|
|||
4
Это_mike
01.08.16
✎
16:49
|
+(3) в смысле,заново поставить, на одной локальной машине? и смоделировать?
|
|||
5
lubitelxml
01.08.16
✎
16:50
|
Как вариант, если (3) не поможет - попробовать йоксель (или как его там) прикрутить..
|
|||
6
Это_mike
01.08.16
✎
16:51
|
кстати, это на любой машине, или на какой-то конкретной?
|
|||
7
AL CAPONE
01.08.16
✎
16:55
|
(3)
рискованно трогать то, что уже много лет работало без глюков ради такой проблемы (4) на локальной не попробую, т.к. базы крутятся в терминале только (5) SpreadSheet.dll есть в базе, но печатная форма этого конкретного дока выводится без его использования (6) попробовал с другого компа - похоже та же проблема. Как только текста побольше - вылетает. Текста поменьше - правит без проблем. |
|||
8
lubitelxml
01.08.16
✎
16:56
|
(7) ну тогда попробуй переделать форму
|
|||
9
lubitelxml
01.08.16
✎
16:56
|
хотя бы одно поле попробуй сделать и проверить, будет понятно - есть смысл переделывать или нет.
|
|||
10
mehfk
01.08.16
✎
17:05
|
(0) С++, ассемблер и дизассемблер знаешь?
|
|||
11
vadim777
01.08.16
✎
17:50
|
(0) С какой винды заходите? Не с десятки случаем?
|
|||
12
Злопчинский
02.08.16
✎
00:03
|
если в расшифровках во всем отчете сидит сильно много информации - наступает такой кабздец.
|
|||
13
Tarlich
02.08.16
✎
00:07
|
Попробуй пользователю на время дать права админа , будет ли все ок?
|
|||
14
AL CAPONE
02.08.16
✎
08:30
|
(9)
сделать с полем что именно ? (10) увы, нет (11) XP (12) расшифровок в данной форме вообще нет, это кадровые приказы, но текст многострочный получается в ячейке (13) нет, т.к. даже под админом вылетает так же |
|||
15
lubitelxml
02.08.16
✎
08:36
|
(14) попробуй Йоксель...
|
|||
16
Это_mike
02.08.16
✎
09:24
|
(7) ты не "трогай", ты поставь "рядом", для эксперимента. или вообще на другой машине, не терминальной.
по крайней мере, локализуешь проблему. Хотя в свете (12) - уже сомнительно |
|||
17
AL CAPONE
02.08.16
✎
12:06
|
(15)
Попробовал,1с вылетать перестала, но пользователя не устроило отсутствие привычного редактора таблиц. В частности непонятно, как можно удалить строки целиком со сдвигом нижних строк вверх, как это делалось при выводе через Moxel ? |
|||
18
Ёпрст
02.08.16
✎
12:14
|
(17) Своё меню по ПКМ и там удаляй/добавляй че хочешь
|
|||
19
AL CAPONE
02.08.16
✎
12:19
|
(18)
в том то и дело, что по ПКМ ничего не выводится, хотя и прописано Фрейм.ТолькоПросмотр(0) |
|||
20
Ёпрст
02.08.16
✎
12:22
|
||||
21
trad
02.08.16
✎
12:24
|
формекс присутствует?
|
|||
22
Ёпрст
02.08.16
✎
12:25
|
(21) вот у тя не любовь то к нему!
:) |
|||
23
trad
02.08.16
✎
12:25
|
при использовании каких то старых версий формекса, 1с падала при просмотре мокселя непредсказуемо
|
|||
24
Ёпрст
02.08.16
✎
12:25
|
ща посмотрю, я не помню ужо
|
|||
25
trad
02.08.16
✎
12:26
|
(23) + но это не моя практика, просто помню по сообщениям с форума
|
|||
26
trad
02.08.16
✎
12:26
|
(24) вопрос в (21) к (0)
|
|||
27
Ёпрст
02.08.16
✎
12:29
|
(0) Хотя хз, че там у тя падает, попробовал вбить в ячейку побольше текста - всё норм
|
|||
28
Ёпрст
02.08.16
✎
12:29
|
(26) аа.
|
|||
29
AL CAPONE
02.08.16
✎
12:33
|
(21)
да, есть FormEx.dll 2.0.5.87 |
|||
30
AL CAPONE
02.08.16
✎
12:34
|
(20)
делаю через Таб.Записать(КаталогПользователя() + "\Выгрузка.mxl"); ТабДок = СоздатьОбъект("ТабличныйДокумент"); ТабДок.Открыть(КаталогПользователя() + "\Выгрузка.mxl"); Фрейм = ТабДок.Показать("Расчёт отпуска"); Фрейм.ТолькоПросмотр(0); по ПКМ тишина ... |
|||
31
Это_mike
02.08.16
✎
12:34
|
(29) обнови на посвежее, например, 2.0.5.108
|
|||
32
mehfk
02.08.16
✎
12:35
|
(31) Не надо обновлять, надо сначала проверить без него.
|
|||
33
Это_mike
02.08.16
✎
12:36
|
(32) ну можно и так. а можно и обновить
|
|||
34
mehfk
02.08.16
✎
12:36
|
(27) Проверить не могу, у автора адреса другие, на CSheetView::IsTextOnBar
|
|||
35
mehfk
02.08.16
✎
12:37
|
(33) После 2.0.5.93 были бажные релизы :)
|
|||
36
Ёпрст
02.08.16
✎
12:46
|
(30) дык описывать надо события мышиные
|
|||
37
Ёпрст
02.08.16
✎
12:47
|
обработчики задал в коде хоть ?
|
|||
38
Ёпрст
02.08.16
✎
12:48
|
+ на сколько я помню, во фрейме функционала такого может и не быть вовсе, нужно просто делать контрол на форме
|
|||
39
AL CAPONE
02.08.16
✎
12:49
|
(37)
а, вы про самописанное меню, не, не пробовал пока |
|||
40
AL CAPONE
02.08.16
✎
12:50
|
(31,35)
ну и кому верить ? :) |
|||
41
AL CAPONE
02.08.16
✎
12:50
|
(38)
это каким методом ? |
|||
42
Ёпрст
02.08.16
✎
12:57
|
(41) пример ранее кидал, скачай, посмотри, там есть меню
|
|||
43
Ёпрст
02.08.16
✎
12:57
|
Хотя, проще разоьраться с вылетом, чем переделывать под йоксель
|
|||
44
Это_mike
02.08.16
✎
12:59
|
(35) Были. Но у меня упомянутый, вроде без "спецэффектов"
|
|||
45
AL CAPONE
02.08.16
✎
14:12
|
(44)
Тогда ещё вопрос: просто заменой файла FormEx.dll всё обойдётся или процедуры и функции будут разными для разных версий компонента ? |
|||
46
DrZombi
гуру
02.08.16
✎
14:27
|
(45) обойдется.
|
|||
47
Tarlich
02.08.16
✎
15:46
|
Вопрос : "А зачем ему редактировать"?
А если требуеться редактировать в начале пусть сохранит в мхл и откроет данный файл , проверь так? |
|||
48
AL CAPONE
02.08.16
✎
15:48
|
(31)
установил 2.0.5.108 по результату отпишусь |
|||
49
AL CAPONE
02.08.16
✎
15:49
|
(47)
это усложнит жизнь пользователя, могут быть недовольны, но как вариант в случае безвыходного положения попробую ) |
|||
50
AL CAPONE
03.08.16
✎
14:26
|
(48)
Прошли сутки, пользователь доволен, вроде как ни одного вылета 1с. (31) Респект за помощь. Не понял только, каким боком FormEx херил Moxel :)) |
|||
51
AL CAPONE
04.08.16
✎
11:37
|
Эх, на вторые сутки проблема всё же вернулась, просто теперь возникает гораздо реже, чем раньше.
|
|||
52
trad
04.08.16
✎
12:40
|
(50) формекс втыкает кучу переходов на себя безусловно, просто фактом своего присутствия в процессе
|
|||
53
AL CAPONE
26.08.16
✎
15:04
|
Через некоторое время проблема вернулась уже на последней версии FormEx, снова откатил FormEx на старую версию, т.к. в новой перестали нормально функционировать всплывающие окна.
Причём что заметили: проблема с вылетом вылезла на документе, который выводит несколько печатных форм сразу. Т.е. есть одна табличная форма, разбитая на секции, вывод осуществляется через Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Кадры"); Таб.ВывестиСекцию("***"); Таб.ВывестиСекцию("***"); Таб.ВывестиСекцию("***"); Таб.ПараметрыСтраницы(1,100,,30,8,20,20,0,0,1); Таб.ТолькоПросмотр(0); Таб.Показать("Форма первая"); ..... Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Кадры"); Таб.ВывестиСекцию("***"); Таб.ЭкземпляровНаСтранице(2); Таб.КоличествоЭкземпляров(2); Таб.ПараметрыСтраницы(1,100,,10,10,10,10,0,0,1); Таб.ТолькоПросмотр(0); Таб.Показать("Форма вторая"); Так вот пользователь редактирует первую форму, и при нажатии Enter 1с приходит кирдык. Но если редактировать первую форму без закрытия второй, кирдык не приходит ни при каких обстоятельствах. Вот такие пироги. |
|||
54
Злопчинский
26.08.16
✎
16:51
|
А если сделать несколько Таб1, Таб2 - будет (_._) или не будет?
|
|||
55
Злопчинский
26.08.16
✎
16:52
|
у меня вот тож проблема - непредсказуемо валится 1с молча при попытке нажать на штатную кнопочку "прямая печать " на панели инструментов для открытой печформы... грешу тож на формекс и еще по мелочи. Программисты - они ж такие программазды.. ничего нормально сделать не могут, все не как у людей...
|
|||
56
trad
26.08.16
✎
17:11
|
Выпилить формекс
|
|||
57
Djelf
26.08.16
✎
20:42
|
Ну а я заметил, что в расшифровку что то кроме родных объектов 1с лучше ничего не засовывать.
А так... можно выпилить и 1с++ т.к. она под wine на элементарной строке ЭтоВайн = Реестр.ОткрытьКлюч("HKEY_LOCAL_MACHINE","Software\Wine","KEY_READ"); рандомно портит память 1с, пойди догадайся из-за чего 1с падает.... |
|||
58
trad
26.08.16
✎
21:22
|
(57) можно и 1спп выпилить, только это ТС не поможет
|
|||
59
AL CAPONE
31.08.16
✎
11:46
|
(54)
Сейчас проверил: даже в двумя разными Таб1 и Таб2 при закрытии 2-й формы 1-я форма убивает 1с по нажатии Enter. |
|||
60
trad
31.08.16
✎
16:48
|
поставил эксперимент
новая чистая конфа код Таб1=СоздатьОбъект("Таблица"); Таб1.Показать("Форма первая"); Таб2=СоздатьОбъект("Таблица"); Таб2.Показать("Форма вторая"); после вывода закрываем вторую сразу идем в панель формул, вводим строку, ентер падение |
|||
61
trad
31.08.16
✎
16:49
|
(60) + без всяких вк
|
|||
62
Ёпрст
31.08.16
✎
16:50
|
(60) Панель формул, это что ?
|
|||
63
Ёпрст
31.08.16
✎
16:51
|
Не воспроизводится у меня..
|
|||
64
Ёпрст
31.08.16
✎
16:52
|
А ну да, нашел, да падает..
И ладно. |
|||
65
Ёпрст
31.08.16
✎
16:53
|
1с-ину вообще то вагон способов завалить.
Вот например, обработка с 1 строчкой кода: Форма.Заголовок("Вася"); |
|||
66
Ёпрст
31.08.16
✎
16:54
|
или так,
ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.КоличествоКолонок(-1); |
|||
67
trad
31.08.16
✎
16:57
|
(65) (66) это да, но это обходится
интересно как обойти (0) |
|||
68
trad
31.08.16
✎
17:07
|
можно предложить не ходить в панель формул, а редактировать непосредственно в ячейке
|
|||
69
mehfk
31.08.16
✎
17:36
|
(68) А после редакирования ячейки ужу можно и в панели формул редактировать.
|
|||
70
mehfk
31.08.16
✎
17:38
|
ИМХОется мне, что 1с-ка пытается поместить текст в убитую таблицу. Значит в (34) я верно нашел ф-цию.
|
|||
71
mehfk
31.08.16
✎
17:40
|
Воспроизводится, даже если создавать таблицу через меню Файл.
|
|||
72
Ёпрст
31.08.16
✎
17:51
|
(68) можно вообще запретить пользоваться штатным мокселем :)
|
|||
73
AL CAPONE
01.09.16
✎
16:45
|
(68)
я писал в (0), что "При редактировании ячейки по кнопке "Свойства" 1с не вылетает, но пользователю это крайне неудобно из-за большого количества текста. Если не пользоваться Enter-ом, а просто кликать в соседнюю ячейку, то отредактированный текст вовсе не меняется в половине случаев и приходится всё делать заново." |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |