Имя: Пароль:
 
1C
1C 7.7
v7: AppCrash 1с при открытии документа из печатной формы (предположительно формекс или 1cpp)
0 kirill123
 
18.01.21
15:58
Добрый день.
Если открыть любой документ из печатной формы (с помощью обработки ячейки) - 1с падает в AppCrash.

С помощью формекса был создан всплывающий список.
Соответственно этот список https://c2n.me/4aAYVHy.jpg появляется и при нажатии на документ в журнале документов, и в печатной форме, например, дереве документов.
Если при этом из журнала документов или видимой ТаблицыЗначений - все в порядке. Если из отчета или дерева - падает в appcrash https://c2n.me/4aAZ27J.jpg

Если в дереве отключить вызов этого списка и использовать типовой метод обработки ячейки - документ открывается нормально.
При этом сам формекс (в плане раскрасок и проч) - работает нормально. Баг только при открытии документов из Moxel через списокзначений.

PS: вчера приводили в порядок структуру папок, и столкнулись с тем, что пришлось переприсваивать права на некоторые папки.
По времени проблема совпала. Но права на 1с/Bin, к папкам с базами у всех пользователей открыты.
1 Ёпрст
 
18.01.21
16:10
Ну и в методе Открыть написано что хоть ?
2 kirill123
 
18.01.21
16:20
(1) Выб=0;
    Меню=СоздатьОбъект("СписокЗначений");
    
    Картинка = СоздатьОбъект("Картинка");
    Картинка.Загрузить(КаталогИБ() + "ExtForms\картинки\МойПолныйРядИконок.bmp");
    
    Меню.ДобавитьЗначение("док0","Открыть");

****************тут добавляются другие элементы списка

Сервис=СоздатьОбъект("Сервис");
    Если Сервис.ВыбратьЗначение(Меню,Выб,"",0,2,Картинка)<>0 Тогда
        ОткрытьФорму(Расшифровка);
        Возврат;
    КонецЕсли;



Кода больше, он переплетается с другими процедурами, я сократил, но логику постарался сохранить.
3 kirill123
 
18.01.21
16:26
Поймал такой сейчас момент - если этот список с помощью формекса создавать, не используя пиктограммы https://c2n.me/4aB3PQl.jpg - то все ок.
4 АЛьФ
 
18.01.21
16:26
Версия FormEx? Форма не модально открывается?
5 kirill123
 
18.01.21
16:35
(4) 2.0.5.107
6 Ёпрст
 
18.01.21
17:06
(5) пробуй обновить до последней.
А так, размер картинки какой хоть в пикселях ?
7 Ёпрст
 
18.01.21
17:07
и в Расшифровка, точно ссылка на документ торчит ?
8 Ёпрст
 
18.01.21
17:08
И.. это всё откуда вызывается ? Из ОбработкаЯчейкиТаблицы ?
9 Ёпрст
 
18.01.21
17:08
Или ты перехватываешь ПКМ и подсовываешь своё меню ?
10 kirill123
 
18.01.21
17:24
(4) Упустил про модальность - нет, не модально.
(6) Пробовал, не помогло.

Поймал такой момент - у меня в этот список еще три вложенных (тоже с картинками).
Если хоть один из них отключить/закомментировать - все работает.
Причем парадокс в том - что не коркретный, а любой ))
Я пробовал поочередно отключать - все работает. Как только все включены - падает в ошибку.
11 trdm
 
18.01.21
17:26
(10) Я так полагаю эта менюшка много где используется.
Так что вариант анализировать контекст открытия и лочить картинки.
12 kirill123
 
18.01.21
17:26
(8) Да, оттуда.
Если вызывалось из журнала или ТЗ тот же список - все нормально.
Баг только при выззове из moxel
13 kirill123
 
18.01.21
17:27
(11) Так разные картинки используются в каждом из трех вложенных списков.
А выключить достаточно любой из них. То есть падение не на конкретной картинке.
14 trdm
 
18.01.21
17:27
Что-то не помню как картинки добавлять. А то бы и сам нафигачил...
15 Ёпрст
 
18.01.21
17:29
ну, как вариант, заведи глобальную переменную МояКартинка Экспорт и в ПриНачалеРаботыСистемы установи ей картинки свои, потом уже везде используй.
Проверить падение недолго

ЗЫ: Расшифровка - это у тебя параметр метода ОбработкаячейкиТаблицы(Расшифровка,,,, ) ?
16 kirill123
 
18.01.21
17:38
(15) Я пробовал чуть иначе: определил ее в самом начале, и параметром передавал во вложенные списки, не помогло.

Расшифровка - да, все верно
17 Ёпрст
 
18.01.21
17:44
Падает на какой строке хоть ? В момент ОткрытьФорму или когда ?
18 Ёпрст
 
18.01.21
17:44
И размеры картинки какие ?
19 victuan1
 
19.01.21
04:39
(15) Хочется решения без доработки глобальника, если это тиражируемое решение.
20 Ёпрст
 
19.01.21
09:41
(19) если дело в этом, то доп. глобальник формекса жешь..будет тебе тираж.
21 kirill123
 
19.01.21
10:26
(18) Размеры картинки 5кб, выглядит так https://c2n.me/4aBzqN1.jpg
22 Ёпрст
 
19.01.21
10:36
(21) размеры картинки в пикселях какие?
23 Ёпрст
 
19.01.21
10:37
Высота какая?
24 Djelf
 
19.01.21
10:40
(21) По теме вылета ничего не скажу, тестовую обработку бы...
А вот битность картинок АЛьФ исправил: https://www.1cpp.ru/forum/YaBB.pl?num=1548704831
25 kirill123
 
19.01.21
10:46
(23) 592 * 16
26 Ёпрст
 
19.01.21
10:50
Ради интереса, помести картинку на форму обработки, установт ей свою картинку и ее используй..падает?
27 kirill123
 
19.01.21
11:14
(26) Разместил на форме, но не пойму как "использовать".
https://c2n.me/4aBCxeY.jpg
28 serpentt
 
19.01.21
11:27
(27) может Картинка.УстановитьКартинку("имяРеквизитаКартинкиНаФорме") ?
29 Ёпрст
 
19.01.21
11:31
(27) просто задай идентификатор картинки и его и пихай в список свой
30 kirill123
 
19.01.21
11:43
(29) Заменил старый метод получения картинки во всплыв.списке формекса с такого:

Картинка = СоздатьОбъект("Картинка");
Картинка.Загрузить(КаталогИБ() + "ExtForms\картинки\МойПолныйРядИконок.bmp");

на такой (из библиотеки картинок):

Картинка = СоздатьОбъект("Картинка");
Картинка.Загрузить("МойПолныйРядИконок");

Но к сожалению проблема осталась.
31 Ёпрст
 
19.01.21
12:11
Воспроизвел у себя, не падаете.
Сделай высоту картинки 15..
32 Ёпрст
 
19.01.21
12:12
+ как формируешь список меню, покажи полностью.
+фсо=0 ставишь хоть еще ?
33 Ёпрст
 
19.01.21
12:18
Вот те для примера, усё работает без падения

//*******************************************
Процедура ПриОткрытии()
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.Вывести();
    Таб.ТолькоПросмотр(1);
    Таб.Показать();
КонецПроцедуры
//======================================================================
Процедура ОбработкаЯчейкиТаблицы(Расшифровка,ФСО,Таб,Адрес)
    Фсо=0;
    Сервис = СоздатьОбъект("Сервис");
    Список = СоздатьОбъект("СписокЗначений");
    Список.ДобавитьЗначение(1,"[icon:1]Пункт 1");
    Список.ДобавитьЗначение(2,"[icon:2]Пункт 2");
    Список.ДобавитьЗначение(3,"[icon:3]Пункт 3");
    Список.ДобавитьЗначение(4,"[icon:4]Пункт 4");
    Список.ДобавитьЗначение(0,"-");
    // создаем вложенный список
    СписокДоп = СоздатьОбъект("СписокЗначений");
    СписокДоп.ДобавитьЗначение(551,"Пункт 51");
    СписокДоп.ДобавитьЗначение(552,"Пункт 52");
    СписокДоп.ДобавитьЗначение(553,"Пункт 53");
    СписокДоп.ДобавитьЗначение(554,"Пункт 54");
    // добавляем вложенный список
    Список.ДобавитьЗначение(СписокДоп,"Пункт 5");
    Список.ДобавитьЗначение(6,"Пункт 6");
    Список.ДобавитьЗначение(7,"Пункт 7");
    Картинка = СоздатьОбъект("Картинка");
    Картинка.Загрузить(КаталогИБ() + "ExtForms\1.bmp");
    ПараметрыЦвета = СоздатьОбъект("СписокЗначений");
    ПараметрыЦвета.Установить("ЦветФонаВыделения",255);
    ПараметрыЦвета.Установить("ЦветРамкиВыделения",0);
    Выб = "";
    Если Сервис.ВыбратьЗначение(Список,Выб,"Тестовый выбор значения",0,0,Картинка,ПараметрыЦвета) = 1 Тогда
        Сообщить(Выб);
    КонецЕсли;
    
КонецПроцедуры // ОбработкаЯчейкиТаблицы
34 kirill123
 
19.01.21
13:47
(33) Добавил ФСО, добавил параметр "ПараметрыЦвета", изменил высоту картинки.
В какой-то момент перестало выбрасывать, после добавления ПараметрыЦвета.
Но когда я попробовал убрать кусок с ПараметрыЦвета и потом опять вернуть - опять вылет.
Ощущение, что это какое-то смешение сервера с виндой, 1с с формексом/1срр и погоды ))
Буду пробовать еще ловить.
35 trad
 
19.01.21
14:11
(34) в этом букете не хватает tabledoc.dll ))
36 Злопчинский
 
19.01.21
15:47
(35) простенькое и без табледок можно сделать красивенько
https://content.screencast.com/users/Che66/folders/Capture/media/045c225f-cda5-4f79-b701-5c95a72eb812/LWR_Recording.png
37 Arbuz
 
19.01.21
17:02
(36) дык, у тебя ж не моксель/йоксель табличный, а форма. tabledoc оно для мокселя.
38 Ёпрст
 
19.01.21
21:05
(34) нужен  твой вариант тогда, я просто код с хэлпа взял и привет.
1cpp должна грузиться первой, если че.
39 kirill123
 
21.01.21
12:07
(38) Да уже все коминации перерепробовал, в итоге решил проблему просто заменив одно из трех вложенных меню на "по нажатию".
То есть было так https://drive.google.com/file/d/11NQ6ZWfOlZbBqPV-UYzDclmsT5glCYY2/view?usp=drivesdk
А сделал таким образом: https://drive.google.com/file/d/1UmvIgrGvNFYoOjuc1XgkQh9qb6_U4PnN/view?usp=drivesdk
40 kirill123
 
21.01.21
12:11
(38) Проверил, 1срр и грузится первой.
41 sapphire
 
21.01.21
12:31
(0) 1cpp.dll дважды загружается
42 kirill123
 
21.01.21
13:06
(41) Проверил - нет, по всей базе и extforms упоминается только 1 раз в "ПриНачалеРаботыСистемы".
Но бывает же 1cpp с формексом встроенным, и есть отдельный формекс. У меня отдельный, но если я формекс отключаю - у меня все сыпется (раскраски, сервис и пр.)
43 Ёпрст
 
21.01.21
16:41
(40) какой версии он хоть ?
44 kirill123
 
22.01.21
10:43
(43) 1cpp - 3.2.4.1