Имя: Пароль:
1C
 
Опенконф/Телепат2/Интеллисенс и др. скрипты (продолжим 25?)
Ø
0 artbear
 
31.10.05
16:14
Для тех, кто только что присоединился.
--------------------------------------------------------------------
Автор всего этого набора чудес - Александр Орефков aka orefkov
А также все, у кого есть время и силы писать плагины/скрипты для Опенконф
--------------------------------------------------------------------
Сабж + плагины/скрипты для Опенконф (сайт автора)
http://openconf.itland.ru/beta
Последние версии (на 31.10.05) ( ВНИМАНИЕ )
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)
На 31.10.05 последний релиз инсталлера 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
--------------------------------------------------------------------
Если у кого есть что-то интересное для Опенконфа - плагины, скрипты, присылайте мне, я размещу на http://openconf.itland.ru
1 Ы
 
31.10.05
16:18
Ветка догнала семерку по релизам :)
2 artbear
 
31.10.05
16:20
Для тех, кто не успел попасть на прошлую ветку
--
(ALL) Довольно важные обновления
----
Intellisence.vbs
----
[+] при генерации ints-файлов для классов 1С++ добавляются
1) методы базовых стандартных классов 1С (например, Справочник, Документ),
2) атрибуты метаданного, выступающего в роли базового класса (например, Справочник.Сотрудники);
3) ints-файлы для классов 1С++ генерятся в каталоге Intell\1С++,
4) старые ints-файлы для классов 1С++ удаляются из каталога Intell,
5) в режиме показа отладочных сообщений можно просмотреть подробную информацию по генерации файлов;
[*] при поиске ints-файлов сначала просматривается каталог Intell,
а затем, если нужного файла не найдено, просматривается каталог Intell\1С++;
[-] для атрибутов формы выдается список методов от 1С, а не методы от спец.класса 1С++ "АтрибутФормы";
[+] добавлена возможность работы с журналом расчетов;
[-] макрос "DisableDebugMessages" не работал;
---
Автор: trdm
[+] В процедуре GetMainType() при нахождении создания объекта методом "Объект = СоздатьОбъект("СтрокаСоздания");" вставлен вызов процедуры проверки "СтрокаСоздания" на принадлежность её к объектам OLE-Automation и в случае успешного прохождения проверки, запуск попытки генерации *.ints-файлов для Intellisence. После генерации соответственно запускается загрузка дополнительных словарей, с помощью ReloadDictionary.
[+] Добавлена процедура подгрузки дополнительных словарей ReloadDictionary, вставлен её вызов в процедуру, исполняемую при загрузке скрипта. Данные дополнительных словарей хранятся в одноименных файлах по пути: BinDir & "\Config\Intell"
Это файлы: "TypesStructureExt.txt" и "OtherTypesDefine.txt"
[+] Добавлена простая функция GetVTFields(lCase(ExprParts(0)), ""), возвращающая поля объекта XBase, созданного способом "База = СоздатьОбъект("XBase");"
процедура использует конструкцию: База.ДобавитьПоле("ИмяПоля");
----
intsOLEGenerator.vbs - генератор *.ints файлов для любых COM-объектов для Intellisence.vbs
Также есть возможность генерировать als-файлы.
Автор Трошин Дмитрий ака trdm
----
1) Generator, генерирует *.ints-файлы по произвольному прог-иду
2) ReGenerator - процедура позволяет произвести регенерацию файлов по объекту из списка сгенерированных.
Примечание: генерация als-файлов идет паралельно с генерацией ints-файлов, нужно просто подтвердить создание файла.
----
 Соответственно всем, кто использует классы 1С++, нужно заново сгенерить интс-файлы для всех своих классов, запустив макрос Update1CppInts из скрипта Intellisence.vbs,
и наслаждаться полноценной работой с классами :)
---
Есть еще несколько изменений.
О них можно почитать по адресу http://1c.alterplast.ru/files/ocs/changelog.html
3 trdm
 
01.11.05
12:13
(24.247) to Young
1. ReGenerator нужен только в ситуациях, если что-то слетело, упало во время запуска Generator'а, или зачем-то ещё?
в принципе написал его для того, чтобы:
- в случае когда библиотека не найдела (не установлена), а прогид пометился как обработанный (скрипт не будет обрабатывать прог-ид пока тот сидит в ProgIDDumped.txt, а ReGenerator исправляет эту ситуацию).
- в случае если ints сгенерированы старой версией, без als-файла, а хочется als-файл.
- ....
2. Велика ли польза от таких ALS-ов? Инфы в них, мягко говоря, маловато...
-Не все библиотеки снабжены хелпом, но есть и такие которые снабжены. Для них и есть смысл генерировать.
3. CommonGenerator и TestLibrary - непонятно вообще, зачем это нужно. Нужные объекты для генерации я могу выбрать и сам, запуская Generator, а проверять регистрацию библиотеки TLBINF32.DLL и ругаться надо прямо в Generator'е (достаточно просто обрабатывать исключение).
CommonGenerator - для демонстрации, TestLibrary-для удобства проверки при установке...
to orefkov, Саш очень интересует работа над настройками скриптов/плагинов, понятно что грядет это с новым OC, а пока хоть скрипт пиши, что и собираюсь сделать.... Только формат xml файла и концепцию хотелось бы узнать..
4 Young
 
01.11.05
12:59
(3) Спасибо, идеи понял.
5 jbond
 
01.11.05
14:54
Чистая установка OpenConf Power Pack на чистый Win 2K SP4
Объект не поддерживает св-во или метод 'Matches'
6 orefkov
 
01.11.05
15:39
С сегодняшнего дня начинаю работу над визуальной настройкой скриптов/плагинов. По виду это будет походить на панель свойств в 8ке,
все будет хранится в xml-подобном виде
7 Тертый
 
01.11.05
15:42
Отличная новость!
8 a13x
 
01.11.05
16:07
(5) версия WSH < 5.6
9 trdm
 
01.11.05
16:23
(5) Вобще-то желательно поное сообщение об ошибке.
на вскидку 'Matches' - коллекция результатов работы регулярного выражения, а вот из какого скрипта, и какой строки, и результат ли это работы регулярного выражения?
10 jbond
 
01.11.05
16:34
OpenConf.RegistryIniFile.wsc
11 a13x
 
01.11.05
16:40
(10) Зря меня игнорируете. Я конечно могу ошибаться, тем не меннее...
.
Дело в том, что опытным путем выявлено, что VBScript, в частности его RegExp-engine на Win 2k SP4 ущербен в плане функционала. Это неоднократно отмечалось (можно предыдущие ветки посмотреть).
.
Лечится переустановкой WSH версии 5.6+.
.
Лично я работаю под Win2k Server SP4, сам с этой проблемой знаком не по наслышке.
12 jbond
 
01.11.05
16:42
Объект не поддерживает св-во или метод 'Matches'
МенюМакросовИзФайла
Строка 136 Поз 10
Еще:
Клавиатура.js
Строка 6 Столбец 9
Недопустимый символ
SendCommand()
тоже author.js
navigator.js
13 a13x
 
01.11.05
16:49
...я тоже настырный...
еще одно доказательство моей правоты - не будут работать макросы, имена которых даны на русском в js-скриптах ("недопустимый символ")...
14 artbear
 
01.11.05
16:57
(12) ага, a13x прав, тебе просто нужно поставить/переустановить WSH 5.6 и все :)
15 Young
 
02.11.05
13:32
Немного дополнена статья по Intellisense:
http://www.script-coding.info/Intellisense.html
(В конце добавлен раздел "Генератор ints-файлов".)
17 Ig
 
02.11.05
14:47
Обнаружил глюк в работе Intellisense, может это у меня так, тогда подскажите что исправить.
Если есть следующий код:
Процедура Сформировать()
   Док = СоздатьОбъект("Документ.АвансовыйОтчет");
   Док.<--- то тут в список выбора попадают реквизиты документа ДвиженияРегистраОКС, хотя по идее такого быть не должно.
   
   
   
   Док = СоздатьОбъект("Документ.ДвиженияРегистраОКС");
   ...
КонецПроцедуры
Подобное поведение было обнаружено и в случае, если переменной с одним и томже именем присваиваются разные виды документов в разных процедурах модуля.
18 Ig
 
02.11.05
14:49
Кстати, если включить отладку то можно увидеть следующиее:
CurrentLine - /<Док/>
RSide - /</>
Строка не соответствует шаблону для выбора типов - /<Док/>
Строка не соответствует шаблону для выбора типов - /<Док/>
ищу тип для /<док/> - /<док/>
нашли тип - /<документ.авансовыйотчет/>
нашли тип - /<документ.движениярегистраокс/>
19 trdm
 
02.11.05
15:03
(17) Это не глюк. Это принцип работы Intellisense. IAm говорил что он не ставил целью точное распознавание. Дело в том что здесь используется сканирование модуля в целом. Dots просторен на другом принципе: сканирование от текущей строки вверх, при не успехе, сканирование от последней строки до начала модуля. И тот и другой принцыпы имеют и плюсы и минусы.
Я как-то пытался приладить бизоновский парсер в OLE - объект для разбиения текста на логические модули, но так и не закончил ((( не хватило ума разобраться со всеми утечками памяти и нормальной работой из dll(((, а так было бы поточнее.
20 trdm
 
02.11.05
15:13
(15) "... Далее, чтобы увидеть этот ALS-файл в дереве синтакс-помощника, перезапустите Конфигуратор. ..." - есть еще способ, на дереве Синтакс-Помощника вызвать динамическое меню и выбрать пункт "Обновить".
+ (уточнение) Не "... любого COM объекта ...", а как бы это сказать, ммм.... объекта реализующего дуальный интерфейс и/или поддерживающего Автоматишн ... скорее всего, это понятно знающим COM, а попроще не знаю как сказать...
21 Ig
 
02.11.05
15:18
Просто, сегодня я решил обновить плагины и скрипты, и обнаружил такое поведение. Раньше такого не было.
Раньше стоял: 'Intellisence.vbs ver. 1.1.9
а теперь 'Версия: $Revision: 1.43 $
может, можно где-то подправить, чтобы работало как раньше?
22 Ig
 
02.11.05
15:24
Просто, сегодня я решил обновить плагины и скрипты, и обнаружил такое поведение. Раньше такого не было.
Раньше стоял: 'Intellisence.vbs ver. 1.1.9
а теперь 'Версия: $Revision: 1.43 $
может, можно где-то подправить, чтобы работало как раньше?
23 Young
 
02.11.05
15:40
(20) В статье написано "для любого COM-сервера". Если написать "для любого COM-сервера, поддерживающего OLE-Automation", не будет ли это тавтологией (в смысле, масло маслянное)? Что такое "дуальный интерфейс", если честно, не знаю.
Про "Обновить" добавлю.
24 Ig
 
02.11.05
15:54
Просто, сегодня я решил обновить плагины и скрипты, и обнаружил такое поведение. Раньше такого не было.
Раньше стоял: 'Intellisence.vbs ver. 1.1.9
а теперь 'Версия: $Revision: 1.43 $
может, можно где-то подправить, чтобы работало как раньше?
25 Ig
 
02.11.05
15:57
Глюки какие-то, сообщение отправляю а окно браузера не обновляется :-(
26 Young
 
02.11.05
22:28
А чем закончились разговоры о новой версии OpenConf?
http://itland.ru/forum/index.php?s=22f872c2b046f3ce4131e8b61cc8fcf7&showtopic=10267&st=0
27 Палыч
 
03.11.05
08:00
(23)
Действительно, тавтология. Наверно, под "автоматишн" имеются ввиду COM-объекты с дуальным интерфейсом (т.е. поддерживающие позднее связывание).
28 Палыч
 
03.11.05
08:03
+27 э... сори, конечно же, поддерживающие раннее связывание.
29 jbond
 
03.11.05
09:13
После .:
Ошибка выполнения скрипта intsOLEGenerator
Строка 132 Поз 3
Несоответсвие типа DMessage
30 jbond
 
03.11.05
09:15
Эту строчку я закомментировал, но все-таки посмотрите на вызов/тело DMessage
31 Young
 
03.11.05
13:26
+(26) В смысле, новая версия OpenConf будет?
32 trdm
 
03.11.05
13:31
(29) Пофиксено. Вечером обновлю на проклубе.
33 Не бейте ногами
 
03.11.05
13:36
32) то же задолбала эта ошибка, почти всегда после точки вылетает.
34 trdm
 
03.11.05
18:55
Обновил, intsOLEGenerator. Брать:
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=1001&lid=5815
Изменения:
* intsOLEGenerator.vbs 1.15:
  [-] пофиксен баг с выдачей отладочного сообщения.
  [+] проверка обработанности прог-ида происходет теперь перед проверкой на существование регистрации прог-ида.
35 trdm
 
04.11.05
00:21
MetaEditor, глянь почту плз..
36 MetaEditor
 
04.11.05
09:40
35) ответил
37 artbear
 
07.11.05
09:19
Народ, а кто-нибудь может сделать небольшой скриптик, в котором есть возможность динамически формировать html-страницу, в которой есть
1) несколько флажков, листбоксов, кнопок
2) и есть возможность перехватить нажатие любой кнопки, т.е. посадить свои обработки на событие "нажатие кнопки".
Хочу на его базе сделать несколько скриптов для достаточно простых задач, на которые не хочется писать плагины.
А в html совсем ничего не помню уже, да и было знаний маловато :(
Кто поможет?
38 a13x
 
07.11.05
10:53
(37) а чем "Авторские комментарии" не устраивают? Там практически все из перечисленного есть :-)
В принципе, могу вечером состряпать что-либо отдельно, js пойдет?
.
На выходных повозился с Интс-ОЛЕ-Генератором - разбирался что в нем к чему (сразу скажу, что, к сожалению, у меня была ревизия 1.2 из репозитория). По ходу разбирательства родился план рефакторинга, который частично был воплощен в жизнь.
.
Суть рефакторинга свелась к тому, что я выделил "низкоуровневую", привязанную к формату генерируемых файлов часть в отдельный класс (дампер), методы которого вызываются в процессе обхода интерфейсов и их свойств/методов.
Общий принцип похож на библиотеку SAX для последовательной обработки XML-файла.
.
Было реализовано три класса:
* SimpleDumper - просто выводит свойства/методы обрабатываемого интерфейса в окно сообщения (для примера и экспериментов)
* IntsDumper - как понятно из названия, генерирует файлы описания методов и свойств интерфейса в формате Intel'а
* XMLDumper - генерирует XML файлы в формате, используемом утилитой xml2tls для генерации tls-файлов для Телепата. Он еще не совсем полнофункционален, ибо документации по tlbinf32 у меня не было :-(, хотя уже "рожает" впролне годные к использованию xml-ки, потенциально можно генерировать более подробную информацию.
.
В связи с этим, просьба к Дмитрию, Артуру и всем, кто разбирался в оригинальном скрипте последних версий: посмотрите насколько сложно будет все это дело смержить с последней версией (да и вообще, надо ли?). На досуге также попробую смержить сам, но не уверен что в течении рабочей недели получится :-(.
.
Брать здесь
http://kuntashov.narod.ru/files/intsOLEGen_a13x_20051107.zip
39 trdm
 
07.11.05
11:22
(37) ммм, бодался с таким скриптом, это ж все близко к теме настроек... да что-то пока закончить не получается....
(38) а чего новую версию не запросил? Посмотрю.
40 a13x
 
07.11.05
11:28
(39) да я у родителей в деревне был на выходных, что было с собой на флешке, то и ковырял :-)
41 artbear
 
07.11.05
11:35
(38) Ага, новый скрипт посмотрю.
На js вполне устроит, нужен именно указанный функционал для примера построения подобного html и связывания с обработчиками в скриптах
42 trdm
 
07.11.05
19:13
(38) Ну и как полукчается? Про скрипт. Предупреждаю, дело не простое))).
43 a13x
 
07.11.05
19:19
(42) нет, пока не смотрел
а с чего такие неутешительные выводы? сильно переписан по сравнению с 1.2, да?
44 a13x
 
07.11.05
19:49
(42) Дим, пришли мне, пожалуйста, последнюю версию, если она не такая, как в репозитории, а я завтра наверное тогда вечером гляну, если день хороший будет, и попробую смержить.
.
kuntashov - собака! - Яндекс.РУ
45 a13x
 
07.11.05
20:24
(41) done
Использовал все основные контролы.
.
Закоммитил в репозиторий (Скрипты/Примеры/HtmlDlgExample.htm и Скрипты/Примеры/HtmlDlgExample.js).
.
Предполагается, что htm-файл лежит в папке <BinDir>\config\data
.
Ждем-с обещанных скриптов от тебя :-)
46 artbear
 
08.11.05
07:03
(45) Спасибо, как раз то, что мне нужно :)
Буду разбираться.
47 sashat
 
08.11.05
08:15
А где можно посмотреть текущюу версию плагина установленного в OpenConf?
надеялся увидеть в панели со списком установлеными плагинами но там нет версии :(
Может я не там смотрел?
48 artbear
 
08.11.05
08:24
(47) Версию какого плагина ты хочешь увидеть?
49 a13x
 
08.11.05
08:29
(45) велкам :-)
(47)
Открываете окно конфигурации
переходите на закладку OpenConf
Разворачиваете ветку плагинов
Встаете на ветку с именем плагина
Тут возможны два случая
1. В правой части окна отображается стандартная панель ОпенКонфа со свойствами плагина, в ней в строке FileVersion - версия _файла_ плагина (грубо говоря - хотя по сути так и есть - версия сборки, по крайней мере для дельфюшных плагинов)
2. Плагин отображает свою панель в правой части окна.
Для таких плагинов плагинов: правой кнопкой на dll-ке плагина, свойства, закладка версия... но там информация соответствует действительности, если только автор плагина об этом позаботился специально
.
Рекомендую найти ридми к плагину и посмотреть номер версии там.
50 sashat
 
08.11.05
08:39
в частности хотел посмотреть версию telepata.
про правую кнопку на dll я знаю но хотел посмотреть из 1С
строку FileVersion я ненашел :(
51 sashat
 
08.11.05
08:45
>1. В правой части окна отображается стандартная панель ОпенКонфа со
>свойствами плагина, в ней в строке FileVersion - версия _файла_ плагина
>(грубо говоря - хотя по сути так и есть - версия сборки, по крайней мере
>для дельфюшных плагинов)
Я такого для telepat ненашел.
52 a13x
 
08.11.05
08:47
(51) для телепата - второй способ
53 sashat
 
08.11.05
08:56
а можно это добавить в ОпенКонф?
в списке он же показывает путь и пускай показывает версию файла.
Мне кажется она там должна быть.
54 a13x
 
08.11.05
08:59
(53) простите, не понял? а панели настройки чтоли он не показывает справа?
все-таки, у Вас какая версия телепата?
55 orefkov
 
08.11.05
09:28
(54)
Если зайти в OpenConf-Панели и настроить отображение настроек телепата
в панели, то в дереве будет отображаться не окно настройки,
а инфа о версии
56 a13x
 
08.11.05
09:57
(55) ага, понял, но все равно не понятно, куда у (53) исчезла версия файла, в то время как "в списке он же показывает путь"
.
Кстати, в процессе эксперимента обнаружилась бага:
1. Открываем окно редактирования панелей
2. Добавляем новую панель, например "Панель 1"
3. Тут же удаляем эту панель ("Панель 1")
4. Добавляем новую панель, задаем ей вновь имя "Панель 1"
5. Нажимаем enter
6. Имя новой панели очищается
57 sashat
 
08.11.05
10:04
получилось настроить отображение версии. спасибо.
но я вообще вел разговоро про то чтобы отображать версию плагина на экране который появляется справа когда выбираешь "Плагины" в левом окне.
там сейчас выводится "Плагин""Тип""ProgID". так вот тудабы добавить "Версия"
58 a13x
 
08.11.05
10:14
(57) боюсь, что я все равно не понял :(
Вы не могли бы прислать мне скриншот "на посмотреть"
kuntashov - собака! - Яндекс.РУ
59 artbear
 
08.11.05
11:43
(Скриптописатели) Кому-нибудь удалось подключиться к событиям Интернет-Експлорера в ВБСкрипт,
т.е. если написать такой код
  Set navigat = createobject("InternetExplorer.Application")
'или Set navigat = OpenOleForm("Shell.Explorer", "заголовок")
  SelfScript.AddNamedItem "navigat", navigat, False
удалось ли заставить отработать событие
Sub navigat_DocumentComplete(navigat1, url)
    Echo "DocumentComplete - " & url
    blnDone = true
End Sub
?
60 trdm
 
08.11.05
16:37
(59) не. а надо?
61 a13x
 
08.11.05
17:11
(69) К интернет эксплореру точно так не привяжешься без использования специальных библиотек. Есть такая штука, ScriptX называется, в какой-то ветке из первого десятка (блин, давно же это было) ссылку кидал...
.
Артур, а ты тогда проще сделай - используй js только для открытия окна и передачи объекта-конфигуратора в скрипт диалога, а все обработчики событий и прочий функционал пиши прямо в html, если критично, на каком языке скрипт писать.
62 artbear
 
09.11.05
06:33
(61) Для меня язык не столь важен. Интересует принципиальная возможность - типа можно сделать или нет :)
63 orefkov
 
09.11.05
08:25
(59)
VBScript не привязывается к событиям IE, а вот JScript умеет.
В свое время я выкладывал пример скрипта с открытием хтмл-формы
в конфигураторе.
64 orefkov
 
09.11.05
08:35
+63
http://openconf.itland.ru/beta/htmlview.zip
65 a13x
 
09.11.05
09:15
(62) попробуй с MSScriptControl'ом повозиться
кажется, должно получиться
66 artbear
 
09.11.05
09:18
(64) да, спасибо, про JS знаю, твой первый пример подобной возможности давно изучил.
Значит, буду делать на JS :)
(65) про MSScriptControl интересно, нужно попробовать. Может, у тебя какие-то наброски уже есть?
67 a13x
 
09.11.05
09:52
(66) пытался с утра сварганить, но не работало, скрипт уже удалил, чтобы под глазами не маячил, но смысл приблизительно такой:
'
Class EventProxy
Sub DocumentComplete(d, u)
Message("Hello!")
End Sub
End Class
'
Sub RunIE
'
MSScriptControl.AddObject "EP", new EventProxy
MSScriptControl.AddObject "SE", OpenOleForm("Shell.Explorer", "test")
MSScriptControl.AddCode
"Sub SE_DocumentComplete(d, u)" + vbCrLf + _
"EP.DocumentComplete(d, u)"+ vbCrLf + _
"End Sub"
'
EndSub
'
к сожалению, так не работает
с js, думаю, такое бы прокатило
имхо, копать в эту сторону - единственный вариант решения проблемы без привлечения "нештатных" компонент
то есть суть решение - искусственная подмена динамического связывания, которое здесь необходимо статическим путем создания "скрипта в скрипте", если так можно выразиться. К моему счастью, js позволяет такие штуки делать на уровне языка, а вот поклонникам vbscript не очень повезло :(
68 fez
 
10.11.05
00:03
up
69 artbear
 
10.11.05
18:17
Тут мне alest напомнил об одной ошибке при работе с константами.
Например,
есть константа "ГлБухгалтер" типа Справочник.Сотрудники,
пишу
ф = Константа.ГлБухгалтер.
и в ответ выдается только телепатовский список,
т.е. ни интелл, ни дотс эту ситуацию не отслеживают :(
Напомните, когда-нибудь подобная фича работала или все-таки нет?
70 artbear
 
10.11.05
18:31
(69+) А по идее должен выпасть список атрибутов и методов справочника :(
71 artbear
 
10.11.05
18:57
(Внимание)
Обновление для тех, кто пользуется 1С++
---------------
благодаря челу Валдемар, за что ему большое спасибо :) ,
выложил в репозитарий интс-файлы для всех встроенных в 1С++ объектов, например, Структура, Окна, РасширениеТаблицы и т.п.
72 trdm
 
11.11.05
00:32
(71) Спасибо ему )))
Но Артур, ты же понимаешь, что это только первые шаги в данном направлении. Я о том, что у объектов "Структура" и "DynaValue" есть "Пользовательские" свойства ;)
73 artbear
 
11.11.05
18:11
(ALL) небольшое обновление Intellisence.vbs
[+] заботало определение типа в случае ввода выражения типа "Константа.ИмяКонстанты.", выдается список атрибутов и методов типа константы;
Например, если есть константа "ГлБухгалтер" с типом значения "Справочник.Сотрудники", будет выдан список атрибутов и методов этого справочника.
74 trdm
 
14.11.05
11:39
^
75 trdm
 
14.11.05
15:54
Предложение по NavigationTools->SelectMetadataAndGotoObj.
Можно ли в SelectMetadataAndGotoObj при выборе метаданного сделать в первой строке нечто вроде хистори? или выбранные раннее объекты помещать вверх списка?
76 artbear
 
15.11.05
07:01
(75) Конечно, можно.
77 Young
 
16.11.05
12:23
Когда в Конфигураторе открываешь ERT, в заголовке главного окна отображается полный путь к файлу. Однако после первого нажатия Ctrl+S остаётся почему-то только имя файла, что не совсем удобно. Как бы это обйти?
78 MetaEditor
 
16.11.05
12:59
77) это и на чистом конфигураторе так...
можно при активизации окна проверять doc.path на расширение ерт и писать в заголовок окна...
75) сделаю только попожже... также небуду возражать если ктонибудь успеет раньше...
79 MAXXL
 
16.11.05
13:10
А когда пишещь ТЗ=СоздатьОбъект(" Почему в этом списке нет ТаблицаЗначений? Как добавить?
80 trdm
 
16.11.05
13:42
(79) Добавь строку "ТаблицаЗначений" в файл
"..\BIN\config\Intell\СоздатьОбъект.ints"
81 Young
 
16.11.05
15:32
(80) А не лучше просто обновить скрипты из последней версии?
82 trdm
 
16.11.05
15:53
(81) Может быть.
a13x, ты в аське когда нить появишся?
83 a13x
 
16.11.05
16:00
(82) Ты по почте напиши, я ее каждый час проверяю.
Аська зло, убивает слишком много времени. Я только после окончания рабочего дня в нее выхожу теперь :-).
84 MAXXL
 
16.11.05
17:26
(80)А есть там такая строка :-( Устанавливал мастером -инсталлятором oc1018
85 Young
 
16.11.05
17:48
(84) Обновляй себе скрипты из папки Intellisense
http://1c.alterplast.ru/files/ocs/ocs_last.dos.zip
+ ставь последние версии OpenConf и Телепата.
Иначе можно долго разбираться...
86 Young
 
18.11.05
13:53
Может вопрос глупый, но я так и не понял, новая версия OpenConf планируется? А то дискуссия
http://itland.ru/forum/index.php?showforum=37
заглохла вроде...
87 Young
 
18.11.05
13:56
+(86) Сорри,
http://itland.ru/forum/index.php?s=907dbc9d52fa62be7e93fcaa0b71d9e3&showtopic=10267
88 serega324
 
18.11.05
14:01
Вопрос, а есть опенсоурсные ERP системы?
89 a13x
 
18.11.05
14:10
Есть, http://www.justfuckinggoogleit.com/
Только они в этой ветке не обсуждаются :-)
90 serega324
 
18.11.05
14:13
Google Is Your Friend
All Smart People Use Google
It Appears That You Are Not One Of Them (??? и как быть)
Someone thinks you are an idiot because you were too stupid to check Google before asking a question. They gave you a link to this site as a joke. The fact that you followed it pretty much proves the point.
91 a13x
 
18.11.05
14:33
(90) Извините, это просто было предложение поискать и надеюсь, буквально оно вами воспринято не будет.
Ключевые слова: open source erp
92 artbear
 
21.11.05
13:02
(a13x)
1) ИМХО ты зря свой als2xml.js поместил в репозитарии в каталог скриптов Опенконфа.
Это же обычный скрипт, имхо его нужно было поместить в каталог "Системные файлы"
2) что-то не все als разбирает :(
на многих/большинстве вылетает с ошибкой
Парсинг исходного als-файла: Automation.als
Недопустимый знак
Подготовка извлеченных данных...
als2xml.js(295, 2) Ошибка выполнения Microsoft JScript: "0" - есть null или не является объектом
93 a13x
 
21.11.05
13:13
(92) да, я хотел сначала поместить его в системные файлы, но я просто планировал сделать два режима работы - как обычный скрипт и как скрипт для ОпенКонфа,
в конце концов можно переместить, пока еще не поздно
.
а на каких als'ах вылетает? можешь мне их прислать или хотя бы назвать?
я тестировал на urbd.als (простейший), v7plus.als (средней сложности) и 1c++.als (оч.сложный), на них работало
больше ни на чем не пробовал, это же все-таки первая версия :-)
94 trdm
 
21.11.05
14:36
Какие-то в последнее время разработки монументальные...
95 Phoenix
 
21.11.05
15:33
Опубликую скриптик, может кому понадобится.
сохранение версий модулей,форм в указанном каталоге.
Имя файла по принциу: ИмяВнешнегоФайла+Дата+Время
о существовании CVS и ему подобных знаю ;)
//
// Author: Phoenix
// email: PhoenixUSA@yandex.ru
// Сохранение версий модулей, форм
//
var sArcPath = "d:\\ert\\";
var QuestOnSaving = true;
var SaveForm = true;
function SetUnSetQuestOnSaving()
{
  if (QuestOnSaving)
  {
    QuestOnSaving = false
    Message("Отменен запрос на сохранение",mInformation);
  }
  else
  {
    QuestOnSaving = true
    Message("Установлен запрос на сохранение",mInformation);
  }
}
function SetUnSetSaveForm()
{
  if (SaveForm)
  {
    SaveForm = false
    Message("Отменено сохранение форм",mInformation);
  }
  else
  {
    SaveForm = true
    Message("Установлено сохранение форм",mInformation);
  }
}
function ZeroZero(num)
{
  return (num>9)?num:('0'+num);
}
function GetCurrentDateTime()
{
    with (new Date)
    {
    return String(getYear()).substr(2,2)+
      "_"+ZeroZero(getMonth())
      +"_"+ZeroZero(getDate())
      +"-"+ZeroZero(getHours())
      +"_"+ZeroZero(getMinutes())
      +"_"+ZeroZero(getSeconds());
  }
}
function GetFileName()
{
  if (!(Windows.ActiveWnd == null))
  {
    var WndName = Windows.ActiveWnd.Document.Name;
    if (WndName.substring(0,41)=="CWorkBookDoc::Внешний отчет(обработка) - ")
    {
      var SaveFileName = WndName.substring(41,WndName.length);
      return SaveFileName;
    }
    else
    {
      return WndName;
    }
  }
}
function SavePage(vPage,vExt)
{
  if (!(Windows.ActiveWnd == null))
  {
    var WndName = Windows.ActiveWnd.Document.Name;
    if (WndName.substring(0,41)=="CWorkBookDoc::Внешний отчет(обработка) - ")
    {
      var WndPage = Windows.ActiveWnd.Document.Page(vPage);
      WndPage.SaveToFile(sArcPath+GetFileName()+"_"+GetCurrentDateTime()+vExt);
    }
  }
}
function SaveModule(vPage,vExt)
{
  SavePage(1,".1s")
}
function SaveForm(vPage,vExt)
{
  SavePage(0,".frm")
}
function LoadPage()
{
  if (!(Windows.ActiveWnd == null))
  {
    var WndName = Windows.ActiveWnd.Document.Name;
    if (WndName.substring(0,41)=="CWorkBookDoc::Внешний отчет(обработка) - ")
    {
      with (new ActiveXObject("WScript.Shell")) res = Popup("Загрузить модуль?", 0, "title", 0|100);
      if(res==6)
      {
        vPage = 1;
      }
      else
      {
        vPage = 0;
      }
      var WndPage = Windows.ActiveWnd.Document.Page(vPage);
      
      with (new ActiveXObject("Svcsvc.Service"))
        LFileName = SelectFile(true, sArcPath+GetFileName()+"*", GetFileName()+" (*.*)|"+GetFileName()+"*.*", false);
      if (!(LFileName)=="")
      {
        WndPage.LoadFromFile(LFileName);
      }
    }
  }
}
function LoadPageFree()
{
  if (!(Windows.ActiveWnd == null))
  {
    with (new ActiveXObject("WScript.Shell")) res = Popup("Загрузить модуль?", 0, "title", 0|100);
    if(res==6)
    {
      vPage = 1;
    }
    else
    {
      vPage = 0;
    }
    var WndPage = Windows.ActiveWnd.Document.Page(vPage);
    
    with (new ActiveXObject("Svcsvc.Service"))
      LFileName = SelectFile(true, sArcPath+"*.*", GetFileName()+" (*.*)|"+GetFileName()+"*.*", false);
    if (!(LFileName)=="")
    {
      WndPage.LoadFromFile(LFileName);
    }
  }
}
function SavePageFree()
{
  if (!(Windows.ActiveWnd == null))
  {
    with (new ActiveXObject("Svcsvc.Service"))
      LFileName = SelectFile(true, sArcPath+GetFileName()+"*", GetFileName()+" (*.*)|"+GetFileName()+"*.*", false);
    if (!(LFileName)=="")
    {
      with (new ActiveXObject("WScript.Shell")) res = Popup("Сохранить модуль?", 0, "title", 0|100);
      if(res==6)
      {
        vPage = 1;
      }
      else
      {
        vPage = 0;
      }
      var WndPage = Windows.ActiveWnd.Document.Page(vPage);
      WndPage.SaveToFile(LFileName);
    }
  }
}
function Configurator::OnFileSaved(W)
{
  if (QuestOnSaving)
  {
    with (new ActiveXObject("WScript.Shell")) res = Popup("Сохранить версию?", 0, "title", 0|100);
    if(res==6)
    {
      SavePage(1,".1s");
      if (SaveForm)
      {
        SavePage(0,".frm");
      }
    }
  }
  else
  {
    SavePage(1,".mdl");
    if (SaveForm)
    {
      SavePage(0,".frm");
    }
    
  }
}
// Процедура инициализации скрипта
function Init(_) // Фиктивный параметр, чтобы процедура не попадала в макросы
{
    try {
        var c = null;
        if (!(c = new ActiveXObject("OpenConf.CommonServices"))) {
            throw(true); // вызываем исключение
        }
        c.SetConfig(Configurator);
        SelfScript.AddNamedItem("CommonScripts", c, false);
    }
    catch (e) {
        Message("Не могу создать объект OpenConf.CommonServices", mRedErr);
        Message("Скрипт " & SelfScript.Name & " не загружен", mInformation);
        Scripts.UnLoad(SelfScript.Name);
    }
}
Init(); // При загрузке скрипта выполняем его инициализацию
96 artbear
 
22.11.05
07:05
(a13x) Ага, счас уже намного лучше, обрабатываются большинство als-файлов.
По 1С++ тлс-файл генерится, но к сожалению, в телепате он не используется :(
(orefkov) Закинул 1cpp.tls в каталог Bin, но он не работает :(
Для проверки можно написать название любого метода из 1С++,
например,
ПолучитьБазовыйКласс(
ЗагрузитьМодуль(
УстановитьМодуль(
97 artbear
 
22.11.05
07:25
(96) Так, с этим я разобрался.
Оказывается, в xml-файле в названиях и псевдонимах (alias) типов нельзя использовать пробелы.
Для 1С++.xml есть тип "Виртуальныетаблицы", у которого есть неверный alias "Виртуальные таблицы" (пробел в середине).
tls-файл вроде бы нормально генерится, но телепат с ним не работает.
Стоило убрать пробел в псевдониме, все стало нормально.
(a13x) Поправишь скрипт? ИМХО в названиях/псевдонимах типов лучше вместо пробелов ставить подчеркивания, удобнее выглядит при подсказке телепата.
(orefkov) может быть, поправить xml2tls, чтобы он подобные ошибки показывал или сам автоматически исправлял пробелы на подчеркивания.
ЗЫ А в общем, все здорово, подсказки телепата красиво и удобно работают :)
Работать в Конфигураторе стало еще чуть удобнее.
98 a13x
 
22.11.05
08:26
(97) Да, Артур, это как раз одна из немногих заморочек, решение которых я отложил до совместного обсуждения, а именно:
.
1. Имена некоторых фолдеров задаются в произвольном виде, а атрибуты name и alias должны быть правильными идентификаторами - то есть, сожержать только алфавитно-цифровые символы. Подготовку такого валидного идентификатора я локализовал специально в функции makeValidId(), она сейчас очень простая. А подготовку alias'ов с ее помощью, кстати, забыл сделать (но это оч. просто) :-(. Поэтому присоединяюсь к просьбе - пусть xml2tls сообщает о таких ошибках при компиляции.
.
2. Слишком большие описания. Это конечно же на вкус и цвет. Лично я от контекстных подстазок жду лишь подсказку о количестве и типах параметров и типе возвращаемом значении, как в продуктах борладна/инпрайса, той же дельфе. В общем, то текстовое описание в одно предложение тоже не помешает, но точно не те большие описания, что извлеваются из алсов как есть. Тут думаю, автоматизировать что-либо очень сложно, разве что ИИ написать :-).
Пожалуй, эту проблему придется решать вручную. Я поэтому, кстати, хотел (и все еще хочу и в свободное время продолжу заниматься этим) сделать генерацию tls на базе intsOLEGenerator Дмитрия, поскольку в tlb описания короткие и точные - как и должно быть в контекстной подсказке.
.
Ну и напоследок - ты говоришь "обрабатываются большинство als-файлов", а что касается "меньшинства" - что это за файлы? Пришли мне их, пожалуйста, или просто назови, я их сам скачаю - будем исправляться.
99 DeathOgre
 
22.11.05
08:55
Что это означает когда я нажимаю Ктрл+Т: ToDO: ShowType? Вроде должен показать тип?
100 Bot
 
22.11.05
09:41
1. Какая текущая версия/ревизия Intellisence?
2. Где она все таки лежит? (в репозитории 1.50, на проклабе 1.8 - настораживает)
3. Скачал сегодня с репозитория, Обновил до 1.8 (согласно (34) - ну из-за бага), => не пашет! (2) [+] добавлена возможность работы с журналом расчетов;
___
Вобщем, подскажите, если не трудно... А то как раз ЖР и нужен.
101 a13x
 
22.11.05
09:48
(99) ToDO = To do, значит "Сделать", то есть еще не реализовано
(100)
1. текущая версия 1.50
2. Самые свежие версии лежат в репозитории, на проклабе, к сожалению, скрипты обновляются редко, времени у нас не на все хватает
3. не надо 1.50 "обновлять" до 1.8, используйте 1.50
102 Bot
 
22.11.05
09:53
(101) спс.
trdm, обнови себе Intellisence.
103 trdm
 
22.11.05
13:18
(102) В смысле?
104 artbear
 
22.11.05
17:03
(a13x) Архив с алс-файлами ушел на твое мыло, проверяй - скрипт на всех файлах спотыкается на одном месте.
Работу с алиасами поправишь?
Жду.
ЗЫ Даже несмотря на обширные описания, все равно пользоваться подсказками удобно.
105 Bot
 
22.11.05
17:24
(103) всмысле: либо убери совсем из архива файлик Intellisence.vbs и не вводи в заблуждение, либо обнови его. (про архив, который на проклабе лежит)
А то путаница получается.
106 trdm
 
22.11.05
20:21
(105) Конечно, будет время займусь. А вот как лучше сделать: убрать или обновить?
107 Тертый
 
22.11.05
20:55
Дим, обнови. ;)
108 a13x
 
23.11.05
08:31
(104) В compound.als одна лишняя закрывающая фигурная скобка (в конце файла), если убрать (вместе с запятой перед ней), то все будет работать. Остальное вечером посмотрю, как и работу с алиасами.
.
К сожалению, такие случаи автоматом не обработаешь :-(.
.
А по поводу описаний - я же говорил, что "на вкус и цвет..." :-)
109 MetaEditor
 
23.11.05
10:30
(trdm)
[*] макрос SelectMetadataAndGotoObj: последние выбираемые элементы
  "всплывают" вверх списка
110 DeathOgre
 
23.11.05
12:01
А можно добавить самому такую вещь. Допустим пишу СоздатьОбъект("Периодический") и когда я набираю слово Периодический, что бы я тоже мог выбрать из выпадающего списка. А то выходи только слово Период
111 MetaEditor
 
23.11.05
12:35
110)в этом месте нужно самому вызывать макрос "MethodsList" или поставить последний intellisence.vbs , там список "создатьобъект" появляется автоматически, а в твоём случае появляется список от телепата...
112 MIK
 
23.11.05
12:44
Почему может не работать Intellisense? Все поставил как описано в http://www.script-coding.info/Intellisense.html - ничего после точки не появляется
113 Young
 
23.11.05
12:51
(112) По тысяче причин. Мало информации даёшь.
114 MIK
 
23.11.05
12:56
В общем, стоит у меня сборка OpenConf Power Pack, но постоянные ошибки после закрытия 1С и прочие мелкие баги надоели... Решил поставить в отдельный bin только то что нужно. Скачал telepatr, OpenConf 1.2.0, OpenConf_Scripts с сайта http://www.script-coding.info, поставил openconf и telepat, скопировал в system вспомогательный объекты, запустил regall.bat, скопировал Intellisense куда нужно и все! И не пашет!!!
115 MIK
 
23.11.05
12:59
А нажимаешь Ctrl+I - выдает несоответствие типа в intsOLEGenerator.vbs строка 132
116 a13x
 
23.11.05
13:16
(114) А можно про "мелкие глюки" и "ошибки при закрытии" поподробнее?
Мы скрипты просто так выкладываем, а Вы даже информацию о том, какие ошибки выводятся скрываете, нечестно получается :-(.
Как же я смогу их исправить, если не буду знать про них ничего?
117 MIK
 
23.11.05
13:21
Для начала по моему вопросу - убрать intsOLEGenerator ибо не пашет
(116) Ошибка после закрытия 1С, при выборе файла пишет что-то про COMDLG32
118 DeathOgre
 
23.11.05
13:23
(111) А где взять последний этот файл? А так весчь класная
119 MetaEditor
 
23.11.05
13:36
118) всё последнее по прежнему в http://1c.alterplast.ru/files/ocs/ocs_last.dos.zip
117) comdlg32 - убрать из .\BIN\Config файл fdsubst.dll
120 DeathOgre
 
23.11.05
14:16
И что делать с этим добром. Что-то не понял
121 a13x
 
23.11.05
14:19
(117)
>В общем, стоит у меня сборка OpenConf Power Pack, но постоянные ошибки
>послезакрытия 1С и прочие мелкие баги надоели...
.
а потом
.
> Для начала по моему вопросу - убрать intsOLEGenerator ибо не пашет
> Ошибка после закрытия 1С, при выборе файла пишет что-то про COMDLG32
.
Никак не вяжется одно с другим...
.
Со всей ответсвенностью заявляю, что ни intsOLEGenerator, ни тем более COMDLG32.dll инсталлятором не устанавливаются.
.
Вы точно ничего не утаиваете?
.
Как же я смогу исправить ошибки, если не буду знать про них ничего?
122 DeathOgre
 
23.11.05
14:19
Не могу создать объект OpenConf.CommonServices
Скрипт Intellisence не загружен. В чем дело?
123 a13x
 
23.11.05
14:40
(122) не установлен CommonServices.wsc
очень хорошо об этом написано в упоминавшейся выше статье Young'а
124 trdm
 
23.11.05
17:15
(114) Да не остынут серца благодарных пользователей? )
125 mvk
 
23.11.05
17:38
Человеки, а когда ждать свежий инсталлер? А то столько нового появилось...
ЗЫ: Большое Человеческое Спасибо авторам всех этих прелестей!
126 trdm
 
23.11.05
22:19
(109) Блин, классно получилось. я в восторге.
127 Тертый
 
23.11.05
22:40
126) а где посмотреть/скачать, то, что классно получилось? Хочу быть тоже в восторге :)))
128 Тертый
 
23.11.05
22:50
И еще: должно же это как-то решаться! После выбора значения из списка интелла выпадает список телепата ни к селу, ни к городу. Артура спрашивал - видать забыл. Я скриншотик маленький на 25К тут оставил webfile.ru/650584 , все скрипты свежие, проблема постоянная. А?
129 Michael
 
24.11.05
00:48
Присоеденяюсь к (125) и с нетерпением жду новый инсталлер.
130 a13x
 
24.11.05
08:22
(125,129) Сам уже об этом думаю. Постараюсь в ближайшее свободное время заняться обновлением сборки.
131 Тертый
 
24.11.05
09:26
а по 127+128) никто ничего?
132 Bot
 
24.11.05
09:39
(130) а эту сборку нельзя никак автоматом делать?
133 a13x
 
24.11.05
10:55
(132) Полностью автоматом - нет, но Вы же не думаете, что я это вручную делаю?
.
"Мануальная" часть заключается в подготовке "эталонной" рабочей инсталляции и обновлении документации (грубо говоря - собирания ее по проклабам и из других мест, ибо в репозитории ее нет), а также проверки совместной работоспособности некоторых плагинов.
.
А потом эта сборка автоматически с помощью скриптов из папки Install, которая уже давно присутсвует в репозитории собирается в инсталлятор, там кстати, даже некоторые вещи задокументированы, так что...
.
Если есть идеи как это довести до полного автоматизма, ничего не меняя в "регламенте нашей разработки" и просто в структуре репозитория - you are welcome! Впрочем, в любом случае контрибьюшен в любой форме рады принять.
.
Я конечно же мог бы просто запихивать файлы снапшота репозитория как есть в инсталлер, сохраняя структуру и скрипты как есть и не париться над "всем остальным", но чем бы это отличалось от того, что Вы получаете, качая oc_last.zip?
134 Тертый
 
24.11.05
16:52
а может, не надо много отличий? Удобнее обновлять из oc_last.zip будет. Только при установке выбор скриптов и плагинов. + сохранение предыдущих настроек/хоткеев???
по поводу 131) никто не скажет?
135 a13x
 
24.11.05
18:44
(134) Что имеется в виду под "много отличий"?
Открыл сейчас в Фаре в левой панели каталог Config эталонной сборки, в правой - рабочую копию репозитория в корне каталога OpenConf_Scripts, вижу следующие отличия:
.
1. В config нету папки ВспомогательныеДанные. При более внимательном рассмотрении понимаю, что ее содержимое лежит в корне папки config - папка Intell целиком как есть, сожержимое папки "Работа с макросами" - в корне каталога config. Интересно почему? Разбираюсь дальше... Оказывается, некоторые скрипты (не буду называть), без которых некоторые люди (не показываю пальцем, но я в их числе) жить не могут работают с расчетом, что необходимые данные лежат в папке config\Intell, а не config\ВспомогательныеДанные\Intell. Ага, с этим ясно. А что же с macros.ini? Их использует скрипт "Меню всех макросов из файла" - оч. полезный скрипт, у меня меню скриптов с его помощью на тулбар выведен. И этот скрипт хочет, чтобы macros.ini лежал в корне папки config. Ясненько, с этим разобрались, едем дальше.
.
2. Папка СистемныеФайлы переименована в папку system. Хм. А мне и вправду system
больше нравится. Хотя бы потому, что предпочитаю, чтобы папки были однообразно
проименованы, в config уже есть вложенная scripts, а значит все папки этого же
уровня буду-ка я именовать латиницей, а еще лучше (для меня) на английском. Тоже
вроде все ясно.
...
Продолжать? Обоснование еще каких отличий нужны? В очередной раз заявляю, что все эти "отличия" вызваны либо по техническим причинам (пункт 1), либо по волеизъявлению большинства пользователей (пункт 2). Исключение было лишь однажды - в инсталлер был добавлен список хоткеев, по просьбе Тертого, который никто кроме него не просил, но идея мне показалась разумной - это третий критерий ("разумность"), по которому вносятся эти самые "отличия".
.
У вас всегда есть выбор - можно качать последние снапшоты репозитория, можно пользоваться готовым инсталлером, а можно сделать свой - с нуля или на базе исходников готового. А также можно просто сделать __конкретное__ предложение по улучшению функционала, а не говорить "а может не надо". Какой смысл гадать? Берем - и пробуем.
.
Извините, просто я сегодня очень устал.
136 Young
 
25.11.05
13:09
В модуле внешнего отчёта набираю текст (вертикальной чертой обозначена позиция курсора):
===================================================================
сзААА=СоздатьОбъект("СписокЗначений");
сзААА.|
===================================================================
Вместо окна выбора Intellisense дважды получаю такое сообщение:
===================================================================
Ошибка выполнения скрипта.
Скрипт: intsOLEGenerator
Файл: C:\Program Files\1Cv77\BIN\config\scripts\Intellisense\intsOLEGenerator.vbs
Строка: 132
Позиция: 3
Код: 0
Источник: Ошибка выполнения Microsoft VBScript
Описание: Несоответствие типа 'DMessage'
===================================================================
WindowsXP SP2, платформа 7.70.025,
OpenConf 1.0.2.0, Телепат 2.0.0.0r,
Intellisence.vbs $Revision: 1.50 $
intsOLEGenerator.vbs $Revision: 1.3 $
Если не загружать intsOLEGenerator.vbs, всё работает хорошо.
137 jbond
 
25.11.05
13:18
Закомментируй DMessage
138 zzz
 
25.11.05
13:19
2(136) таже бодяга. я его уже выкинул.
139 Young
 
25.11.05
13:23
Вопрос по макросу GoToObject из Навигация.vbs: если на форму обработки положить новую кнопку, и запустить этот макрос, раньше вроде предлагало создать процедуру (InputBox'ом с переключением в модуль). Сейчас же только быстро мелькает окошко свойств кнопки - и тишина :) С каких пор началось, сказать точно не могу - после какого-то обновления скриптов...
Навигация.vbs $Revision: 1.43 $
140 trdm
 
25.11.05
13:25
( господа, закиньте плз из проклуба в респозитарий intsOLEGenerator.vbs.
Ну нету пока времени разобраться с подключением (......
141 Young
 
25.11.05
13:25
(137, 138) Спасибо. Подождём, что скажет автор...
142 jbond
 
25.11.05
14:49
(141) - он якобы пофиксил и выкинул на проклаб
143 artbear
 
25.11.05
16:55
(trdm) Закинул версию intsOLEGenerator без бага с DMessage в репозитарий скриптов.
Но версия вроде отличается от той, что лежит на проклубе.
Нет времени сверить и закоммитить.
Если ты сам сверишь и пришлешь изменения, тогда занесу в репозитарий.
144 artbear
 
25.11.05
16:57
(139) Ага, есть такой баг.
Это к MetaEditor-у.
Появилось после последнего изменения NavigationTools.vbs
145 trdm
 
25.11.05
19:39
Взял с проклуба и сравнил со своей версией и с версией из респозитария
отличаются только одной строкой.
' Версия: $Revision: 1.4 $ <<< респозитарий.
' Версия: $Revision: 1.15 $ <<< моя и проклуб.
так-что все "ок".
146 Тертый
 
25.11.05
20:17
Ну, раз начал - пойду до конца. Даже новичкам помогают исправить глюки, а меня почему-то игнорируют
-------------------------------------
И еще: должно же это как-то решаться! После выбора значения из списка интелла выпадает список телепата ни к селу, ни к городу. Артура спрашивал - видать забыл. Я скриншотик маленький на 25К тут оставил webfile.ru/650584 , все скрипты свежие, проблема постоянная. А?
---------------------------------------
147 a13x
 
26.11.05
11:56
(146) Да не игнорирует тебя никто :-), просто повторить ошибку не можем, к тому же ты не указал номер версии Интела, не используешь ли ты вместе с ним Дотс, какие настройки у Телепата включены. Мы должны вручную проверить все возможные варианты? Остается только телепатировать, прошу прощения за "почти-каламбур" :-).
.
Исхожу из следующих предположений: у тебя последняя версия Интела, Дотс ты не используешь, включена опция Телепата "Добавлять шаблоны в список".
Способ 1. Попробуй отключить опцию "Добавлять шаблоны в список" и посмотри, что получится.
.
Способ 2. (если не получится) Проверь в Intell.ini не установлен ли параметр SHOWTOOLTIPS в значение "ДА", если да, то измени его на "НЕТ" и попробуй, не помогло ли.
148 MetaEditor
 
26.11.05
12:16
139,144) неправда... )
последнее изменение состояло в добавлении всего одной строки, как то: если формула пуста то берётся идентификатор контрола, потому как если формула у кнопки, допустим, пустая то выполняется также процедура с названием идентификатора...
---
а если "быстро мелькает окошко свойств кнопки - и тишина " - это значит что и формула и идентификатор пустые... так было и раньше..
149 trdm
 
26.11.05
15:04
(146-147) При вем уважении, я немного не в понятках.
Не понял я любителей телепатовского списка, когда убрали посылку "ESC" в конце выбора, подавляющего этот список. Впрочем, растраиваться сильно не стал, посчитав что наверное массам такое поведение Интела удобнее и откорректировал свою локальную версию Интела таким образом:
внес в intell.ini такие строки:
.
// если в этом параметре стоит да, то исключаем вывод и обработку телепатовского списка
DISABLE_TELEPAT_LIST = Да
.
А в процедуру: ShowTooltip добавил:
' показываем подсказку телепата по параметрам
Sub ShowTooltip(param)
......
  if UCase(GetIniParam("DISABLE_TELEPAT_LIST")) = "ДА" then wshShell.sendKeys "{ESC}" 'убираем телепатовский список
End Sub
Не помню где и что я еще чего корректировал, помоему добавил вызов ShowTooltip в конце "MethodsList".
(146) Попробуй так.
150 trdm
 
26.11.05
15:08
Хотя фигня получается конечно. Поясню: мне кажется, что если у пользователя будет установлен параметр "SHOWTOOLTIPS" в "Да" и "DISABLE_TELEPAT_LIST" в "Да" тогда победит реакция по ESC, т.е. уберет и подсказку по параметрам и телепатовский список. Для меня это приемлемо, но возможно для кого-то нет.
151 a13x
 
26.11.05
16:00
(150) Если не ошибаюсь, я перед тем, как закомментировать строку кода с "ESC"
в исходниках, я задавал вопрос, зачем это там было нужно, и получал ответ "не помню, но зачем-то раньше надо было", если угодно, могу покопаться в архивах.
.
Я вообще, проблемы, о которой говорит Тертый воспроизвести не смог. К сожалению.
152 Young
 
26.11.05
19:05
(148) Спасибо, проверим :)
153 Тертый
 
26.11.05
21:09
Вот на что я и надеялся: коллективный разум!
a13x, из 147) "Добавлять шаблоны в список" отключил - и все! Весь прикол в том, что я галку не ставил, в основном все по умолчанию.
Оно же не смертельно было, или Esc или продолжаешь далеее - оно само убиралось.
Еще вопрос: после ВыбратьЭлементы() ";" не ставятся ... тоже не смертельно, но можно бы и "пулеметом" ставить, чего там продолжать?
В общем, большое спасибо за помощь в решении проблемы!
154 Тертый
 
26.11.05
21:26
А никто в отладчике окна сразу разворачивать не научился?
155 zzz
 
28.11.05
11:13
нашёл:
Case 10 ' Метод 1С
' Когда еще от Орефкова дождешься нормального СоздатьОбъект...
' и сразу выдает список всех объектов, в т.ч. и классов 1С++
If InsertName = "СоздатьОбъект" Then Text = "СоздатьОбъект(""!"");"
.
согласен с автором :)
156 artbear
 
28.11.05
13:14
(155) Кстати, и код, и комментарии самого Саши Орефкова ;-)
158 trdm
 
28.11.05
13:30
(151) Наверно я чего-й то пропустил ((
(153) Думаю это не совсем то решение, что требуется в глобальном плане. если ты там галочку снимешь, тогда у тебя шаблоны исчезнут из списка автоподстановки, а это не всегда гуд, понимаешь? Так что надо действительно подразобраться с этой темой.
159 artbear
 
28.11.05
13:35
(157) Ага, сегодня вечером или завтра выложу в репозитарий.
160 Тертый
 
28.11.05
13:42
158) да я устал от этой борьбы, ведь ни у кого, кроме меня не косячит :( Если только мой config выложить?
161 zzz
 
28.11.05
13:51
у меня в СоздатьОбъект так и не работает "СписокЗначений", "ТаблицаЗначений".
Видать для этого "intsOLEGenerator.vbs" нужон, а я его выкинул из-за ошибок (136)
162 Young
 
28.11.05
13:53
Может мелочь, но всё же. Известно, что быстро создать процедуру в модуле с помощью скриптов и/или Телепата можно несколькими способами. Например, с помощью списка Intellisense (выбор из списка "Процедура_КонецПроцедуры"), с помощью макроса Intellisenсe:MethodsList, с помощью макроса Навигация:GoToObject. При этом конструкции получаются немного "разношёрстными": разделительная линия то есть, то нет (и её длина разная), комментарий после КонецПроцедуры то есть, то нет (и скобки после него). Есть ещё шаблон из стандартой поставки 1С - там вообще оформлено по-другому. В результате начинаешь это исправлять вручную, чтобы выглядело одинаково (может я один такой, но мне не нравится, если процедуры в модуле оформлены по-разному). А можно сделать, чтобы все такие случаи отрабатывали одинаково? Ну например, как в шаблоне из стандартой поставки?
P.S. Возможно, я вспомнил не все возможные способы создания процедур.
163 Young
 
28.11.05
13:56
(161) Ошибка в intsOLEGenerator.vbs уже исправлена. Обнови себе intsOLEGenerator.vbs, Intellisence.vbs и содержимое папки Intell из последней сборки:
http://1c.alterplast.ru/files/ocs/ocs_last.dos.zip
164 zzz
 
28.11.05
14:03
2(163) вроде заработал :)
сенкс.
165 MetaEditor
 
28.11.05
14:10
157)сегодня с утра использую скрипт и уже несколько раз ловил себя на мысли "а ведь и вправду прикольно"... )
162)да, разношёрстное оформление процедур тоже доставало..
в telepat.vbs я сделал так
Case 14 ' Предопределенные блоки
If InsertName="Процедура_КонецПроцедуры" or InsertName="Функция_КонецФункции" Then
         ProcName=InputBox("Введите имя метода","Метод", "гл")
tempText = Replace(Text,vbCrLf,vbCrLf & vbTab & "!" & vbCrLf)
tempText = "//"+String(70,"=") & vbCrLf & _
  Replace(tempText,"!(",ProcName & "(") & " // " & ProcName
Text = tempText
в интелле и навигации тоже постоянно меняю по такому же принципу...
а вопще надо это систематизировать... всегото делов, завести два значения в реестре...
166 trdm
 
28.11.05
14:12
(162) Еще есть Brackets.vbs.
(163-164) Причем уже давно. см. (34)
167 Young
 
28.11.05
14:46
(165,166) Вобщем, тогда предлагаю систематизировать :) Насчёт "двух значений в реестре" не понял, предлагаю поправить скрипты :)
168 Пим Сибирский
 
28.11.05
14:54
165, пасибо.
169 zzz
 
28.11.05
14:58
2(165) сегодня этоже ковырял :) Так сделал:
.
Case 14 ' Предопределенные блоки
If InsertName="Процедура_КонецПроцедуры" or InsertName="Функция_КонецФункции" Then
  ProcName=InputBox("Введите имя метода","Метод", "гл")
  Text= "// -----------------" & vbCrLf & Replace(Text,"!(",ProcName & "(!") & vbTab & "// " & ProcName
170 Young
 
28.11.05
16:21
Обновлён скрипт для работы с закладками. Исправлена ошибка: не во всех случаях из списка выбора закладок (F5) автоматически убирались удалённые пользователем закладки.
http://www.script-coding.info/Bookmarks.zip
171 a13x
 
28.11.05
16:43
...Можно написать скрипт, который бы читал файл шаблонов 1С и парисл его, формируя словарь с парами ИмяШаблона => Шаблон при загрузке (или по макросу) и сохранял в глобальной переменной, а также предоставлял метод-обертку вокруг телепатовского метода ConvertTemplate(), с помощью которого можно "развернуть" шаблон, заданный по имени и который другие бы скрипты могли использовать...
.
Мы с Артуром уже как-то про это говорили, кажется...
172 Young
 
28.11.05
23:12
При запуске Конфигуратора:
Скрипт C:\Program Files\1Cv77\BIN\config\scripts\Test.abcde
Не удалось получить имя скриптового движка
--------------------------
Вопрос: а где OpenConf ищет имя этого самого "скриптового движка"?
173 Young
 
28.11.05
23:14
+(172) И вообще, чем "скриптовый движок" отличается от "просто" программы, которой ассоциированы некие расширения файлов?
174 Young
 
28.11.05
23:23
++(172) Вопрос теоретический, поэтому на расширение "abcde" не смотрите :)
175 MetaEditor
 
29.11.05
06:02
172)по ассоциации расширения и/или директиве $ENGINE в начале скрипта
$ENGINE VBScript
$ENGINE PerlScript
...
176 Vaicartana
 
29.11.05
06:09
Трям!
.
А для чего нужен плугин Подсистема?
177 artbear
 
29.11.05
06:53
(176) Привет!
Вкратце: чтобы разделить метаданные и внешние обработки на подсистемы.
Например, подсистема "Сотрудники", подсистема "Контрагенты", подсистема "Работа с покупателями" и т.д.
Удобно работать с небольшим списком подсистем, в которой сгруппировано все, что нужно. А не искать по всей конфигурации и/или дискам
178 Young
 
29.11.05
11:17
(175) Спасибо, но мало :)
Если есть некая программа, которая может принимать в параметре командной строки путь к файлу скрипта на своём скриптовом языке, возможно ли это запустить из-под OpenConf? Можно ли это считать "скриптовым движком"?
Ассоциации расширения файла и директивы "$ENGINE ЧегоТоТам" явно не достаточно, тем более, что и не ясно, что именно писать вместо слова "ЧегоТоТам":
------------------------------------
Скрипт C:\Program Files\1Cv77\BIN\config\scripts\Test.ahk
Не удалось создать экземпляр скриптового движка AutoHotkey
Код ошибки: 0x800401F3
Недопустимая строка с указанием класса
179 Young
 
29.11.05
11:27
+(178) Вопрос сводится к следующему: что есть "скриптовый движок" в терминах OpenConf? Я догадываюсь, что ответить в двух словах на этот вопрос трудно :) но всё же...
180 a13x
 
29.11.05
11:51
(178) нет, нельзя
под Engine понимается dll, реализующая кучу специализированных COM-интерфейсов вокруг настоящего скриптового движка (но это очень грубо)
.
ищи информацию по ключевым словам Active Scripting Engine
181 Young
 
29.11.05
12:05
(180) Примерно ясно, спасибо.
182 orefkov
 
29.11.05
13:06
(179) "Скриптовый движок" - есть COM-объект, реализующий интерфейс IActiveScript. Именно этот объект и выполняет скрипт.
Опенконфу необходимо знать либо ProgID, либо CLSID этого объекта,
что бы создать его и передать ему текст скрипта на выполнение.
Для получения этого ProgID опенконф сначала пытается считать строку
$ENGINE из скрипта, в случае неудачи проверяет расширение файла в реестре,
в котором прописывается CLSID движка для этого расширения.
183 Young
 
29.11.05
13:38
(182) Ок, спасибо.
185 vladnet
 
29.11.05
14:28
Как сделать так чтобы телепат брал подхватывал названия процедур и функций из стороннего файла.
Возможно это где то есть в хелпах, если так то ткните пожалуйста где читать...
Сама же функция нужна для такой вещи: решил разбить глобальник на несколько и загружать их функцией ДобавитьГлобальныйМодуль, а жить уже без телепата сложно.
Идея вроде хорошая, если подскажите как реализовать, если что то нужно будет писать, попробую написать.
Альф (большое ему спасибо) возможно исправит ошибку с Удалением глобального модуля, и возможно будет даже перегружать глобальные модули на лету, без выхода из предприятия, хотя это конечно где то уже было.
186 a13x
 
29.11.05
16:05
(185) Вот здесь о чем-то похожем речь шла
http://itland.ru/forum/index.php?showtopic=11109
Думаю, имеет смысл спросить alest'а, может быть он не перешел на ТурбоМД и все-таки что-то предпринял для внешних модулей :-).
.
Ну а автодополнение в стиле редактора Vim работает в любых текстовых документах (скрипт VimComplete.js).
187 trdm
 
29.11.05
16:11
ОФФ, чето не получается (((
Как из строки:
@Информация=здесь может быть любой символю......
получить кусок "здесь может быть любой символю......"?
Как только не изгалялся на тему, пример:
(?!@Информация=)(?:(.+)$)
не хочет отдавать кусок строки (VBScript.RegExp)(((
188 a13x
 
29.11.05
18:35
(187) Зачем такой замороченный регексп? Или на то есть причины?
var m = "@Информация=здесь=может=быть=любой=символ".match(/^@Информация=(.*)$/);
// получаем m[1]=="здесь=может=быть=любой=символ"
189 trdm
 
29.11.05
23:30
Дык объект-то "VBScript.RegExp" да + в 1С-не.
А явовский регексп не знаю как использовать в 1С-не.
Разве что скрипт-колнролом...
190 a13x
 
30.11.05
08:39
(189) Ну, в случае простых регекспов это ничего не меняет, кроме лишь способа доступа к результатам матчинга - регексп остается тот же:
--------------------------------------------------------------------
Set RE = New RegExp
RE.IgnoreCase = True
RE.Global = True
' Регексп без изменений (по сравнению с js)
RE.Pattern = "^@Информация=(.*)$"
Set Matches = RE.Execute("@Информация=здесь=может=быть=любой=символ")
' Выводит строку "здесь=может=быть=любой=символ"
WScript.Echo Matches(0).SubMatches(0)
--------------------------------------------------------------------
191 artbear
 
30.11.05
11:23
(189) Ничего не понял.
ЗЫ ты же вроде сам на проклуб (или еще куда) выкладывал обработку на 1С, где есть примеры работы с регулярными выражениями.
ЗЗЫ Кстати, я ее подработал для получения подвыражений.
192 Тертый
 
01.12.05
12:12
млин, потерял скрипт подмены стандартного "Файл - Открыть", не помню чей, но очень хороший (где КаталогИБ, Каталог 1С). Подскажите, как называется и где взять?
193 MetaEditor
 
01.12.05
12:22
192)"мой, это мой скрипт......." ))
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=1003&lid=5476
194 slavka
 
01.12.05
12:22
это плагин MetaEditor'a - fdsubst. на проклубе лежит
195 trdm
 
01.12.05
12:36
(191) Дык если подзабыл, или не получается сделать...
196 Тертый
 
01.12.05
12:44
193) скачал, полрожил в Config, показывает Екселевское окно :(
197 MetaEditor
 
01.12.05
13:01
196) это у тебя скорее всего excelfiledialog.vbs...
его удалить надо
198 Phoenix
 
01.12.05
14:45
(176) Описание плагина прилагается. там описаны основные возможности.
помимо того, что назвал Артур: работа с задачами, просмотр свойств, связей объектов МД, возможность создания описания для каждого объекта МД, в т.ч. для реквизитов, хранится в БД. также включен функционал плагина ExtFrmsTree
Задачи можно экспортировать в XML. это поять же не все. основное.
Если есть еще вопросы пиши по мылу: PhoenixUSA собака яндекс ру.
199 AnyBody
 
01.12.05
14:54
(184) . . . После отключения показа шаблонов в настройках телепата заработало.
200 AnyBody
 
01.12.05
14:59
(199) Зато теперь, галочка добавления шаблонов в список подстановки при перезапуске конфигуратора снова "включается". Как ее погасить надолго?
201 slavka
 
01.12.05
15:24
(200) ищи скрипт telepat.vbs в папке config. ищи Sub Init(param) там все понятно написано.
202 AnyBody
 
01.12.05
15:26
(200) Все разобрался, я скрипт telepat.vbs подключил, а там эти галки "насильно" и раставляются.
203 a13x
 
01.12.05
16:34
(202)Может, пригодится
Скрипт: TelepatSettings.js
Версия: $Revision: 1.1 $
Обеспечивает раздельное хранение настроек Телепата для каждой информационной базы (ИБ).
204 Young
 
01.12.05
19:14
(trdm) А можно сделать так, чтобы при отработке макроса Generator из intsOLEGenerator.vbs при необходимости автоматически пополнялся файл "СоздатьОбъект.ints"?
205 trdm
 
01.12.05
21:11
(204) Конечно.
206 Young
 
01.12.05
23:13
(205) Сделай пожалуйста :)
207 vladnet
 
03.12.05
11:41
Подскажите пожалуйста что мне нужно делать:
Интеллисенс, съедает первую набранную букву в методе, когда я начинаю набирать сразу после точки, Например курсор стоит так:
пДок.
Я начинаю набирать букву например "А"
Он мне открывает, окно методов, но там буквы А нет. Как сделать чтобы она там была?
208 SKrin
 
03.12.05
18:39
Как побороть глюк:
набираю "СоздатьОбъект(" - появляется список объектов и тутже конфигуратор вываливается.
Отключаю у телепата галку Автоактивация в группе Подсказка-все нормально.
Ктонить сталкивался?
Версии все последнии.
209 Cutter
 
05.12.05
11:14
Не читал предыдущие посты, так что если это уже есть, сильно не пинайте, а просто ткните носом. Intell до сих пор не понимает знак "<>" (не равно). Попробуйте, например в Торговле набрать 'Если КодОперации<>Перечисление.КодыОпераций' дальше ставим точку и скрипт опять пишет Перечисление.
И еще. Если я набрал две буквы названия метода, потом вызвал скрипт, и потом хочу донабрать этот метод (ну, чтоб именно он один остался в списке методов, а потом нажать Enter), то те первые две буквы просто пропадают. В поле ввода их нет. А мне так нравилось, как было раньше... В Intell 1.1.9 вылетал телепатовский список. так было здорово. Хочется пользоваться новой версией скрипта, но чтоб он выглядел по старому. Что можно сделать?
210 trdm
 
05.12.05
20:14
(207) Даже не знаю, что сказать (((
(208) Есть такое, мы с тобой коллеги по несчастью... галку сам убираю.
211 trdm
 
07.12.05
21:15
Аминь ((((
212 fez
 
07.12.05
21:55
Где ОФФ, негодяи?
:))
213 slavka
 
07.12.05
22:08
Будешь персональным модератором? ;)
214 fez
 
07.12.05
22:16
(213) если только почетным.
.
по нечетным я занят :)
215 Young
 
09.12.05
19:38
Up
216 vS
 
13.12.05
07:49
такая фишка... если открыты 2 конфигуратора, то во фтором не работают хот кеи, даже Ф11 и Стрл+Ы
ОС 2К, права ни какие...
дома на ХР работает
217 a13x
 
13.12.05
08:16
(216) Win 2k Server, все ок (в смысле - не воспроизводится)
218 vS
 
13.12.05
08:25
ну, я понимаю, что у тебя все ок, а вот почему у меня такая штука?
все версии последние
219 a13x
 
13.12.05
08:41
(218) Ну я понимаю, что вы понимаете, что у меня все ок, а я понимаю, что у вас - нет.
.
В (217) я хотел сказать, что проблема скорее не в ОпенКонф'е, а в окруженни, в котором он работает (настройки ОС, текущая версия WSH, версия MFC, версия используемых COM-объектов, установленные плагины, в терминале или нет вы конфигураторы открываете и т.п.), поскольку на аналогичной системе ошибка не воспроизводится.
.
Для советов серьезнее информации маловато будет.
220 vS
 
13.12.05
09:11
я думаю, мож с правами что...
у меня права урезаные до нельзя...
еще такая фишка... файлы как будто и не открываются вовсе...
т.е. нет панели окон внизу, не активны копи, пасте, сохранить... хотя в "окна" открытый файл есть, через файл можно сохранить...
байда какая то
24 релиз СКЛ на базе ДБФ
221 artbear
 
15.12.05
17:02
(ALL) Получил по рассылке от мисты
"Волшебство программирования на 1С:Предприятие 7.7 и 8.0
Выпуск 96 / 12.12.2005 - OpenConf: пишем скрипты для конфигуратора 1С 7.7"
Прямой линк http://kb.mista.ru/article.php?id=54
Интересно написано, есть примеры своих скриптов. Хотя некоторые вещи, конечно, уже устарели, так как уже давно реализованы скриптами :)
Также не указана, пожалуй, самая удобная вещь - выбор из списка с произвольной фильтрацией.
Мне понравилась одна идея, взятая из 8.0 - макрос, который закрывает запущенный из конфигуратора сеанс 1С:Предприятие.
Автор статьи (romix) привел пример "холодной" выгрузки 1С:Предприятия.
Вот бы реализовать идею с нормальным выходом из 1С.
Кто возьмется?
222 Тертый
 
15.12.05
17:13
221) Мне тоже понравилась, но у автора она срабатывала через раз, а так - вещь стоящая!
223 Young
 
15.12.05
19:52
(221) Имхо, идея "с нормальным выходом из 1С" нереализуема. Если при закрытии Предприятия диалоговые окна вылазят, что делать будешь? Причём, в общем случае это может быть не просто MsgBox с кнопками ОК+Отмена, а вообще всё, что угодно.
224 a13x
 
16.12.05
08:57
(223) А зачем в этом конкретном случае делать универсальное решение?
Если учесть, что (1) этой фичей будешь пользоваться преимущественно ты, как разработчик, (2) разработка ведется на копии рабочей базы, то не вижу особых проблем и с тем, что 1С-ка будет закрываться жестко, как предлагает автор статьи указанной в (221), да и способ "нормального" закрытия можно будет найти легче.
225 MetaEditor
 
16.12.05
11:03
мне кажется так покомпактней выглядит )
Sub F5()
  Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
  with CreateObject("DynamicWrapper")
    .Register "kernel32.DLL", "GetCurrentProcessId","f=s", "r=l"
      for Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process Where (Name like ""1cv7%"") and (ParentProcessID = " & cStr(.GetCurrentProcessId) & ")")
        if MsgBox("Закрыть 1С:Предприятие?", vbQuestion + vbYesNo) = vbYes Then
          objProc.Terminate
          .Register "kernel32", "Sleep", "I=l", "f=s", "r=l"
          .Sleep 500
          .Register "kernel32", "DeleteFileA", "I=s", "f=s", "r=l"
          .DeleteFileA IBDir & "1SUSERS.DBF"
        end if
      next
  end with
  SendCommand(33876)
End Sub
226 Young
 
16.12.05
11:58
(224) "Нормальное" закрытие - это просто послать соответствующий PostMessage, кстати (что по-моему, большой проблемой не является). Но всё равно, проблемы с вылезающими диалогами до конца не решить, а неуниверсальные решения как-то не греют душу :)
(225) А DBF-базу после такого перезапуска переиндексировать придётся? Теоретически таким срубанием можно вообще сломать что-нибудь. Как-то не очень хорошо...
227 MetaEditor
 
16.12.05
12:08
226)тут я отчасти согласен с (224) - на отладочную базу пофиг... на рабочей лучше не делать(да и то вероятность повреждения мала), вопроса о переиндексации не будет - удаляется 1SUSERS.DBF
228 Тертый
 
16.12.05
12:37
народ, а где ВСХ поновее взять? ссылочку...
229 Тертый
 
16.12.05
13:24
227) все нормально и удобно, но авторизацию каждый раз просит и совет дня показывает все время. Убрать никак?
230 trdm
 
16.12.05
15:48
' Скрипт ExpandForm
' Версия: $Revision: 1.3 $
' Скрипт позволяет посмотреть все контролы формы в развернутом виде.
' Автор trdm 2005.07
Set fso = CreateObject("Scripting.FileSystemObject")
dim objIE
dim HtmlFile
dim HtmlFileName
HtmlFileName = BinDir + "Config\form.htm"
HtmlFile = NULL
Dim dcPropMy
set dcPropMy = CreateObject("Scripting.Dictionary")
dcPropMy.Add cpStrID , "Идентификатор"
dcPropMy.Add cpFormul , "Формула"
dcPropMy.Add cpTitle , "Заголовок"
dcPropMy.Add cpHelpString , "Описание"
dcPropMy.Add cpToolTip , "Подсказка"
dcPropMy.Add cpHotKey , "Хоткей"
dcPropMy.Add cpLayer , "Слой"
dcPropMy.Add cpLinkWith , "Связан с"
dcPropMy.Add cpMetaID , "ID метаданных реквизита"
dcPropMy.Add cpPictMode , "Положение картинки"
dcPropMy.Add cpLeft , "Левая координата"
dcPropMy.Add cpTop , "Правая координата"
dcPropMy.Add cpHeight , "Высота"
dcPropMy.Add cpWidth , "Ширина"
dcPropMy.Add cpFontColor , "Цвет шрифта"
dcPropMy.Add cpFontItalic , "Шрифт наклонный"
dcPropMy.Add cpFontName , "Имя шрифта"
dcPropMy.Add cpFontSize , "Размер шрифта"
dcPropMy.Add cpFontUnderline, "Шрифт подчернутый"
dcPropMy.Add cpFontWeight , "Толщина шрифта"
dcPropMy.Add cpFlags , "Основной набор флагов"
dcPropMy.Add cpFlagsEx , "Дополнительный набор флагов"
private function HtmlFileCreate()
  Set HtmlFile = fso.CreateTextFile(HtmlFileName)
  HtmlFileAddCaption()
end function
private function HtmlFileAddCaption()
  HtmlFile.WriteLine("<HTML>")
  HtmlFile.WriteLine("<HEAD>")
  HtmlFile.WriteLine("<TITLE></TITLE>")
  HtmlFile.WriteLine("<META HTTP-EQUIV=""Content-Type"" content=""text/html; charset=windows-1251"">")
  HtmlFile.WriteLine("</HEAD>")
  HtmlFile.WriteLine("<BODY bgcolor=silver>")
end function
private function HtmlFileAddFutter()
  HtmlFile.WriteLine("</BODY>")
  HtmlFile.WriteLine("</HTML>")
end function
private function GetColorForCtrl( TypeCtrl )
  GetColorForCtrl = "#ffffcc"
  'exit function
  select case (TypeCtrl)
    case "Текст" GetColorForCtrl = "yellowgreen"
    case "Реквизит" GetColorForCtrl = "lightgreen"
    case "ПолеСписок" GetColorForCtrl = "mediumpurple"
    case "Кнопка" GetColorForCtrl = "silver"
    case "ТабличнаяЧасть" GetColorForCtrl = "plum"
    case "Рамка" GetColorForCtrl = "wheat"
    case "Флажок" GetColorForCtrl = "yellow"
    case else GetColorForCtrl = "#f5f5f5"
  End Select
end function
sub ShowExpandForm()
  DocWB = ""
  if not CheckWorkBook(doc) Then Exit sub
  HtmlFile = NULL
  HtmlFileCreate()
  set Form = Windows.ActiveWnd.Document.Page(0)
  Dim TableTop
  Dim TableFut
  
  TableTop = "<table border=0 cellpadding=1 cellspacing=1 cols="""" width="""" height="""" align=""left right"" bgcolor=#000033 bordercolor="""" bordercolorlight=black bordercolordark="""" background="""" title="""">"
  HtmlFile.WriteLine(TableTop)
  strToFile = "<tr bgcolor=#ffcc66 align=center valign=middle>"
  HtmlFile.WriteLine(strToFile)
  
  strToFile = "<td>Тип элемента</td>" + vbCrLf
  HtmlFile.WriteLine(strToFile)
  strToFile = ""
  Arr = dcPropMy.Items
  For i=0 To dcPropMy.Count-1
    if Arr(i) = "Описание" Then
      strToFile = strToFile + "<td>" + Arr(i) + "</td>" + vbCrLf
    Else
      strToFile = strToFile + "<td>" + Arr(i) + "</td>" + vbCrLf
    End IF
  next
  strToFile = strToFile + "</tr>"
  HtmlFile.WriteLine(strToFile)
  
  Keys = dcPropMy.Keys
  for i = 0 to Form.ctrlCount - 1
    strToFile = "<tr>"
    strToFile = " <tr bgcolor= " + GetColorForCtrl(Form.ctrlType(i)) + ">" ' #f5f5f5
    strToFile = strToFile + "<td>" + Form.ctrlType(i) + "</td>"
    For ii=0 To dcPropMy.Count-1
      on error resume next
      str = CStr(Form.ctrlProp(i,Keys(ii)))
      if err.number<>0 then str = "&nbsp;"
      on error goto 0
      if len(str) = 0 Then str = "&nbsp;"
      if cpHelpString = Keys(ii) Then
        strToFile = strToFile + "<td><NoBR>" + Trim(str) + "</NoBR></td>" + vbCrLf
      else
        strToFile = strToFile + "<td><NoBR>" + str + "</NoBR></td>" + vbCrLf
      End If
    next
    strToFile = strToFile + "</tr>"
    HtmlFile.WriteLine(strToFile)
  Next
  TableFut = "</table>"
  HtmlFile.WriteLine(TableFut)
  HtmlFileAddFutter()
  HtmlFile.Close
  set objIE = CreateObject("InternetExplorer.Application")
  objIE.Navigate("about:blank")
  While objIE.Busy=-1
  Wend
  Set f = fso.OpenTextFile(HtmlFileName,1)
  tText = f.ReadAll
  objIE.Document.Write(tText)
  objIE.Visible = 1
End Sub
'=============================================================================================
' Проверяет активное окно на принадлежность к WorkBook и возвращает
' Windows.ActiveWnd.Document.Page(0)
Function CheckWorkBook(doc)
  CheckWorkBook = False
  If Windows.ActiveWnd Is Nothing Then
     Exit Function
  End If
  Set doc = Windows.ActiveWnd.Document
  If doc<>docWorkBook Then Exit Function
  Set doc=doc.Page(0)
  CheckWorkBook = True
End Function
231 Young
 
16.12.05
16:55
(230) Очуметь :))
На общих таблицах падает. Имей в виду, WorkBook может не содержать вкладку "Диалог", а может не содержать ни одной вкладки вообще (это надо обязательно проверять).
И вопросец: а зачем это, собсно? :)
232 Young
 
16.12.05
16:59
+(231) И ещё: в HTML было бы неплохо фиксацию строк/столбцов (наверное, фреймами).
А вообще, прикольно получилось :)
233 a13x
 
16.12.05
17:13
(229) Полагаю, замена
SendCommand(33876)
на
Scripts("Разбор командной строки Конфигуратора").RunInExclusiveMode()
спасет по крайней мере от необходимости авторизации.
.
trdm, при все уваженнии... Может не будем листинги больше десятка строк в сюда кидать, может лучше на webfile ложить и ссылку здесь размещать?
Просто у меня хоть и не дайлап и руководство за трафик пока не ругают, но смотрят косо...
234 MetaEditor
 
16.12.05
18:13
229) какая такая авторизация... ничего не вылазиет
SendCommand(33876) - это же тоже самое что и F11 нажать... :-/
233) при всём уважении, 4_965 bytes это не повод.................... :)
235 a13x
 
16.12.05
18:20
(234) Как хотите.
236 Young
 
16.12.05
18:34
(234) Авторизация вылезает, если F11 нажимается в "свежеподнятой" базе, в которой есть непустой users.usr.
237 trdm
 
17.12.05
04:21
(231) Иногда на форме котролов куча. Не охота прыгать по всем и смотреть формулы.
(233) Вообщето меня самого такие вещи малость раздражают. Договорились.
238 Тертый
 
18.12.05
00:15
Не помню уже, кто автор замечательной утилиты OpenIn1C, обращаюсь к нему: а нельзя сделать разные иконки для ert и mxl? А то все серенькие, тока по расширению различимы.
239 artbear
 
18.12.05
13:42
Слегка попутал и завел новую ветку :(
http://www.kuban.ru/forum_new/forum9/files/252406.html
ЗЫ забыл, что ветки на Т1С заканчиваются на 250, подумал, что на 240 ;-)
240 Железяка
 
18.12.05
13:44
<><>Џ™Ћ“Ћ’Ћ?Џ?ЩђЫ“Ш”Ы‘Ш”Ы“ЫВЋЗЅЎЯ