ВК является выделенной частью полной версии MiracleNative. (//infostart.ru/public/125913/)
Изюминки:
Получение хешей, в том числе и по актуальному для 1С (в части последнего интереса к брутфорсу паролей) алгоритму SHA1
Шифрование/Дешифрование строк с ключом, когда результат шифрования одной и той же строки с одним и тем же ключом всегда получается разный, а дешифровка однозначной. Исключительно затруднен «взлом»
Функция неявного сравнения строк (вычисление релевантности /схожести/). Может пригодиться для чистки справочников от «почти дублей», загрузки прайсов и т.д.
Примеры вычисления релевантности пар строк:
«майка мужская», «мужск. майка» =78
«дизельгенератор», «генератор дизельный» =82
«тонер для принтера», «тонер принт.» =73
Архив включает: собственно саму ВК StringsNative.dll, тестовую обработку (все методы ВК) DLLTest.epf (8.2), файл описания методов StringsNative_dll_ReadMe.txt
Версия 1.1.1.2:
1. Исправлена досадная ошибка во вспомогательной функции СтрокуБайтовВСтрокуСимволов
2. Добавлен метод СформироватьГУИД — возвращает стандартную строку GUID Windows
Учитывая, что Майкрософт грозился, что их ГУИД может повториться только раз в тысячу лет, можно использовать
как супер-случайную строку.
Версия 1.1.1.3 (второй файл)
В свете //infostart.ru/public/178957/ от щедрот MiracleNative 😉
Метод ПодключитьКонтрольНавигационныхСсылок() // без параметров.
Перехват события WM_PARENTNOTIFY, генерирует внешнее событие «WM_NAVIGATE_REF_CLICK»
Возвращает: «УСПЕШНО», «УЖЕ ВКЛЮЧЕН» (при повторной попытке при включенном), «НЕ УПРАВЛЯМОЕ ПРИЛОЖЕНИЕ» (работает только в тонком клиенте управляемого приложения).
Пример обработки события:
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Событие="WM_NAVIGATE_REF_CLICK" Тогда
НавигационнаяСсылка = АктивноеОкно().ПолучитьНавигационнуюСсылку();
НавигационнаяСсылка=СтрЗаменить(НавигационнаяСсылка,"e1cib/navigationpoint/","");
Сообщить("НавигационнаяСсылка: "+НавигационнаяСсылка);
КонецЕсли;
КонецПроцедуры
Метод ОтключитьКонтрольНавигационныхСсылок() — соответственно отключает при необходимости ранее включенный
Версия 1.1.1.5. С учетом комментарие. И ВК, и обработка. Доработки — комментах
Полный текст readme:
Поключение ВК:
ПодключитьВнешнююКомпоненту(ПолноеИмяВК,»StringsNative»,AddInType.Native);
Создание объекта:
Строки = Новый(«AddIn.StringsNative.V8Strings»);
Далее к методам созданного объекта обращаемся как обычно, через точку.
Например:
HASH_SHA1=1;
Стр=Строки.ПолучитьХешСтроки(СокрЛП(ИсходнаяСтрока),HASH_SHA1);
Методы:
ПолучитьХешСтроки(ИсходнаяСтрок:строка,Алгоритм:Число): строка
Возвращает хеш-строку переданной строки по выбранному алгоритму.
Алогритмы:
1 — SHA1
2 — SHA256
3 — MD5
4 — CRC32
5- HAVAL128
ПолучитьСтрокуBase64(ИсходнаяСтрок:строка): строка
Получает строку Base64 из переданной.
Примечание: строка символов, а не hex-последовательность байтов
ПолучитьСтрокуИзBase64(ИсходнаяСтрок:строка): строка
Получает строку из Base64-строки (символов)
СтрокуСимволовВСтрокуБайтов(ИсходнаяСтрок:строка): строка
Получает строку hex-последовательности байтов переданной символьной строки
Примечания:
1. В совокупности с ПолучитьСтрокуИзBase64 является аналогом оператора 1С: Base64Значение(ИсходнаяСтрока)
2. Именно так в 1С хранится хеш-пароля
СтрокуБайтовВСтрокуСимволов(ИсходнаяСтрок:строка): строка
Противоположна предыдущей
ШифроватьСтроку(ИсходнаяСтрок:строка.Ключ:строка): строка
Получает шифрованную строку из исходной.
Ключ — строка ключа, необязательный, если не указан — внутренний ключ ВК
Примечания:
1. Используются внутренние методы шифрования Windows
2. Изюминка состоит в том, что при шифровании с одним и тем же ключом, результат получается разный. А дешифруется однозначно
ДешифроватьСтроку(ИсходнаяСтрок:строка.Ключ:строка): строка
Противоположна предыдущей
РелевантностьСтрок(Строка1:строка,Строка2:строка,Направление:Булево): число
Функция неявного сравнения строк. Вычисление релевантности (схожести) строк.
Релевантность до 100 (полностью идентичны)
Направление — необязательный, по умолчанию Истина
При Направление=Истина строкой эталоном считается Строка2, иначе Строка1
Например, релевантность пар:
майка мужская -> мужск. майка =78
дизельгенератор -> генератор дизельный =82
тонер для принтера -> тонер принт. =73
Тестировалось на: WindowsXP, Windows7, Windows Server ® 2008 Standard Service Pack 2 (32 и 64)
Пригодится
Релевантность строк — как работает на больших объемах данных? Насколько быстро? И как сравнивает — посимвольно или «самообучаясь» (запоминая слова из строк и ища похожие) ?
(3) Dach, для больших объемов (длин строк) не предназначена, да и не проверял. Самообучаемости нет, просто всегда выполняется алгоритм.
(0) Релевантность по какому алгоритму вычисляется?
(5) Поручик, если честно — ХЗ 😉 нашел готовый модуль, подцепил, потестил, вроде похоже на правду.
шифрование — по какому алгоритму?
Шифрование/Дешифрование строк с закрытым ключом — не понял, а ключ один внутрях, или как?
(7)
Тебе скажи, ты ж расшифровывать начнешь :))) могу только сказать, что используется библиотека винды advapi32.dll, функции CryptEncrypt, CryptDecrypt и т.п…
А ридми почитать?;)
(9)
я знаю, что такое закрытый ключ 😉
потому и возник вопрос. т.е. получается не закрытый ключ (который подразумевает также наличие пары — открытого ключа), а просто ключ
а вообще, лучше бы блоуфиш запихатьhttp://www.schneier.com/blowfish-download.html
(13)да фиг с ней, с терминологией 😉
вот что там юзается:
function CryptEncrypt(Key: HCRYPTKEY; Hash: HCRYPTHASH; Final: LongBool; Flags:
LongWord; Data: PBYTE; Len: PLongWord; BufLen: LongWord): LongBool; stdcall;
external ADVAPI32 name ‘CryptEncrypt’;
и т.д. и т.п.
а инциализация по алгоритму RC2 (а можно было и по RC4)
(1)
Спасибо )
Опробую на досуге Ваш RC2 связать с php-шным 🙂
интересная вещь.
опробую релевантность на справочнике номенклатуры
(16) flash2k, потом результат, плиз, в студию. По скорострельности, например и т.п. А то я обычно свой кокаин не нюхаю :)))
ещё одна строковая библиотека. На 1С.
Abadonna, что такое «строка hex-последовательности байтов»? Что получится при вызове метода СтрокуСимволовВСтрокуБайтов(«АбВ»)?
(19) awa, СтрокуСимволовВСтрокуБайтов(«АбВ»)=»C0E1C2″
Код символа «А»=192=$C0, Код «б»=225=$E1 и т.д. В общем, набор hex-представлений байт по набору символов.
(20) т.е. строка сначала конвертируется в ANSI?
Хорошая работа. Плюс.
«внутренний ключ ВК» это какая-то константа из dll или на лету формируемая строка привязанная к железу?
(23) Oleg_nsk,
Скажем так — длиннющий параметр по умолчанию,передаваемый в функцию. Можно сказать, что и константа.
(0) Abadonna
http://infostart.ru/public/179374/ ) перемещалось на активное окно.
Можно получить исходный код реализующий «Перехват события WM_PARENTNOTIFY». Я хотел бы сделать так, чтобы меню из главного окна (статья «v8.2 Управляемые формы: добавляем произвольное пользовательское меню в основное меню 1С без модификации конфигурации»
(25) MarSeN,
Сабклассинг главного окна 1С , там практически исходник
см.
(26) Abadonna
Спасибо )
(26) Abadonna
Перехватил WM_PARENTNOTIFY, но в но в LOWORD(ParamW) нету WM_CREATE. Там вообще ничего нету.
Весь инет прошерстил (даже аналогичный код перехвата WM_PARENTNOTIFY нашел) — вроде делаю все правильно, а результат нулевой ((
(28) MarSeN, точно не помню, но в режиме декстопа его может и не быть.
Юзай SPYXX.EXE (от мелкософта), смотри сообщения окна им…
WM_CREATE у меня появляется в моей базе, где режим подсистем вообще отключен, и по кнопке рождается свободное
SDI — окно. Зато фиг потом проходит WM_CLOSE или WM_DESTROY
Я ж в своей базе полным извратом занялся. SDI-окно после рождения приобретает родителя в виде главного и сворачивется в псевдо-трей главного. А при закрытии — кнопка из псевдо-трея уходит.
Вот так оно смотрится
+/29/ И не надо мне там вообще никакого меню. Кнопки под каждого юзверя прям на ходу перестраиваются
(28) MarSeN,
Честное слово, аж кайф поймал :))) Свои 😉
(31) Abadonna
)))
А ты не мог бы глянуть в исходники «Внешняя компонента для работы со строками»? там как раз то что мне надо «Метод ПодключитьКонтрольНавигационныхСсылок() // без параметров.»
(32) MarSeN, а там и смотреть нечего, там всего одно условие на сабклассинге
(33) Словечки подбирай
(34) Abadonna
Понятно. Я просто уже в условии if TheMessage = WM_PARENTNOTIFY пытался LOWORD(ParamW) сравнить с WM_CREATE и тогда послать событие в 1С )
Там еще есть разница когда режим работы открытия окон в закладках и отдельными окнами. Лан, разберусь
Еще раз спасибо за помощь, Abadonna. Не буду «засорять эфир» )
(35) MarSeN,
Вот когда отдельными, там, скорее всего, и будет LOWORD(ParamW)=WM_CREATE
(21) andrewks, извини, сразу не ответил…
По умолчанию String обрабатывается как AnsiString. Он может быть обработан как ShortString, если директива компилятора $LongStrings установлена в Off (по умолчанию установлена в On).
Поэтому ничего там специально не преобразуется, строка в Дельфи — массив AnsiChar
(37) фишка в том, что в 1С строка — unicode UTF-16
(38) andrewks, никаких фишек. Спокойно параметр s := V8AsWString(@Params[1]) принимает, и безо всяких делает
http://infostart.ru/public/81644/
Я даже не заморачивался. В v8napi.pas все уже предусмотрено, спасибо
Ты, поди, на Си фигаришь? Терпеть его не могу 😉
(39) я на Lazarus фигарю 😉
на Си тоже могу, но редко.
так я и не понял, какой тип имеет s?
(40) andrewks, Lazarus ка раз вчера пытал. Все зашибись, но размер экзюка… офигеть. Вроде и отладочну информацию исключил…
вот тебе полный код:
Показать
(41)
видимо, не до конца. отладочную инфу лучше в отдельный файл переключить
(41) вот здесь
s := V8AsWString(@Params[1]);
идёт неявное преобразование типа. так делать не желательно
(43) andrewks, знаешь почему у меня достаточно уникальные разработки? Меня никто не учил, что «так нельзя», я делаю — оказывается можно :))) Вечный двигатель стопудово изобретет человек, который не знает, что его изобрести нельзя 😉
(44) и тем не менее… можно получить необратимое преобразование с потерей (если в строке есть символы, не укладывающиеся в ANSI)
+/44/ V8AsWString(@Params[1])- везде стоит в MiracleNative, и везде нормально в строку воспринимается.
(46) Пока речь идет просто о строках — можно не замечать, что внутри компоненты идет преобразование строк в кодировку ANSI и обратно при возврате строк из компоненты. Подавляющее большинство строк, встречающихся в 1С, содержат только те символы, которые входят в кодировку ANSI — до тех пор, пока на компе есть поддержка русского языка и основная кодовая страница win1251. Но на многих серверах это уже не так. Но я не об этом.
Итак, пока речь идет просто о строках — можно особенно не морочиться с кодировками.
Но вот как только речь заходит про такие функции, как ПолучитьХешСтроки() или СтрокуБайтовВСтрокуСимволов() — то здесь мы уже имеем дело не просто со строкой, а с ее представлением в памяти, т.е. непосредственно с кодировкой! Результат этих функций напрямую зависит от кодировки строки. В этих функциях, имхо, обязательно должен быть еще один параметр, указывающий кодировку строки. Как минимум нужна поддержка кодировок ANSI, UTF8, UTF16LE и UTF16BE.
Ну либо в документации четко указать, что кодировка строк — ANSI.
Просто я подозреваю (не проверял, это лишь умозаключение!), что если установлю пароль «ДамТебеГорошка» в 1С, и получу хэш пароля через свойство СохраняемоеЗначениеПароля пользователя, он не совпадет с хэшем, посчитанным с помощью компоненты.
(47) awa, проверь 😉
вообще, меня не сильно волнуют другие кодировки. Все должны говорить или на русском,или на английском :)))
(47) awa, стопудово не совпадёт, т.к. хэш 1с вычислит либо с utf-16, либо с utf-8, и тоно не с ansi. других строк в базе 1с нет
думаю, даже с иероглифами можно не заморачиваться, а попробовать передать в компоненту неразрывный пробел, а потом получить его назад. думаю, придёт уже не он
(48) Пришлось проверить. Все как я и говорил. Не совпало.
1С считает хеш из последовательности байт, которые образует заданная строка в кодировке UTF8. Соответственно, пока в строке используются только символы из первой половины кодовой страницы ANSI (с кодом меньше 128), например английские буквы и цифры, то все совпадает, так как представление этих символов в кодировках ANSI и UTF8 совпадает. Но для русских букв представление в кодировках ANSI и UTF8 уже разное, и, как следствие, хэши, посчитанные 1С и компонентой разные. Для строки «ДамТебеГорошка» 1С считает такой хэш:
9c7a3ea5365f570b1cb5feea20cda9952b9111a8
Компонента для этой же строки считает уже совсем другой хэш
5643d69c000601f786174e28b8747b7177ae3ecd
В общем, Abadonna, очень зря тебя не волнуют другие кодировки. В текущем виде компонента не способна помочь в деле работы с паролями 1С.
Фактически, в компоненте нужна функция, которая считает хэш от строки в кодировке UTF8, и преобразующая двоичный хэш сразу в строку по алгоритму base64. Тогда это получится именно то, что хранится в 1С как хэш пароля.
(49) andrewks, я и не сомневался)) Логика — вещь железная))
(51) awa, спасибо. подправим. Всех дело-то: AnsiToUtf8(СтрокаAnsi)
(52) эмм… не хотелось бы огорчать… но лучше сразу получать unicode, юезо всяких unicode->ansi->unicode
(53) andrewks, проверю. не пойдет, сделаем по другому.
(54) не пройдёт
на строне х64 сервера не работает:(
Пишет:
(56) kanalex,
Пишет:
Тип не определен (AddIn.StringsNative.V8Strings)
Строки = Новый(«AddIn.StringsNative.V8Strings»);
Поддерживаю!! Сам бьюсь понять не могу чо за беда!
И походу я «приплыл» — все тестировал работая с клиентом и что интересно, если на клиенте подключать на том же самом сервере (через РДП) то все работает. А вот добавил создание этой функции в регламентное задание — и на тебе!!! Получил «Тип не определен»
Кто как решил?!
(57) mvgfirst, длях64 сервера нужна скомпилированная х64 версия библиотеки
Мне-то очень удобна была компонента.
Одновременно для работы нужно и MD5 и SHA1 (банк для обмена требует что бы 1000 раз хеш от хеша получить)
И тут вроде все в одном флаконе — но на сервере флакон не открывается
(58) andrewks,
Полностью с Вами согласен, а где ее взять? Или она идет в поставке а я просто незаметил?
Ща перекачаю проверю
(60) mvgfirst,
думаю, надо попросить автора собрать х64 версию (если её в архиве нет)
Автор — прошу! Скомпилируй пожалуйста в x64 — очень надо!
До меня дошло — почему при загрузке компоненты в клиенте — все работало.
Хотя я и запускал «Толстого клиента» на х64 сервере — он то запускался все-равно как x86 приложение (ибо их нет 64-разрядных)
А когда загнал в регламентное задание — компоненту уже захотел подключить сервер — и вот ему-то (чистому «арийцу») надо именно 64-х разрядную компоненту.
Эх блин, что бы выловить этот глюк — я потратил 5 часов (не хотел заморачиваться с отладочным режимом сервера — и все через логфайлы делал)
Очень надеюсь — завтра я проснусь, а 64-разрядная компонента уже скомпилена и готова к скачиванию!
(63) mvgfirst, это не глюк, это, как-бы, так задумано 🙂
клиенты под вин — только х32
а сервер — есть х32, есть х64
Автор! Отзовись пожалуйста, нужно понимание — ждать версию x64 или нет?
И в догонку, если вдруг грядут изменения, и возможно расширение функциональности компоненты — может добавить функцию «Пауза(КоличествоМиллисекунд)»
Нужно это для того что бы организовывать паузу между вызовами команд сервера (такие требования предъявил Банк — ждать минуту между вызовами его API)
(51) awa, Лови, именно твой горох там. Даже слопала пароль, который в белой горчяке только присниться может. Вот аж какой: ступаявлестамжуткоЫЫЫЫ. Уж уж буквы с самым большим кодом, всякие «я» и «Ы». За Япону мать гарантий не даю.
Доржи, ты бренды не порти!
(66) mvgfirst, добавив метод Задержка, обычный виндовый sleep(мс). Один параметр, если опущен по умолчанию 25 мс.
Что касается скомпилировать на х64, то могу попробовать только лазарусом, но там неизвестно, что вылезет…
Я на нем пока только «Пошел ты, мир!» написал.
Очень нужна 64-х разрядная, или скажем так «запускающаяся в регламентном задании на 64-х разрядном сервере» )))
Я на мисте поднялтему поиска альтернтивных способов расчета MD5 и SHA1. Там предложили яваскрипты. И все бы хорошо… да вот выяснилось что в 8.2 метод base64Строка возвращает совсем иное значение чем метод твоей компоненты: ПолучитьСтрокуBase64
И что самое печальное банк «хавает» именно твой вариант. Понять немогу почему….
И кстати вопрос, а если запустить твою компоненту на сервере Линукс, работать будет?
Не то что бы мне это было нужно — но все-таки.
Под эмулятором будет. Я ж не бог, а тупой одноэснег (сам себя всегда так зову) и просто видновый прогер на Д7
(72) А когда ждать-то х64?
(71) mvgfirst, если имеется в виду сервер 1с под linux, то — нет.
и эмуляторы тут ни при чём. ну, а запуск вин-сервера 1с под вайном — это чистой воды извращение (при наличии «родного», линуксового)
(73) mvgfirst, можешь считать, что уже никогда. У меня даже ОС пол рукой нет x64, чтобы потом туда х64 IDE пихать.
Мечты… мечты…
Я гдето так и предполагал…. поэтому решил вопросы (надеюсь что решил) с помощью javascript
Три скрипта засунул в одну обработку и ее вызываю на сервере. Думаю — то что нужно. Хотя конечно по скорости не самый идеальный случай.
Что же, завтра рабочий день — в боевых условиях и проверим….
В любом случае спасибо за внимание и попытки помочь.
(76) mvgfirst, попорчена современная генерация снеговиковыми регл. заданиями. А вопрос-то решается просто:
батник на запуск от имени Автопилота, там более теперь даже параметр появился /execute, батник по ВИНДОВСКОМУ планировщику заданий — и твори, что хошь! У меня нигде регламенты не используются! А как на 7.7. делали?! Только так! Автопилота сделай терминальным — и все твоим скрипты на фиг не нужны
А может все-таки подумать и скомпилить?
MSScriptControl — тоже неработает в x64
Это прям как проклятие какое-то
В общем-то с горем пополам через COM+ обертку я запустил скрипты на x64 сервере
Но чего-то мне это вообще не понравилось
Слишком много танцев с бубнами
(79) а что вам нужно-то? хэши -md5 и sha1 под виндовый сервак 64 бита? на c# такое за полчаса-час максимум делается.http://msdn.microsoft.com/ru-ru/library/system.security.cryptography.aspx
ЗЫ и не надо говорить, что нет dotnet-а. не поверю.
(79) mvgfirst, ну что-то вы не ответили, хотя сообщение прочли. можно поиграться вот так
но это такой же костыль как и со скриптами. да и с кодировками.
(80) cool.vlad4,
Именно, только в виде внешней компоненты (которую кстати здесь и обсуждаем)
Уверен что именно так и есть на самом деле. Но я не пишу на c#, я не пишу внешние компоненты и вообще давно уже отошел от «низкоуровневого програмирования» поэтому — это не про меня.
А приведенную ссылку я изучал. И даже мне вот подсказали вот это:http://batcoh.livejournal.com/66407.html
(83) честно говоря мне лениво следить за всей веткой. если несложно киньте в личку описания функций, что вам нужны. я подумаю, что смогу сделать(сегодня правда, не обещаю). сервак 64 битный у меня под рукой имеется.
(83) там жуткий код. а другого наверное от смешения capicom, adodbstream, .net и 1С и не получится.
COM, конечно не быстрый, но думаю скорость у него просядает из-за того, он COM инициализирует при каждом вычислении хэша. не очень-то благоразумно.
Нужно мне ровно то что делает сабжевая компонента.
А именно
Хеш MD5 на вход который принимает строку а не файл (который должен работать очень быстро — мне его по условиям ТЗ ндо вычислять 1102 раза для каждого отсылаемого пакета)
Хеш SHA1 на вход тоже строка
Base64 — на вход должен принимать строку. Пробовал использовать родной 1С-овский. Но он работает только с двоичными данными — и как результат банк не принимает такой файл.
В 32-х разрядной среде — все это работает с помощью этой компоненты. В 64-х разрядной — компонента просто не пдключается.
(83) mvgfirst, может это подойдетКомпонента скомпилируешь исходники под 64 у меня ее нет под рукой. в архиве готовая dll для 32. возможно не так сделал))
(86) mvgfirst, сами процедуры в stmd5.cs а в обработке как использовать
(87) не подойдет. в таком виде по крайне мере. ВК по такой технологии(COM) на сервере не работает. Надо на чистый COM переписать.
(86) понятно. завтра отпишусь о результате.
Ок. Жду результатов. Я так понял — это будет еще одна Nativе-ная компонента.
А можно тогда сразу сделать две версии и под 32 и под 64 разряда. Что бы универсальная была. Я тогда в коде разделю… и буду подключть в зависимости от окружения.
Ну или одну которая сработает и там и там, если такое возможно конечно.
(90)не , это, не нативная, это же c#. если хочется нативную, могу на плюсах попробовать, но уже чуть позже(сегодня/завтра/послезавтра,как получится). это COM компонента, в архиве в reg64.bat — для регистрации в 64 битах. у меня на сервере работает. компонента простая как 5 копеек, — 2 с половиной метода, там же исходные коды, если захочется поменять. Также в backup
PS. не думаю, что на плюсах сложно, если взять готовую либу.
+(91) и да, если не хочется создавать каждый раз com объект на сервере, можно использоватьhttp://infostart.ru/public/62410/
(91) cool.vlad4,
Думаю надо пробовать… насколько я понял на сервере 1С предприятия работают только Нативные внешние компоненты.
Я готов подождать Нативную, т.к. с горем пополам уже запустил генерацию хешей на скриптах… но каждый день боюсь что перетанет работать из-за …. короче из-за чего угодно…
И конечно же я хочу заменить скрипты, на вызов внешней компоненты… поэтому готов и буду ждать нативную. Уверен что многие со мной согласятся. А если в нее можно будет добавлять другие полезные мелочи (например sleep) то тоже будет приятно
(93) хорошо. но вот это
не совсем верно. COM компоненты прекрасно работают на сервере 1С предприятия, в том числе написанные и на C#. Ваши же скрипты работают? а вызываются они по COM-у. Это обычные ВК не работают. Native-работают и там, и там. Вообще путаницу в терминах 1С хорошо внесла этими компонентами и Native.
А вот чисто теоретически, какой метод выполнится быстрее из COM или из Native-комопненты, при условии что алгоритм и язык программирования один и тот же?
Хотя, на сервере Native-компоненту нужно извлечь из макета и подключить, а COM-объект нужно всего лишь подключить. Но все равно… Native, даже исходя из названия (перевода) — как родная а значит должна работать быстрее
(95) mvgfirst, думаю, COM будет быстрее (но совсем чуть-чуть), из-за особенностей реализации Native-компонент 1С
(96) пока сырая, пресырая, но меня сейчас интересует, работает ли под сервером 64 у тебя, т.е. стоит ли доделывать. Использовал стандартный 1С шаблон ВК. Так, что подключить как обычно
Принял, спасибо.
Как раз сейчас доделываю свой универсальный планировщик — как раз будет возможность протестировать.