Последние сообщения

#1
7.7 / Сжатие при отправке JSON
Последний ответ от SnakePlisskin - Вчера в 10:46
Доброго дня, господа!
Отправляю на сайт файлы JSON с помощью карлика, файлы разрослись уже сильно, умеет ли карлик gzip-сжатие при передаче JSON на уровне HTTP ?
#2
FormEx / Re: Глобальная_ПриВыбореЗаклад...
Последний ответ от Грузчик - Вчера в 10:13
Цитата: Харлампий Дымба от 30 июня 2026, 00:10Посмотри ещё обсуждение к релизу 2.0.5.194
Спасибо, буду Перехватчиком играться.

Цитата: Харлампий Дымба от 29 июня 2026, 23:42Локальная ПриЗакрытии вызывается, даже если в Глобальная_ПриЗакрытии установлен СтатусВозврата(0)
Согласен, буксую. Подумал "раз форма не закрывается, значит, ПриЗакрытии не вызывается". А надо было просто проверить.
#3
FormEx / Re: Глобальная_ПриВыбореЗаклад...
Последний ответ от Харлампий Дымба - 30 июня 2026, 00:10
Цитата: Грузчик от 25 июня 2026, 12:47Или я не вижу чего-то очевидного?
Посмотри ещё обсуждение к релизу 2.0.5.194 - последнее на другом форуме. Там как раз и обсуждалась возможность сделать развилку в поведении - задавать в глобальной процедуре порядок вызова локальной.
Как я понял - много нюансов в поведении разных предопределенных процедур. Существующего функционала - за глаза.
#4
FormEx / Re: Глобальная_ПриВыбореЗаклад...
Последний ответ от Харлампий Дымба - 29 июня 2026, 23:42
Локальная ПриОткрытии не вызывается, если в Глобальная_ПриОткрытии установлен СтатусВозврата(0)
Локальная ПриЗакрытии вызывается, даже если в Глобальная_ПриЗакрытии установлен СтатусВозврата(0)

Для некоторых предопределенных процедур (и ПриВыбореЗакладки в их числе) СтатусВозврата() не имеет смысла и не работает.
Так что тут логично, что вызываются и глобальная и локальная процедуры.



#5
FormEx / Re: Глобальная_ПриВыбореЗаклад...
Последний ответ от item - 29 июня 2026, 15:05
Глобальная_ПриЗаписи тоже не отменяет локальную.
#6
FormEx / Глобальная_ПриВыбореЗакладки и...
Последний ответ от Грузчик - 25 июня 2026, 12:47
Делаю по инструкции из formex.als:
Процедура Глобальная_ПриОткрытии(Конт)
	СтатусВозврата(0);
	Возврат;
КонецПроцедуры
Как и ожидается, вызов локальной ПриОткрытии() не происходит, формы не открываются.
То же самое с Глобальная_ПриЗакрытии(Конт), формы не закрываются, Предприятие можно убить только из Диспетчера.
Далее я пишу:
Процедура Глобальная_ПриВыбореЗакладки(Конт, Номер, Значение)
	СтатусВозврата(0);
	Возврат;
КонецПроцедуры
При этом локальная ПриВыбореЗакладки вызывается.
Вопрос: такое различное поведение перенаправлений в глобальник -- это нормально, и так и должно быть? Или я, как обычно, не вижу чего-то очевидного?
#7
7.7 / Re: Сохранить mxl в Excel
Последний ответ от leov-001 - 19 июня 2026, 11:23
Выгружаем из 1С в EXCEL с помощью ADO. Часть II
https://www.obrabotki.com/1s-excel-ado-2/
Цитата
СтрокаПодключения = "
|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(ТекСтрокаПодключения);
            Возврат лРез;
        Исключение
            ОписаниеОш = ОписаниеОшибки();
			Сообщить(ОписаниеОш);
        КонецПопытки;
	КонецЦикла;
КонецФункции
#8
7.7 / Re: Определить актуальность ТА...
Последний ответ от Злоп - 17 июня 2026, 19:59
Цитата: Ветер в поле от 09 июня 2026, 18:11Красивое решение! Пожалуй на нем стоит и остановиться.

Внедрил в "продакшен"
#9
7.7 / Re: Сохранить mxl в Excel
Последний ответ от Злоп - 17 июня 2026, 00:58
у завалах у меня лежит экзешник xls2xlsx.exe
Писал Кирпич с Мисты
#10
7.7 / Re: Обсуждение накопленного
Последний ответ от Харлампий Дымба - 16 июня 2026, 23:30
Битый час пытался воткнуть, что сломалось в Отладчике - оказалось багофича 1с:
Отладчик не видит локальные переменные глобального модуля в глобальных процедурах и функциях, вызванных из других мест.
При попытке вычислить выражение даёт ошибку типа:
"ЛокальнаяПеременнаяГлобальногоМодуля = Ошибка в выражении!"
При этом всё нормально работает, переменная имеет значение. Но вот Отладчик её отказывается показывать.

Чтоб было понятнее - глобальный модуль такой:
Перем ЛокальнаяПеременнаяГлобальногоМодуля;
Процедура Проверка() Экспорт
    ЛокальнаяПеременнаяГлобальногоМодуля = 1;
КонецПроцедуры
ЛокальнаяПеременнаяГлобальногоМодуля = 0;

Вызов из обработки такой:
Процедура Сформировать()
    Проверка()
КонецПроцедуры

Похожая фишка, насколько помню, есть и объекта "Запрос", но вот на такой каприз Отладчика до сего дня не натыкался.