artbear 19.04.2006 - 11:48 |
Для тех, кто только что присоединился. -------------------------------------------------------------------- Автор всего этого набора чудес - Александр Орефков aka orefkov А также все, у кого есть время и силы писать плагины/скрипты для Опенконф -------------------------------------------------------------------- Сабж + плагины/скрипты для Опенконф (сайт автора) http://openconf.itland.ru/beta Последние версии (на 19.04.06) ( ВНИМАНИЕ ) OpenConf 1.0.2.0 - http://openconf.itland.ru/beta/oc1020.zip Телепат 2.0.0.0r (beta) - http://openconf.itland.ru/beta/telepatr.zip -------- Начинающим рекомендую обязательно почитать: На ресурсе от Young можно взять интересные статьи об установке Опенконфа, Телепата, Интеллисенс и об использовании различных скриптов Опенконфа Раздел постоянно пополняется новыми сведениями и статьями. Адрес http://www.script-coding.info -------------------------------------------------------------------- FAQ http://1c.alterplast.ru/faq/telepat.html http://1c.alterplast.ru/faq/openconf.html Предыдущие ветки о Телепате/Опенконфе можно взять на страничке http://1c.alterplast.ru/faq/telepat.html ---------------------------------------------------- На сайте Федора Езеева (fez) организован репозитарий скриптов для Опенконф. Как правило, последние версии большинства скриптов будут находиться именно там. ----- ChangeLog изменений скриптов в репозитарии скриптов можно посмотреть по адресу http://1c.alterplast.ru/files/ocs/changelog.html ----- очень рекомендую просмотреть. Кто, когда, в каких файлах и почему менял :) ЗЫ этот файл - что-то вроде истории, удобно использовать вместо описания :) ----- По указанному ниже адресу всегда будет лежать самый последний снимок скриптов из репозитария http://1c.alterplast.ru/files/ocs/ocs_last.dos.zip Последние версии скриптов брать из этого архива. ----- А в папке http://1c.alterplast.ru/files/ocs/ будут лежать архивы с ежедневными снимками репозитория (по датам) В архивах есть файл ChangeLog с полным списком изменений во всех скриптах репозитария на текущий момент. ---------------------------------------------------- Последнюю сборку инсталлятора для ОпенКонф, укомплектованную Телепатом и другими удобными плагинами, а также традиционно - самыми свежими скриптами из репозитария cvs.alterplast.ru можно скачать отсюда http://kuntashov.narod.ru/openconf-installer.html (или с www.proclub.ru) На 19.04.06 последний релиз инсталлера http://kuntashov.narod.ru/files/oc1020b20050806.exe (сборка от 06.08.05) -------------------------------------------------------------------- На itland.ru есть специальный форум для обсуждения именно Опенконфа и его плагинов (в т.ч. и Телепата) http://itland.ru/forum/index.php?showforum=37 -------------------------------------------------------------------- Другие плагины/скрипты для Опенконфа можно взять в Клубе Профессионалов http://1c.proclub.ru/modules/mydownloads/viewcat.php?op=&cid=1002
|
artbear 1 - 19.04.2006 - 11:50 |
Прежняя ветка находится по адресу http://www.kuban.ru/forum_new/forum9/files/258385.html Или скоро будет у fez-а в архиве веток http://1c.alterplast.ru/faq/telepat.html |
artbear 2 - 19.04.2006 - 11:54 |
(blazevic) Баг подтверждаю :( (MetaEditor) >>дублирование кода в Telepat_OnInsert в макросах telepat.vbs и Intellisense.vbs Вроде я это дублирование убрал сразу, когда перенес код Telepat_OnInsert из телепат.вбс в интелл.вбс Неужели я не сделал коммит? |
Adirks 3 - 19.04.2006 - 11:55 |
(245 и 247 из предыдущей ветки) Ага, есть контакт. Фишка оказалась в том, что в строчке "Если (ТЗОстатки.МОЛ=МОЛ)и(ТЗОстатки" напрочь отсутствуют пробелы вокруг "и". А я этот кусок кода сразу же отформатировал :) Проблема вроде бы исправляется, если в строке 1322 заменить текст BreakingSymbs = " ;/-:',=+*|" + vbTab на BreakingSymbs = " ;/-:',=+*|()" + vbTab Но пока я не уверен, не скажется ли это на чём-то ещё. Какой-то код там уж больно непонятный. Так что в репозитарий пока не заливаю, потестирую пока на себе. |
artbear 4 - 19.04.2006 - 12:04 |
(3) Да, код там хитрый :) Но ИМХО твои изменения полностью верны. И смело можно заливать. |
Vaicartana 5 - 19.04.2006 - 12:11 |
Артур, запусти аську - есть вопрос. |
MetaEditor 6 - 19.04.2006 - 12:18 |
2)значит не сделал) что делать с Telepat_OnShowMemberList в интелле? может там проверять на существование скрипта RunAllIntellisence и отменять в этом случае? |
artbear 7 - 19.04.2006 - 12:19 |
(5) Включил, а тебя нету :( |
artbear 8 - 19.04.2006 - 13:31 |
(3,4) Да, это изменение заливать рановато, есть глюки, как мы уже выяснили :( |
trdm 9 - 19.04.2006 - 14:54 |
(3) Скажется, ведь скобки там важны. |
blazevic 10 - 19.04.2006 - 17:50 |
Есть еще не отлавливаемый баг с вылетом конфигуратора при использовании Intellisense. Постараюсь определиться с условиями при которым идет вылет м потом сообщу в этой ветке |
artbear 11 - 20.04.2006 - 09:18 |
(6) Все ведь давно решено :), В файлике Конфиг\Интелл\Интелл.ини есть описание //Если параметр TELEPAT установлен в ДА, то Intellisence будет отрабатывать событие Telepat_OnShowMemberList // которое возникает при нажатии точки после имени. При любом другом значении событие отрабатываться не будет. TELEPAT = ДА --- Поставь НЕТ, и проблема решится :) |
blazevic 12 - 20.04.2006 - 10:15 |
Если будете пересылать друг другу архивы со скриптами, не кладите в архивы скрипт SYSTEM/Register_OpenIn1C.vbs т.к. на него DrWeb ругается В сообщении содержался объект, инфицированный модификацией вируса VBS.Generic.5. и письмо блокируется |
artbear 13 - 20.04.2006 - 10:18 |
(ВНИМАНИЕ) В результате общения с blazevic выяснили, ПОЧЕМУ У НЕГО ВАЛИТСЯ КОНФИГУРАТОР !! Все-таки виновата совместная работа Телепата и интелла при включенной автоактивации подсказки Телепата для методов 1С :( Вылет происходит при наборе СоздатьОбъект(" в это время Интелл показывает окно выбора, а также телепат выдает свою подсказку. Т.е. наличие в файлике интелл.ини строки SHOWTOOLTIPS = НЕТ в этом случае роли не играет. Поэтому для исключения подобных вылетов ПРЕДЛАГАЮ - ============================================ 1) в файлике telepat.vbs вместо строки Telepat.AutoParamInfo = True ' Автоактивация подсказки о параметрах написать Telepat.AutoParamInfo = False ' Автоактивация подсказки о параметрах 2) Если вы пользуете скрипт TelepatSettings.js, нужно удалить ВСЕ файлики telepat.prm из каталогов баз 1С и каталога Бин\Конфиг. 3) Перезагрузить Конфигуратор. ============================================ PS Сам я давным-давно эту работу выполнил для себя, поэтому о вылетах давно ничего не слышал. ЗЗЫ (a13x) и кстати, по TelepatSettings.js, имхо не нужно эти настройки хранить в каждой базе, достаточно одной настройки в каталоге Бин\Конфиг. Т.е. вместо if (AutoSaveSettingsOnQuit) { SaveSettings(); } ИМХО нужно пользовать if (AutoSaveSettingsOnQuit) { SaveGlobalSettings(); } и соответственно восстанавливать настройки из файла в Бин\Конфиг |
blazevic 14 - 20.04.2006 - 10:20 |
+(12) На самом деле там вируса никакого нет. Этот файл одним махом регистрирует в реестре системные файлы. Но ДрВеб - полный маньяк. Ему это видимо и не нравится. В любом случае - в сборке скриптов никаких вирусов нет. |
artbear 15 - 20.04.2006 - 10:23 |
(13+) пока сижу на другой машине, доступа к репозитарию нету, поэтому сам файл телепат.вбс пока исправить не могу. Кто-нибудь из тех, у кого есть доступ в репозитарий, поправьте этот момент, ок? |
Adirks 16 - 20.04.2006 - 11:26 |
(13) залил, заодно добавил автоподстановку даты в комментариях, а то заколебался её каждый раз добавлять :) |
Young 17 - 20.04.2006 - 11:34 |
(14) DrWeb'ом вообще пользоваться нельзя, он со скриптами в принципе дебильно работает. Дело не в маньячности, а в лени разработчиков. Они просто не анализируют как следует код скриптов. Я пользуюсь вот этим: http://www.free-av.com/ (для дома бесплатно, кстати), обновления почти каждый день, выкачиваются автоматом. |
MetaEditor 18 - 20.04.2006 - 11:43 |
11) если выключить TELEPAT = ДА в ини файле тогда оба скрипта и интел и RunAllIntellisence не будут реагировать на точку... а надо бы чтобы при наличии двух скриптов реагировал только один... |
a13x 19 - 20.04.2006 - 11:43 |
(13) По поводу TelepatSettings. Просто в телепате есть настройки, специфичные для базы - "Компоненты" и "Язык", вот я и сделал "более универсально". Но я не возражаю против исправления :-). |
artbear 20 - 20.04.2006 - 13:54 |
(18) ИМХО ты неправ. У меня данный параметр выключен, все работает при вводе точки. Или я тебя не понял? :) |
blazevic 21 - 20.04.2006 - 17:53 |
Нашел извращенный пример при котором Интеллисенс не срабатывает :-) --------------------------------------------------------------------- ТЗОСтатки = СоздатьОбъект("ТаблицаЗначений") ТЗОстатки.НоваяКолонка("ИД"); ТЗОстатки.НоваяКолонка("Таблица") ТЗОстатки.НоваяСтрока() ТЗОстатки.ИД = 1; ТЗОстатки.Таблица = СоздатьОбъект("ТаблицаЗначений"); ТЗОстатки.Таблица.НоваяКолонка("ОС"); ТЗОстатки.Таблица.НоваяКолонка("Количество"); ТЗОстатки.Таблица.НоваяКолонка("Сумма"); -------------------------------------------------------------------------- И теперь интеллисенс после второй точки ТЗОстатки.Таблица.| не сработает так как положено. |
blazevic 22 - 20.04.2006 - 18:04 |
Еще код, при котором не срабатывает Интеллисенс: ====================================================== Процедура ОбработкаВыбораЗначения(ВыбЗнач,ИдЭлем,ФлСтОбр) Если ИдЭлем = "КБКСписания" Тогда Если ВыбЗнач.ВидКлассификатора<>Перечисление.| КонецЕсли; КонецПроцедуры ====================================================== Вот отладочные сообщения: ====================================================== CurrentLine - < Если ВыбЗнач.ВидКлассификатора<>Перечисление> RSide - <> Строка не соответствует шаблону для выбора типов - < Если ВыбЗнач.ВидКлассификатора<>Перечисление> Строка не соответствует шаблону для выбора типов - < Если ВыбЗнач.ВидКлассификатора<>Перечисление> ищу тип для <выбзнач> - <выбзнач> sRegExpression - <[^\wа-яё]*(выбзнач|перемвыбзнач)(=[\wа-яё\d_.]*\.?(создатьобъект|перехватитьактивх|wrapactivex|createobject|получитьпустоезначение)\("([\wа-яё\d_.]+)"\);*|[,;=]*//:([\wа-яё\d_.]+))> sRegExpression - <[^\wа-яё]*(функциявыбзнач\().+([,;=]*//:(([\wа-яё\d_.]+)))> подставлю в регулярное выражение <выбзнач.видклассификатора<>перечисление> - <выбзнач\.видклассификатора<>перечисление> подставлю в регулярное выражение <выбзнач.видклассификатора<>перечисление> - <выбзнач\.видклассификатора<>перечисление> |
blazevic 23 - 20.04.2006 - 21:56 |
Еще один баг: =================================================== Опер = СоздатьОбъект("Операция"); Опер.Новая(); Опер.Документ.| <- здесь не вызываются некоторые методы документа, например мне нужен был УстановитьНовыйНомер() =================================================== PS. Вы уж извините что баги нахожу. Я не специально. Просто пишу код, а они бац! - и вылезают! |
blazevic 24 - 20.04.2006 - 22:10 |
Еще одна мелочь в Intellisense ================================================= В метаданных установлено максимальное количество субконто = 5 Когда пишешь Опер.НоваяПроводка() и выбираешь из списка НоваяПроводка()+автозаполнение то в сформированном шаблоне проводки только 3 субконто для Дебета и Кредита |
trdm 25 - 21.04.2006 - 02:24 |
Кто там хотел визуальный редактор текстов? http://www.viksoe.dk/code/scriptstudio.htm |
MetaEditor 26 - 21.04.2006 - 06:15 |
20)хм... у меня если отключить в ини файле, несрабатывает точка... только по хоткею вручную. Да и как он может срабатывать если в обоих скриптах когда ТЕЛЕПАТ <> ДА то в скрипт не добавляется плагин телепат (AddNamedItem)... мож утебя макрос повешен на хоткей "." (точка)? ну или это я гоню...) |
artbear 27 - 21.04.2006 - 07:47 |
(26) Ага, ты прав. У меня с давних пор, когда еще у телепата не было события OnShowMemberList, хитрым способом посажен макрос на точку, при этом в списке клавиатуры ничего не видно :( |
artbear 28 - 21.04.2006 - 08:02 |
(26+) Нет, после более подробного изучения выяснил: макроса на точке давно нету, это я перепутал :) Дело в том, что если в файле интелл.ини параметр TELEPAT не прописан, он автоматически приравнивается к "ДА". А я как раз просто закомментарил определение "TELEPAT" :) - Как только поставил "НЕТ", сразу перестала отрабатывать точка. ============= -- Для решения проблемы нужно в Интеллисенс.вбс в процедуре Sub InitTelepat(EmptyParam) вместо строки If UCase(GetIniParam("TELEPAT")) = "ДА" Then прописать - вернуть старую строку на место :) If not FSO.FileExists(fname) and UCase(GetIniParam("TELEPAT")) = "ДА" Then в этом случае никакого двойного вызова не будет! -- Естественно, параметр TELEPAT должен быть установлен в "ДА" или вообще не задан! ============= -- ЗЫ доступа к репозитарию у меня опять нет, кто-нибудь поправьте, ок? |
Young 29 - 21.04.2006 - 11:19 |
(25) Красиво, но абсолютно ничего непонятно :) |
Тертый 30 - 21.04.2006 - 11:36 |
блин, токуа соберусь скачать обновление из репозитария, как каие-нить ошибки находятся.... ;) |
artbear 31 - 21.04.2006 - 12:06 |
(30) Это не совсем ошибка. Все равно у всех стоит TELEPAT = "ДА" |
Тертый 32 - 21.04.2006 - 12:52 |
Эх... (мечтательно) - сделал бы кто-нить интерактивный обновлятор! |
MetaEditor 33 - 21.04.2006 - 13:45 |
отправил в репозитарий: [-] исправлен (убран) повторны запрос имени процедуры при вставке текста телепата "Процедура_КонецПроцедуры" [-] исправлен (убран) повторный показ списка методов если пользователь отказался от выбора |
Тертый 34 - 21.04.2006 - 13:59 |
скачивать только завтра можно? |
MetaEditor 35 - 21.04.2006 - 14:02 |
34) говорят архив делается восколько-то ночью по МСК... точно незнаю...) |
Young 36 - 21.04.2006 - 14:22 |
А что, если обновлятор на 1С написать (.ert)? |
transbublik 37 - 21.04.2006 - 14:37 |
(36) (шутка) нужно сначала поисправлять ошибки в скриптах, а то долго на 1С писать прийдется :) |
Тертый 38 - 21.04.2006 - 15:11 |
36)а пофиг, конечно, лучше отдельной прогой |
a13x 39 - 21.04.2006 - 16:22 |
По поводу обновлятора: . 1. Имеется в виду тупое сравнение двух каталогов (один - config, другой OpenConf_Scripts) на наличие одинаковых файлов с последующей заменой соответствующих файлов в одном из них (config) на файлы из другого (OpenConf_Scripts) или все-таки что-то большее (разрешение конфликтов, например, умное обновление, установка _новых_ скриптов)? . 2. Если первое, то почему не воспользоваться какой-либо утилитой для синхронизации каталогов? . 2. Если второе, то: 2.1 По какому критерию определять что скрипт из папки config надо обновлять? Парсить оба скрипта на наличие строк \$Revision: 1.1 $. Хинт: они не во всех скриптах есть, хотя это не такая большая проблема. 2.2 Как вести в ситуациях, когда в папке config скрипт был мною отредактирован? Варианты: (а) молча заменить (б) молча проигнорировать (не заменять) (в) спросить что сделать (предполагает наличие интерфейса) . Что-то я уже забыл, пока меня отвлекали. |
a13x 40 - 21.04.2006 - 16:27 |
О, вот еще. Если некоего файла в одной из подпапок папки config нет в папке OpenConf_Scripts, то как вести себя в такой ситуации: 1. Игнорировать (ничего не делать) 2. Копировать новый файл в config в соответствующую директорию (тут возникает вопрос о "соответствующей" директории - ибо соответствие, к сожалению, не однозначное)? |
a13x 41 - 21.04.2006 - 16:38 |
Для разработчиков. Что нам мешает реорганизовать структуру каталога OpenConf_Scripts таким образом, чтобы он соответствовал структуре папки config сейчас? Переместить в отдельную папку или вообще удалить старые (неиспользуемые) скрипты? . Я понимаю, что иногда удобнее, когда скрипт и используемые им служебные файлы лежали вместе, но, кажется, это не столь критично. |
trdm 42 - 21.04.2006 - 17:19 |
Думаю не стоит заморачиваться савтообновлением. Причины a13x высказывал в предыдущих ветках. + такой резон: если человек разбирается что к чему, он обновит и сам, но если начнет глючить система тут ему уже мало кто поможет и разбор полетов сожрет много времени. . А лучше всего всетаки опираться на 2-х китов в этом деле: либо на изучение и разборки что тут к чему, что повлечет использование нормальных инструментов, либо на инсталятор. Вот такая моя ИМХА по этому вопросу. |
a13x 43 - 21.04.2006 - 17:37 |
(42) Если сделать то, что я предложил в (41), то можно и не заморачиваться (во всех смыслах). |
Young 44 - 21.04.2006 - 18:14 |
(trdm, 42) Не согласен. Думаю, для многих пользователей "обновлятор" будет очень удобен. И ещё повторюсь: я почти уверен, что много людей используют СТАРЫЕ версии скриптов ТОЛЬКО потому, что неохота (некогда) разбираться. А существующий простой инсталлятор, к сожалению, сильно чреват устареванием. (a13x) Имхо, логика обновлятора должна быть такой: 1. Сравнение содержимого каталога config\scripts с содержимым zip-файла. Сравнение без учёта вложенной структуры каталогов, т.к. структура каталогов внутри config\scripts может быть произвольной у любого пользователя OpenConf. После сравнения должен приводиться список скриптов для обновления и установки новых (а может, два списка; во всяком случае, должен быть лёгкий отказ от установки всех новых, т.е. типа команда "только обновить", всё это на уровне установки каких-то флажков, т.е. графический интерфейс нужен однозначно). Критерием для обновления может служить дата модификации файла. Тем, кто любит всё модифицировать под себя, это может быть не очень удобно, но я считаю, что во-первых, таких людей не много, а во-втрорых, файлов, модифицированных таким способом, тоже будет не много - можно отслеживать вручную (или просто переименовывать файлы). Если файл есть в config\scripts, но его нет в zip - просто игнорировать. При установке нового скрипта размещать его в каталоге по умолчанию, ориентируясь на zip-сборку. Иметь возможность интерактивно открыть текст "нового" скрипта из обновлятора, чтобы прочитать комментарии внутри него и принять решение, ставить этот скрипт, или нет. Наконец, иметь возможность интерактивно выбрать путь к своему config\scripts и путь к zip-сборке. 2. С плагинами и "системными" библиотеками хотелось бы поступить аналогично, хотя это уже несколько сложнее. Во-первых, нужно где-то хранить описание порядка регистрации библиотек, и это может быть специальный файл в сборке скриптов (в смысле, какую библиотеку регистрировать первой, какую второй и т.д.). С плагинами ещё веселее :) Например, обновление подсистем может потребовать запуска специальной графической утилиты. Может, обязать писать авторов плагинов при необходимости специальные установочные и обновляльные скрипты, лежащие в специальном каталоге каждого "дистрибутива" любого плагина, и запускать эти скрипты автоматом? Кроме того, потребуется "сборка плагинов" или включение плагинов в сборку скриптов. 3. Ессно, предусмотреть установку самого OpenConf, если он не установлен. P.S. Прочитал и ужаснулся :) Хотя, кстати, всё это можно написать на встроенном языке 1С. Наверное... |
a13x 45 - 21.04.2006 - 18:41 |
(44) По поводу п. 1 буду думать, спасибо хороший почти-use-case :-). . По поводу 2 все как раз проще, процесс регистрации давно автоматизирован (разве ты не знал?!): см. содержание regfiles.js - там есть и описание порядка регистрации. . Системные файлы в процессе апдейта в большинстве случаев можно просто заменить и перерегистрировать - так даже лучше - это позволит хотя бы частично избежать проблем с обратной совместимостью между wsc и dll файлами, которые друг друга используют (впрочем это крайний случай, его тоже можно временно отбросить). Так что здесь все практически тип-топ. (В инсталлере я вообще, например, из-за возможных проблем с зависимостями не даю пользователю выбирать, какие системные файлы устанавливать, а какие - нет: либо ставим все, либо ничего). 3. Ну тогда это уже не "обновлятор", а снова "установлятор" с функциями "обновлятора" :-). . На 1С можно, конечно же написать, но удобно ли? Короче, я пока еще думаю. |
Young 46 - 21.04.2006 - 18:55 |
(45) По поводу системных файлов. Да, можно ставить "всё или ничего". Но когда появятся какие-нибудь новые системные файлы со своей спецификой (порядком) установки, не хотелось бы обновлять обновлятор :) только из-за этого. Поэтому красивее было бы всё же иметь спец. файл описания порядка регистрации библиотек. Наверное. Теперь по некоторым плагинам. Посмотри например http://www.script-coding.info/SubSystems.html#_10. Удастся ли автоматизировать такое обновление плагина именно в таком виде? А хотелось бы... Писать обновлятор на 1С, имхо, вполне нормально будет. Можно всё очень красиво и удобно сделать, имхо. |
Young 47 - 21.04.2006 - 19:01 |
+(46) На счёт регистрации системных файлов дошло :) Да, пожалуй достаточно просто иметь скрипт, который это делает, внутри zip-сборки, и просто запускать этот скрипт всегда. |
a13x 48 - 21.04.2006 - 19:10 |
(47) Он есть уже давно! . Плагины тоже скорее полностью переустанавливать. К тому же в большинстве случаев плагин - это один dll-файл, Подсистемы - отдельный случай. Но опять же, не все уж так страшно - в конце концов можно действительно после того, как элементарные действия по обновлению произведены (нужные файлы куда нужно скопированы) запускать специальный скрипт, который произведет специфичные для данного обновления данного плагина действия (в случае Подсистем - это не скрипт, а исполняемый файл). . Нас скоро забанят за флуд =). |
Young 49 - 21.04.2006 - 19:23 |
(48) Какой же это флуд? :) С Подсистемами всё сложно. "Полностью переустанавливать" - не пройдёт, т.к. .mdb замещать нельзя, в нём данные пользователя! Кроме того, надо писать специальный скрипт, т.к. запуска StructureUpdater.exe недостаточно. Причём этот скрипт должен лежать в zip-сбрке обязательно в условном месте :) т.к. желательно эту процедуру унифицировать для всех плагинов (вдруг в будущем будут такие же "сложные" плагины). |
a13x 50 - 21.04.2006 - 19:39 |
(49) Да, я знаю о процедуре обновления, я в курсе, что в mdb-данные и говорил в (48) с учетом всего этого. Даже старый инсталлятор учитывает тот факт, что в mdb - данные пользователя и при установке поверх существующей инсталляции выполняется проверка на существование этого файла. Я про это помню. Про "условное место" - само собой. По поводу унификации - пока не получается. |
Michael 51 - 21.04.2006 - 19:39 |
(Young) & (a13x) Дайте народу инсталятор-обновлятор! На 1С это еще прикольнее было бы. Совершенно прав (Young) "...я почти уверен, что много людей используют СТАРЫЕ версии скриптов ТОЛЬКО потому, что неохота (некогда) разбираться" Абсолютно верно! Я вот до сих пор пользуюсь oc1020b20050806.exe. Жаль что проект заглох... ИМХО по Подсистемам - если ОДИН плагин не вписывается в общую стройную систему, может его пока временно исключить? Кто захочет доставит его руками.... |
Young 52 - 21.04.2006 - 19:48 |
(50) Ну почему же по-поводу унификации не получается? Например: каждый плагин обязан иметь в подпапке "Install" своего дистриба скрипты Upd.vbs и Inst.vbs, которые запускаются обновлятором, если они существуют. Эти же скрипты выполняют ВСЮ работу по инсталляции своего плагина. Обновлятор ничего не копирует. Если таких скриптов нет, обновлятор копирует dll плагина, если он устарел (дата модификации файла). Собственно, и всё. Upd.vbs и Inst.vbs при этом могут иметь графический интерфейс, запускать exe-шники с графическим интерфейсом и т.д. |
Young 53 - 21.04.2006 - 19:56 |
Ещё посторонняя мысль :) Эту ветку хорошо мониторят разработчики и активные участники. Пользователи начинают подключаться к обсуждению только тогда, когда веточка только что поднята кем-то из "постоянных". Я уже предлагал Web-мастеру "прилепить" ветку, но он отказался :( Имхо, было бы очень полезно для проекта, если бы ветка была на виду всегда... Что бы такого придумать? |
a13x 54 - 21.04.2006 - 20:05 |
(51) Никто не заглох. И исключать никого не будем. (52) Не торопись, сделаем, но не все сразу. |
artbear 55 - 22.04.2006 - 14:30 |
Маленькое обновление плагина "История" вер 1.6 [-] выдавалось надоедливое сообщение при открытии Конфигуратора в новых базах Выложил на http://openconf.itland.ru/beta/history.zip |
Тертый 56 - 22.04.2006 - 16:59 |
53) Мысль и действительно, посторонняя. Ветка существует более 2 лет. <<Пользователи начинают подключаться к обсуждению только тогда, когда веточка только что поднята кем-то из "постоянных">> - постоянный - это ты? Ничуть не умаляя твоих трудов по описанию проекта (+ пиара своего сайта заодно), ты в ветке не так давно, по крайней мере я помню твой приход сюда. Не слишком ли много админовских функций берем на себя? 54) Помнишь, я предлагал синхронизировать для удобства обновлений кталоги в инсталлере и в репозитарии? Время показывает, что так лучше :) |
a13x 57 - 22.04.2006 - 18:04 |
(56) Я думаю, он имел в виду, что надо что-то придумать, чтобы ветка была всегда доступна для пользователей, в том числе и для тех, кто поиском пользоваться не умеет/не желает. Всего-то. . Поэтому, ты совершенно зря так неаккуратно. Точно знаю что Young не претендовал на звание модератора/админа этой ветки (хотя если бы такой вопрос возник, я бы был только за его кандидатуру) - не про то он говорил. . Кстати, он единственный из всех "местных", кто взял на себя труд документировать ЧУЖИЕ разработки, если ты забыл. |
a13x 58 - 22.04.2006 - 19:03 |
------------------------------------------------ Новая сборка OpenConf Power Pack от 22.04.2006 ------------------------------------------------ Качать традиционно с Проклаба http://1c.proclub.ru/modules/mydownloads/personal.php?lid=5095&cid=1001 либо с моей страницы (на случай падений Проклаба): http://kuntashov.narod.ru/openconf-installer.html ------------------------------------------------ Традиционно рекомендую производить "чистую" установку (то есть, предварительно деинсталлировав предыдущие версии - не зависимо от того, как предыдущая версия была установлена: инсталлятором или вручную). . Если все же решитись устанавливать "поверх", то для тех, кто пользуется плагином "Подсистемы" после установки надо будет произвести дополнительные действия по обновлению структуры базы данных, в которой хранится информация о подсистемах. Подробности см. на странице script-coding.info/SubSystems.html#_10 |
Young 59 - 22.04.2006 - 20:18 |
(56) Не в кассу. Насчёт "админовских функций" - совсем невпопад. |
skafandr 60 - 22.04.2006 - 21:08 |
(58)Гип-гип УРА !!!! Спасибо большое за заботу о "неписателях". И вообще вы все - молодцы ... |
Тертый 61 - 22.04.2006 - 21:11 |
57) Ладно, наверное погорячился я, может - не умею между строк читать. Но я "за" то, чтобы ВСЕ было в одном месте, а то ФАК у Федора, описание - у Youngа, обсуждение на Итланде и здесь. И ничего я не забыл, цитирую себя - "Ничуть не умаляя твоих трудов по описанию проекта" 58) как всегда - огромное личное и общественное спасибо! (Все равно обновлятор надо!!!) И без разницы - на 1С он или нет: где нет 1С - не нужен и обновлятор. 59) разъясни позицию в 53) и все. А то "осадок" остался ;) |
Phoenix 62 - 22.04.2006 - 21:31 |
Реструктуризацию вынес в отдельное приложение т.к. струтура таблиц постоянно меняется, добавляется новый функционал, анализировать всю БД при запуске и реструктуризировать - не очень хорошо, появляются тормоза при запуске системы. кстати, кто как относится к тому, чтобы сделать возможным хранение данных подсистем в MS SQL Server? P.S. следующий релиз будет не очень скоро, не смотря на то, что есть проблемка при удалении записи блокировки объекта БД. |
Young 63 - 22.04.2006 - 21:54 |
(61) Всё разъяснено в (57). (62) Имхо, хранение данных подсистем в MS SQL Server не очень нужно, т.к. данных не так много, и вполне удобно и компактно хранить их в mdb. |
Phoenix 64 - 22.04.2006 - 22:04 |
(63) у MDB есть ряд моментов, которые меня бесят. например распухание БД, постоянно приходится сжимать, это распухание сказывается на скорости. если огранизовывать рабоут по сети лучше все же работать с полноценной БД, тем более если к базе будет цепляться несколько человек. при этом вариант работы с акцессом останется. добавится возможность использовать помимо акцесса еще и СКЛ сервер. |
Young 65 - 22.04.2006 - 22:43 |
(64) Ну, в общем - от расширения функционала вреда не будет, имхо :) (55) Несколько мелочей: 1. Элементов истории - 49 :) 2. Если история пуста, случайный двойной щелчок по полю списка вызывает ошибку, после чего надо перезапускать Конфигуратор. 3. Свежесозданные файлы в историю не попадают. 4. Если открываемого файла не существует, можно выдавать сообщение и удалять запись истории. 5. Можно будет выложить плагин с кратким описанием на скрипт-кодинге? |
Тертый 66 - 23.04.2006 - 10:32 |
+65) а еще раньше вылетал конфигуратор, после удаления плагина - переставал вылетать. Исправлено? Плагин-то удобный, но... |
a13x 67 - 23.04.2006 - 11:57 |
(66) Во время тестирования сборки вылетов вообще замечено не было даже при всех установленных плагинах (что меня весьма удивило, поскольку у меня на рабочей машине стоят только три плагина, а вылеты при выходе из конфигуратора через раз наблюдаются). Тестировал на чистой машине XP SP2. |
artbear 68 - 23.04.2006 - 14:31 |
(Young) Выкладывай к себе на сайт без проблем, вроде об этом мы с тобой уже говорили. По поводу развития плагина - я им практически больше не занимаюсь, его исходники (Visual Basic) выложены на http://openconf.itland.ru/beta/artbear Так что любой желающий может их изменить как ему нужно без всяких проблем на базе лицензии GPL |
Young 69 - 23.04.2006 - 18:14 |
(68) Выложил: http://www.script-coding.info/History.html Если я что-то упустил, поправь меня. |
Тертый 70 - 23.04.2006 - 18:18 |
67) ятолько про Историю - Артур ранее сам признавал наличие вылетов, утечка памяти или еще что-то - не помню. Если теперь этого нет - отлично! |
trdm 71 - 23.04.2006 - 20:44 |
(67) А чего вот это не закинул? (Конструктор запросов 1С++ (SQL), плагин к openconf) http://itland.ru/forum/index.php?showtopic=13369 прикольная вещь. |
trdm 72 - 23.04.2006 - 20:49 |
(+71) уточнение: http://itland.ru/rep/index.php?id=551 |
a13x 73 - 24.04.2006 - 08:09 |
(72) Банально забыл, а на Проклабе его нет. Исправлюсь в следующий раз, если автор позволит, конечно. |
Тертый 74 - 24.04.2006 - 10:21 |
73) Ни откуда не могу скачать Инсталлятор - с проклуба - битый архив, у тебя - 24% загрузки и тормоза, уже полчаса качаю :( |
trdm 75 - 24.04.2006 - 11:26 |
Я и сам о нем вспомнил только тогда, когда запрос хотел нарисовать. Зарылся на итланде на черт знает какой странице..... |
trdm 76 - 24.04.2006 - 16:11 |
(58) Установил на чистый 1С, ВИН 2003-сервер. (все скрипты, все плагины) Некоторые шорткаты конечно дикие после своих предпочтений, но все съедобно. Кто-то отдал предпочтение Ctrl-Tab при переключении по закладкам. Вопрос: А как между окнами внутри 1С пререключаться? Под ctrl-F6 можно растяженией пальцев получить )) Из клавиатуры.js перебросил только: function РедактироватьКонфигурацию() { SendCommand(33188) } уж очень к ней привык. . Предлагаю в старт - пакете немного подкорректировать хоткеи. . Проблемы: Через некоторое время перестало активироваться гл меню по alt. Убрал все плагины, кроме ClassesWizard, fdsubst, telepat, vis1cpp Прошло... . Стоны ): Не привычно после своих настроек повсеместное выскакивание списка телепата. для когото это возможно будет и удобным, но в тексте модуля там идут ложные срабатывания. После почесывания макушки привел в такое состояние ini: //Файл пользовательских настроек ... POINT_AFTER_ESC = НЕТ CHOICELIST_KIND = 2 TELEPAT = НЕТ SHOWTOOLTIPS = НЕТ . не помогло, тогда зарылся в Intellisence - Версия: $Revision: 1.1 $ И привел "ShowTooltip" в такое состояние: Sub ShowTooltip(param) Set wshShell = CreateObject("wScript.Shell") if UCase(GetIniParam("SHOWTOOLTIPS")) = "ДА" then wshShell.sendKeys "^+ " 'показываем подсказку телепата по параметрам end if wshShell.sendKeys "{ESC}" 'Зачем посылать ESC уже не помню, но зачем-то было нужно ' эта ESC подавляет список телепата после точки, когда точку уже обработал Интел End Sub После точки начал выскакивать только Intellisence - сформированный список. . Может как-нибудь сделать старт-настройки с менее агресивным поведением? Это просто мысли в слух. |
trdm 77 - 24.04.2006 - 16:17 |
На счет хоткеев, думаю, что лучше как-то приводить все к стандартам, хотя вопрос стандартов - дело спорное. ) (73) можно ли формировать хоткеи в инсталере с пом. *.reg - файлов? И в каком виде тебе предоставить хоткеи для возможных последующих сборок? |
Young 78 - 24.04.2006 - 16:41 |
(77) Ты обработину для просмотра-отладки объектов дописал? Если да, можешь заслать? |
trdm 79 - 24.04.2006 - 17:11 |
Еще нет. |
Young 80 - 24.04.2006 - 17:15 |
(79) Черкани письмецо (если можно), когда сделаешь, ладно? Интересно попробовать. |
a13x 81 - 24.04.2006 - 18:34 |
(77) По поводу Ctrl-Tab: когда поднимался вопрос о том, чтобы сделать "средний" для всех кеймап (http://1c.alterplast.ru/faq/tlpt_t1c/tlpt_t1c_16.html) никто против не был. Естественно, обсуждаемо, раз есть возражения - вернем, а кому надо настроят сами. . По поводу reg-файла: да, при инсталляции банально импортируется в реестр reg-файл с настроенными хоткеями, см. OpenConf_Scripts\Install\resources\HotKeys.reg. . Можно сделать несколько кеймапов, которые можно было бы выбрать при установке, если восстребовано. Только смысла делать несколько кеймапов в которые будут отличаться парой комбинаций, не вижу. А вот "тематические" кеймапы добавить было бы интересно: кеймап с комбинациями a-la 77 с дополнениями, кеймап с комбинациями a-la 80 (синтаксис-контроль на Ctrl+F7, запуск Предприятия на F5 и т.п.). |
Phoenix 82 - 24.04.2006 - 23:35 |
Мне больше нравятся шоткаты как в Visual Studio. Хоть почти опыта нет работы в VS. |
trdm 83 - 25.04.2006 - 14:58 |
(81) Виноват, не внимательно вчитывался. |
Adirks 84 - 26.04.2006 - 11:47 |
Добавился новый скрипт РаботаСФормами\ПроверитьФункцииВФормулах.vbs, плод совместного творчества Phoenix и ADirks. Скрипт предназначен для профилактических целей. В текущей форме перебираются все контролы, и проверяется наличие функций, использованных в контролах. Если функции нет ни в текущем модуле, ни в глобальном, то выдаётся сообщение вида ИмяСлоя - Заголовок - Идентификатор - ИмяФункции |
Anton R 85 - 26.04.2006 - 12:07 |
(85) Собирался сегодя написать такой :))))))))) |
Anton R 86 - 26.04.2006 - 12:09 |
85 для 84. |
Adirks 87 - 26.04.2006 - 13:54 |
(85) там кстати ещё много чего желательно доделать - так что, не надо останавливаться на достигнутом :) |
trdm 88 - 26.04.2006 - 14:19 |
Может еще переучет кеймапов устроим? Сейчас свой подготовлю. |
trdm 89 - 26.04.2006 - 14:58 |
Ctrl-K -Клавиатура:РедактироватьКонфигурацию Alt-Num 3 - Клавиатура:СледующаяСтраницаФормы Alt-Num 9 - Клавиатура:ПредыдущаяСтраницаФормы Ctrl-G - Клавиатура:ПерейтиКСтрокеПоНомеру Ctrl-F - Клавиатура:Найти . Ctrl-4 - Шорткаты:OpenGlobalModule Ctrl-Shift-X -Шорткаты:ToggleSyntaxHelper Ctrl-Shift-S - Шорткаты:TogleSearchWindow Ctrl-Shift-Z - Шорткаты:ToggleOutPutWindow Alt-б - Шорткаты:OpenAngleBracket 'Вставляет символ '<' Alt-ю - Шорткаты:CloseAngleBracket'Вставляет символ '>' Ctrl-A - Шорткаты:ClassicCtrlA Alt-х - Шорткаты:OpenAngleBracket2 'Вставляет символ "[" Alt-ъ - Шорткаты:CloseAngleBracket2 'Вставляет символ "]" Alt-э - Шорткаты:CloseAngleBracket4 'Вставляет символ "'" Alt-\ - Шорткаты:CloseAngleBracket5 'Вставляет символ "|" F9 - Шорткаты:OpenInDebugger . F7 -NavigationTools:SelectMetadataAndGotoObj Ctrl-Shift-A - NavigationTools:GoToFormula . Ctrl-Shift-B -Brackets:ChoiseTypeBracket Ctrl-B - Brackets:AddBracket . Ctrl-6 - GComp-run:RunGComp Ctrl-7 - GComp-run:GCompVersion Ctrl-Ю - jumper:GoDown Ctrl-б - jumper:GoUp Ctrl-. - jumper:KakPrigat . Ctrl-Shift-э - Intellisence:MethodsList Ctrl-Shift-1 - Intellisence:Update1CppInts // Самый неудобный, но самый запоминающийся. Ctrl-C - Intellisence:CopyLine . Ctrl-Shift-Ю - VimComplete:NextWord Ctrl-Shift-Б - VimComplete:PrevWord . Ctrl-\ - dots:InsertFromSlovar Ctrl-Num+ - dots:AddWordToSlovar Ctrl-Shift-. - dots:WordOfCaret Ctrl-Ё - dots:GetGlobalModuleFunc . Ctrl-5 - trdm:RunIBDir F8 - trdm:Translit . Ctrl-0 - OpenFileEx:OpenFileInIBDirExtForms Ctrl-P - SubS3:ShowSubS3 Ctrl-Т - Выбрать из списка:SelectFromComboBox Ctrl-Shift-G - Форматирование текста:FormatBlockWithTabs Ctrl-Shift-H - Форматирование текста:ChoiseCharForFormating Я это все к чему, борьба кеймапов за существование, он ведь обусловлена еще и тем, что удобные комбинации клавишь отвоевывают себе наиболее часто используемые скрипты. |
a13x 90 - 27.04.2006 - 08:42 |
(84) Хорошо бы добавить к нему (или наоборот) функционал макроса dots::SyntaxCheckModule() by trdm, у меня для синтаксического контроля сейчас используется вот такой макрос (вызов проверки формул вчера добавил): ---------------------------------------------------------- $NAME Синтаксический контроль function FullSyntaxCheck() { if( Scripts('dots').SyntaxCheckModule() && Scripts('ПроверитьФункцииВФормулах').CheckControlFunctionsExistens() ) { Scripts('Шорткаты').SyntaxCheck(); } } ---------------------------------------------------------- Процедуры SyntaxCheckModule и CheckControlFunctionsExistens в соответствующих скриптах сделаны функциями, которые в случае ошибки возвращают false, если ошибок нет - true. Это сделано, потому что 1Совский синтаксический контроль всегда очищает окно сообщений - не зависимо от того, первым его поставить или последним (видимо, все из-за тех же особенностей метода SendMessage OpenConf'а, который есть на самом деле PostMessage и как его не вызывай, обрабатывается это событие после выполнения последующий строк макроса). --------------------------------------------- (89) Ага, спасибо, я на досуге посмотрю. Хотя уже сейчас заметил некие трудности: у меня нет скрипта trdm :-). |
gemx 91 - 27.04.2006 - 09:19 |
Подскажите, плиз, как сделать чтобы по Ctrl-H выходила подсказка, которая по умолчанию выходит на Ctrl-Shift-Space? |
Young 92 - 27.04.2006 - 13:05 |
(91) Подсказка ещё и по Esc выходит. |
trdm 93 - 27.04.2006 - 20:03 |
(90) Да там всякая чепуха: ' Выдает на редактирование строку каталога ИБ, использовал что-бы ' побыстренькому туда пробежаться в Эксплорере или Тотале Sub GetIbDir() ttext = IbDir ttext = InputBox("Каталоги ИБ","Каталоги ИБ",ttext) End Sub ' Запускает Эксплорер со стартовой директорией каталога ИБ ' И можно вободно серфить там. Sub RunIBDir() ttext = IbDir Set WshShell = CreateObject("WScript.Shell") WshShell.Exec("%SystemRoot%\explorer.exe /e, "+ttext) End Sub а F8 - trdm:Translit (у меня перевод из ошибочно написанного руского текста при использовании англицкой раскладки) где то был в стандартной поставке, можно его туды переназначить. Вернее |
DES 94 - 27.04.2006 - 22:31 |
по Инсталятору... Уберите дубдяж Конструктора ТЗ и Конструтора таблицы значений... plz. И как заставить работать Ctrl+Б чтобы было < ? |
Young 95 - 28.04.2006 - 00:06 |
(94) Нужно назначить Ctrl-Б и Ctrl-Ю для макросов OpenAngleBracket и CloseAngleBracket в скрипте Шорткаты.vbs. |
Любитель XML 96 - 28.04.2006 - 00:22 |
http://www.forum.mista.ru/topic.php?id=177187&p=&time=1146167951#F Может ли такое из-за Опенконфа быть? |
DES 97 - 28.04.2006 - 07:28 |
(95) Нужно залезть в исходник Шорткаты.vbs или посредством Шорткаты.vbs ? Поставил Опенконф на 25 из нового инсталятора, в начало глючить со страшной силой. Не закрывается Конфигуратор, вылетает с ошибкой при закрытии. Что то кажется перемудрено с ним... |
trdm 98 - 28.04.2006 - 08:59 |
(97.1) глМеню "OpenConf"->"Макросы"->"Клавиатура" (97.2) Попробуй из плагинов оставить только telepat.dll, потом постепенно верни остальные и увидишь как и что глючит. ТАк же и со скриптами, но у скиптов меньше возможностей влиять на стабильность работы системы. посмотри пост (76), чистая установка на win2k3. |
Michael 99 - 28.04.2006 - 09:08 |
Сразу по выходу нового инсталера установил (предварительно снеся старый набор вручную). Никаких глюков не заметил. Вот только конечно привычные сочетания клавиш полетели. Это не очень удобно... WinXP Pro/SP2. |
a13x 100 - 28.04.2006 - 10:57 |
(94) Не понял по поводу дубляжа. (97) Переустановите Windows Scripting Host (см. ФАК по ссылкам выше), должно помочь, это раз. (99) При установке надо было в списке компонентов снять галку с пункта "Клавиатурные сочетания" (это на будущее). |
DES 101 - 28.04.2006 - 13:29 |
(100) Кажется мне, что дублируются скрипты конструктор ТЗ |
DES 102 - 28.04.2006 - 13:43 |
а кто расскажет, кто подскажет, где мне найте её scriptru.exe 5.6.0.8825 ? |
Тертый 103 - 28.04.2006 - 13:56 |
ищи scr56en |
a13x 104 - 28.04.2006 - 14:33 |
(101) Понял, дублируются не скрипты, а функционал. Точнее, скрипт Конструкторы\Конструкторы ТЗ.vbs создан на основе Конструкторы\ТаблицаЗначений.vbs. Последний, думаю, можно безболезненно удалить из репозитория. В следующей сборке исправим, спасибо. . Но чем наличие обоих скриптов мешает - не понял. |
a13x 105 - 28.04.2006 - 17:07 |
(102) http://openconf.itland.ru/beta/artbear/scrdoc56en.exe |
Young 106 - 28.04.2006 - 17:18 |
(102) http://atombyte.com/ftp/scriptru.exe |
DES 107 - 28.04.2006 - 19:37 |
(104) не мешает, но раздражает... шучу... (105) а зачем ты en рекламируешь ? (106) спасибо |
DES 108 - 30.04.2006 - 15:44 |
Научите как сделать (именно научите, а не сделайте за меня) чтобы //// заменялось на //_________________________________________________________________ |
Phoenix 109 - 30.04.2006 - 16:46 |
Сервис\Настройка шаблонов\ создаешь новый шаблон. в поле "заменять" указываешь //// в поле "на" //_________ сохраняешь шаблон. P.S. RTFM |
DES 110 - 30.04.2006 - 21:11 |
сделал, сохранил, перегрузил Не работает. |
Young 111 - 30.04.2006 - 23:12 |
(110) У тебя наверное стоит флажок телепата в группе "Шаблоны" - "Отключить в комментариях". Посмотри telepat.vbs (если этот скрипт у тебя стоит). Этот флажок прграммно регулируется свойством DisableTemplateInRemString (если в сумме флагов присутствует единичка, флажок установлен). Если не понял, посмотри раздел "Программная настройка плагина" в этой статье: http://www.script-coding.info/Telepat.html P.S. Кстати, удобнее заменять три слеша, а не четыре. |
DES 112 - 01.05.2006 - 09:27 |
Да , был отключен флаг. Сбросил - все равно не работает //// > //_____________________ |
DES 113 - 01.05.2006 - 09:30 |
Вернее, флаг не сохраняется после перезагрузки... |
DES 114 - 01.05.2006 - 09:33 |
вернее, работает так /// меняет на //_____________/ |
Young 115 - 01.05.2006 - 12:23 |
(112-114) Сумбурно говоришь :) Как сохранить состояние флага между сессиями работы в Конфигураторе, сказано в статье, ссылку на которую я уже давал (http://www.script-coding.info/Telepat.html, раздел "Программная настройка плагина"). И ещё, поищи у себя установленные скрипты, которые трогают свойство DisableTemplateInRemString. А шаблон замены должен выглядеть так: //________________________________________ <?> |
DES 116 - 01.05.2006 - 15:10 |
а может просто в скриптах добавить что-нить такое, что замену делало ? |
Тертый 117 - 01.05.2006 - 19:06 |
Скрипт Brackets.vbs, авторы trdm и MetaEditor. НЕбольшой "косячок": иногда если обрамляешь текст конструкцией, получается результат вроде -------------- Если 1=1 Тогда КонецЕсли; ----------- Если Иначе Если 1=1 Тогда КонецЕсли;КонецЕсли; ---------------- ошибки нет, но вот эстетика .... :) страдает. Что-то не так делаю? Или возможно исправить? |
metaeditor 118 - 03.05.2006 - 06:20 |
117)в репозитарии оказываеца ещё прошлогодняя версия попробуй сейчас(когда архив будет), закомитил свежую... |
metaeditor 119 - 03.05.2006 - 07:01 |
======================== Svcsvc.dll ======================== Версия 1.0.0.5 Добавлены методы: GetWindowText(WH,IsList) - получить текст окна WH необязательный, по умолчанию 0 хендл окна у которого нужно получить текст если 0 или неуказан - используется текущий фокус IsList необязательный, по умолчанию false если true тогда передаваемый хендл считается комбобоксом или листбоксом и возвращается его содержимое разделенное разделителем строк \r\n SetWindowText(WH,Text) - установить текст окна WH необязательный, по умолчанию 0 хендл окна которому нужно установить текст если 0 или неуказан - используется текущий фокус Text текст который необходимо установить Свойство Version - текущая версия библиотеки метод FilterValue - новый флаг 128 В этом случае повторяется функционал скрипта "Выбрать из списка.vbs" тоесть список заполняется из активного комбобокса или листбокса пример: Set Svc = CreateObject("Svcsvc.Service") Svc.FilterValue("",1 + 128,"",0,0,1) dll в репозитарии в \OpenConf_Scripts\СистемныеФайлы\svcsvc.dll исходники и dll на итланде http://itland.ru/forum/index.php?act=ST&f=37&t=12293&st=30#entry83727 ======================== NavigationTools.vbs ======================== [*]изменено получение формулы и текстов контролов через svcsvc.dll (исправление вылета скрипта на длинных формулах) [+]макрос ActivateFindEdit: текст из буфера автоматически вставляется в окно поиска ======================== Выбрать из списка.vbs ======================== [*]макрос SelectFromComboBox переделан с помощью нового функционала Svcsvc.dll |
Young 120 - 03.05.2006 - 12:06 |
(119) Спасибо! (all) Может кто подсказать, какими утилитами можно исследовать экспортируемые функции произвольной DLL (и возможно ли это в принципе, и если да, то насколько это эффективно, в смысле, достаточно ли информации можно получить для вызова функции)? |
trdm 121 - 03.05.2006 - 12:24 |
(120) The Microsoft COFF Binary File Dumper (DUMPBIN.EXE) |
Young 122 - 03.05.2006 - 13:32 |
(121) Это в VS Express есть? И как насчёт эффективности (120)? Config.dll восьмёры получится исследовать? |
trdm 123 - 03.05.2006 - 14:15 |
(122) Без понятия. Могу скинуть если надо. Только документацию выковыривать надо. А на счет исследования: IDA - класс. Единственно мнеб одну утилитку к ней, но она платная.... О какой эфективности речь идет? |
metaeditor 124 - 03.05.2006 - 14:27 |
120)ничего больше названий ф-ий таким образом не получиш... тут надо реверсить... |
Young 125 - 03.05.2006 - 15:54 |
(124) Что есть "реверсить"? (123) Что есть IDA? Вообще, оффтоп получается, дико извиняюсь... Может, в мыло ответите? |
trdm 126 - 03.05.2006 - 17:27 |
(125) IDA - интерактивный дизасемблер. И не совсем офтоп, т.к. плагинописателям наверняка знаком данный инструмент и... Ну и т.д. и т.п. Но прежде чем заняться с IDA нужно знать архитектуру PC, asm и какие таблетки глотать когда голова болит. |
metaeditor 127 - 03.05.2006 - 17:30 |
125)гуглинг по слову "реверсинг" скажет больше чем я вот первое что попалось http://sobakator.samsfan.ru/knows_reversing.html IDA- Iнтерактивный DизAссемблер |
Young 128 - 03.05.2006 - 18:16 |
Спасибо, я понял, что исследовать экспортируемые функции произвольной DLL - очень нетривиальная задача :) Dependency Walker из комплекта Microsoft Visual Studio якобы позволяет найти только имена функций, но не их параметры. Дальше - дизассемблерами. Тогда ещё один глупый вопрос: на самом цель изысканий - всего лишь сымитировать вызов команд меню, имея скриптовый язык, позволяющий вызывать экспортируемые функции указанной DLL. Команда меню - это же вроде как "макрос", т.е. функция без параметров? Может, такая задача решаема без применения дизассемблеров? |
a13x 129 - 03.05.2006 - 18:56 |
(128) "Какого такого" меню? "Сымитировать вызов команды меню" == "Сымитировать выбор пунктам меню пользователем" или что-то другое? Подозреваю , что другое, ты же знаешь про SendMessage? |
Young 130 - 03.05.2006 - 19:13 |
(129) Да, другое, и про SendMessage знаю :) Восьмёрошный конфигуратор не использует WM_COMMAND в меню, и вообще там меню как MS Office, т.е. это перемещаемая панель инструментов. Не знаю, как подкопаться, чтобы заменить (назначить) шорткаты для команд меню. |
orefkov 131 - 04.05.2006 - 08:31 |
(130) В дллках от 8ки экспорт практически отсутствует. Обычно там присутствует только одна функция, SCOM_Main. То есть с этой стороны не подойти. Насчет своих шорткатов в 8ке - для начала можно попытаться через sendinput сделать. |
Young 132 - 04.05.2006 - 11:11 |
(131) А что такое sendinput? Это на каком языке? |
trdm 133 - 04.05.2006 - 12:35 |
SendInput The SendInput function synthesizes keystrokes, mouse motions, and button clicks. UINT SendInput( UINT nInputs, // count of input events LPINPUT pInputs, // array of input events to insert int cbSize // size of an INPUT structure ); Установи MSDN Library Visual Studio и будет тебе хелп преотличнейший. |
Young 134 - 04.05.2006 - 13:07 |
А чем SendInput лучше скриптового SendKeys? SendKeys - плохое решение (некрасиво - мелькание менюшек + очень ненадёжно). |
a13x 135 - 04.05.2006 - 19:58 |
В связи с участившимися запросами пользователей, скачавших последнюю версию инсталлятора по поводу вирусов в сборке я создал файл, в котором будет размещаться и поддерживаться в актуальном состоянии информация о том, какие антивирусы обнаруживают троянов и какие - нет. . В слепке репозитория этот файл располагается по следующему пути: OpenConf_Scripts\ВспомогательныеДанные\virii.txt . Онлайн эта информация будет доступна по адресу: http://npj.ru/kuntashov/openconf/virii . Пока список скуден, поэтому если кто-то проверял сборку не присутсвующими в списке антивирусными программами, прошу Вас сообщить здесь или мне в личку (kuntashov - собака - Яндекс.Ру). Указывать надо версию антивирусной программы, версию антивирусных баз (или дату последнего обновления баз), а также сам факт обнаружения/не обнаружения вирусов. Если вирус обнаруживается - то название обнаруженной сигнатуры и файл, в котором обнаружена данная сигнатура. . Спасибо. . (2 Young) Может быть ты тоже продублируешь этот список у себя на сайте? |
Young 136 - 04.05.2006 - 21:27 |
(135) Продублировать можно, наверное. Только есть пара мыслей... Во-первых, эта инфа МГНОВЕННО устаревает как в плане сборки скриптов, так и в плане вирусных баз. Во-вторых, по-моему, проблемы в основном только с Dr.Web, который славится своей любовью к скриптам (а точнее, не любовью, а тупостью). Насколько будет полезна такая инфа? Может, просто написать: "Примечание: некоторые vbs-файлы могут определяться шибко умными антивирусами как подозрительные или даже заражённые; вы всегда можете просмотреть и проанализировать код каждого vbs-файла в любом текстовом редакторе, чтобы убедиться, что это не соответствует действительности."? P.S. Кстати, страничка по ссылке http://npj.ru/kuntashov/openconf/virii очень любопытно реагирует на двойной щелчок (например, для выделения слова). |
trdm 137 - 04.05.2006 - 21:43 |
гы, щас набросаю скрипт-вирус под OC, будет перепахивать текст модуля так, что потом волосы на пятках дыбом встанут. Поддержим отечественного производителя антивирусных программ. Ну может и не отечественного.... |
slavka 138 - 04.05.2006 - 22:01 |
я когда пытался реализовать скрипт по идее Артура насчет слежения за веткой то у меня касперский ругался что вирус нашел :)) хотя там кода строк 10-15 было... |
a13x 139 - 05.05.2006 - 11:27 |
(136) Еще Avast! находит трояна. Вообще мне приходят письма с вопросом: "Я скачивают сборку, а мне антивирус ругается, что в ней вирус [название вируса]. Там и правда вирусы?" . Пока [название вируса] == [VBS.Generic.5 (др. веб и кав четвертой версии), Win32.Trojan (Аваст!)]. . Мне приходится отписываться, что-де "доверяй, но проверяй", а вообще мы специально вирусов не пишем, сборку проверяли сами и получены вот-такие результаты и бла-бла-бла, просим считать, что вирусов нет, хотя также просим степень своего доверия соотносить со степенью доверия к ресурсам, с которых скачиваете и к которым мы (разработчики) отношения не имеем. Я сначала просто хотел ограничиться шаблоном ответа, а потом решил, а почему бы его не опубликовать сразу... . По крайней мере, видя этот список пользователь может сравнить результат проверки антивирусом, сделанный мною (как автора сборки) со своими. . А предложенная тобою оговорка действительно разумнее. Я вчера вечером не сообразил, как сформулировать эту мысль и оставил на потом. Хотя кто знает, если инсталлер вдруг на самом деле будет заражен? А так хоть будет известен список ошибочно определяемых сигнатур. . p.s. (по поводу странички) Как именно "странно"? Браузер какой? Вообще, это вики, обычно по два клика на странице она переходит в режим редактирования, а у меня доступ для редактирования этой страницы всем открыт. Но если не ошибаюсь, в том скине, что я выбрал, эта возможность отключена. |
Young 140 - 05.05.2006 - 12:00 |
(139) "Странно" - это значит, что при попытке выделить двойным щелчком слово (а это удобный приём в браузере, да и не только) получаешь смену урла со словами "Доступ запрещён", что немного обескураживает :) Но это я просто к вики не привык, наверное :) Могу сделать тему на Сером форуме и сослаться на неё на страничке http://www.script-coding.info/OpenConf.html Так пойдёт? |
a13x 141 - 05.05.2006 - 18:02 |
(140) Ну да, переходит в режим редактирования, а анонимным пользователям редактирование, однако, запрещено. . Конечно пойдет. |
MAXXL 142 - 05.05.2006 - 18:44 |
Поставил новый инсталятор, теперь при вводе СоздатьОбъект("") не выдает в списке Таблица и Таблица Значений. Сравнивал со старым каталогом, отличий не нашел. В чем может быть проблема? |
a13x 143 - 05.05.2006 - 19:20 |
(142) Для того, чтобы это работало нужно выполнение следующих двух условий: . 1. чтобы в файле config\Intell\intell.ini было установлено TELEPAT = ДА 2. чтобы в папке config\scripts\Intellisence ОТСУТСТВОВАЛ скрипт RunAllIntellisence.vbs . По поводу первого пункта все очевидно. По поводу второго - я не в курсе, почему так должно быть. Попробовал переместить RunAllIntellisence.vbs в другую папку - все работает. . (2 trdm && artbear && ADirks) Может быть кто-нибудь помнит, зачем в процедуру InitTelepat к проверке TELEPAT == ДА добавлена проверка на отсутствие RunAllIntellisence.vbs? Убирать пока не стал? |
metaeditor 144 - 05.05.2006 - 19:37 |
143)чтобы в двух скриптах одновременно не отрабатывали события телепата... обсуждали выше... а вот насчет чтобы автоматом выпадал список "СоздатьОбъект", надо в runallintellisense.vbs добавить таймер который в интелле для этого сделан... |
a13x 145 - 06.05.2006 - 08:13 |
(144) Спасибо, я тогда не обратил внимание на ваше обсуждение (посты 6, 11, 18, 26 и 28 в текущей ветке, кому интересно). |
Westman 146 - 06.05.2006 - 08:33 |
прочитал вроде все, но ответа не нашел. Есть вопрос. При работе в ЗИК в глбальном модуле ввожу СЗ = СоздатьОбъект("СписокЗначений") СЗ. - так вот дальше приходиться оч долго ждать "вылета" подсказки. Ну и дальше все то же, после точки - долгое ожидание :( Кто может подскажет, в чем дело? |
Westman 147 - 06.05.2006 - 08:59 |
Опенконф устанавливал от oc1020b20060422.exe |
Westman 148 - 06.05.2006 - 09:10 |
Есть подозрение, что чем длинее код , тем длительнее работает данный сервис. |
artbear 149 - 06.05.2006 - 09:51 |
(148) Читай доку из поста (0) |
MAXXL 150 - 06.05.2006 - 11:35 |
(144) "надо в runallintellisense.vbs добавить таймер" А где это? просмотрел весь скрипт, не нашел :-( |
metaeditor 151 - 07.05.2006 - 18:02 |
150)куданибуть в скрипт вставь Dim gTimerIns Sub Telepat_OnInsert(InsertType, InsertName, Text) Select Case InsertType Case 10 If InsertName = "СоздатьОбъект" Then Text = "СоздатьОбъект(""!"");" gTimerIns = CfgTimer.SetTimer(1, True) End Select End Sub Sub Configurator_OnTimer(timerID) If timerID = gTimerIns Then CfgTimer.KillTimer gTimerIns Scripts("Intellisence").MethodsList End If End Sub завтра может закоммичу... |
fez 152 - 07.05.2006 - 22:03 |
Добавил предыдущую ветку в архив. Добавил вопрос про наличие вирусов в коллекции скриптов в FAQ. P.S. Обалдеть. Ник fez не найден в базе форума, хе-хе... |
Young 153 - 08.05.2006 - 21:35 |
(metaeditor) Вопросец по Svcsvc.dll: добавленные в версии 1.0.0.5 методы и флаг "128" применимы только в контексте OpenConf? Что-то у меня в "независимом" VB-скрипте ничего не получается... |
metaeditor 154 - 09.05.2006 - 05:04 |
153)да, из простого скрипта почемуто неработает... завтра посмотрю... |
metaeditor 155 - 10.05.2006 - 07:36 |
153) попробуй сейчас http://itland.ru/forum/index.php?act=ST&f=37&t=12293&st=30#entry83727 |
trdm 156 - 10.05.2006 - 11:09 |
Маленькие предложения по vis1cpp.dll: 1. Использовать подкрашенную/как_нибудь_выделенную иконку для классов расположенных во внешних отчетах/файлах. (Помогает от склероза: выгрузиз класс для отладки во внешний отчет, забыл вставить в мд обратно. ((( ) 2. Внедрить в тривьюв классов драг&дроп. Использую сейчас заготовку плагина, который позволяет это делать: таскать из дерева классы/методы прямо в текст , очень удобственно... Допустим, если подцепишь мышкой название класса, то можно его преобразовать сразу в " = СоздатьОбъект(""" + ИмяКласса + """);" ну и т.д. и т.п. Есть выуженный рабочий исходник для CTreeCtrl. |
trdm 157 - 10.05.2006 - 11:17 |
(-156) Поправка, заготовка плагина с классами ничего общего не имеет, пока там просто дерево метаданных. |
a13x 158 - 10.05.2006 - 11:36 |
(157) А ты можешь его выложить куда-нибудь (в исходниках)? Я в свое время писал на дельфе дерево (чтобы было всегда перед глазами в панели), но из-за известного глюка с обновлением формы плагина в панели (раздражает) так и забил на него... А оно обновляется атоматически при добавлении новых элементов? |
trdm 159 - 10.05.2006 - 11:51 |
(158) Там еще пустовато. Реализована только болванка: перебор метаданных-посторение дерева, драг-дроп. Идет изучение. Исходник на С++ с MFC. С либами и хейдерами ~500 кб. Могу в почту скинуть. "А оно обновляется атоматически при добавлении", пока нет, могу пока по F5 обновление сделать. Пока не знаю как поймать добавление элемента. |
metaeditor 160 - 10.05.2006 - 12:12 |
158)и мне, и мне болванку... в почту... ) |
a13x 161 - 10.05.2006 - 12:21 |
(159) Кинь, пожалуйста. Собственно, мне то и надо просто для того, чтобы дерево перед глазами всегда было. . Я бы еще хотел попробовать (а еще лучше, чтобы кто-нибудь поопытнее попробовал раньше меня :-) сделать дерево макросов в панели (с возможностью разной сортировки, хотя бы по алфавиту), а поскольку в MFC "не копенгаген" без примера, то сам понимаешь... Спасибо! (kuntashov - собака! - Яндекс.Ру). |
trdm 162 - 10.05.2006 - 12:41 |
Только неоструганная болванка, по состоянию как есть. +Сделал обновление по F5. http://www.trdm.mail333.com/SimplSubs.rar |
trdm 163 - 10.05.2006 - 18:44 |
А подскажите как правильно запрашивать свойства у объекта. Пытаюсь получить тип и вид, вышибает конфигуратор.... Код вот такой: CMetaDataCont* nPropMdc = NULL; CValue nPropValCV; CMetaDataObj* nPropMdo = NULL; int nPropVal = nObj->GetPropVal(i,nPropMdc,nPropValCV, (CMetaDataObj**)&nPropMdo); //11 вышибает на свойстве с именем Тип ((( |
trdm 164 - 10.05.2006 - 22:38 |
(160,161) Отослал, но т.к. деревце метаданных переделал под дерево с колонками не успел пока сделать перетаскивание и обновление. по (163) спасибо Paul Shemyakin (toypaul), а то бы бился головой об столб. |
orefkov 165 - 10.05.2006 - 23:30 |
(163) Оставь мыло, завтра кину пример |
Young 166 - 10.05.2006 - 23:42 |
(155) Спасибо, теперь работает. |
trdm 167 - 11.05.2006 - 00:21 |
(165) Был бы признателен.(trdmval собака gmail com). (+164) http://itland.ru/forum/index.php?act=Attach&type=post&id=84475 |
trdm 168 - 11.05.2006 - 12:21 |
(+167) http://itland.ru/forum/index.php?act=Attach&type=post&id=84475 Обновил, добавил рефрешь по F5, добавил авторазворот дерева при заполнении, а то выглядело пустым и догадаться, что его надо распахнуть я бы лично не смог. Только драг-дроп пока не осилил ((( |
Anton R 169 - 11.05.2006 - 13:01 |
(metaeditor) Использую formex: Процедура ПриНажатииКнопкиКлавиатуры(тра-ля-ля... ....... Svc = CreateObject("Svcsvc.Service"); Svc.FilterValue("",1 + 128,"",0,0,400); (вернее - вызывается обработка, обрабатывающая любой контекст, но и так та же фигня) ....... КонецПроцедуры ----- Работает обалденно !!! (обрабатываются все 1с-ные и системные списки и таблицы значений), но: если вызывать из формы журнала, то при закрытии списка FilterValue 1с-ка вылетает :((( |
Anton R 170 - 11.05.2006 - 13:47 |
+(169). Вопрос снят. Проблема была в другом. |
metaeditor 171 - 11.05.2006 - 18:05 |
169)таблицы значений и многострочные части в журналах? какэто они у тебя обрабатываются... не должны ведь... :-/ |
a13x 172 - 12.05.2006 - 09:59 |
--------------------------------------------- dots.vbs --------------------------------------------- [*] SyntaxCheck возвращает true если проверка успешна, иначе - false [+] Макрос AddToSlovarFromClopboard() Добавляет в словарь содержимое буфера обмена. Возможна замена текущего содержимого словаря, либо добавление содержимого к существующим данным словаря. Выбор варианта добавления осуществляется в списке. [+] Макрос SelectStringFromClipboard() Позволяет выполнить подстановку в текущую позицию курсора одной из строк, находящихся в буфере обмена из списка. Рекомендуется макрос вешать на хоткей Ctrl+D --------------------------------------------- Intellicense.vbs --------------------------------------------- [*] MethodList(): при выборе типа из списка список типов предварительно фильтруется, если часть имени типа уже введена в строке, в которой выполняется подстановка [+] Макрос CreateArgsTypeDefs() Для текущей процедуры или функции в диалоговом режиме создает строки определения типов для каждого аргумента. Аргументы выбираются из списка аргументов, после выбора аргумента предлагается выбрать его тип из списка возможных типов. Прервать подстановку определений типов можно нажав в списке аргументов или в списке типов ESC. |
Anton R 173 - 12.05.2006 - 10:16 |
(metaeditor) Анализирую контекст и активный элемент. Если контекст пустой - то это системный список. Вызываю FilterValue с флагом 128. Если контекст не пустой - обрабатываю ТипЗначения для активного элемента - "СписокЗначений", "ТаблицаЗначений", "Справочник" и т.д. |
Anton R 174 - 12.05.2006 - 10:22 |
(173+) Вчерашняя проблема на самом деле такая: 1. В форме журнала есть кнопка с хоткеем F7. 2. FilterValue вызывается при помощи formex, "ПриНажатииКнопкиКлавиатуры" через Alt-F7. Так вот, после закрытия списка FilterValue срабатывает процедура, висящая на кнопке F7. Обойти можно, но интересен сам факт. |
Young 175 - 14.05.2006 - 13:50 |
(172) Пара вопросов по обновлению dots.vbs и Intellicense.vbs. 1. AddToSlovarFromClopboard() - добавить строки из буфера обмена в словарь. А что такое "словарь"? Макросы AddToSlovarFromClopboard() и SelectStringFromClipboard() работают в паре? Для чего они вообще нужны? 2. Макрос CreateArgsTypeDefs() падает с исключением, если не стоит скрипт Переходы по модулю.vbs. |
a13x 176 - 14.05.2006 - 16:25 |
(1) Словарь - это файл часто используемых слов, хранится он в BinDir, и называется DictDots.txt. Cоздается автоматически при использовании макросов AddWordToSlovar которые часто используются в тексте модуля. Вообще-то это Дима придумал давно уже (см. макросы AddWordToSlovar и InsertFromSlovar). Чтобы объяснить принцип работы и где они полезны, я расскажу что привело меня к их использованию. . Недавно мне пришлось писать "загружалку" из dbf файлов. Структура всех dbf-ов была разная, в каждом от 10 до 15 полей. Поначалу я было начал копипастить имена полей по одному, естественно уже на третьем мне надоело. Я вспомнил, что видел в dots'е методы по работе со словарем, посмотрел, в чем суть - и добавил банально список полей в словарь (вручную отредактировав файл словаря) - уже лучше. . Потом подумалось - а зачем вручную лезть в этот файл - так родился макрос AddToSlovarFromClopboard(). Когда начал работать, выяснилось, что имена всех полей сразу мне нафиг не нужны, так родилась идея макроса SelectStringFromClipboard() - копируем имена полей в клипбоард и загружать в списко непосредственно оттуда, минуя словарь. . Кстати, заметил, что в именах макросов закралась очепятка... (Clopboard). Эх уж этот интеллисенс и автокомплит ))). . 2. Да, спасибо, ошибку исправлю. |
Тертый 177 - 14.05.2006 - 17:30 |
Млин, последний инсталлер: СоздатьОБъект() кавычки не ставятся внутри скобок, ТаблицаЗначений вызывается только принудительно по Ctrl+I :( |
a13x 178 - 14.05.2006 - 17:56 |
(177) Выше в этой ветке уже дважды обсуждалось. |
Young 179 - 14.05.2006 - 18:29 |
(176) Спасибо, но понял довольно смутно. Этот "словарь" - это попытка сымитировать "многокарманный" буфер обмена? А зачем, если есть bufer.vbs или просто PuntoSwitcher? И ещё: по-моему, очень не хорошо, что макрос CreateArgsTypeDefs() требует наличия скрипта Переходы по модулю.vbs. Так можно запутаться окончательно. Имхо, в таких случаях надо либо вульгарно копировать нужный функционал в свой скрипт, либо выносить его в какой-либо WSC, который входит в набор "системных" файлов. Иначе это всё начнёт превращаться в хаос, имхо. |
a13x 180 - 14.05.2006 - 19:28 |
(179) Скорее не буфер, а список автозамены, как в Word. А как бы ты решил такую задачу, о которой я рассказал? Кажется, это самый приемлемый способ - формировать список на основе буфера обмена. Вообще, решалась конкретная задача - иметь "под рукой" список полей ДБФ, чтобы не набирать их вручную. Как решить эту задачу с помощью пунто или многокарманного буфера - не знаю, поэтому и написал этот макрос. . По поводу "Переходов" - вынесем, если уже не вынесли. |
Young 181 - 14.05.2006 - 20:03 |
(180) Идея быстро запомнить многострочный текст где-то, а потом выбирать по одной строке оттуда - интересная, и нигде такого нет, вроде. Это и делает, насколько я понял, макрос SelectStringFromClipboard(). А вот набор макросов AddToSlovarFromClopboard(), AddWordToSlovar и InsertFromSlovar() - по-моему, решает проблему имитации именно "многокарманного" буфера обмена, и ничего более. Хотя, может, я просто не понял... А почему "скорее список автозамены"? Автозамена - это функционал типа разворачивания аббревиатур (уже напечатанных в тексте), так причём здесь автозамена? И ещё: весь фикус макроса AddToSlovarFromClopboard() состоит только в том, что он добавляет в словарь многострочный текст, который потом можно использовать построчно, так? Если я правильно понял, получается, что здесь реализуется именно функционал "многокарманного" буфера обмена, ну, плюс ещё возможность быстро затолкать туда многострочный текст, интерпретировав его не как одно значение, а как много значений. Как решить эту задачу с помощью пунто - так в пунто есть многокарманный буфер просто. Делаешь Ctrl+C несколько раз, затем выполняешь команду "Показать историю буфера обмена" (её можно повесить на свой хоткей) и получаешь визуальный список для выбора. Очень удобно, между прочим. Только многострочный текст здесь окажется конечно одним значением :) Ну и ещё в буфере не более 15 карманов, вроде... Я всё верно понял насчёт использования этих четырёх макросов? |
a13x 182 - 15.05.2006 - 08:08 |
(181) >Если я правильно понял, получается, что здесь реализуется >именно функционал "многокарманного" буфера обмена, ну, плюс... ... возможность выбора из списка, в котором значения фильтруются по интерактивно вводимой подстроке. . >А почему "скорее список автозамены"? Я имел в виду "Список быстрой вставки" Пунто. С автозаменой погорячился. Кстати, у меня Пунто 2.5 стоит, так никакого многокорманного буфера не видно. Видимо, он в следующих версиях появился... . > Я всё верно понял насчёт использования этих четырёх макросов? Думаю да. |
sdaf 183 - 15.05.2006 - 08:50 |
Поставил себе полный комплект сих полезных утилит где-то пол года назад. Тогда конфигуратор запускался быстро. А с течением времени такое впечатление что раза в 3 стал медленнее...где что можно почистить чтоб залетал вновь? |
sdaf 184 - 15.05.2006 - 08:52 |
вопрос снят - дело в сети |
trdm 185 - 15.05.2006 - 13:17 |
Эх, видимо (156) 1 и 2 не судьба. |
artbear 186 - 16.05.2006 - 12:56 |
(trdm) По поводу (156) п.1 Посмотрел код Виз1С++ на предмет изменения, там довольно много менять придется ради такой мелочи (ИМХО) :( . . ИМХО тебе проще эту задачу решить, написав небольшой скриптик Опенконфа для проверки нужных данных с использованием SyntaxAnalysis.wsc Пусть скрипт сам делает все нужные тебе проверки, и ты никогда не ошибешься. Пример работы с классами 1С++ в Опенконфе можешь посмотреть в нем или в скрипте Навигация. |
artbear 187 - 16.05.2006 - 12:58 |
И кстати, я добавил новую фичу в 1С++ и Виз1С++ [+] Решение бага 1605 [http://cvs.alterplast.ru/bugs/show_bug.cgi?id=1605] 1. появилась возможность задавать //inсludе defcls.prm относительно папки текущего разбираемого defcls.prm; Если задан относительный путь, он сначала проверяется относительно каталога ИБ, а уже затем относительно папки текущего разбираемого defcls.prm; 2. появилась возможность задавать в пути к файлу класса или defcls.prm в //#inсludе относительные пути с использованием "." или ".."; ЗЫ для использования 1С++ брать ночной релиз, а Виз1С++ только в репозитарии. Надеюсь, скоро выпустим новые релизы :) |
trdm 188 - 17.05.2006 - 11:05 |
(186) Раз так, то пока так. А вообще приветствуется такая вещь если сделаю? А Интел так со структурами и не работает? м_СтруктураПолей = СоздатьОбъект("Структура"); м_СтруктураПолей.Вставить("ПартНО" ,0); м_СтруктураПолей.Вставить("Модель" ,0); м_СтруктураПолей.Вставить("Описание" ,0); м_СтруктураПолей.Вставить("ОписаниеEn" ,0); м_СтруктураПолей.<фикус, только методы..... |
RVV 189 - 17.05.2006 - 13:29 |
Решил перейти с "Замена кода" на "Авторские комментарии"... ... и вот: 1. Не срабатывает "МаркерИзменен" когда Курсор стоит перед первым символом в строке. По Альт-С говорит "Не удалось выполнить макрос "МаркерИзменен"." а через меню выпадает окошко "Недостаточно памяти". Остальные макросы и в остальных местах(для "МаркерИзменен") все великолепно. 2. Так и не понял в каком случае должен появитсья "Разделитель кода при замене:" - он не появляется :-(. |
Паломник 190 - 17.05.2006 - 14:10 |
Установил с помощью последнего инсталятора опенконф, и при загрузке начинает ругаться на Ошибку выполнения скрипта для подсистемы, скрипт SubSystemsManage.vbs строка 906 позиция 2, недопустимый индекс ? |
Phoenix 191 - 17.05.2006 - 14:37 |
(190) а что там за код? у меня нет того релиза, часть кода переписал. |
Паломник 192 - 17.05.2006 - 14:46 |
' инициализация переменных sub InitDim() set SS = Plugins("Подсистемы") Set vCfgLst = SS.GetCfgList Set vAvSS = SS.GetAvailableSubSystems Set vExtFrmsLst = SS.GetExtFrmsList Set vLinks = SS.GetLinks Set vMDTree = SS.GetMDTree Set vObjClasses = SS.GetObjectClasses Set vTemplates = SS.GetTemplates Set vToDoLst = SS.GetToDoList Set vTuningMDObj = SS.GetTuningMDObj Set vTuningSSLst = SS.GetTuningSubSystemsList Set vOpt = SS.GetOptions Set vBookmarks = SS.GetBookmarks Set vObjectNote = SS.GetObjectNote Set vObjectNoteList = SS.GetObjectNoteList Set vRelises = SS.GetRelisesList Set vStatusList = SS.GetStatusList Set vSubCfgList = SS.GetSubconfigsList Set vUsersList = SS.GetUsersList Set vListCategoryes = SS.GetListCategoryes Set vListSeriousnes = SS.GetListSeriousnes Set vListToDoCols = SS.GetListToDoCols Set vListMDObjBlocks = SS.GetListMDObjBlocks Set vListMDObjEdits = SS.GetDBChangeLog end sub Вставил начиная с 906 строки. |
Phoenix 193 - 17.05.2006 - 14:56 |
(192) у тебя точно установлен плагин? |
a13x 194 - 17.05.2006 - 19:44 |
(189) 1. Да, ошибка воспроизводится, записал, буду исправлять. 2. Макроса МаркерИзменен работает в 2х режимах: в первом он оставляет часть заменяемого кода в виде комментариев перед новым кодом, во втором - старый код не остается. Регулируется это в настройках флажком "Не оставлять копию кода при замене/изменении". Так вот, "Разделитель кода при замене" используется в первом режиме, он добавляется между старым и новым кодом. |
pers 195 - 18.05.2006 - 09:16 |
Ребята, а кто чем отладку скриптов для 1с -а проводит? |
Phoenix 196 - 18.05.2006 - 09:20 |
MSE||message(...) |
pers 197 - 18.05.2006 - 11:15 |
А подробнее, можно ? |
trdm 198 - 18.05.2006 - 11:44 |
MSE - Microsoft Script Editor (входит в состав MS-Office) Надо запустить службу Машин-дебуг менеджер, возможно разрешить в эксплорере отладку сценариев (Войста оборзевателя->Дополнительно) Если пишешь на VBS то точка останова в тексте скрипта пишешь stop, если на JS пишешь debbuger; Отладочные сообщения из скриптов в окно сообщения: Message(...) |
pers 199 - 18.05.2006 - 14:06 |
Сенкс, понял. |
artbear 200 - 19.05.2006 - 10:16 |
Народ, кто-нибудь делал скрипты по автоматизации/упрощении создания внешних печатных форм для документов и справочников? Типа указываем во внешнем отчете тип документа, прога сама создает вставляет нужные блоки текста типа Таб = СоздатьОбъект("Таблица"); ДатаДок = Докум.ДатаДок; Контрагент = Докум.Контрагент; Договор = Докум.Договор; // прочие реквизиты //Таб.ВывестиСекцию(""); Докум.ВыбратьСтроки(); Пока Докум.ВыбратьСтроку() Цикл -- Таб = Докум.Товар; -- Колво = Докум.Количество; -- Сумма = Докум.Сумма; // прочие реквизиты //Таб.ВывестиСекцию(""); КонецЦикла //Таб.ВывестиСекцию(""); Таб.Опции(); Таб.Показать(""); . Есть подобные решения? |
Phoenix 201 - 19.05.2006 - 11:47 |
(200) есть заготовка для документов, справочников, регистров в Telepat.vbs и я уже дописал кусок на JS, как разговаривали. |
Anton R 202 - 19.05.2006 - 11:58 |
Сейчас делаю похожее, но для отчетов. |
Phoenix 203 - 19.05.2006 - 12:07 |
(202) не понял :( |
Anton R 204 - 19.05.2006 - 12:29 |
202 - для 200 |
Anton R 205 - 19.05.2006 - 12:54 |
Новый скрипт: Генерация программного кода, обеспечивающего стандартный механизм обновления печатной формы отчета и вызова формы отчета при двойном щелчке по кнопке печатной формы (кнопки "Обновить" и "Настройка") http://1c.proclub.ru/modules/mydownloads/personal.php?cid=1001&lid=6648 |
VV 206 - 19.05.2006 - 12:58 |
ай, молодца! А модули он писать сам не умеет? Скоро в 7-ке вообще делать :) |
Anton R 207 - 19.05.2006 - 13:00 |
(206) Умеет. Давай текст - напишет. :) |
trdm 208 - 19.05.2006 - 19:39 |
Поправочка для плагина vis1cpp: Проблема: плагин прикреплен в панели справа. При открытии внешнего отчета из него изменениии его и установке фокуса на дерево классов в строке сообщений выдавалось: !!Не удалось получить текст модуля: "ExtForms\СписокЗначений_Ex.ert". Соответственно дерево методов не обновлялось. Лечилка: // ModuleParser.cpp: CString CModuleParser::GetSrc(bool bAlways, const CString& ClassName) // Ln 234 { CDocTemplate* pTemp; if(m_path.Find(".ert")!=-1) pTemp=m_pDocErt; else pTemp=m_pDocTxt; CDocument* pDoc=NULL; for(POSITION pos=pTemp->GetFirstDocPosition();pos;pDoc=NULL) { pDoc=pTemp->GetNextDoc(pos); if(!pDoc->GetPathName().CollateNoCase(m_path)) break; // Добавленный текст старт CString tsPath_0 = "", ts_PathName = pDoc->GetPathName(); if (m_path.GetLength()<ts_PathName.GetLength()){ tsPath_0 = ts_PathName.Mid(ts_PathName.GetLength()-m_path.GetLength()); if (!tsPath_0.CollateNoCase(m_path)){ break; } } // Добавленный текст финиш } |
Тертый 209 - 20.05.2006 - 12:20 |
Где-то проскаивала инфа, что Орефков может сделать обход регистрации загружаемых компонент в реестре. Это касается только Опенконфа или всех длл, которые загружаются в коде? И когда это произойдет по планам Создателя? |
a13x 210 - 20.05.2006 - 18:00 |
(209) Это было в форуме на ИтЛанде и по срокам определялось как "в следующей версии ОпенКонфа". |
trdm 211 - 20.05.2006 - 20:46 |
(156.1)(186) На счет иконки с внешним классом в vis1cpp. Переделывать особо ничего не пришлось, там уже все написано. Просто дописал в // DefFileInfo.cpp: implementation of the CDefFileInfo class. HTREEITEM CDefFileInfo::InsertInTree(HTREEITEM parent) { HTREEITEM item_ins, item=CInfo::InsertInTree(parent); CStringList* pList=(CStringList*)CInfoWrcSpace::m_mapDef[m_path]; for(POSITION pos=pList->GetHeadPosition();pos;) { CClassInfo* pInfo=CClassInfo::FindClassInfo(pList->GetNext(pos)); item_ins = pInfo->InsertInTree(item); // ins trdm code s if (pInfo != NULL) { CString nStrPath = (LPCSTR)pInfo->m_ImplementPath; if (nStrPath.GetLength()>3){ nStrPath.MakeLower(); if (nStrPath.Right(3)==_T("@md")){
} else {
} } } // ins trdm code end } return item; } Ну и соответственно иконку добавил в ресурсы и в // CPPView.cpp : implementation file прописал pList.Add(LoadIcon(hRes,(LPCTSTR)363)); // TYPE_FILE_FOLDER // ins trdm code s pList.Add(LoadIcon(hMyInst,(LPCTSTR)IDI_CLASS_OUT));// NO TIPE, set dinamic // ins trdm code ena ЗЫ. Больше времени потратил на дизайн иконки. И тут косяК, не прибумал ничего лучше чем взять стандартную от класса и покрасить фон в красный, а соед линии в белый и синий. Зато склероз отдыхает ) ЗЫ2: Автор, не бей ногами за самоволку )) |
trdm 212 - 20.05.2006 - 20:50 |
бл.... Куда то код съехал..... if (nStrPath.Right(3)==_T("@md")){
} else {
} |
Тертый 213 - 20.05.2006 - 21:11 |
(210) а когда сл. версия Опенконфа? Уж очень надо эти навороты, достало: под одним работает - под дрругим нет! |
a13x 214 - 20.05.2006 - 22:05 |
(213) А про это как раз в той ветке сказано ничего не было :-/ |
trdm 215 - 20.05.2006 - 23:03 |
(213) "под одним работает - под дрругим нет" - ты о чем? |
metaeditor 216 - 21.05.2006 - 06:54 |
попробую предположить что Тертый говорит о недавнем обсуждении 1с++... так вот там говорилось о том что не у каждого компонента запускается...что то там про права... не помню... и ктото из авторов сказал что возможно в скором времени будет версия 1с++ не в виде штатной ВК а будет загружатся подменой одной из системных длл 1С.... |
Тертый 217 - 21.05.2006 - 13:57 |
(216) немного не то. Надоело зависеть от админов. Применишь какую-нить ВК, а у юзера не хватает прав на запись в реестре, начинаешь ругаться с админом, чтоб права дал. Оно мне надо? Вот если бы был метод, который позволял работать ВК без записи в реестре и всяких там прав... Орефков не об этом говорил? |
a13x 218 - 21.05.2006 - 14:19 |
(217) Точно речь шла о про подгрузку компоненты без использования ЗагрузитьВнешнююКомпоненту в коде. Это не одно и то же, кажется мне. |
Тертый 219 - 21.05.2006 - 14:28 |
жаль, а я губу раскатал :( |
orefkov 220 - 22.05.2006 - 01:01 |
По поводу загрузки ВК в Предприятии без прав на реестр. Да, мною такое решение было найдено. Со стороны клиентского кода ничего не меняется, по прежнему делается "ЗагрузитьВнешнююКомпоненту". Скорее всего, на практике впервые это будет применено для 1С++. Свои существующие ВК тоже переделаю под это дело. Секрета нет, когда это будет в 1С++, можете смотреть код. Вкратце принцип таков: когда 1С загружает дллку, чтобы прочитать ее строковый ресурс с номером 100 (чтобы получить ProgID) в дллке выполняется DllMain. Вот в это время и перехватыются вызовы CLSIDFromProgID и CoCreateInstance в seven.dll |
Тертый 221 - 22.05.2006 - 12:10 |
(220) когда это произойдет? предположительно, хоть? |
RVV 222 - 22.05.2006 - 13:00 |
(194) Галочка в "Не оставлять копию кода при замене/изменении" не стоИт! и "Разделитель..." не вставляется... Проверь... Спасибо. и еще очень странная вещь: если выделить на странице CheckBox (doNotCopyOldCode_) и скопировать в БуфферОбмена и попитатся выйти из настроки скриптов - Вылет всего конфигуратора... 2000 проф. SP4, 7.70.025, "чистая" установка oc1020b20060422.exe. |
a13x 223 - 23.05.2006 - 07:29 |
(222) Спасибо, записал, проверю. |
RVV 224 - 23.05.2006 - 10:36 |
(223) "Разделитель" не вставляется если выделена не вся строка, а только часть или просто курсор в этой строке.... А если вся строка выделена - то "Разделитель" вставляется. |
trdm 225 - 23.05.2006 - 14:33 |
Господа, у кого нить есть *.ints-ы для табличного поля? Если есть, мыльните пожалуйста.... trdmval(гав)gmail(дот)com + не пора ли сделать в интеле схему для конструирования предопределенных процедур-событий ActiveX? |
davinchi 226 - 23.05.2006 - 16:18 |
через IConfigurator.MetaData.TaskDef.Childs.item['Справочник'].item['Новый1']... получилось добраться до свойств объекта и их значений, а вот до модуля обекта как??? |
trdm 227 - 23.05.2006 - 16:43 |
Модуль - свойство воркбука. Открываешь и пользуешся. |
trdm 228 - 24.05.2006 - 16:50 |
^, что ли.... |
davinchi 229 - 25.05.2006 - 12:41 |
в плагине, обработчик события OnKeyDown самой ActiveX формы не срабатывает при событиях от клавы, когда в конфигураторе открыта закладка плагина... а если на форму повесить, ну например, TMemo - то все пучком, т.е. в нем печатается... а что необходимо, чтобы в OnKeyDown самой ActiveX формы обрабатывать события от клавы??? |
trdm 230 - 25.05.2006 - 14:16 |
(220) Саш, есть ли возможность достучаться до объекта Конфигуратор в плагине типа vis1cpp? Хотелось вызвать скрипт.... |
blazevic 231 - 25.05.2006 - 17:55 |
Напишу о своей проблеме (Артур, помочь не смог, может кто-нибудь сможет кто с ней сталкивался) Иногда в конфигураторе выскакивает окно с предупреждением Ошибка выполнения скрипта Скрипт: Intellisense Файл: .....intelisense.vbs Строка 1088 Позиция 3 Код 0 Источник Конфигуратор Описание: Объект Метаданых ID=7924 неактуален. Возможно, он был удален Вот что выдает Debug Message CurrentLine - < ИначеЕсли Сч.ВидСубконто(НомСубконто)=ВидыСубконто> RSide - <ОГС> Строка не соответствует шаблону для выбора типов - < ИначеЕсли Сч.ВидСубконто(НомСубконто)=ВидыСубконто> Строка не соответствует шаблону для выбора типов - < ИначеЕсли Сч.ВидСубконто(НомСубконто)=ВидыСубконто> ищу тип для <видысубконто> - <видысубконто> sRegExpression - <[^\wа-яё]*(видысубконто|перемвидысубконто)(=[\wа-яё\d_.]*\.?(создатьобъект|перехватитьактивх|wrapactivex|createobject|получитьпустоезначение)\("([\wа-яё\d_.]+)"\);*|[,;=]*//:([\wа-яё\d_.]+))> sRegExpression - <[^\wа-яё]*(функциявидысубконто\().+([,;=]*//:(([\wа-яё\d_.]+)))> |
a13x 232 - 25.05.2006 - 20:47 |
(229) Сталкивался с подобным эффектом в Дельфях, но с компонентом TWebBrowser. Решение для моего случая описано здесь: http://www.rxlib.ru/faqs/faqd_en/27043.html. Попробуйте добавить в модуль ------------------------------ initialization OleInitialize(nil); finalization OleUninitialize; ------------------------------ |
orefkov 233 - 26.05.2006 - 09:44 |
(230) Нужно сделать OLE плагин, реализующий IConfigPlugin. Лучше всего сделать ATL-проект c поддержкой MFC. При этом, по прежнему можно оставить функцию SetConvigService. |
Young 234 - 26.05.2006 - 11:40 |
Пардон за небольшой оффтоп, но может кому пригодится. Всем любителям AutoComplete посвящается :) Бесплатная программулина, качественный AutoComplete в Query Analyser, SQL Server Management Studio и нескольких других программах: http://www.red-gate.com/products/SQL_Prompt/index.htm |
trdm 235 - 28.05.2006 - 18:07 |
(233) Спасибо. Возникла проблемка, при загрузке самопального прагина, при нажатии на F12 идет такая ошибка: вызов пользовательской точки останова. (признак вроде как потери памяти.) однако не при больше комбинаций приводящих к ошибке нет. Плагин работает стабильно. Только с этой бедой не могу разобраться. Переделывал по твоему совету карты сообщений View-ов на CCmdTarget, не помогло. Кнопку что-ли цементом замазать. Если вызвать из меню F12-отладчик, то все в норме, но при нажатии на кнопку идет ошибка. Еще спасибо за МДТРЕЕ. Очень информативен. |
trdm 236 - 29.05.2006 - 07:51 |
(-235) Сори, ложная тревога. По F12 выбрасывало в сишный отладчик из конфигуратора на int 3 когда 1C и плагин был запущен из под VC++ в режиме дебуга. При нормальном запуске по F12 просто запускается 1С-ный отладчик. Принял нормальное поведение за глюк )))) |
trdm 237 - 30.05.2006 - 11:51 |
Вроде апа. Как имея указатель на CMetaDataObj, нужного объекта открыть форму элемента справочника, форму документа? С обработками проблем нету, т.к. примеры есть. А вот с остальной бедой....... |
trdm 238 - 30.05.2006 - 12:08 |
(233) К сожалению с OLE я пока очень слабо знаком, врятле перепишу плагин. |
Phoenix 239 - 30.05.2006 - 14:08 |
(237) что тебе мешает так сделать? vObj : IMetaDataObj 'Справочник.' + vObj.Name + '.Форма') |
trdm 240 - 30.05.2006 - 19:19 |
+ в копилку. Информативная ветка с исходниками плагинов (VC++ 6.0)... http://www.1cpp.ru/forum/YaBB.pl?num=1148975574 |
Matic 242 - 01.06.2006 - 11:04 |
Существует ли скрипт, который бы заменял #ЗагрузитьИзФайла *.тхт на его содержимое? |
jbond 243 - 02.06.2006 - 09:11 |
(231) - у меня таже фигня. Причем всегда. OpenConf Power Pack последней сборки. Установлены все плагины. |
jbond 244 - 02.06.2006 - 14:29 |
Ап! У меня возникает ошибка: Intellisense 1.63 Строка 983 поз 3/ for i = 0 to ObjArray.Count - 1 Как я понимаю это сообщение выдает сам OpenConf. |
НЕХ 245 - 04.06.2006 - 13:49 |
Как объяснить поведение 1с в режиме загрузки конфигуратора: Конфигуратор с опенконфом страртует 5 минут, без - меньше секунды. При этом (с опенконфом) винт шуршит очень сильно. Файлмон показывает скан всех дисков, всех папок. Какой скрипт может так себя вести, а главное зачем? |
DES 246 - 04.06.2006 - 18:10 |
(245) Давно хотел спросить, но стеснялся ... |
НЕХ 247 - 05.06.2006 - 10:15 |
АП |
a13x 248 - 05.06.2006 - 10:55 |
(245) Никогда такого не было, установлены практически все скрипты из репозитория. Это вообще. А что касается вашего случая, неплохо бы для начала узнать, какие скрипты у вас установлены, какая операционная система, как вы устанавливали опенконф и скрипты. |
DES 249 - 05.06.2006 - 11:36 |
(248) не знаю как (245), но поставил через последний исталлятор, причем не все, а только что, что нужно для редактирования текста... Зависает в начале процесса загрузки на секунд 20, потом идет обработка скриптов... |
trdm 250 - 05.06.2006 - 12:25 |
Маленький плагинчик "Простые подсистемы" перенесена функциональность "Подсистем 3" http://1c.proclub.ru/modules/mydownloads/personal.php?cid=1001&lid=6703 |
DES 251 - 05.06.2006 - 14:19 |
(245) зачистил следы SubSystems, перестало тормозить ... |