TurboBL

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

Разработка - Разработка внешних компонент

Ускорение работы 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
1564
.zip 35,81Kb 1564 Скачать бесплатно
Версия 1.1.0.5

.zip 39,05Kb
856
.zip 39,05Kb 856 Скачать бесплатно
Версия 1.1.0.6

.zip 39,13Kb
3528
.zip 39,13Kb 3528 Скачать бесплатно

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

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

Но пока в 1С++ более старая версия, в которой несовсем правильно работают таблицы
при вызове методов модуля через контекст, и нет автоускорения контекстов внешних отчетов.
4. orefkov 2087 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 2087 16.08.06 11:06 Сейчас в теме
8. antonrost 16.08.06 11:08 Сейчас в теме
Вот это оперативность !!!!
:)))
+10, однозначно. С нетерпением ждем новых свершений.
9. orefkov 2087 16.08.06 11:22 Сейчас в теме
Оказывается, когда делаешь Запрос.Выполнить, 1С генерит исполняемые модули, видимо для вычисления внешних функций.
Но чем-то эти модули отличаются, тк при вызове одного из их методов, 1С падает.
10. корум 284 16.08.06 12:36 Сейчас в теме
+1.

осталось телепат скрестить с 1с++, и научить её ускорять ДБФ.
И получится НЕЧТО!
11. JohnyDeath 299 16.08.06 14:46 Сейчас в теме
корум, а чем тебя скрипты Intellisense не устраиваютт?
12. Saguna 10 16.08.06 16:29 Сейчас в теме
Валится при попытке выполнения кода управления таблицей в режиме ввода,
например:
Таблица.Область(, 1,, ФиксКол).ШиринаСтолбца(15);
13. orefkov 2087 16.08.06 17:24 Сейчас в теме
14. корум 284 16.08.06 19:51 Сейчас в теме
(JohnyDeath) Всё нравится. Но... 5-6 ДЛЛ хуже, чем 1. Забыть не получится ;о)
15. O-Planet 6918 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 6918 17.08.06 00:05 Сейчас в теме
В смысле
int *GetNMethods(int i) { return ptr+i; }
конечно, а ПТР не void* а int*
17. orefkov 2087 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 2087 17.08.06 08:34 Сейчас в теме
(Saguna)
У меня не валится. Кинь мне пример таблицы, на которой у тебя падает
48. support 4533 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 2087 17.08.06 11:10 Сейчас в теме
Компилятор не может делать предположений о том, что GetNMethods каждый раз возвращает одно и то же значений, тк не видит ее реализации.
21. orefkov 2087 17.08.06 11:29 Сейчас в теме
Глюк с таблицей (Saguna) исправлен.
Номер версии менять не стал.
Кто уже скачивал 1.1.0.4 - скачайте еще раз пжста.
22. JohnyDeath 299 17.08.06 14:44 Сейчас в теме
(корум) >(JohnyDeath) Всё нравится. Но... 5-6 ДЛЛ хуже, чем 1. Забыть не получится ;о
Дык ни одной длл-кой больше не станет! Это скрипты для телепата! Подробнее можешь почитеть здесь: http://www.script-coding.info/Intellisense.html
23. корум 284 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 2087 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 2087 21.08.06 22:29 Сейчас в теме
(InSTaNT)
Примерно понял в чем дело, завтра вышлю тебе для проверки исправленую версию
30. orefkov 2087 22.08.06 10:27 Сейчас в теме
InSTaNT
Кинь мне свое мыло еще раз
31. orefkov 2087 22.08.06 11:54 Сейчас в теме
Ошибки исправлены.

Версия 1.1.0.5
- Компонента доработана для работы на многопроцессорных системах и процессорах с HT.
- Компонента доработана для работы со включенным DEP.
- Оптимизировано обращение к полям ТаблицыЗначений.
32. JohnyDeath 299 22.08.06 12:13 Сейчас в теме
Александр, твоя оперативность поражает!
А в 1с++ эти изменения будут внесены?
33. orefkov 2087 22.08.06 12:18 Сейчас в теме
Да. Сейчас как раз ведется тестирование.
34. artbear 1298 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 2087 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 2087 25.08.06 11:46 Сейчас в теме
Нажми кнопочку "Загрузить TurboBL", закрой форму и попробуй снова
40. orefkov 2087 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 2087 30.08.06 14:11 Сейчас в теме
В чистой конфигурации напиши три строчки:
Код
Процедура ПриНачалеРаботыСистемы()
    СоздатьОбъект("Справочник");
КонецПроцедуры // ПриНачалеРаботыСистемы()
Показать полностью

Сообщи результаты
49. Бракозябра 31.08.06 11:28 Сейчас в теме
50. MAXXL 15 03.09.06 12:48 Сейчас в теме
Присоединяюсь к последнему вопросу - как записать и провести документ? Также не удалось поработать таким образом с уже существующим в базе документом (через ОткрытьФорму). Может не так что-то делал?
51. orefkov 2087 04.09.06 08:36 Сейчас в теме
Вообще-то сейчас проверил, точно такое-же поведение 1С и без загрузки ТурбоБЛ.
То есть что загрузил ТурбоБЛ, что не загрузил, выдается такая ошибка.
Может что не так делал?
52. antonrost 05.09.06 13:11 Сейчас в теме
Я создал в модуле процедуру:
Процедура _Записать()
ПриЗаписи();
Если СтатусВозврата() = 1 Тогда
Записать();
КонецЕсли;
КонецПроцедуры();
--------
и вызываю Конт._Записать()
53. MAXXL 15 05.09.06 23:44 Сейчас в теме
Так смысл то в том чтобы исходный код не переписывать. У меня обработка внешняя, запустилась , сделала все нужное, закрылась. Автор, где автор? Скажи что-нибудь по этому поводу!
54. orefkov 2087 06.09.06 08:28 Сейчас в теме
Еще раз повторю - таково ШТАТНОЕ поведение 1С.
Вы хотите, чтобы я это исправил?
55. MAXXL 15 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 2087 04.10.06 13:15 Сейчас в теме
Читаем историю версий:
Версия 1.1.0.3
- Изменен способ загрузки ВК, что уменьшило ее размер и позволило ей загружаться всегда.

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

66. NFF 21 05.10.07 09:37 Сейчас в теме
Всё хорошо, но совместное использование TurboBL.dll с TurboMD.dll, перестает использоваться функционал последней
67. artbear 1298 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 299 13.09.08 12:10 Сейчас в теме
(70) Ставь последнюю 1с++ http://www.1cpp.ru/images/3/32/Icpp-latest.rar , в состав которой входит и TurboBL. Там эта проблема решена, + ускорено создание встроенных объектов 1C и 1С++.
А что это у тебя за конфа такая без справочников?
72. DarkAn 976 07.06.10 13:17 Сейчас в теме
>Хорошо бы поддержку Win7 :oops:

Сори, все корректно работает :), Надо модуль загрузки библиотеки скорректировать, а то не грузит по умолчанию
73. byos 35 21.07.10 11:47 Сейчас в теме
Такая проблема нигде не нашел похожей ошибки - при загрузке 1c пишет: ошибка загруки turbobl, самое интересное что версия 1.1.0.2 работает нормально, а 5 и 6 вылетает с ошибкой, внешние компоненты загружаю через hook_1c
74. pisarevEV 3 28.12.10 09:05 Сейчас в теме
добрый день! с успехом использую ваш библиотеку, на разных базах
всегда получал увеличение скорости построения отчетов в 2-3 раза
однако сегодня не удача:
77 торговля (почти обычная), крутиться на 2008-м сервере, поставил
ВК, выигрыш по скорости 2-4%, т.е. почти нулевой... с чем это может быть
связано?
75. levoven 16.11.11 15:20 Сейчас в теме
добрый день! с успехом использую ваш библиотеку, скорость значительно возросла
76. TrinitronOTV 7 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 Сейчас в теме
Прекрасная библиотека! Спасибо!
А если в процедуре Печать() есть вібор нескольких форм печати, можно как-то сделать, чтобы печаталась одна из них сразу, без выбора в каждом документе?
Оставьте свое сообщение

См. также

1sqlite Промо

Внешние источники данных Разработка внешних компонент Файловые протоколы обмена, FTP v77::ОУ v77::БУ v77::Расчет 1cv7.md Бесплатно (free)

Внешняя компонента для работы с базами данных SQLite, плюс прямые запросы в ДБФ-базах 1С.

23.06.2008    60333    5316    orefkov    290    

Компонента для создания прогрессбара и статус бара на формах 1С 7.7

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Компонента предназначена для вывода на формы отчетов или обработок 1С:Предприятие 7.7 прогрессбара и/или статусбара. Написана на VB.Net (.Net 4.0)

01.05.2011    10205    128    Ma_X_X    7    

Выгрузка в OpenOffice Calc. Платформа 7.7. Формирование прайса и формы заказа

Загрузка и выгрузка в Excel Практика программирования Разработка внешних компонент v77::ОУ 1cv7.md Бесплатно (free)

Выгрузка в OpenOffice Calc (форматирование, формулы, гиперссылки, закрепление областей, добавление листов, удаление сетки).

28.10.2009    18580    283    a_shpak    4    

Работаем с пропускной системой Perco прямо из 1С

Внешние источники данных Разработка внешних компонент Учет рабочего времени Учет рабочего времени v7.7 1cv7.md Бесплатно (free)

Система работы с карточками пропусков достаточно распространена. Зачастую приходится пользоваться некими выгрузками из этой системы, но можно работать и напрямую. Данная обработка посвящена именно этому.

20.10.2009    23836    344    ge_ni    10    

Универсальная загрузка любых документов из Excel с использованием нечеткого сравнения по реквизиту типа "Справочник"

Загрузка и выгрузка в Excel Обработка документов Разработка внешних компонент v7.7 1cv7.md Бесплатно (free)

В помощь антиглобалистам! Для мелких и очень мелких 1С - это дорого (ноутбук стоит дешевле). Поэтому практикуется такой порядок работы: в центральном офисе выгружают в Excel из 1С "Продажный лист"; торгуют и отмечают продажи в файле; приносят в офис вечером файл результата и загружают отчет о продажах за день. Грузить можно и заявки, и перемещения, и поступления, и списания, и счета, и все для ОС, НМА, МБП... была бы табличная часть!

02.09.2009    21358    896    ge_ni    39    

[SendGoogleSMS] Отправка SMS уведомлений через сервис Google Calendar

WEB SMS рассылки Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Компонента генерирует события в Google Calendar с извещением по SMS. В архивах ВК для 7.7 (работает и в 8-ке) и ActiveX - для работы в контексте сервера 1С 8.х

07.08.2009    30648    555    Душелов    37    

[PDF Viewer] - Просмотр PDF в 1С

Разработка внешних компонент Работа с интерфейсом v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

ActiveX-компонента для просмотра PDF. Позволяет сохранить в виде текста, картинки и PostScript. Реализованы механизмы поиска текста и печати.

15.07.2009    36470    890    Душелов    57    

Элемент управления Scintilla

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

1sci.dll - внешняя компонента для 1С:Предприятие ВК реализует элемент управления Scintilla. Не требует регистрации в реестре.

15.06.2009    25538    338    steban    32    

Плагин 1С 7.7 для RvAlgo.

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

RvAlgo - Универсальный инструмент создания корпоративных отчетов и систем анализа данных. Тут представлен плагин, скрипт импорта данных и выполнения OLAP. Пример конфигурации. Вся документация RvAlgo на русском.

28.05.2009    9617    467    metallist    5    

[IFilter] Поиск в содержании файлов из 1С (ВК, .NET)

Разработка внешних компонент Поиск данных v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Компонента для работы с фильтрами поисковых систем. Получает текст из файла по установленном в системе фильтрам. Индексирует и ищет файлы по их содержанию (аналог Desktop Search) Поддерживает *.doc, *.xls, *.txt, *.ppt. Дополнительные фильтры можно скачать с http://www.ifilter.org/Links.htm

24.03.2009    33783    142    Душелов    44    

[Сервер событий] Клиент + Сервер + Внешние события

Разработка внешних компонент Перенос данных из 1C8 в 1C8 1С7.7<->1C7.7 v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Средство для генерирования событий между разными сеансами, базами и платформами 1С

17.03.2009    21924    145    Душелов    32    

[Генератор внешних событий] Внешняя компонента для 1С

Практика программирования Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Компонента генерирует внешние события с заданным интервалом и с заданными значениями.

06.03.2009    40064    1076    Душелов    82    

[Мониторинг изменения файлов] - ActiveX-компонента для 1С 8.х + ВК для 7.7

Практика программирования Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Компонента следит за изменениями файлов в заданных каталогах, без таймеров и опросов файловой системы. Использует события Windows.

05.03.2009    25774    515    Душелов    53    

Класс для вывода отчета в Excel

Загрузка и выгрузка в Excel Практика программирования Разработка внешних компонент openconf v77::БУ 1cv7.md Бесплатно (free)

Класс для вывода отчета в Excel (выводит быстро :) Как-то попал мне, нигде больше не видел, ИМХО очень жизненный при больших отчетах.

10.02.2009    12084    300    babys    1    

[Проверка правописания] - ActiveX-компонента для 1С

Практика программирования Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Компонента проверяет правописание текста. Основана на технологии OpenOffice MySpell. Не требует установленного офиса. В комплекте словари для 5 языков, включая русский (с "ё").

09.02.2009    30320    1076    Душелов    66    

[ExcelEditor] Чтение/запись файла Excel напрямую из 1С без Excel (формат 97/2003)

Загрузка и выгрузка в Excel Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Чтение и запись файла Excel напрямую из 1С Компонента читает и редактирует напрямую файл Excel без загрузки самого Excel (формат Microsoft Office 97/2003)

08.01.2009    48626    1195    Душелов    92    

Hide1C.dll (не моё)

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Hide 1C - очень занятная штука. Она в буквальном смысле слова умеет скрывать главное окно V7. Причём управлять процессом можно программно.

25.12.2008    11114    396    kasperok    13    

Scan1C.dll (не моё)

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Предназначена для работы с TWAIN совместимым сканером из 1С. Изображение можно получить в виде файла BMP, JPEG или объекта Картинка. Имеется возможность программной установки некторых параметров сканера(глубина цвета, разрешение, формат бумаги, ориентация бумаги и поворот изображения). Поддерживается двусторонний режим и автоматическая подача бумаги.

25.12.2008    23507    1688    kasperok    12    

Быстрое сохранение в Excel (автор romix)

Загрузка и выгрузка в Excel Разработка внешних компонент Работа с интерфейсом v7.7 1cv7.md Бесплатно (free)

Помогает быстро сохранить печатные формы в формате Excel. Имеет смысл при сохранении больших отчетов, что обычно занимает немало времени.

25.12.2008    14315    372    kasperok    16    

UDP-CHAT для 7.7. Люди добрые, потестите, кому не лень, а то мне лень ;)

Разработка внешних компонент v7.7 1cv7.md Россия Бесплатно (free)

UDP-CHAT для 7.7 с возможностью передачи ссылок на объекты ВАЖНО: в виду того, что на одном компьютере нелья включить на прослушку один и тот же порт несколько раз, чат НЕ предназначен для терминального использования 1С! Кроме поставляемой ВК ничего больше для работы не требует. Терминальный вариант со службой-сервисом в разработке

28.11.2008    15926    79    Abadonna    7    

"Захват окон" - ActiveX-компонента для 1С

Разработка внешних компонент Работа с интерфейсом v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Захватывает открытые окна и помещает их в 1С, так же получает скриншот выбранного окна. Хотите играть в пасьянс в 1С, смотреть кино или просматривать секретные документы ;) и не светить эти окна на рабочем столе, тогда эта компонента для Вас :)

20.11.2008    24848    232    Душелов    64    

"WebCam" - ActiveX-компонента для 1С

WEB Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Компонента работает с устройствами, поддерживающими Twain32 драйвер (вебкамеры, фотоаппараты и др.)

28.09.2008    43403    1091    Душелов    77    

DBEng32 (8.0.1.2, Share) – выполнение прямых запросов и в монопольном режиме для DBFной версии 1С:Предприятие 7.7 в среде 1С++

Разработка внешних компонент Инструментарий разработчика v7.7 1cv7.md Россия Бесплатно (free)

Решение проблемы выполнения прямых запросов в монопольном режиме и исправление ошибки “CodeBase –56” для DBFной версии 1С:Предприятие 7.7. Тестирование проводилось в 1С++ версии 2.0.3.7 с применением “Microsoft OLE DB Provider for Visual FoxPro 9.0” версии 1.2 от 16/05/2008. Время выполнения запроса по методике, описанной в http://infostart.ru/profile/2905/blogs/482/ составляет 28-30 секунд.

23.08.2008    30679    213    hogik    50    

ALS-файлы по 1С++. Версия icpp - 3.1.0.9

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Файлы синтаксис помощника 1С по ВК 1С++ (версия icpp, 3.1.0.9).

18.07.2008    20267    700    vandalsvq    6    

"Аналоговые часы" - ActiveX-компонента для 1С

Разработка внешних компонент Работа с интерфейсом v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

"Аналоговые часы" - ActiveX-компонента для 1С 8.х Небольшое "украшательство" для форм 1С.

20.05.2008    22445    206    Душелов    23    

Внешняя компонента для 7.7 (работа напрямую с xls-файлами + объемные графики с эффектами)

Загрузка и выгрузка в Excel Разработка внешних компонент v7.7 1cv7.md Бесплатно (free)

Библиотека для работы напрямую с xls-файлами + объемные графики с эффектами

10.03.2008    19349    392    Abadonna    34    

[XLS to MXL]

Загрузка и выгрузка в Excel Разработка внешних компонент Инструментарий разработчика v7.7 1cv7.md Бесплатно (free)

Конвертирование листов Excel в табличный документ 1С (mxl) с сохранением форматирования

10.03.2008    25215    1538    Ужас бухгалтера    12    

[MXL to XLS]

Загрузка и выгрузка в Excel Работа с интерфейсом Разработка внешних компонент v7.7 1cv7.md Бесплатно (free)

Решаем две существующие проблемы 1С:Предприятия: * медленное сохранение табличных документов в формате Microsoft Excel. * некачественное сохранение табличных документов в формате Microsoft Excel.

10.03.2008    40060    2785    Ужас бухгалтера    28    

Внешняя компонента скрытия меню из окна + скрытие кнопки свернуть/закрыть/максимизировать.

Работа с интерфейсом Разработка внешних компонент v7.7 1cv7.md Бесплатно (free)

Внешняя компонента скрытия меню из окна + скрытие кнопки свернуть/закрыть/максимизировать.

08.02.2008    13502    279    Hadgehogs    7    

Отправка SMS-сообщений из 1С через телефон подключенный к компьютеру

Разработка внешних компонент SMS рассылки v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Компонента для отправки СМС сообщений через телефон подключенный к компьютеру посредствам дата-кабеля, ИК или bluetooth. Так же требуется, чтобы телефон поддерживал последовательные порты (COM-порты). Более детально тут http://www.urbdmaster.com/news/sms-na-russkom/

16.01.2008    17171    514    codeLocker    4    

ВК SpellSQL - для прямого доступа к таблицам баз данных

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Библиотека для прямого доступа к таблицам баз данных

27.12.2007    12897    697    smirnov.a    1    

Икончатый список

Разработка внешних компонент v77::БУ 1cv7.md Россия Бесплатно (free)

Попытка добавить в "Поле со списком" иконки.

03.12.2007    8185    218    DionX    1    

DBEng32 (6.0.4.2, Advantage 8.1/9.1) - клиент/серверное использование DBFной версии 1С:Предприятие 7.7

Внешние источники данных Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Данная разработка позволяет использовать систему 1С:Предприятие 7.7 (DBFная версия) в режиме клиент/сервер на базе сервера Advantage 8.1/9.1 разработанного фирмой Extended Systems Inc. Предлагаемое решение позволяет устранить основные недостатки DBFной реализации поддержки баз данных 1С:Предприятие 7.7. Аналогичная разработка: http://infostart.ru/projects/811/

28.10.2007    49993    927    hogik    215    

FormEx. Быстрый поиск в поле ввода 2.1

Поиск данных Разработка внешних компонент Универсальные функции v7.7 1cv7.md Бесплатно (free)

Универсальный инструмент пользователя, требует FormEx v2.0.5.0 - http://dorex.pro/?projects&formex&download Реализация механизма быстрого поиска элемента по первым символам непосредственно в поле ввода. Ограничения: Не работает для полей ввода многострочной части.

26.09.2007    19797    719    item    27    

DBEng32 (5.1.3.2, CodeBase 6.5) - клиент/серверное использование DBFной версии 1С:Предприятие 7.7

Внешние источники данных Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Данная разработка позволяет использовать систему 1С:Предприятие 7.7 (DBFная версия) в режиме клиент/сервер на базе сервера CodeBase 6.5 разработанного фирмой Sequiter Inc. Предлагаемое решение позволяет устранить основные недостатки DBFной реализации поддержки баз данных 1С:Предприятие 7.7. Аналогичная разработка: http://infostart.ru/projects/1359/

01.03.2007    49136    663    hogik    180    

Нажиматель кнопок (кликер)

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Объект компоненты имеет один метод НажатьКнопку("надпись"), который находит кнопки с надписью "надпись" и нажимает их

19.02.2007    11376    619    LV    15    

Новая ВК от Абадонны (beta, но уже не триал)

Разработка внешних компонент v77::ОУ v77::БУ 1cv7.md Россия Бесплатно (free)

Контроль модальных окон, контроль активности, выполнение шифрованного кода, ICQ, прочие "бантики" и многое другое

07.02.2007    18797    723    Abadonna    27    

Группировка ТЗ+печать простых отчетов

Разработка внешних компонент v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Класс 1С++ (расширение для "ТаблицаЗначений") Функционал приближен к "ТаблицаЗначений"+"Запрос" (с расчетом итогов) Дополнительная возможность: печать отчета по встроенному шаблону.

05.02.2007    7980    545    Chieftain    7