Цитата: Харлампий Дымба от 30 июня 2026, 00:10Посмотри ещё обсуждение к релизу 2.0.5.194Спасибо, буду Перехватчиком играться.
Цитата: Харлампий Дымба от 29 июня 2026, 23:42Локальная ПриЗакрытии вызывается, даже если в Глобальная_ПриЗакрытии установлен СтатусВозврата(0)Согласен, буксую. Подумал "раз форма не закрывается, значит, ПриЗакрытии не вызывается". А надо было просто проверить.
Цитата: Грузчик от 25 июня 2026, 12:47Или я не вижу чего-то очевидного?Посмотри ещё обсуждение к релизу 2.0.5.194 - последнее на другом форуме. Там как раз и обсуждалась возможность сделать развилку в поведении - задавать в глобальной процедуре порядок вызова локальной.
Процедура Глобальная_ПриОткрытии(Конт)
СтатусВозврата(0);
Возврат;
КонецПроцедуры
Процедура Глобальная_ПриВыбореЗакладки(Конт, Номер, Значение)
СтатусВозврата(0);
Возврат;
КонецПроцедуры
СтрокаПодключения = "
|Provider=Microsoft.Jet.OLEDB.4.0;
|Data Source="+ИмяФайлаЭксельНовый+";
|Extended Properties=""Excel 8.0;HDR=YES"";";
Connection = Новый COMОбъект("ADODB.Connection");
Connection.ConnectionString = СтрокаПодключения;
Connection.Open();
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText = "CREATE TABLE [МояТаблица]
|(Символьный char(255), Дата date, Целый int, Дробный float)";
Command.Execute();
Command.CommandText = "INSERT INTO [МояТаблица]
|(Символьный, Дата, Целый, Дробный)
|values ('АБВГДЕЁ', '12/4/1955', '1234567', '12345,6789')";
Command.Execute();
Command = Неопределено;
Connection.Close();
Функция ПолучитьКоннектExcel(пИмяФайла)
лРез = СоздатьОбъект("ADODB.Connection");
СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + пИмяФайла + "; Extended Properties=""Excel $ver$.0 ;HDR=NO;IMEX=1"";";
СтрокаПодключения12 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + пИмяФайла + "; Extended Properties=""Excel 12.0 Xml;HDR=No;IMEX=1"";";
СтрокаПодключенияACE= "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " + пИмяФайла + "; Extended Properties=""Excel 12.0 ;HDR=NO;IMEX=1;""";
Попытка
лРез.Open(СтрокаПодключения12);
Возврат лРез;
Исключение
ОписаниеОш = ОписаниеОшибки();
Сообщить(ОписаниеОш);
КонецПопытки;
Попытка
лРез.Open(СтрокаПодключенияACE);
Возврат лРез;
Исключение
ОписаниеОш = ОписаниеОшибки();
Сообщить(ОписаниеОш);
КонецПопытки;
Для Версия = 8 По 15 Цикл
//подключение к источнику данных
ТекСтрокаПодключения = СтрЗаменить(СтрокаПодключения, "$ver$", Строка(Версия));
Попытка
лРез.Open(ТекСтрокаПодключения);
Возврат лРез;
Исключение
ОписаниеОш = ОписаниеОшибки();
Сообщить(ОписаниеОш);
КонецПопытки;
КонецЦикла;
КонецФункции
Цитата: Ветер в поле от 09 июня 2026, 18:11Красивое решение! Пожалуй на нем стоит и остановиться.
Перем ЛокальнаяПеременнаяГлобальногоМодуля;
Процедура Проверка() Экспорт
ЛокальнаяПеременнаяГлобальногоМодуля = 1;
КонецПроцедуры
ЛокальнаяПеременнаяГлобальногоМодуля = 0;
Процедура Сформировать()
Проверка()
КонецПроцедуры