Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Закрыть окошко MOXEL (число прочтений - 10235 )
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Закрыть окошко MOXEL
19. Мая 2008 :: 14:59
Печать  
Здравствуйте.

Может я туплю, но как можно закрыть окошко мокселя полученное Таблица.Показать() из кода?
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #1 - 19. Мая 2008 :: 16:14
Печать  
Из синтакс-помощника:
Показать(<?>,,);
Синтаксис:
Показать(<Заголовок>,<ИмяФайла>,<Активизировать>)
Назначение:
Открыть окно редактирования таблицы.
Параметры:
<Заголовок> - необязательный параметр. Заголовок окна редактирования. Если параметр не задан, в заголовке будет выдаваться слово ''Таблица''.
<ИмяФайла> - необязательный параметр. Имя файла для сохранения таблицы. Если параметр задан, то при закрытии окна табличного документа система будет предлагать сохранить документ в файле с указанным именем. Если файла с таким именем не существует, то будет создан новый файл с таким именем. Если параметр опущен или имеет пустое значение, то при закрытии окна табличного документа система не будет предлагать сохранить данные в файле.
<Активизировать> - необязательный параметр. Признак активизации. Число: 1 - активизировать окно табличного документа; 0 - не активизировать окно табличного документа;  -1 (минус единица) - закрыть окно если оно открыто; по умолчанию  1. (необязателен).
Код
Выбрать все
Таблица.Показать(,,-1); 

  
Наверх
 
IP записан
 
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #2 - 19. Мая 2008 :: 17:53
Печать  
Провел следующий эксперимент:

Код
Выбрать все
Процедура ПриАктивацииОкна()
	Перем лКонт;
	_Сервис = СоздатьОбъект("Сервис");
	_ТабличныйДокумент = СоздатьОбъект("ТабличныйДокумент");
	Если _Сервис.АктивныйКонтекст(лКонт)=1 Тогда
		Если ТипЗначенияСтр(лКонт)="Таблица" Тогда
			_ТабличныйДокумент.ЗагрузитьИзТаблицы(лКонт);
			_ТабличныйДокумент.Показать(лКонт);
			лКонт.Показать(,,-1);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
 



1С-ка почему-то закрывается с ошибкой?
Почему это может быть?
1С++ - 3.0 от 16-05-08
FormEx - 86 билд.
Yoksel - 0.3.0.0 HotFix от 19-05-2008.
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #3 - 19. Мая 2008 :: 18:01
Печать  
Не знаю как вместе с Yoksel (не пользуюсь), но обычная таблица закрывается. У меня в пакетной печати так :
Код
Выбрать все
Если ОткрытьФорму(док,КонтФ,1)=1 Тогда      
		КонтФ.Печать();
		КонтФ.Форма.Закрыть(0);
		Если срр_Сервис.АктивныйКонтекст(КонтФ) = 1 Тогда
			Если ТипЗначенияСтр(КонтФ) = "Таблица" Тогда
                                    КонтФ.Напечатать(0);
                                    Контф.Показать(,,-1);
			КонецЕсли;
		КонецЕсли;
	КонецЕсли; 

  
Наверх
 
IP записан
 
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #4 - 19. Мая 2008 :: 18:15
Печать  
при незагруженом Yoksele тоже самое.

Код
Выбрать все
Процедура ПриАктивацииОкна()
	Перем лКонт;
	Если _Сервис.АктивныйКонтекст(лКонт)=1 Тогда
		Если ТипЗначенияСтр(лКонт)="Таблица" Тогда
				лКонт.Показать(,,-1);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
 



1С-ка сворачивается в коврик с ошибкой память не может read
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #5 - 19. Мая 2008 :: 18:19
Печать  
А в отладчике прогонял ? Где вываливается ?
  
Наверх
 
IP записан
 
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #6 - 19. Мая 2008 :: 18:28
Печать  
на строчке:
Код
Выбрать все
лКонт.Показать(,,-1);
 

  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #7 - 19. Мая 2008 :: 18:30
Печать  
А чему равен
Код
Выбрать все
ТипЗначенияСтр(лКонт) 

в отладчике ? Или просто лКонт ?
  
Наверх
 
IP записан
 
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #8 - 19. Мая 2008 :: 18:30
Печать  
А это не может быть связано с тем, что это кусок кода выполняется в процедуре ПриАктивацииОкна() ?
  
Наверх
 
IP записан
 
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #9 - 19. Мая 2008 :: 18:30
Печать  
Alister писал(а) 19. Мая 2008 :: 18:30:
А чему равен
Код
Выбрать все
ТипЗначенияСтр(лКонт) 

в отладчике ?


"Таблица"
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #10 - 19. Мая 2008 :: 18:35
Печать  
Чесно не помню, что это за процедура ПриАктивацииОкна() , может подойдет ПослеОткрытия(Контекст) ?
  
Наверх
 
IP записан
 
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #11 - 19. Мая 2008 :: 18:36
Печать  
Это предопределенная процедура FormEx, вызывается при активации окна.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Закрыть окошко MOXEL
Ответ #12 - 19. Мая 2008 :: 18:48
Печать  
Экспериментировал в своем время с АктивныйКонтекст, когда делал сервисную обработку сохранения mxl в xls. Понял, что действий с окном таблицы лучше не производить. При вызове Показать (,,-1), например, также либо вылет, либо таблица вроде как закрывается, но на деле документ остается открытым, что приводит к утечкам памяти. Т.е., фактически, объект "Таблица", полученный через АктивныйКонтекст, неполноценен.
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #13 - 19. Мая 2008 :: 18:49
Печать  
Проверил у себя 1срр 2.5 formex 78 тоже вылетает.
Подозреваю, что событие наступает при открытии окна, но когда оно еще не до конца создано и отображено.
А вообще это для чего так : только кликнул в окно, а оно раз и закрылось ? Подмигивание
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Закрыть окошко MOXEL
Ответ #14 - 19. Мая 2008 :: 18:55
Печать  
Uzhast писал(а) 19. Мая 2008 :: 18:48:
При вызове Показать (,,-1), например, также либо вылет, либо таблица вроде как закрывается, но на деле документ остается открытым, что приводит к утечкам памяти. Т.е., фактически, объект "Таблица", полученный через АктивныйКонтекст, неполноценен.

Приведенный мной упрощенный код (пакетная печать) 100% рабочий, в том смысле, что народ пользуется для печати актов и счет-фактур ежемесячно (документов 30-150 каждого вида) , вылетов не наблюдалось, док открылся, открылась таблица, док закрылся, пошла печать и таблица закрылась. Правда версии dll не самые последние - подбирал специально. 1cpp 2.5.0.4 2007-10-25 formex 2.0.5.78
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать