Вход | Регистрация

  1  2   

Форумы на Кубань.Ру


1С:Предприятие ::

Метки:

Телепат 2 (пререлиз) и Опенконф (продолжим 9?)

Ø
Я
   artbear
10.11.04 - 13:39
Итак, начнем 10 ветку о Телепате и Опенконфе - программирование для Конфигуратора, облегчение работы разработчиков 1С!
Теперь уже точно свыше 2500 постов :) (в предыдущей ветке был неверный подсчет)
Для тех, кто только что присоединился.
---------------------------------------------------------
Автор всего этого набора чудес - Александр Орефков
---------------------------------------------------------
Сабж + скрипты для Опенконф (сайт автора)
http://openconf.itland.ru/beta
FAQ
http://1c.alterplast.ru/faq/telepat.html
http://1c.alterplast.ru/faq/openconf.html
Другие плагины/скрипты для Опенконфа можно взять (а также самому положить !!) в Клубе Профессионалов
http://1c.proclub.ru/modules/mydownloads/viewcat.php?op=&cid=1002
Предыдущие ветки о Телепате/Опенконфе можно взять на страничке
http://1c.alterplast.ru/faq/telepat.html
На итланде.ру есть специальный форум для обсуждения именно Опенконфа и его плагинов (в т.ч. и Телепата)
http://itland.ru/forum/index.php?showforum=37
Если у кого есть что-то интересное для Опенконфа - плагины, скрипты, присылайте мне, я размещу на http://openconf.itland.ru
Или, что еще лучше, сами выкладывайте свои творения в Клуб Профессионалов в раздел Опенконф
http://1c.proclub.ru/modules/mydownloads/submit.php
так будет наиболее удобно для всех :)
-----------------------------------
Качать и пользовать всем, кто хочет реально облегчить и обустроить свою работу в Конфигураторе :)
 
  Рекламное место пустует
   artbear
1 - 10.11.04 - 13:41
В продолжение предыдущей ветки:
(I love 1C) И что написано в этом скрипте (Переходы по модулю.вбс) в строке 37 ?
   Тертый
2 - 10.11.04 - 13:47
Данила хМастер, про скрипт FildHint
Все по инструкции. Юзаю:
Спр=СоздатьОбъект("Справочник.Номенклатура");
Наименование=Спр...тут жму хоткей, предлагает перечень справочников, потом элементов. "Наименования" нет в перечне элементов. Что-то не так делаю? Раз 5 попробовал.
   fez
3 - 10.11.04 - 13:53
Предыдущая ветка о телепате сохранена на http://1c.alterplast.ru/faq/telepat.html
Сама ветка: http://1c.alterplast.ru/faq/tlpt_t1c_9.html
   slavka
4 - 10.11.04 - 14:09
(1) артур, ты чего из аськи пропал?
   Oblomov
5 - 10.11.04 - 14:13
Почему не выходит релиз? Вроде основные баги пофиксены, ну и чудненько. А то так можно до бесконечности бетту вылизывать. А новый функционал, можно и в новые релизы добавлять. имхо.
   I love 1C
6 - 10.11.04 - 14:34
1. Sub Init(param)
  Set CommonScripts = Scripts("common")
End Sub
   Kraft
7 - 10.11.04 - 14:37
А как повесить хоткей не на комбинацию Alt+что-то а просто на что-то?
Чтобы было как в дельфях - нажал на точку и получил все методы. Не на Alt+., а просто на .
   orefkov
8 - 10.11.04 - 15:19
(5)
Релиз будет когда хотябы вчерне сделаю работу после точки.
(7)
А ты повесь на Ctrl+Точка, потом зайди в реестр в
HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\OpenConf\HotKeys,
найди папочку с максимальным номером, и измени параметр code,
так, что бы оканчивалось на 0000. Там структура такая:
два байта virtual key code, и 2 байта - модификаторы.
Если не ошибаюсь, должно получится 0xbf0000
   MetaEditor
9 - 10.11.04 - 17:46
6) а если
Set CommonScripts = Scripts(CStr("common"))
   artbear
10 - 10.11.04 - 18:06
(9) Нет, будет тоже самое.
ИМХО Причин может быть две (сталкивался сам):
1) скрипт коммон.вбс не загрузился по какой-то причине
2) не выходя из Конфигуратора в скрипт коммон.вбс были внесены изменения, он был перезагружен, а скрипт "Переходы по модулю" не перезагружался.
3) если п.1, то возможно в скрипт коммон.вбс были внесены неверные изменения с точки зрения синтаксиса, и скрипт не загрузился.
МОжно попробовать его перезагрузить вручную, посмотреть, что напишет Конфигуратор, затем перезагрузить скрипт "Переходы по модулю" и посмотреть, что получится.
 
  Рекламное место пустует
   oldhunter
11 - 10.11.04 - 22:00
Хочу выразить огромную благодарность автору сего творения.
   GrayT
12 - 10.11.04 - 22:26
Пара вопросов:
1. Тут навеяли - можно ли при помощи OpenConf извернуться и поработать с прямоугольными блоками?
2. Так и не нашелся способ открывать редактор самого объекта, а не его модули и диалоги?
   orefkov
13 - 11.11.04 - 00:07
(12)
1. Нет
2. Пока нет
   MetaEditor
14 - 11.11.04 - 04:34
10) в общем выяснилось, что common.vbs должен стоять первым в дереве скриптов в конфигураторе (или перед скриптами его использующими) для чего удалил все скрипты и по очереди открывал конфигуратор сначала с коммон.вбс потом с "перходыПоМодулю" а потом остальными...
так заработало...
   artbear
15 - 11.11.04 - 06:22
(14) Понятное дело, что коммон.вбс должен загружаться первым.
Непонятно, почему так не происходило. Видимо, дело в том, что порядок загрузки скриптов не определен, и похоже, что не по алфавиту, скорее всего, в порядке создания файлов в папке.
   a13x
16 - 11.11.04 - 08:26
(14),(15) совсем недавно же обсуждали, что скрипты-библиотеки можно подгружать явно из других скриптов, проверив предварительно, не загружен ли он... теперь все работает красиво, пример такого подхода можно посмотреть здесь
http://kuntashov.narod.ru/files/TestDependensies.zip
из хистори ОпенКонф'a:
-----------------------------------------------
[...sk...]
* При первоначальной загрузке скриптов пропускаются скрипты, уже загруженные програмно
[...sk...]
-----------------------------------------------
   IAm
17 - 11.11.04 - 08:55
12 Почему нельзя? Первым макросом метишь левый верхний угол блока каким-нибудь знаком и правый нижний, вторым - делаешь с этой областью что хочешь.
   GrayT
18 - 11.11.04 - 08:59
(17)извиняюсь за наглость. Подскажите любой скрипт, где в качестве примера можно было бы посмотреть как работать с текстом. Что б не сильно навороченный был
   slavka
19 - 11.11.04 - 09:08
(ALL) потесьтите плиз. не могу понять где собака порылась. на маленьких конфигах работает, а на больших вылетает:
Sub hh
    Set AllObjects = Documents.EnumAllTypedObj()
    ' Перебираем группы объектов первого уровня
    For i = 0 To AllObjects.ChildsCount("") - 1
        Name = AllObjects.ChildName("", i) 'тип объекта
        'Перебираем объекты и количество форм(модулей) у каждого
        cc = AllObjects.ChildsCount(Name) - 1
    If cc < 0 Then
      Message Name,mNone
    Else
        For j=0 To cc-1
    Parent = Name&"."&AllObjects.ChildName(Name, j)
      kl = AllObjects.ChildsCount(Parent) - 1
      if kl = 0 Then
        Message Parent, mNone
      Else
      For k = 0 To kl
                Name3 = Parent&"."&AllObjects.ChildName(Parent, k)
                kl2 = AllObjects.ChildsCount(Name3)-1
                If kl2 >= 0 Then
                    for l = 0 To kl2
      Name4 = Name3&"."&  AllObjects.ChildName(Name3, l)
      Message Name4, mNone
    'ЕСЛИ СЛЕДУЮЩУЮ СТРОЧКУ РАСКОММЕНТИРОВАТЬ ТО ВЫЛЕТАЕТ
                        'Set doc = Documents(Name4)
                    Next
                Else
                    Set doc = Documents(Name3)'.text
                    if doc.type=1 then 'форма
                        AllLines = doc.page(1).text
                        k_str = doc.page(1).LineCount
                    elseif doc.type=2 then 'модуль
                        AllLines = doc.text
                        k_str = doc.LineCount
                    end if
                    modul = split(AllLines, vbCrLf)
                    Message Name3&" - "&k_str, mbNone
                    'Message Name3, mbNone
        End If
      Next
      Set doc = Nothing
      End If
    Next
    End If	
    Next
End sub
   slavka
20 - 11.11.04 - 09:10
(18) посмотри например скрипт "форматировать знаки =.vbs"
   IAm
21 - 11.11.04 - 09:19
Обновил
Intellisence for openconf
http://1c.proclub.ru/modules/mydownloads/personal.php?lid=4229&cid=1001
18 На проклабе в разделе опенконф Artbear выкладывал скрипты которыми он пользуется, там есть ерия скриптов Конструктор ... vbs
они все очень простые.
   artbear
22 - 11.11.04 - 09:45
(18) Или можешь посмотреть мой скрипт "Замена кода" в клубе Профессионалов, вот он ну очень простой :)
   Phoenix
23 - 11.11.04 - 09:46
(8) Саш, как там с моим вопросом по oc2vba?
   artbear
24 - 11.11.04 - 09:49
(16) Для подобных исправлений надо ведь код переделывать во всех скриптах, где есть использование коммон.вбс, а лично у меня пока времени нету. В следующем релизе своего набора исправлю.
И в принципе даже без программной загрузки все отлично работает.
А у чела, видимо, Вин98, потому и какие-то глюки :(
   artbear
25 - 11.11.04 - 10:51
Времени выложить нету, поэтому пока сюда.
Вот код моего варианта макроса "копировать строку",
работает именно для строк, положение курсора неважно, может быть выделено несколько строк или ничего не выделено, выделение может быть неполным (т.е. не вся строка), после дублирования строки в новой строке курсор встает в ту же колонку, в которой стоял до запуска макроса
ЗЫ используется скрипт коммон.вбс
Sub CopyLine()
    Set doc = CommonScripts.GetTextDoc(0)
    If doc Is Nothing Then Exit Sub
    Line1 = doc.SelStartLine
    Line2 = doc.SelStartLine
    Col1 = 0
    Col2 = doc.LineLen(doc.SelStartLine)
    ColOfCursor = doc.SelStartCol
  
    If (doc.SelStartLine <> doc.SelEndLine) Then ' есть выделение на нескольких строках
        If (doc.SelStartCol = 0) And (doc.SelEndCol = 0) Then ' выделено ровно одна или несколько строк
            Line2 = doc.SelEndLine - 1
            Col2 = doc.LineLen(doc.SelEndLine - 1)
        Else
            Line2 = doc.SelEndLine
            Col2 = doc.LineLen(doc.SelEndLine)
        End If
    End If
    CurrentText = doc.Range(Line1, Col1, Line2, Col2)
    sArray = Split(CurrentText, vbCrLf)
  CurrentText = ""
    For Each s In sArray
        CurrentText = CurrentText & s & vbCrLf
    Next
    For Each s In sArray
        CurrentText = CurrentText & s & vbCrLf
    Next
    doc.Range(Line1, Col1, Line2, doc.LineLen(Line2)) = CurrentText
    ' верну курсор в ту же позицию с учетом добавленных строк
    iNewLine = Line1 + UBound(sArray) + 1
    doc.MoveCaret iNewLine, ColOfCursor, iNewLine, ColOfCursor
End Sub ' CopyLine
   artbear
26 - 11.11.04 - 10:53
(+25) Можно просто добавить этот код в мой скрипт "Замена кода" и он сразу же заработает.
   Номер 6
27 - 11.11.04 - 11:07
(25)
А вот так проще:
function CopyString()
{
  var
    d = getActiveTextDoc()
  ;
  
  if (d == null) return;
  
  if (d.SelStartLine == d.SelEndLine) {
    d.Range(d.SelStartLine) += '\r\n' + d.Range(d.SelStartLine);
  }
  else {
    d.Range(d.SelStartLine, 0, d.SelEndLine + 1, 0) +=
      d.Range(d.SelStartLine, 0, d.SelEndLine + 1, 0);
  }
}
   Тертый
28 - 11.11.04 - 11:19
21) А так и должно быть: в начале пустой строки жму хоткей, потом Esc
//============================================================
Процедура ()
  
КонецПроцедуры
я же вроде отменил действие... баг или фича?
   IAm
29 - 11.11.04 - 11:29
28 Баг, фенькс
   artbear
30 - 11.11.04 - 11:34
(27) Да, проще. Еще бы курсор передвинулся в новую строку :)
   Тертый
31 - 11.11.04 - 11:34
29) Да не за что, ишшо найдем... :-)
   orefkov
32 - 11.11.04 - 11:47
(19) К сожалению, пока не знаю, как это побороть.
Ресурсы, выделяемые 1С под данные, полученные по
Documents(Name) не высвобождаются, пока не будет
открыто и закрыто окно, связанное с полученным
документом. Соответственно, при большом количестве
таких документов, 1С валится.
(All)
Что возвращает метод Регистр::ВыбратьДвижения(НачДата,КонДата) ?
В документации ничего не написано, однако проверил, это не процедура.
Какие бы даты не ставил, всегда возвращает 1.
   artbear
33 - 11.11.04 - 11:48
(27) Большое спасибо, код выглядит намного симпатичнее :))
С учетом (27) код "Копировать строку" (на ВБСкрипт)
работает именно для строк, положение курсора неважно, может быть выделено несколько строк или ничего не выделено, выделение может быть неполным (т.е. не вся строка), после дублирования строки в новой строке курсор встает в ту же колонку, в которой стоял до запуска макроса
ЗЫ используется скрипт коммон.вбс
Sub CopyLine()
    Set doc = CommonScripts.GetTextDoc(0)
    If doc Is Nothing Then Exit Sub
    
  if (doc.SelStartLine = doc.SelEndLine) then
  doc.Range(doc.SelStartLine) = doc.Range(doc.SelStartLine) & vbCrLf & doc.Range(doc.SelStartLine)
  else
    doc.Range(doc.SelStartLine, 0, doc.SelEndLine + 1, 0) = doc.Range(doc.SelStartLine, 0, doc.SelEndLine + 1, 0) & doc.Range(doc.SelStartLine, 0, doc.SelEndLine + 1, 0)
  end if
    ' верну курсор в ту же позицию на новой строке с учетом добавленных строк
    doc.MoveCaret doc.SelEndLine + 1, doc.SelStartCol, doc.SelEndLine + 1, doc.SelStartCol
End Sub ' CopyLine
 
  Рекламное место пустует
   artbear
34 - 11.11.04 - 11:50
(32) Ага, я также на днях нарвался на такое поведение. Помогает только анализ ПолучитьДвижение :(
   orefkov
35 - 11.11.04 - 11:56
(23) Если честно, пока не смотрел.
Занят на основной работе.
Но проверю обязательно.
   slavka
36 - 11.11.04 - 13:28
(32) т.е. допустим я перебрал сотню объектов, а затем открою и закрою окно последнего объекта то память высвободится?
   slavka
37 - 11.11.04 - 13:35
+36 или надо открывать каждый объект чтобы память высвободить?
   IAm
38 - 11.11.04 - 14:55
есть строка "Справочник.Договоры.Форма"
Как прочитать а потом записать стрим диалога?
   Бертыш
39 - 11.11.04 - 15:01
(orefkov)Было бы не плохо если бы имелся файл синтаксис-помошника с описанием объектной модели OpenConfig. Удобнее было бы править скрипты в 1С :)
   IAm
40 - 11.11.04 - 15:16
+38
можно
ObjName = "Справочник.Договоры.Форма.Диалог"
Stream = Documents.Item(ObjName).Stream
=================================
Но это можно из скрипта, из плагина нельзя, Vb Не компилит, говоря что не найден метод Stream
39 В любом ObjectBrowser-е
   ob36
41 - 11.11.04 - 15:19
Я полный ламер в плане написания скриптов под Openconf, поэтому обращаюсь к Великим: не могли бы Вы реализовать алгоритм (скрипт) очистки текста 1cv7-кода от комментариев, а то при разработке достаточно больших модулей имею нехорошую привычку оставлять кучу комментариев для использования их при отладке, а также в случаях коллективной правки. На этапе, когда все заработало, куча времени тратится на то, чтобы поудалять все то, что "подсвечено зеленым цветом", однако, и это понятно, комментируются не всегда строки целиком, но зачастую и их "хвосты", что необходимо учесть... Если Вам это не очень сложно, то плз...
   orefkov
42 - 11.11.04 - 15:28
(37) Да
(38) Documents("Справочник.Договоры.Форма.Диалог").Stream
Но также см. 32. ТЕ желательно ограничиваться диалогом
текущей формы. Я стараюсь это исправить. Может получится.
(39)
Описание я пока даже в текстовом виде не успеваю сделать :(
   IAm
43 - 11.11.04 - 15:31
42 Саш, 40 читал?
"Но это можно из скрипта, из плагина нельзя, Vb Не компилит, говоря что не найден метод Stream"
   orefkov
44 - 11.11.04 - 15:34
(40)
В VB надо так:
Dim dialog as DialogDoc
Set doc=Documents("Справочник.Договоры.Форма.Диалог")
Set dialog=doc
text=doc.Stream
   slavka
45 - 11.11.04 - 15:35
(39)в VBA офисном можно посмотреть описание объектной модели. вытащи и сделай алс-ник.
(42) спасибо. будем експерементировать. а можно ли открыть форму дока и сделать ее невидимой?
   orefkov
46 - 11.11.04 - 15:37
(45)
Что сделать то хочешь?
Может подскажу, как лучше сделать?
   IAm
47 - 11.11.04 - 15:37
44 фнкс
   artbear
48 - 11.11.04 - 15:53
(44) Ага, я также делал в своем плагине "История"
(47) Правда, давно это было + первый опыт (и похоже, последний) на ВБ, потому и не помнил :(
   slavka
49 - 11.11.04 - 15:54
делаю скрипт для поиска ссылок на объект по такой схеме: узнаю какое выражение находится у меня под курсором (напр. "Справочник.Контрагенты"), затем
   Set doc = Documents("Справочник.Контрагенты")
   TestRefers(doc)
потом перебираю модули и ищу в них искомое выражение.
 
 
   orefkov
50 - 11.11.04 - 16:57
(49)
А TestRefers зачем?
.
Пользуясь случаем, хочу анонсировать еще одну
свою ВК для 1С-Предприятия, TurboRights.
ВК будет позволять:
1. "на лету" править права пользователей, не трогая мдшник.
2. Задавать более гибкое управление правами, подобно
юзерам в домене, те. приписывать юзера к нескольким
группам пользователей, управлять не только "Разрешить",
но и "Запретить" тп.
Расширение набора встроенных в 1С прав не планируется.
Ориентировочный срок выхода - месяц. (тк это не приоритетная задача)
Хочется услышать мнения, а надо ли это?
   slavka
51 - 11.11.04 - 17:09
(50) это чтобы не пользоваться 1С-ким поиском, чтобы одним макросом искать везде.
если еще и пароль можно будет менять то ДА!!!!
   slavka
52 - 11.11.04 - 17:12
+ распечатать содержимое набора прав
   KRIHA
53 - 11.11.04 - 17:40
(50)
1. "на лету" править права пользователей, не трогая мдшник. - конечно надо
2. ... - скорей всего надо
"Расширение набора встроенных в 1С прав не планируется." - жаль :-)
   GrayT
54 - 11.11.04 - 21:29
(50)Гуд. Надо. В условиях постоянно развивающихся конфигураций постоянно наталкиваюсь на то что "надо бы права поменять"
   trdm
55 - 12.11.04 - 10:26
Скриптовая функция, позволяющая немного подругому выбрать имя константы,
вобщем не так как в шаблонах "Константа.<?Константа>"
Function GetConstantEx()
  Dim TypeConstArr
  GetConstantEx = ""
  TypeConstStr = ""
  tree = ""
  Set Childs = MetaData.TaskDef.Childs(CStr("Константа"))
  For i = 0 To Childs.Count - 1			
    Set mdo = Childs(i)
    if Len(TypeConstStr) = 0 Then
      TypeConstStr = mdo.Type.FullName & "##"
    elseIf InStr(1,TypeConstStr,mdo.Type.FullName&"##")=0 Then
      TypeConstStr = TypeConstStr & mdo.Type.FullName & "##"				
    End if
  next
  TypeConstArr = split(TypeConstStr,"##")
  if UBound(TypeConstArr)<>-1 Then
    For i = 0 To UBound(TypeConstArr)-1
      tree = tree & TypeConstArr(i)& vbCrLf
      For tt = 0 To Childs.Count - 1					
        Set mdo = Childs(tt)
        if (mdo.Type.FullName = TypeConstArr(i)) Then
          tree = tree & vbTab & mdo.Name& vbCrLf
        End if
      next
    next
  End if
  Set srv=CreateObject("Svcsvc.Service")
  Cmd = srv.SelectInTree(tree,"Открыть....",false)
  ln = Len(Cmd)
  If Ln = 0 Then
    Exit Function
  else
    rrrr = split(Cmd,"\")
    if UBound(rrrr)<> -1 Then
      GetConstantEx = rrrr(UBound(rrrr))
    End if
  End if
End Function
   trdm
56 - 12.11.04 - 10:35
попробуйте, понравится :)
   artbear
57 - 12.11.04 - 11:10
(56) А мне больше всего нравятся варианты через FilterValue (как МетодыМодуля) с фильтрацией содержимого, ИМХО наиболее быстро и удобно.
   Тертый
58 - 12.11.04 - 11:32
50) Конечно, надо! Я недавно начал TurboMD пользоваться, а это отличное дополнение. А то подходит какой-нить начальник: "Надо тому-то запретить то-то..." В ответ: или всех выгоняем, или жди до вечера. А вечером после всех тоже неохота оставаться!
   Тертый
59 - 12.11.04 - 11:41
Попробовал, создал скрипт, туда запихнул 55), повесил на хоткей, вызвал, красиво, но надо пользоваться мышью. Щелкнул мышкой по выбранному, нажал ОК - ни фига не произошло. Я что-то не понял?
   Oblomov
60 - 12.11.04 - 11:47
По Intellisence.vbs замечания. (Версия 1.0.8)
1. Нельзя ли в выпадающем списке макроса использовать тот же шрифт, что использует телепат?
2. В описании обработки попытался поставить точку, получил ошибку выполнения макроса. Как то неаккуратьненько, доктор.
   IAm
61 - 12.11.04 - 12:00
60 Что такое описание обработки? какую ошибку Вы получили?
   trdm
62 - 12.11.04 - 12:05
(57) на вкус и цвет :)
(59) это всего лишь примочка, для вставки в текст нужно использовать нечто на подобие:
*******************************
textTo = GetConstantEx()
Pos = len(textTo)
doc.range(doc.SelStartLine,doc.SelStartCol, doc.SelStartLine,doc.SelStartCol) = textTo
doc.MoveCaret doc.SelStartLine, doc.SelStartCol+Pos-1
****************************
с проверкой того, что doc - активное окно типа docText
Обнови с проклуба "Эмулятор работы с точкой", там эта беда вызывается таким образом "константа[.|](положение курсора)".
Однако если у тебя в стандартных шаблонах есть такой "константа." его следует переименовать, если хочешь использовать.
   IAm
63 - 12.11.04 - 12:05
"данная операция допустима только при открытом документе?"
никогда ничего не писал на закладке описания, буду разбираться
   Oblomov
64 - 12.11.04 - 12:21
2(61) Intellisence вызывается по "."
Вкладка "Описание" во внешней обработке, отчете. Такая же ошибка возникает, если в обычном тексте (меню файл->новый->текст)попытаться поставить точку.
Ошибка выполнения скрипта.
Скрипт Intellisence
Файл ... Intellisence.vbs
Строка: 1074
Позиция: 1
Код: 0
иточник Ошибка выполнения Microsoft VVBScript
Описание Индекс выходит за пределы допустимого диапазона 'doc.SelStartLine'
   artbear
65 - 12.11.04 - 12:51
Кто-нибудь делал скрипт по перезагрузке Конфигуратора?
Например, чтобы загрузить хоткеи или еще для чего-нибудь такой скрипт может пригодиться.
   orefkov
66 - 12.11.04 - 13:09
2IAm: По поводу работы в описаниях.
Получение текущего окна измени:
вместо
Set doc=doc.Page(1)
сделай
Set doc=doc.Page(doc.ActivePage)
   a13x
67 - 12.11.04 - 13:10
(65) "перезагрузка конфигуратора" - это как?
перезагрузка всех скриптов опенконфа и бла-бла-бла или полный перезапуск конфигуратора или еще что-то?
   artbear
68 - 12.11.04 - 13:21
(67) Именно полный перезапуск Конфигуратора.
   trdm
69 - 12.11.04 - 14:45
(All) А подскажите как получить для данного документа например ThisDoc список документов на основании которых он вводится? где сия премудрость сидит?
   Matiс
70 - 12.11.04 - 15:11
ВОТ ТАКАЯ ПРОБЛЕМА. Помогите.
Написал скриптик из хелпа
Function ShowFileAccessInfo(filespec)
  Dim fso, f, s
msgbox 2
  Set fso = CreateObject("Scripting.FileSystemObject")
msgbox 3
  Set f = fso.GetFile(filespec)
msgbox 4
  s = f.Path & "<br>"
  s = s & "Created: " & f.DateCreated & "<br>"
  s = s & "Last Accessed: " & f.DateLastAccessed & "<br>"
  s = s & "Last Modified: " & f.DateLastModified
  ShowFileAccessInfo = s
End Function
msgbox 1
FileName = "D:\1.txt"
msgbox ShowFileAccessInfo(filename)
Соответственно создал файл "D:\1.txt"
Запустил. Выдает 1,2,3 и ... все.
 В дебагере fso.FileExists(filename) выдает True , а на GetFile ругается.
 Может надо переустановить VB? Если да, то откуда.
   IAm
71 - 12.11.04 - 15:12
64, 65 спасибо, поправлю
   orefkov
72 - 12.11.04 - 15:14
Sub GetOsn()
    Set mdDoc = MetaData.FindObject(ThisDoc.ID)
    docName = mdDoc.Name
    Set alldocs = MetaData.TaskDef.Childs("Документ")
    For i = 0 To alldocs.Count - 1
        Set mdDoc = alldocs(i)
        osn = mdDoc.Props("ВводимыеНаОснованииДокументы")
        If InStr(osn, docName) > 0 Then Message mdDoc.Name
    Next
End Sub
   artbear
73 - 12.11.04 - 15:36
(ALL) Пара макросов для комментирования/разкомментирования текста
в отличие от типового способоа ставит комментарий,
даже если ничего не выделено или выделен текст на одной строке
Удобно посадить вместо типового CTRL + / и CTRL + Shift + /
ЗЫ Используют коммон.вбс из моего набора.
Текст скрипта:
' комментировать текст
' в отличие от типового ставит комментарий,
' даже если ничего не выделено или выделен текст на одной строке
'
Sub CommentSelection()
  set doc = CommonScripts.GetTextDocIfOpened(0)
  if doc is Nothing then Exit Sub
    
  ' если ничего не выделено или выделен текст на одной строке
  if (doc.SelStartLine = doc.SelEndLine) then
    doc.Range(doc.SelStartLine) = "//" & doc.Range(doc.SelStartLine)
      doc.MoveCaret doc.SelStartLine, doc.SelStartCol +2, doc.SelStartLine, doc.SelEndCol+2
  else
  		doc.CommentSel()
  	end if
End Sub
Sub UnCommentSelection()
  set doc = CommonScripts.GetTextDocIfOpened(0)
  if doc is Nothing then Exit Sub
  
  ' если ничего не выделено или выделен текст на одной строке
  if (doc.SelStartLine = doc.SelEndLine) then
    sText = doc.Range(doc.SelStartLine)
    pos = InStr(sText, "//")
    if pos <> 0 then
      doc.Range(doc.SelStartLine) = Left(sText, pos-1) & Mid(sText, pos+2)
    end if
      doc.MoveCaret doc.SelStartLine, doc.SelStartCol-2, doc.SelStartLine, doc.SelEndCol-2
  else
    doc.UnCommentSel()
  	end if
End Sub
   Matiс
74 - 12.11.04 - 15:44
+(70) ЧТО ДЕЛАТЬ? ПОМОГИТЕ.
FSO.FileExists(FileName) = True
FSO.GetFile(FileName)....... при расчете вылетает
Проверил на трех разных машинах.
   slavka
75 - 12.11.04 - 15:54
(72) насчет 19 ничего не посоветуешь?
   IAm
76 - 12.11.04 - 16:01
74 Отправил по почте возможное решение
   trdm
77 - 12.11.04 - 16:23
(74) попробуй закоментировать строку "Dim fso, f, s"
(72) спасибо, сделал приблизительно тоже самое :)
+ На счет вылетов (предыдущая ветка) на следующий день все заработало и работает (... по дереву).
   Тертый
78 - 12.11.04 - 16:27
72) Артур, вылетает макрос в 100% случаев.
"Не удалось выполнить макрос "UnCommentSelection"."
   Matiс
79 - 12.11.04 - 16:31
(77) Не помогло. Текст функции взят из хелпа по GetFile(), за исключением msgbox i :)
(76) пока ничего нет :( Ждем
   Matiс
80 - 12.11.04 - 16:33
(76) Если что, мой адрес veld21(Гав)pochta.ru
   artbear
81 - 12.11.04 - 16:37
А текст какой пытаешься раскомментировать?
А КомментСелекшен работает?
И как этот макрос запускаешь? через Цтрл + М или еще как?
   trdm
82 - 12.11.04 - 16:37
(79) попробовал у себя твой скрипт - работает, видимо я что-то не то делаю :)
   a13x
83 - 12.11.04 - 16:41
(80) если это может помочь...
у меня ваш скрипт работает норамльно без всяких преобразований - банальный копипейст....
за исключением того, что поскольку в корень диска мне сохранять нельзя, я поменял путь на "D:\share\1.txt"
...
   IAm
84 - 12.11.04 - 16:42
80 Туда и послал, отпишись мне ещё раз - отвечу
   orefkov
85 - 12.11.04 - 16:56
http://openconf.itland.ru/beta
Телепат 2.0.0.0o
* Добавлены описания методов всех объектов, кроме БИ
* Расширена обработка строк в кавычках
    Снято ограничение на 2 "точки" в строке
    Добавлены ключевые слова языка запросов
* В списке выбора Ctrl+Left/Right направляются в текстовый редактор
* Список выбора сделан "бесконечным", то есть Up/Down вверху/внизу
   списка перемещают текущий выбор вниз/вверх
* Исправлена ошибка при Ctrl+Enter при открытом списке выбора
* Исправлена ошибка при обработке команды меню шаблонов
* В диалоге "Методы модуля" сделана возможность быстрого переключения
    настроек "Сортировать" (Ctrl+S) и "Фильтровать" (Ctrl+F)
* Диалог методы модуля: при фильтрации методов не устанавливался
    выделенный метод
   trdm
86 - 12.11.04 - 17:37
(85) ООО супер!
теперь о наболевшем выслал письмо на tornado.msx, глянь пожалуйста.
   корум
87 - 12.11.04 - 18:57
(85) в новой версии попали автозавершения ключевых слов / предопределённых процедур в русском варианте.
Верни, пожалуйста Если_КонецЕсли и им подобные...
   Номер 6
88 - 13.11.04 - 09:50
(87)
У меня остались на месте.
   Номер 6
89 - 13.11.04 - 09:53
А как перехватить вставку блоков типа "Если_КонецЕсли"?
   trdm
90 - 13.11.04 - 12:19
(89)
Sub Telepat_OnInsert(InsertType, InsertName, Text)
    Select Case InsertType
        Case 14 ' <<<<<<<<<<<< Предопределенные блоки
End Sub
   Номер 6
91 - 13.11.04 - 13:10
(90)
Точно. Спасибо!
   trdm
92 - 13.11.04 - 14:36
Кто-нибудь делал скриптик или отчетик или обработочку показывающую дерево ввода на основании для документов?
   artbear
93 - 13.11.04 - 15:11
Обновление скрипта "Замена кода" на проклабе
Также в набор поместил общий скрипт коммон.вбс
История:
* Замена кода.vbs 1.2:
[+] макрос "Копировать строку (или несколько выделенных строк";
[+] макрос "обменять местами левую и правую часть присвоения (=) с сохранением возможных комментариев";
[-] работает только с активным окном текстового модуля;
* common.vbs 1.6:
[+] новый метод " FormatDate" для расширенного форматирования даты (ADirks);
[+] новый метод "TogglePanel" переключает видимость различных панелей (Orefkov);
[*] RunCommandAndWait: выдача сообщения об ошибке в случае неудачи запуска приложения из командной строки.
[-] при выборе файла используется переданный фильтр файлов;
Брать здесь - http://1c.proclub.ru/modules/mydownloads/singlefile.php?cid=1001&lid=4200
   artbear
94 - 14.11.04 - 09:40
(ALL) Есть ли в природе какая-нибудь прога по работе с файлом данных о пользователях (users.usr)?
Чтобы работала или через командную строку, или как КОМ-объект для возможного использования в Конфигураторе!
Видел Userdef.dll - но эта ВК работает только в среде 1С-Предприятия, к сожалению.
   trdm
95 - 14.11.04 - 14:34
(All) А есть ли в природе внешняя компонента которая может предоставить 1С-у мощь регулярных выражений?
   a13x
96 - 14.11.04 - 16:37
2(95) а так не устроит?
--------------------------------------------
Функция ЭтоЦелоеЧисло(Стр)
                           
  re = СоздатьОбъект("VBScript.RegExp");
  re.Pattern = "^\d+$";     	
  Возврат ?(re.Test(Стр)=0, 0, 1);
КонецФункции
Процедура Сформировать()
  Стр = "1111";
  Если ЭтоЦелоеЧисло(Стр)=1 Тогда
    Сообщить("Это целое число!");
  Иначе
    Сообщить("Это не целое число!");
  КонецЕсли;
КонецПроцедуры
-------------------------------------------------------
если таких регекспов не хватает, можно поискать в инете по фразе PerlCtrl+regexp.dll
   Синхронизатор
97 - 14.11.04 - 18:12
(93): Артур, а нафига "форматирование", если не секрет?..
Просто... Ну, вот, к примеру, если в файл шаблонов 1С добавить:
{"Формат(...)","4","фрмт","Формат(<?""Чего форматнём?"">,""<?"""",Формат>"")","0","1","0"}
- и набрать в коде: "фрмт" + Enter или Space... Угадай, ЧТО произойдет?..
   artbear
98 - 14.11.04 - 18:36
(97) Думаю, пригодится для:
1) Для использования в скриптах.
2) честно говоря, сам не знаю :)
просто Алексей Диркс написал этот код, я просто добавил к себе в библиотечный скрипт, вдруг пригодится когда-нибудь
   Синхронизатор
99 - 14.11.04 - 18:57
2(98): Артур, в Телепате есть замечательная фича для отработки "штатных" шаблонов 1С "штатным" способом с получением результата такого выполнения в виде строки. И почему в скриптах не пользоваться этой фичей для выполнения вот такого шаблона 1С:
""<?"""",Формат>""
 --- ???
   trdm
100 - 14.11.04 - 19:26
Set Matches = regEx.Execute(strng) - тут облм наверное будет 1С ведь коллекции не поддерживает :(
А я этим пользуюсь


  1  2   

Список тем форума

Форум Территория 1С

  Рекламное место пустует
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит Тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует