TurboBL

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

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

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

208

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

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

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

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

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

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

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

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

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

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

См. также

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    25940    Serginio    22       

Использование классов .Net в 1С для новичков 147

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    63750    Serginio    104       

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия 51

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Разработка внешних компонент Математика и алгоритмы

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    42183    Serginio    35       

Коллективная разработка на 1С версии 7.7 и Git 21

Статья Программист Нет файла v7.7 Россия Windows Бесплатно (free) Инструментарий разработчика Разработка внешних компонент

В данной статье я не буду рассматривать работу с системой контроля версий Git, для этого есть специальные ресурсы, например http://git-scm.com/book/ru. Я только расскажу тем, кто привык и любит Git, подружить старую добрую 7-ку и систему контроля версий Git.

17.09.2013    15430    s.nek    12       

Прямые запросы: ускорение получения цен для типовой ТиС 7.7 22

Статья Программист Нет файла v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free) Практика программирования Разработка внешних компонент

Первая статья из цикла статей "Прямые запросы:...". Рассказывается о применении класса ПрямойЗапрос и компоненты 1С++ для ускорения функции глВернутьЦену() в типовой конфигурации Торговля и склад. Платформа 7.7.

15.11.2011    13387    leshik    21       

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

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

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

01.05.2011    6931    124    Ma_X_X    7       

Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll 34

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

Восстанавливаю ранее опубликованную статью. Может кому пригодится... Иногда очень хочется что-нибудь добавить в стандартную конфигурацию, но потом возникают проблемы, связанные с "затиранием" кода при обновлении. Каждый раз помнить где и что - напряжно. При данном подходе в Глобальный Модуль добавляется всего одна (!) строчка

15.08.2010    16751    Abadonna    33       

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

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Учет рабочего времени Бесплатно (free) Разработка внешних компонент Внешние источники данных

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

20.10.2009    20084    352    ge_ni    10       

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

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Бесплатно (free) Обработка документов Разработка внешних компонент Загрузка и выгрузка в Excel

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

02.09.2009    17036    790    ge_ni    39       

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

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент WEB SMS рассылки

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

07.08.2009    25943    563    Душелов    37       

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

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент Работа с интерфейсом

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

15.07.2009    28729    865    Душелов    57       

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

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

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

15.06.2009    21372    289    steban    32       

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

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

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

28.05.2009    6453    408    metallist    5       

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

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

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

24.03.2009    28854    141    Душелов    44       

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

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

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

05.03.2009    21359    522    Душелов    53       

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

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

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

10.02.2009    9144    246    babys    1       

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

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

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

09.02.2009    25052    1062    Душелов    66       

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

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

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

08.01.2009    40817    1195    Душелов    92       

Hide1C.dll (не моё) 1

Инструменты и обработки no Компонента, плагин (dll, vbs,..) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Разработка внешних компонент

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

25.12.2008    8475    290    kasperok    13       

Scan1C.dll (не моё) 13

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

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

25.12.2008    19377    1577    kasperok    12       

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

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

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

25.12.2008    11042    285    kasperok    16       

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

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Россия Windows Бесплатно (free) Разработка внешних компонент

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

28.11.2008    13017    75    Abadonna    7       

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

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент Работа с интерфейсом

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

20.11.2008    20733    219    Душелов    64       

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

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент WEB

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

28.09.2008    36219    1036    Душелов    70       

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

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Россия Windows Бесплатно (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    25585    213    hogik    50       

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

Инструменты и обработки no Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент Работа с интерфейсом

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

20.05.2008    18501    203    Душелов    23       

[XLS to MXL] 61

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

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

10.03.2008    20331    659    Ужас бухгалтера    12       

[MXL to XLS] 97

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

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

10.03.2008    34506    1156    Ужас бухгалтера    28       

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

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

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

16.01.2008    14345    235    codeLocker    4       

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

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Windows Бесплатно (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    42588    908    hogik    215       

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

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

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

26.09.2007    15678    261    item    27       

[ОБУЧАЛОВКА] Ликбез по сканерам ШК 24

Статья Программист Нет файла v7.7 1cv7.md Россия УУ Розничная торговля Бесплатно (free) Разработка внешних компонент

Краткое описание основных принципов работы/настройки сканеров ШК в программе 1С (по мотивам ветки T1C)

22.09.2007    32402    CheBurator    20       

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

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Windows Бесплатно (free) Разработка внешних компонент Внешние источники данных

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

01.03.2007    42937    508    hogik    180       

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

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

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

19.02.2007    9340    97    LV    15       

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

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

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

07.02.2007    16135    573    Abadonna    27       

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

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

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

05.02.2007    6401    63    Chieftain    7