Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Список пользователей 1с 7.7 (число прочтений - 21593 )
novichek
Экс-Участник


Re: Список пользователей 1с 7.7
Ответ #15 - 26. Декабря 2008 :: 12:40
Печать  
в обработке переделанная процедурка, должно быть побыстрее.
Сравни со скоростью работы через ДЛЛ.

Самый тормоз тут файловый ввод-вывод. Если бы удалось избавиться от распаковки компаундом в файл можно было бы сделать гораздо быстрее.
  

___________________.ert ( 51 KB | Загрузки )
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Список пользователей 1с 7.7
Ответ #16 - 26. Декабря 2008 :: 12:50
Печать  
compound.dll
на сайте битый архив, в других местах ссылка на сайт. поделись плиз.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
novichek
Экс-Участник


Re: Список пользователей 1с 7.7
Ответ #17 - 26. Декабря 2008 :: 13:02
Печать  
я на своей базе потестил (~100 пользователей)

в при отрытии:
     dll_UsersDef=КаталогИБ()+"UsersDef.dll";
     Если ФС.существуетФайл(dll_UsersDef)=0 Тогда
           Сигнал();
           Предупреждение("Не обнаружена компонента UsersDef.dll! Дальнейшее выполнение обработки невозможно!",5);
           Форма.Закрыть();
           СтатусВозврата(0);
           Возврат;
     КонецЕсли;
     
     Попытка
           ЗагрузитьВнешнююКомпоненту(dll_UsersDef);
           ЮзерДеф=СоздатьОбъект("AddIn.UsersDef");
     Исключение
           Сигнал();
           Предупреждение("Не загружена компонента UsersDef.dll! Дальнейшее выполнение обработки невозможно!",5);
           СтатусВозврата(0);
           Форма.Закрыть();
           Возврат;
     КонецПопытки;


в процедуру "Сформировать":

     Сообщить("Нач1"+ТекущееВремя());
     Для сч = 1 По 100 Цикл
           тз = ДатьСписокПользователей("c:\123.txt");
     КонецЦикла;
     Сообщить("Кон1"+ТекущееВремя());
     
     Сообщить("Нач2"+ТекущееВремя());
     Для сч = 1 По 100 Цикл
           тз = ЮзерДеф.ПолучитьСписокПользователейТЗ(КаталогИБ());
     КонецЦикла;
     Сообщить("Кон2"+ТекущееВремя());


При моем раскладе у меня быстрее раза в 2-1,5 чем через длл. Странно  Нерешительный

ЗЫ: маленькая ошибочка вышла не 100 а 212 юзеров Очень довольный
  

COMPOUND.zip ( 34 KB | Загрузки )
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Список пользователей 1с 7.7
Ответ #18 - 26. Декабря 2008 :: 13:32
Печать  
Прошло 17 минут с момента запуска - все еще лопатит.
файл размером в 1.6 мб.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
novichek
Экс-Участник


Re: Список пользователей 1с 7.7
Ответ #19 - 26. Декабря 2008 :: 13:36
Печать  
Мда, надо было тебе количество итераций поменьше сделать Улыбка
  
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Список пользователей 1с 7.7
Ответ #20 - 26. Декабря 2008 :: 13:37
Печать  
обработка закончена, итого 22 минуты.
выдало: Ошибка Compound №-20
т.к. обернул в попытку все работало.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
novichek
Экс-Участник


Re: Список пользователей 1с 7.7
Ответ #21 - 26. Декабря 2008 :: 14:00
Печать  
По-моему нашел. Попробуй.
  

users_01.zip ( 11 KB | Загрузки )
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать