TurboBL

Публикация № 14299

Программирование - Внешние компоненты

207
Ускорение работы 1С.
Обращение к методам/переменным модуля через его Контекст.

Версия: 1.1.0.6

КРАТКИЙ ЭКСКУРС В МЕХАНИЗМ ВЫЗОВА МЕТОДОВ.
ДЛЯ ВСЕХ
Что происходит внутри 1С, когда мы пишем спр.ТекущийЭлемент()?
1С преобразует имя метода ТекущийЭлемент в соответствующий ему
номер, и вызывает метод объекта по номеру.
НО, клинические исследования показали, что для ЛЮБОГО объекта 1С
используется один алгоритм такого преобразования, реализованный "В ЛОБ",
и котрый заключатся в простом последовательном переборе всех имен методов
объекта и сравнении их с искомым.
Соответственно, чем больше номер метода, тем большее время занимает такой поиск.
Например, для того же "ТекущийЭлемент" перед реальным вызовом функции происходит
перебор 88 названий методов.
Аналогично и для свойств объектов.
ДЛЯ ЗНАКОМЫХ С "RAINBOW"
Как известно, для поиска номера метода применяется
virtual int CBLContext::FindMethod(const char* name);
Как оказалось, НИ В ОДНОМ из объектов 1С данный метод не
переопределен. Перехват вызова функций различных объектов
показал лень и мягко говоря, не вполне компетентность людей,
писавших этот код.
Вобщем, когда вызывается FindMethod, из него вызываются:
GetNMethods(), GetMethodName(i,0), GetMethodName(i,1)
т.е. FindMethod работает примерно так:

for(int i=0;i<GetNMethods();i++)
{
if(!stricmp(name,GetMethodName(i,0))
return i;
if(!stricmp(name,GetMethodName(i,1))
return i;
}
return -1;

Понятно, хотелось добиться универсальности и простоты, что и достигнуто.
Но при этом:
Некомпетентность: GetNMethods можно вынести из цикла.
Лень: не зря же FindMethod виртуальная, почему же она
не переопределена ни в одном из наследуемых классов для более
оптимального поиска?
Аналогичная ситуация и с FindProp.

ЦЕЛЬ КОМПОНЕНТЫ
Дабы устранить эту досадную оплошность при поиске методов и свойств,
мною и была создана данная ВК. Суть ее работы в следующем:
оптимизация алгоритма преобразования имен методов/свойств в их номера.
Попутно сделана возможность обращаться к методам и переменным модулей
ГрупповыхКонтекстов.

КАК ИСПОЛЬЗОВАТЬ

Процедура ПриНачалеРаботыСистемы()
    ЗагрузитьВнешнююКомпоненту("turbobl.dll");



Вот и все.
Более никаких изменений в существующем коде конфигурации не требуется.
При загрузке компонента берет на себя всю работу по поиску номеров
методов и свойств объектов 1С.
Компонента использует "хитрый" способ загрузки, позволяющий ей загружаться
без регистрации в реестре, те ВСЕГДА и для любого пользователя.

ВЫЗОВ МЕТОДОВ МОДУЛЕЙ ГРУППОВЫХ КОНТЕКСТОВ
Да!!! Свершилось!!!
Теперь можно через контекст обратится к методам и переменным модуля контекста.
Например:

конт=0;
ОткрытьФорму("Справочник.Товары",конт);
конт.Печать();    //где Печать() - процедура в модуле ФормыСписка справочника.

//где Печать() - процедура в модуле ФормыСписка справочника.
или например:
// в модуле проведения дока Процедура

// в модуле проведения дока
Процедура ЭтоДокСТоваром()
    возврат 1;
КонецПроцедуры;

Процедура ОбработкаПроведения(парам)
    глНекаяГлобФункция(Контекст);
    ....
        
// В ГМ:
Процедура глНекаяГлобФункция(Конт)
    Если Конт.ЭтоДокСТоваром()=1
    .......

ОБЪЕКТ "УскорительГК"
Объект "УскорительГК" был предназначен для возможности обращения
через контекст к методам и переменным ВНЕШНИХ ОТЧЕТОВ.
Теперь это делается автоматически, и его метод "Ускорить" ничего не делает.
Теперь этот объект можно использовать для проверки того, что TurboBL загружена:

 

Попытка
    СоздатьОбъект("УскорительГК");
    Загружена=1;
Исключение
    Загружена=0;
КонецПопытки;



Объект "Addin.TurboBL" теперь несуществует, и его создание нельзя использовать
для проверки загруженности компоненты.

ПРИМЕРЫ.
В поставку входит небольшая демобаза, для демонстрации работы компоненты.
Скопируйте turbobl.dll в bin 1С, и откройте базу.
Понажимайте на кнопочки, запускающие разные тесты.
В колонке "До" будет отображатся время выполнения (мсек) каждого теста.
Нажмите кнопку "Загрузить TurboBL".
Снова позапускайте тесты.
В колонке "После" отобразится новое время выполнения каждого теста.
Почуствуйте разницу!

СОВМЕСТИМОСТЬ С 1С++
Функционал компоненты включен в состав 1С++, поэтому применять их совместно нет смысла.

БЛАГОДАРНОСТИ
Выражаю глубокую признательность Дмитрию Гусеву aka Deb,
за плодотворное сотрудничество и помощь в тестировании компоненты.
Алексею Федорову aka АЛьФ, за сотрудничество и подсказки по правильной работе таблиц.

PS
Данная разработка не придерживается технологии Внешних Компонент.
"1С-Совместимо" нет и не будет.
Используйте на свой страх и риск.

ИСТОРИЯ ВЕРСИЙ
Версия 1.1.0.1
- Радикально упрощено использование компоненты.
- Добавлена возможность вызова методов модулей через контекст.
- Добавлена проверка установленных компонент при загрузке.
- Исправлены мелкие баги.

Версия 1.1.0.2
- Исправлена ошибка потери возвращаемого значения из функции, вызываемой через Контекст
- Исправлена ошибка, приводящая в определенных ситуациях к вылету 1С

Версия 1.1.0.3
- Изменен способ загрузки ВК, что уменьшило ее размер и позволило ей загружаться всегда.
- Добавлено автоматическое ускорение контекстов внешних отчетов.
- Исправлено обращение к шаблонам таблиц в форме при вызове функций модуля через контекст
- Исправлены мелкие баги.

Версия 1.1.0.4
- Исправлена ошибка при выполнении запросов

Версия 1.1.0.5
- Компонента доработана для работы на многопроцессорных системах и процессорах с HT.
- Компонента доработана для работы со включенным DEP.
- Оптимизировано обращение к полям ТаблицыЗначений.

Версия 1.1.0.6
- Исправлена работа при использовании #ЗагрузитьИзФайла.

207

Скачать файлы

Наименование Файл Версия Размер
TurboBL
.zip 35,81Kb
25.09.09
564
.zip 35,81Kb 564 Скачать бесплатно
Версия 1.1.0.5
.zip 39,05Kb
25.09.09
140
.zip 39,05Kb 140 Скачать бесплатно
Версия 1.1.0.6
.zip 39,13Kb
25.09.09
668
.zip 39,13Kb 668 Скачать бесплатно

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. mdzen 237 15.08.06 21:40 Сейчас в теме
Покрутил . Вещь!!! Особенно при работе с ТЗ и групповым контекстом разница во времени весьма ощутимая, после загрузки ВК это раз в 5-10 быстрее.
Особенно порадовало, что можно через контекст обратится к методам и переменным модуля контекста.
Получается весьма прикольно.
У вас сказано, что "Функционал компоненты включен в состав 1С++", тогда вопрос:
Где ее включить в 1С++?
2. mdzen 237 15.08.06 21:49 Сейчас в теме
Вроде нашел. По всей видимости следующий код включает ускоритель в 1С++:
Попытка
СоздатьОбъект("УскорительГК");
Загружена=1;
Исключение
Загружена=0;
КонецПопытки;
3. orefkov 1972 15.08.06 23:29 Сейчас в теме
В 1С++ этот функционал по умолчанию включен, те достаточно сделать
ЗагрузитьВнешнююКомпоненту("1cpp.dll")

Но пока в 1С++ более старая версия, в которой несовсем правильно работают таблицы
при вызове методов модуля через контекст, и нет автоускорения контекстов внешних отчетов.
4. orefkov 1972 15.08.06 23:31 Сейчас в теме
Да, не стоит думать, что 1С будет после этой ВК "летать".
Все-таки основное время в 1С тратится на доступ к базе данных, хотя в-среднем выигрыш по скорости будет, в районе 10-15 процентов.
5. CheBurator 16.08.06 00:42 Сейчас в теме
да, все хорошо... но прямо как в анекдоте (вот еще вчера с глюком формекса в составе 1с++ встретился)
- Скажите, это правда что вы виграли в спортлото "Волгу"?
- Правда, но не "Волгу", а 1000 руб, и не в Спортлото, а в преферанс, и не выиграл, а проиграл...
;-)
6. antonrost 16.08.06 09:03 Сейчас в теме
Валится 1С при "Запрос.Выполнить(...)"
:(((((((
7. orefkov 1972 16.08.06 11:06 Сейчас в теме
8. antonrost 16.08.06 11:08 Сейчас в теме
Вот это оперативность !!!!
:)))
+10, однозначно. С нетерпением ждем новых свершений.
9. orefkov 1972 16.08.06 11:22 Сейчас в теме
Оказывается, когда делаешь Запрос.Выполнить, 1С генерит исполняемые модули, видимо для вычисления внешних функций.
Но чем-то эти модули отличаются, тк при вызове одного из их методов, 1С падает.
10. корум 311 16.08.06 12:36 Сейчас в теме
+1.

осталось телепат скрестить с 1с++, и научить её ускорять ДБФ.
И получится НЕЧТО!
11. JohnyDeath 293 16.08.06 14:46 Сейчас в теме
корум, а чем тебя скрипты Intellisense не устраиваютт?
12. Saguna 10 16.08.06 16:29 Сейчас в теме
Валится при попытке выполнения кода управления таблицей в режиме ввода,
например:
Таблица.Область(, 1,, ФиксКол).ШиринаСтолбца(15);
13. orefkov 1972 16.08.06 17:24 Сейчас в теме
14. корум 311 16.08.06 19:51 Сейчас в теме
(JohnyDeath) Всё нравится. Но... 5-6 ДЛЛ хуже, чем 1. Забыть не получится ;о)
15. O-Planet 6959 17.08.06 00:01 Сейчас в теме
Ты, конечно, монстЁр, но кое в чем не прав.

> Некомпетентность: GetNMethods можно вынести из цикла
Уверен на 90%, что это НЕ функция, как таковая, а on-line определение, типа:

class BBB
{ void *ptr;
...
public:
int GetNMethods(int i) { return ptr+i; }
}

Поэтому, выносить его нет смысла.

> Лень: не зря же FindMethod виртуальная, почему же она
не переопределена ни в одном из наследуемых классов для более
оптимального поиска?
Это не лень, а осмотрительность. Функции позднего связывания, конечно, могут серьюзно украсить алгоритм и придать ему супер крутизну, но только не скорость выполнения! Это чуть ли не самый ресурсоемкий и медленный механизм. В предложенном тобой случае 1С работала бы медленнее раза в полтора.
16. O-Planet 6959 17.08.06 00:05 Сейчас в теме
В смысле
int *GetNMethods(int i) { return ptr+i; }
конечно, а ПТР не void* а int*
17. orefkov 1972 17.08.06 08:30 Сейчас в теме
(O-Planet) - типа наезд ради наезда?
> Уверен на 90%, что это НЕ функция, как таковая, а on-line определение, типа:

> class BBB
> { void *ptr;
> ...
> public:
> int GetNMethods(int i) { return ptr+i; }
> }

> Поэтому, выносить его нет смысла

Ты хоть 1CHeaders смотрел когданить, в 1С++ например?
GetNMethods имеет такое объявление
virtual int GetNMethods();
А виртуальные функции не инлайнятся.

> Это не лень, а осмотрительность.
> Функции позднего связывания, конечно, могут серьюзно украсить алгоритм
> и придать ему супер крутизну, но только не скорость выполнения!
> Это чуть ли не самый ресурсоемкий и медленный механизм.
> В предложенном тобой случае 1С работала бы медленнее раза в полтора.
Странно, я как раз это реализовал (переопределение FindMethod в конечных классах)
и заработало быстрее
18. orefkov 1972 17.08.06 08:34 Сейчас в теме
(Saguna)
У меня не валится. Кинь мне пример таблицы, на которой у тебя падает
48. support 4437 31.08.06 14:20 Сейчас в теме
а как быть с контекстом документа:
Код
Док= СоздатьОбъект("Документ.ПродажаЧерезФирму");
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()=1 Цикл
   ОткрытьФорму(Док.ТекущийДокумент(),КонтДок);
   КонтДок.ЗаполнитьПоДокументамЗаДень();
   КонтДок.Записать();
.....
Показать полностью

выдает:
КонтДок.Записать();
{C:\DORZH\DB77\DB_SOUZ\ПЕРЕЗАПОЛНИТЬОБЩИЕНАКЛАДНЫЕ.ERT(18)}: Данная команда не может выполняться в формуле элемента диалога!
можно как-нибудь сохранить документ?
19. 17.08.06 11:02 Сейчас в теме
to O-Planet
>> Некомпетентность: GetNMethods можно вынести из цикла
>Уверен на 90%, что это НЕ функция, как таковая, а on-line определение, типа:
...
>Поэтому, выносить его нет смысла.

Не on-line, а очевидно inline? Не могет: она виртуальная. Интереснее другое: почему ее компилятор за цикл не вынес?

>> Лень: не зря же FindMethod виртуальная, почему же она не переопределена ни в одном из наследуемых классов для более
>>оптимального поиска?
>Это не лень, а осмотрительность. Функции позднего связывания, конечно, могут серьюзно украсить алгоритм и придать ему супер крутизну, но только не скорость выполнения!

Если так рассуждать, то тогда опять же, какого х. делать ф-цию виртуальной, если все равно не переопределять. Ведь вызов виртуала хоть на чуть-чуть, но медленнее вызова невиртуала.

20. orefkov 1972 17.08.06 11:10 Сейчас в теме
Компилятор не может делать предположений о том, что GetNMethods каждый раз возвращает одно и то же значений, тк не видит ее реализации.
21. orefkov 1972 17.08.06 11:29 Сейчас в теме
Глюк с таблицей (Saguna) исправлен.
Номер версии менять не стал.
Кто уже скачивал 1.1.0.4 - скачайте еще раз пжста.
22. JohnyDeath 293 17.08.06 14:44 Сейчас в теме
(корум) >(JohnyDeath) Всё нравится. Но... 5-6 ДЛЛ хуже, чем 1. Забыть не получится ;о
Дык ни одной длл-кой больше не станет! Это скрипты для телепата! Подробнее можешь почитеть здесь: http://www.script-coding.info/Intellisense.html
23. корум 311 17.08.06 15:45 Сейчас в теме
(JohnyDeath) и таки ви мне будете говорить за интеллисенса?
Ну не надо, стоит уже год.
Телепат (+опенконф, естессно) подкупает своей открытостью, 1с++ - всеобъемлемостью. По крайней мере, пока. 1с++ = 1с++ плюс turbobl плюс FormEx плюс ещё что-то.
24. 21.08.06 11:49 Сейчас в теме
А есть ли возможность выложить дебаг версию DLL?
Просто где-то она работает (Сервер 2003), а где-то (локальная машина) не работает.
При запуске 1С, она пишет внизу "Выполнение обработки" и через 2-3 сек. закрывается.
Потом приходится заходить монопольно чтобы восстановить индексы и картина повторяется.
Может быть не срабатывает хук на CBLContext::FindMethod, но это визуально же не определишь, а копаться с отладчиком не очень хочется, но видимо прийдется...
25. orefkov 1972 21.08.06 11:57 Сейчас в теме
Используются ли еще какиенить ВК?
Не лежит ли где-нить на локальной машине старая версия TurboBL?
26. 21.08.06 12:38 Сейчас в теме
В самое программе никакие сторонние ВК не используются.
Для конфигурирования подключен ОпенКонф + Телепат + Intellisense.
Сейчас проверил, на сервере просто стоит Опенконф+Телепат.
Удалил Intellisense на локальной машине - то же самое.
Локальные машина: Win2k3 RUS на AMD Athlon 3000+ и Win2k3 RUS на Intel Prescott 3.0Ghz с вкл. HT, на обеих вылетает.
Проверил, если на Win2k3 RUS на AMD Athlon 3000+ включаю 1С в список исключаемых из DEP, то работает.
На Win2k3 RUS на Intel Prescott 3.0Ghz с вкл. HT - не помогло...

P.S. Локально TurboBL нигде не лежит (установлена первый раз, копированием в каталог базы).
27. 21.08.06 12:49 Сейчас в теме
28. 21.08.06 21:31 Сейчас в теме
Вроде как разобрались, это с машинкой что-то...
Вообщем если у кого-то 1С будет закрываться при запуске, меняйте настройки DEP.
29. orefkov 1972 21.08.06 22:29 Сейчас в теме
(InSTaNT)
Примерно понял в чем дело, завтра вышлю тебе для проверки исправленую версию
30. orefkov 1972 22.08.06 10:27 Сейчас в теме
InSTaNT
Кинь мне свое мыло еще раз
31. orefkov 1972 22.08.06 11:54 Сейчас в теме
Ошибки исправлены.

Версия 1.1.0.5
- Компонента доработана для работы на многопроцессорных системах и процессорах с HT.
- Компонента доработана для работы со включенным DEP.
- Оптимизировано обращение к полям ТаблицыЗначений.
32. JohnyDeath 293 22.08.06 12:13 Сейчас в теме
Александр, твоя оперативность поражает!
А в 1с++ эти изменения будут внесены?
33. orefkov 1972 22.08.06 12:18 Сейчас в теме
Да. Сейчас как раз ведется тестирование.
34. artbear 1134 23.08.06 12:41 Сейчас в теме
Новая версия ТурбоБЛ включена в 1С++. Брать как обычно, в ночной сборке, начиная с сегодняшнего числа.
35. Jkey 13 25.08.06 09:28 Сейчас в теме
Александр, Есть проблема, пользовал версию 1.1.0.2.
Модули справочников, доков, модулей проведения доков
использовал из текстовых файлов
например
#ЗагрузитьИзФайла Reference\НомеклатураФС.txt //модуль формыСписка Номенклатуры
в процессе работы 1С в режиме Предприятия правлю текстовые файлы модулей, изменения отражаются сразу.
Заменил на 1.1.0.5 изменения текстовых файлов модулей не отражаются, пока не закрою 1С и снова не запущу.
Откатил обратно на версию 1.1.0.2
все заработало
Просьба проверить.
36. orefkov 1972 25.08.06 09:58 Сейчас в теме
(JKey)
Проблема исправлена. Качать 1.1.0.6
В 1С++ исправления внесены.
37. Jkey 13 25.08.06 10:04 Сейчас в теме
Спасибо Александр. Работает.
38. maximum 25.08.06 11:38 Сейчас в теме
последняя версия Ошибка: форма открывается, но 1с-ина матерится
Конт.Проверка();
{Обработка.Тест.Форма.Модуль(129)}: Поле агрегатного объекта не обнаружено (Проверка)
39. orefkov 1972 25.08.06 11:46 Сейчас в теме
Нажми кнопочку "Загрузить TurboBL", закрой форму и попробуй снова
40. orefkov 1972 25.08.06 11:48 Сейчас в теме
Ктонить может подтвердить баг?
У меня работает.
41. maximum 25.08.06 11:50 Сейчас в теме
"Нажми кнопочку "Загрузить TurboBL", закрой форму и попробуй снова"
так и делаю
42. imsoftware 173 28.08.06 10:28 Сейчас в теме
Компонента просто замечательная! Все работает без ошибок с весьма ощутимым приростом в скорости. Тесторовалось на конфигурации по переносу\синхронизации ИБ. Автору плюсик к рейтингу.
43. 28.08.06 10:53 Сейчас в теме
Александр, а можно в нее добавить еще один небольшой сервис?
На машинах win XP или 2K не работает поиск по букве в выпадающем списке значений, а это очень не удобно! (пример: открываем Анализ субконто, вид субконто 1 и пытаемся набрать ...контрагенты а в 98 работает),
P.S. нечто похожее видел в FormEX , однако 100% работоспособности не добился
46. Бракозябра 30.08.06 13:37 Сейчас в теме
+1
В чистой конфигурации в ГМ пишу три строчки
Процедура ПриНачалеРаботыСистемы()
ЗагрузитьВнешнююКомпоненту("TurboBL.dll");
КонецПроцедуры // ПриНачалеРаботыСистемы()
Сохраняю. Запускаю1С и … 1С падает.
Но если не «три строчки», то все нормально.
TurboBL.dll v. 1.1.0.6
1С v. 7.70.025
OS WinXP home 1SP
47. orefkov 1972 30.08.06 14:11 Сейчас в теме
В чистой конфигурации напиши три строчки:
Код
Процедура ПриНачалеРаботыСистемы()
    СоздатьОбъект("Справочник");
КонецПроцедуры // ПриНачалеРаботыСистемы()
Показать полностью

Сообщи результаты
49. Бракозябра 31.08.06 11:28 Сейчас в теме
50. MAXXL 8 03.09.06 12:48 Сейчас в теме
Присоединяюсь к последнему вопросу - как записать и провести документ? Также не удалось поработать таким образом с уже существующим в базе документом (через ОткрытьФорму). Может не так что-то делал?
51. orefkov 1972 04.09.06 08:36 Сейчас в теме
Вообще-то сейчас проверил, точно такое-же поведение 1С и без загрузки ТурбоБЛ.
То есть что загрузил ТурбоБЛ, что не загрузил, выдается такая ошибка.
Может что не так делал?
52. antonrost 05.09.06 13:11 Сейчас в теме
Я создал в модуле процедуру:
Процедура _Записать()
ПриЗаписи();
Если СтатусВозврата() = 1 Тогда
Записать();
КонецЕсли;
КонецПроцедуры();
--------
и вызываю Конт._Записать()
53. MAXXL 8 05.09.06 23:44 Сейчас в теме
Так смысл то в том чтобы исходный код не переписывать. У меня обработка внешняя, запустилась , сделала все нужное, закрылась. Автор, где автор? Скажи что-нибудь по этому поводу!
54. orefkov 1972 06.09.06 08:28 Сейчас в теме
Еще раз повторю - таково ШТАТНОЕ поведение 1С.
Вы хотите, чтобы я это исправил?
55. MAXXL 8 06.09.06 15:52 Сейчас в теме
Ну если это можно исправить при помощи Вашей компоненты (не трогая саму 1С), то я думаю многим это придется по душе :-) А так , даже по текущим возможностям очень ускоряется исполнение всяких доп. обработок по внешнему заполнению документов
56. 14.09.06 12:11 Сейчас в теме
последняя версия Ошибка: форма открывается, но 1с-ина матерится
Конт.Проверка();
{Обработка.Тест.Форма.Модуль(129)}: Поле агрегатного объекта не обнаружено (Проверка)
57. rudra 14.09.06 16:13 Сейчас в теме
Действительно: Ввиду дорабатываемости компоненты было бы прямо здорово предусмотеть возможность выгрузки компоненты. Не знаю только возможно ли это?
Автору респект.

Maniac
30.08.2006 А вообще было бы круто (можно даже сказать верх совершенства) если бы компонента имела режим включения выключения (в реальном времени) на закладке свойств 1С++ (Меню сервис - Параметры). Там кстати такие кнопки уже есть под некоторые свойства FormEx. Я думаю и для ТурбоБЛ такое будет реально.
Очень уж хочется иметь возможность "быстро" сравнивать быстродействие в рабочем режиме на очень больших объемах баз данных.
58. rudra 14.09.06 16:15 Сейчас в теме
oyua - положи TurboBL.dll в PF\1cv77\Bin
иль забыл?
59. 15.09.06 13:20 Сейчас в теме
Извините. Вы правы, забыл.
Положил, все заработало.
Ускорение действительно наблюдается и обращение к процедурам
во внешних отчетах проходит.
Отлично!
Спасибо за труд и щедрую душу.
60. 04.10.06 13:05 Сейчас в теме
можно как либо загрузить TurboBL без регистрации в реестре, например с помощью vkloader,

61. orefkov 1972 04.10.06 13:15 Сейчас в теме
Читаем историю версий:
Версия 1.1.0.3
- Изменен способ загрузки ВК, что уменьшило ее размер и позволило ей загружаться всегда.

Это и означает, что TurboBL не нуждается в регистрации в реестре для своей загрузки.
62. artbear 1134 16.10.06 10:53 Сейчас в теме
>> Желательно, чтобы компонента имела режим включения выключения
Данная фича реализована в 1С++ 2.5
По умолчанию фича ТурбоБЛ в 1С++ включена. Отключить можно, но отключение будет выполнено только после перезапуска 1С.
Но можно выключить ТурбоБЛ, перезапустить 1С, выполнить код без ТурбоБЛ, включить ТурбоБЛ, выполнить код с ТурбоБЛ и сравнить результаты :)
63. Pa3yM 22 22.12.06 12:22 Сейчас в теме
Большое спасибо! Компонента работает. Замерял время формирования прайс листа в Excel. С включенной компонентой формируется на 30% быстрее.
64. avega 103 04.12.06 13:44 Сейчас в теме
проблема совмесной работы ТурбоБЛ и ФормЭкс. При загрузке ТурбоБЛ перестала работать обработка событий нажатия клавиш {Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши, Alt,Shift,Ctrl,ФСО)} т.е. она просто не реагирует на нажатие описанных кнопок в частности на нажатие "Insert" и "Delete"
65. waol 237 19.06.07 12:32 Сейчас в теме
супер - с модулем формы теперь стало заметно удобнее.
если распечатывать пакетом документы таким образом - то на экране будут мелькать их открываемые формы. можно этого как нибудь избежать ?

66. NFF 21 05.10.07 09:37 Сейчас в теме
Всё хорошо, но совместное использование TurboBL.dll с TurboMD.dll, перестает использоваться функционал последней
67. artbear 1134 05.10.07 10:48 Сейчас в теме
(66) У тебя старый ТурбоМД :(
Ищи новый TurboMd.dll версия 1.0.0.1 размер 20480б
ЗЫ не удивляйся номеру версии, это действительно новая версия, просто автор по неизвестной причине поставил такой номер.
68. kivduts 23.04.08 09:27 Сейчас в теме
как узнать активна компонента или нет
69. shiuck 28.08.08 14:21 Сейчас в теме
Ребята помогите у меня закрывается Предриятие , не загружается turbobl.dll
70. sergebozz 12.09.08 17:54 Сейчас в теме
Без справочников вылетает :)
71. JohnyDeath 293 13.09.08 12:10 Сейчас в теме
(70) Ставь последнюю 1с++ http://www.1cpp.ru/images/3/32/Icpp-latest.rar , в состав которой входит и TurboBL. Там эта проблема решена, + ускорено создание встроенных объектов 1C и 1С++.
А что это у тебя за конфа такая без справочников?
72. DarkAn 813 07.06.10 13:17 Сейчас в теме
>Хорошо бы поддержку Win7 :oops:

Сори, все корректно работает :), Надо модуль загрузки библиотеки скорректировать, а то не грузит по умолчанию
73. byos 34 21.07.10 11:47 Сейчас в теме
Такая проблема нигде не нашел похожей ошибки - при загрузке 1c пишет: ошибка загруки turbobl, самое интересное что версия 1.1.0.2 работает нормально, а 5 и 6 вылетает с ошибкой, внешние компоненты загружаю через hook_1c
74. pisarevEV 28.12.10 09:05 Сейчас в теме
добрый день! с успехом использую ваш библиотеку, на разных базах
всегда получал увеличение скорости построения отчетов в 2-3 раза
однако сегодня не удача:
77 торговля (почти обычная), крутиться на 2008-м сервере, поставил
ВК, выигрыш по скорости 2-4%, т.е. почти нулевой... с чем это может быть
связано?
75. levoven 16.11.11 15:20 Сейчас в теме
добрый день! с успехом использую ваш библиотеку, скорость значительно возросла
76. TrinitronOTV 10.12.11 13:02 Сейчас в теме
вот случайно наткнулся, по описанию заинтересовало, скачаю и попробую, спасибо автору за данный труд
78. Agema 19.05.12 12:11 Сейчас в теме
Спасибо! ускорение ощутимое! есть базы с тысячами сотров (1С7 ЗиК). Как раз для них.
Есть еще методы ускорения, именно для 1с7ЗиК ?
Конечно нашел и http://infostart.ru/public/18924/, очень полезная статья.
79. yuyu1 5 19.03.14 20:30 Сейчас в теме
Прекрасная библиотека! Спасибо!
А если в процедуре Печать() есть вібор нескольких форм печати, можно как-то сделать, чтобы печаталась одна из них сразу, без выбора в каждом документе?
Оставьте свое сообщение