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

#1
Цитата: Andrewalexk от Сегодня в 10:04:)
есть такая НД возможность
ну а смысл такой точности?


Я считаю, что надо использовать именно такую точность, чтобы видеть сколько та или иная операция занимает времени, а не плюс-минус лопата. Это дает точное понимание какие механизмы надо использовать, а какие стараться избегать. У меня многие вещи оптимизированы от и до. Поэтому на базе в несколько сотен ГБ 300 пользователей работали не испытывая проблем в производительности.
#2
:)
есть такая НД возможность
ну а смысл такой точности?
если надо время до секунды то можно так
//*******************************************
Процедура Сформировать() 
   Ч0=0;М0=0;С0=0;
   Ч1=0;М1=0;С1=0;
   Начало=ТекущееВремя(Ч0,М0,с0);
   Сообщить(Начало,"i");
   ит=0;
   Время0=3600*Ч0+60*М0+с0;
   Пока 1=1 Цикл
      КонецЛи=ТекущееВремя(Ч1,М1,с1);
      Время1=3600*Ч1+60*М1+с1;
      Если Время1>= Время0+секс Тогда
         Сообщить(КонецЛи+"("+ит+")","!");
         Прервать;
      КонецЕсли;
      ит=ит+1;
   КонецЦикла;
КонецПроцедуры
#3
Я вот так время засекаю:
НачВремя = _GetPerformanceCounter();
	
итПац.ДобавитьИндекс("Элем", "*ТекущийЭлемент", 0);
	
Сообщить("Индекс * по " + ВыбКолвоСтрок + " строкам = "+(_GetPerformanceCounter()-НачВремя)/1000 + " с.");

Тогда точность до миллисекунды.
#4
Дружественные проекты / Re: 1с++ Индексированная табли...
Последний ответ от Andrewalexk - 27 октября 2026, 12:17
пардон
все ок
#5
Дружественные проекты / Re: 1с++ Индексированная табли...
Последний ответ от Andrewalexk - 27 октября 2026, 11:32
:)
быстрее
но теперь разность не але

итз1.загрузить(тз1); 
итз1.ДобавитьИндекс("Пациент","*"+"Пациент");       
сообщить(текущеевремя()+" "+итз1.Количествострок());
итз2.загрузить(тз2); 
итз2.ДобавитьИндекс("Пациент","*"+"Пациент");       
сообщить(текущеевремя()+" "+итз2.Количествострок()+"("+НомерПериода+")");
итз2.Разность(итз1,"Пациент","Пациент",0);
сообщить(текущеевремя()+" "+итз1.Количествострок()+"-"+итз2.Количествострок());

11:30:27 73633
11:30:27 247818
11:30:28 73633-247818
#6
Дружественные проекты / Re: 1с++ Индексированная табли...
Последний ответ от Andrewalexk - 27 октября 2026, 10:49
:)
спс за *
#7
Если же не хочется уходить от сетевой версии, то для нее есть расширение Вирт:V7DBNet - отлично работает на небольших сетях. У меня несколько лет у 10 пользователей работало и никаких проблем не было. Скорость, конечно, поменьше, чем у терминала, но в разы выше, чем у стандартной сетевой. Раньше больше 3-х пользователей было платно, но сейчас это совершенно бесплатная разработка. Причем она убирает многие проблемы сетевой. Самое главное, что файлы базы не надо размещать в сетевом доступе. В общем, рекомендую!
#8
7.7 / Re: ЭтРН и 7.7
Последний ответ от sau - 24 октября 2026, 12:54
Что конкретно нужно? Отправить транспортную накладную в СБИС из 1С от грузоотправителя?
#9
Если же вопрос про разницу в скорости между файловым и терминальным режимом работы, то это вроде как общеизвестный факт. Сброс локального кэширования в файловой версии даёт сильное падение. SMB1 (во времена которой 7.7 писалась) под Win10 отключили (из-за всяких WannaCry), а современный SMB3 оптимизирован под передачу больших файлов, в то время как 7.7 делает кучу мелких сетевых запросов - и получаются ещё большие торомоза.
На файловой - только ларьки на 1-2 компьютера. Всё остальное - в терминале, при необходимости - ещё и в SQL.
#10
7.7 / Re: ЭтРН и 7.7
Последний ответ от Харлампий Дымба - 24 октября 2026, 01:23
Рабочая обработка для выгрузки 1 титула.
https://disk.yandex.ru/d/CSB3ggLkFw09bw
Можно использовать как шаблон - вся логика заполнения данных вынесена в процедуру ЗаполнимПеременныеЗависящиеОтДокумента().
Своё заполнение закомментировал, но оставил как пример.
Спарсил формат обмена в таблцу ЭлементыФайлаОбмена - удобнее отлаживать логику.
Полученные XML проверяю через Контур- удобно.
Можно вызывать как саму по себе, так и для выгрузки непосредственно из документа:
Процедура ПоКнопкеВыгрузитьЭТрн()
 СписокПараметров=СоздатьОбъект("СписокЗначений");
 СписокПараметров.Установить("Документ",Контекст);
 //так
 ОткрытьФорму("Отчет",СписокПараметров,КаталогИБ()+"ExtForms\ВыгрузкаЭТрН.ert");
 //или так
 ОткрытьФорму("Обработка.ВыгрузкаЭТрН#",СписокПараметров);
КонецПроцедуры