Имя: Пароль:
1C
1С v8
Форма внешней обработки при открытии сразу закрывается
,
0 mvlad
 
30.04.15
15:05
Конфа Бух 3.0 КОРП
Подключил я внешнюю обработку "Универсальный обмен данными XML" (допилиный немного для нужд заказчика), добавив в модуль объекта функцию СведенияОВнешнейОбработке()
Но при открытии ее она тут же закрывается, хотя если открывать ее через меню Файл-Открыть, то она не закрывается.
Уже голову сломал, почему она сразу закрывается.
Помогите плиз.
1 Мимохожий Однако
 
30.04.15
15:09
Отладчиком пробовал?
2 mvlad
 
30.04.15
15:12
как отладчиком отлаживать внешние обработки, которые открываются программно? я не знаю.

при открытии через Файл-Открыть всё работает нормально тут и отлаживать ничего не надо.
3 Strogg
 
30.04.15
15:14
(2) если открываются программно, значит есть программа, которая должна их открывать. Думаю, определенно так. А вот уже в той программе, можно в определенный момент нажать f11 и провалиться в "ПередОткрытием", а потом в "ПриОткрытии".
4 mvlad
 
30.04.15
15:23
да какая программа. вы что не в курсе как в Бух 3.0 внешние обработки подключаются?
обработина хранится в спр-ке "ВнешниеОтчетыИОбработки" в реквизите с типом ХранилищеЗначения. а открывается она из общей формы "ДополнительныеОбработкиИОтчеты"
отладчиком я дохожу до места
ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма", ПараметрыОбработки, Форма);
по Ф11 туда уже не проваливается.

я миллион внешних обработок уже создал и подключил и все они работают нормально. а это типовой Обмен XML 1с-кий, вот он не хочет нормально работать. что там 1с-овцы сделали, что форма при открытии сразу закрывается?
5 olegves
 
30.04.15
15:24
(2) поставить отладчик в форму выбора дополнительной обработки тебе кто-то запретил?
6 mvlad
 
30.04.15
15:26
так а я по твоему куда ставлю точку останова?
7 Мимохожий Однако
 
30.04.15
15:26
При получении обработки их хранилица, она пишется во временный файл. Вот туда и встань отладчиком. Достаточно заглянуть в темповый каталог и увидишь этот файлик с обработкой.
8 Strogg
 
30.04.15
15:27
(4) тогда смотри (7).
9 Strogg
 
30.04.15
15:28
(7) тока файл может называться по ГУИДу из базы...
10 hhhh
 
30.04.15
15:31
(6) ищи в конфе где элементы этого справочника вынимаются. Где-то в общем модуле. Там есть и вызов. Туда точку останова поставь.
11 mvlad
 
30.04.15
15:32
зачем мне файл из временного хранилища?
я обработину подключил. зачем мне файл, когда ее из временного хранилища берет 1С?

я в (4) уже написал, что дохожу отладчиком до самого вызова внешней обработки, а дальше отладчик уже не идёт.
12 ДенисЧ
 
30.04.15
15:33
(11) Он тебе нужен для того, чтобы пройтись по нему отладчиком
13 mvlad
 
30.04.15
15:40
т.е. в момент, когда 1С создаст в темпе временный файл обработки, мне его открыть в конфигураторе и поставить в нем точку останова?
ща попробую
14 ДенисЧ
 
30.04.15
15:41
(13) Как бы именно это тебе и говорили...
15 ИУБиПовиц
 
30.04.15
15:49
(13) Не знаю как в 3.0 а в 2.0 я делал так, ставил останавливать по ошибке, и в попытке делал а = 1/0, и дальше уже шел отладчиком:). Костыль но работает:)
16 mvlad
 
30.04.15
15:57
проверил - в темпе создается файл с расширением .tmp и он в конфигураторе не открывается.
17 Timon1405
 
30.04.15
16:01
(4) попробуйте скопировать форму у вашей обработки переименовать ее("МояФормаУнивесальногоОбмена"), назначить ее основной, удалить старую форму.
18 mvlad
 
30.04.15
16:09
(15) вставил в процедуру ПриСозданииНаСервере() конструкцию с попыткой а=1/0; и включил останавливать по ошибке.
мне конфигуратор остановил и выдал:
http://i47.fastpic.ru/big/2015/0430/2e/e2a0635688db6b577f9646b50c92032e.png
причем из скрина видно, что отладчик "во внутрь" обработины не вошел. т.е. этот костыль для уф не работает.
19 pavelul73
 
30.04.15
16:13
Команда в сведении о внешней обработке какая прописана?
20 mvlad
 
30.04.15
16:15
(17) не помогло
(19) вот код
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.1.3.1");
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Загрузка 8.3 (для Промежуточной базы)'");
    НоваяКоманда.Идентификатор = "Загрузка83дляПромежуточнойБазы";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    
    Возврат ПараметрыРегистрации;
КонецФункции
21 pavelul73
 
30.04.15
16:19
(20) Попробуйте написать Использование = "ОткрытиеФормы"
22 pavelul73
 
30.04.15
16:21
(21) и ПоказыватьОповещение = Ложь;
23 mvlad
 
30.04.15
16:23
попробовал. не помогло.
24 mvlad
 
30.04.15
16:29
всё. нашел, почему форма при открытии открывалась на доли секунды и сразу закрывалась.
спасибо всем за участие. дело было не в программном коде.
25 pavelul73
 
30.04.15
16:40
а в чем? интересно же. На будущее, мало ли
26 Drac0
 
30.04.15
16:42
(24) учти, для тех, кто в конце топика пишет: "о, нашел проблему и решил. Всем пока," - есть отдельный котел в аду :-)
27 mvlad
 
30.04.15
16:46
Описываю решение:
Для внешних обработок, которые подключаются во внутрь базы, нужно в свойствах формы устанавливать параметр РежимОткрытияОкна = Независимый.
А по умолчанию у этой обработки стоял режим "Блокировать окно владельца".
28 mvlad
 
30.04.15
16:47
ну крови попило, 3 часа времени ушло на поиск решения проблемы.