Персональная страница Федора Езеева
Главная
Download
Ссылки
MS SQL
Обмен данными
Новости
Статьи
О себе
Крупные разделы...
Коллективная разработка
1С++, OOP, XP
FuncTest
FAQ
Структура 1cv7.md
Опенконф/Телепат2/Интеллисенс и др. скрипты (продолжим 28?)
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, перестало тормозить ...

Rambler's Top100 1C:TOP-100

© 1998-2004 Fedor Ezeev.

Last updated: 2006-06-15