TurboBL

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

Ускорение работы 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
- Исправлена работа при использовании #ЗагрузитьИзФайла.

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

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

См. также

Комментарии
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) 1469 15.08.06 23:29 Сейчас в теме
В 1С++ этот функционал по умолчанию включен, те достаточно сделать
ЗагрузитьВнешнююКомпоненту("1cpp.dll")

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

осталось телепат скрестить с 1с++, и научить её ускорять ДБФ.
И получится НЕЧТО!
11. Евгений Мартыненков (JohnyDeath) 290 16.08.06 14:46 Сейчас в теме
корум, а чем тебя скрипты Intellisense не устраиваютт?
12. Saguna (Saguna) 10 16.08.06 16:29 Сейчас в теме
Валится при попытке выполнения кода управления таблицей в режиме ввода,
например:
Таблица.Область(, 1,, ФиксКол).ШиринаСтолбца(15);
13. Александр Орефков (orefkov) 1469 16.08.06 17:24 Сейчас в теме
14. rjhev korum (корум) 313 16.08.06 19:51 Сейчас в теме
(JohnyDeath) Всё нравится. Но... 5-6 ДЛЛ хуже, чем 1. Забыть не получится ;о)
15. Олег Пономаренко (O-Planet) 6709 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) 6709 17.08.06 00:05 Сейчас в теме
В смысле
int *GetNMethods(int i) { return ptr+i; }
конечно, а ПТР не void* а int*
17. Александр Орефков (orefkov) 1469 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) 1469 17.08.06 08:34 Сейчас в теме
(Saguna)
У меня не валится. Кинь мне пример таблицы, на которой у тебя падает
19. Alexqc 17.08.06 11:02 Сейчас в теме
to O-Planet
>> Некомпетентность: GetNMethods можно вынести из цикла
>Уверен на 90%, что это НЕ функция, как таковая, а on-line определение, типа:
...
>Поэтому, выносить его нет смысла.

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

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

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

20. Александр Орефков (orefkov) 1469 17.08.06 11:10 Сейчас в теме
Компилятор не может делать предположений о том, что GetNMethods каждый раз возвращает одно и то же значений, тк не видит ее реализации.
21. Александр Орефков (orefkov) 1469 17.08.06 11:29 Сейчас в теме
Глюк с таблицей (Saguna) исправлен.
Номер версии менять не стал.
Кто уже скачивал 1.1.0.4 - скачайте еще раз пжста.
22. Евгений Мартыненков (JohnyDeath) 290 17.08.06 14:44 Сейчас в теме
(корум) >(JohnyDeath) Всё нравится. Но... 5-6 ДЛЛ хуже, чем 1. Забыть не получится ;о
Дык ни одной длл-кой больше не станет! Это скрипты для телепата! Подробнее можешь почитеть здесь: http://www.script-coding.info/Intellisense.html
23. rjhev korum (корум) 313 17.08.06 15:45 Сейчас в теме
(JohnyDeath) и таки ви мне будете говорить за интеллисенса?
Ну не надо, стоит уже год.
Телепат (+опенконф, естессно) подкупает своей открытостью, 1с++ - всеобъемлемостью. По крайней мере, пока. 1с++ = 1с++ плюс turbobl плюс FormEx плюс ещё что-то.
24. InSTaNT 21.08.06 11:49 Сейчас в теме
А есть ли возможность выложить дебаг версию DLL?
Просто где-то она работает (Сервер 2003), а где-то (локальная машина) не работает.
При запуске 1С, она пишет внизу "Выполнение обработки" и через 2-3 сек. закрывается.
Потом приходится заходить монопольно чтобы восстановить индексы и картина повторяется.
Может быть не срабатывает хук на CBLContext::FindMethod, но это визуально же не определишь, а копаться с отладчиком не очень хочется, но видимо прийдется...
25. Александр Орефков (orefkov) 1469 21.08.06 11:57 Сейчас в теме
Используются ли еще какиенить ВК?
Не лежит ли где-нить на локальной машине старая версия TurboBL?
26. Anonymous 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. InSTaNT 21.08.06 12:49 Сейчас в теме
28. InSTaNT 21.08.06 21:31 Сейчас в теме
Вроде как разобрались, это с машинкой что-то...
Вообщем если у кого-то 1С будет закрываться при запуске, меняйте настройки DEP.
29. Александр Орефков (orefkov) 1469 21.08.06 22:29 Сейчас в теме
(InSTaNT)
Примерно понял в чем дело, завтра вышлю тебе для проверки исправленую версию
30. Александр Орефков (orefkov) 1469 22.08.06 10:27 Сейчас в теме
InSTaNT
Кинь мне свое мыло еще раз
31. Александр Орефков (orefkov) 1469 22.08.06 11:54 Сейчас в теме
Ошибки исправлены.

Версия 1.1.0.5
- Компонента доработана для работы на многопроцессорных системах и процессорах с HT.
- Компонента доработана для работы со включенным DEP.
- Оптимизировано обращение к полям ТаблицыЗначений.
32. Евгений Мартыненков (JohnyDeath) 290 22.08.06 12:13 Сейчас в теме
Александр, твоя оперативность поражает!
А в 1с++ эти изменения будут внесены?
33. Александр Орефков (orefkov) 1469 22.08.06 12:18 Сейчас в теме
Да. Сейчас как раз ведется тестирование.
34. Артур Аюханов (artbear) 881 23.08.06 12:41 Сейчас в теме
Новая версия ТурбоБЛ включена в 1С++. Брать как обычно, в ночной сборке, начиная с сегодняшнего числа.
35. Евгений В (Jkey) 9 25.08.06 09:28 Сейчас в теме
Александр, Есть проблема, пользовал версию 1.1.0.2.
Модули справочников, доков, модулей проведения доков
использовал из текстовых файлов
например
#ЗагрузитьИзФайла Reference\НомеклатураФС.txt //модуль формыСписка Номенклатуры
в процессе работы 1С в режиме Предприятия правлю текстовые файлы модулей, изменения отражаются сразу.
Заменил на 1.1.0.5 изменения текстовых файлов модулей не отражаются, пока не закрою 1С и снова не запущу.
Откатил обратно на версию 1.1.0.2
все заработало
Просьба проверить.
36. Александр Орефков (orefkov) 1469 25.08.06 09:58 Сейчас в теме
(JKey)
Проблема исправлена. Качать 1.1.0.6
В 1С++ исправления внесены.
37. Евгений В (Jkey) 9 25.08.06 10:04 Сейчас в теме
Спасибо Александр. Работает.
38. Макс (maximum) 25.08.06 11:38 Сейчас в теме
последняя версия Ошибка: форма открывается, но 1с-ина матерится
Конт.Проверка();
{Обработка.Тест.Форма.Модуль(129)}: Поле агрегатного объекта не обнаружено (Проверка)
39. Александр Орефков (orefkov) 1469 25.08.06 11:46 Сейчас в теме
Нажми кнопочку "Загрузить TurboBL", закрой форму и попробуй снова
40. Александр Орефков (orefkov) 1469 25.08.06 11:48 Сейчас в теме
Ктонить может подтвердить баг?
У меня работает.
41. Макс (maximum) 25.08.06 11:50 Сейчас в теме
"Нажми кнопочку "Загрузить TurboBL", закрой форму и попробуй снова"
так и делаю
42. Александр (imsoftware) 173 28.08.06 10:28 Сейчас в теме
Компонента просто замечательная! Все работает без ошибок с весьма ощутимым приростом в скорости. Тесторовалось на конфигурации по переносу\синхронизации ИБ. Автору плюсик к рейтингу.
43. Sash_ 28.08.06 10:53 Сейчас в теме
Александр, а можно в нее добавить еще один небольшой сервис?
На машинах win XP или 2K не работает поиск по букве в выпадающем списке значений, а это очень не удобно! (пример: открываем Анализ субконто, вид субконто 1 и пытаемся набрать ...контрагенты а в 98 работает),
P.S. нечто похожее видел в FormEX , однако 100% работоспособности не добился
44. Maniac (Eugeneer) 30.08.06 00:31 Сейчас в теме
Честно признаюсь. Вот сижу базу провожу 7 гиг уже. Я просто в шоке - волосы на голове скоро вырастут !! )) Автору вечный респект !
45. Maniac (Eugeneer) 30.08.06 05:12 Сейчас в теме
А вообще было бы круто (можно даже сказать верх совершенства) если бы компонента имела режим включения выключения (в реальном времени) на закладке свойств 1С++ (Меню сервис - Параметры). Там кстати такие кнопки уже есть под некоторые свойства FormEx. Я думаю и для ТурбоБЛ такое будет реально.
Очень уж хочется иметь возможность "быстро" сравнивать быстродействие в рабочем режиме на очень больших объемах баз данных.
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) 1469 30.08.06 14:11 Сейчас в теме
В чистой конфигурации напиши три строчки:
Код
Процедура ПриНачалеРаботыСистемы()
    СоздатьОбъект("Справочник");
КонецПроцедуры // ПриНачалеРаботыСистемы()
Показать полностью

Сообщи результаты
48. Доржи Цыденов (support) 4528 31.08.06 14:20 Сейчас в теме
а как быть с контекстом документа:
Код
Док= СоздатьОбъект("Документ.ПродажаЧерезФирму");
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()=1 Цикл
   ОткрытьФорму(Док.ТекущийДокумент(),КонтДок);
   КонтДок.ЗаполнитьПоДокументамЗаДень();
   КонтДок.Записать();
.....
Показать полностью

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

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

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

Это и означает, что TurboBL не нуждается в регистрации в реестре для своей загрузки.
62. Артур Аюханов (artbear) 881 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) 227 19.06.07 12:32 Сейчас в теме
супер - с модулем формы теперь стало заметно удобнее.
если распечатывать пакетом документы таким образом - то на экране будут мелькать их открываемые формы. можно этого как нибудь избежать ?

66. NFF (NFF) 21 05.10.07 09:37 Сейчас в теме
Всё хорошо, но совместное использование TurboBL.dll с TurboMD.dll, перестает использоваться функционал последней
67. Артур Аюханов (artbear) 881 05.10.07 10:48 Сейчас в теме
(66) У тебя старый ТурбоМД :(
Ищи новый TurboMd.dll версия 1.0.0.1 размер 20480б
ЗЫ не удивляйся номеру версии, это действительно новая версия, просто автор по неизвестной причине поставил такой номер.
68. Kivduts (kivduts) 23.04.08 09:27 Сейчас в теме
как узнать активна компонента или нет
69. Dinu Dinu (shiuck) 28.08.08 14:21 Сейчас в теме
Ребята помогите у меня закрывается Предриятие , не загружается turbobl.dll
70. SerGeBOZz (sergebozz) 12.09.08 17:54 Сейчас в теме
Без справочников вылетает :)
71. Евгений Мартыненков (JohnyDeath) 290 13.09.08 12:10 Сейчас в теме
(70) Ставь последнюю 1с++ http://www.1cpp.ru/images/3/32/Icpp-latest.rar , в состав которой входит и TurboBL. Там эта проблема решена, + ускорено создание встроенных объектов 1C и 1С++.
А что это у тебя за конфа такая без справочников?
72. Иван Филимонов (DarkAn) 368 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 Z (Agema) 19.05.12 12:11 Сейчас в теме
Спасибо! ускорение ощутимое! есть базы с тысячами сотров (1С7 ЗиК). Как раз для них.
Есть еще методы ускорения, именно для 1с7ЗиК ?
Конечно нашел и http://infostart.ru/public/18924/, очень полезная статья.
79. Taras Shewchenko (yuyu1) 5 19.03.14 20:30 Сейчас в теме
Прекрасная библиотека! Спасибо!
А если в процедуре Печать() есть вібор нескольких форм печати, можно как-то сделать, чтобы печаталась одна из них сразу, без выбора в каждом документе?
Оставьте свое сообщение