Имя: Пароль:
1C
1C 7.7
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
(19) пример
http://catalog.mista.ru/public/202853/

там правда, не фрейм, но это пофик.
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-ом, а просто кликать в соседнюю ячейку, то отредактированный текст вовсе не меняется в половине случаев и приходится всё делать заново."
Программист всегда исправляет последнюю ошибку.