|
v7: ОпенКонф. Отчет, форма с 8-ю слоями. Куда помещается текст-информация о версии? | ☑ | ||
---|---|---|---|---|
0
aka AMIGO
14.01.16
✎
08:15
|
Вот тут - слои, 8 штук:
http://pics.rsh.ru/img/23_wsiv20t0.png Прощелкал по всем - не вижу в правом нижнем уголке текста-версии. Однако, версия запомнилась, и куда-то поместилась: меняется при каждом завершении редактирования отчета: http://pics.rsh.ru/img/22_2820gzlq.png Если форма однослойная - всё в порядке, текст версии на месте. Понятно, что инфа о версии пишется и в файл отчета. ЗЫ. Вопрос, конечно, пустяковый, но .. или уж оставить надежды найти? :) |
|||
1
aka AMIGO
14.01.16
✎
08:17
|
+0 это 7.7, уважаемые :)
|
|||
2
Масянька
14.01.16
✎
08:21
|
(0) Могу ошибаться, но - в OpenConf скрипты - плагины смотрел?
|
|||
3
aka AMIGO
14.01.16
✎
08:22
|
(2) Смотрел, место не распознал..
|
|||
4
ЧеловекДуши
14.01.16
✎
08:38
|
(3) На форму
|
|||
5
ЧеловекДуши
14.01.16
✎
08:38
|
+ в предопределенный эллемент
|
|||
6
aka AMIGO
14.01.16
✎
09:05
|
(4) Это понятно :)
(5) вот вырезка: Set DocFrm = Windows.ActiveWnd.Document if DocFrm = docWorkBook then Set DocFrm = DocFrm.Page(0) else exit Sub end if Вот это: DocFrm.Page(0), видимо, не срабатывает. Нет на первом слое ничего. |
|||
7
Злопчинский
14.01.16
✎
14:25
|
О! а не скинешь мне "настройку" которая такую штучку - автоизменение версии отчета делает? давно хотел, спсб! [email protected]
|
|||
8
Chameleon1980
14.01.16
✎
23:49
|
Версия.vbs вроде
|
|||
9
Chameleon1980
14.01.16
✎
23:53
|
' Хранение версии для внешнего отчета
' ' Автор Слава <[email protected]> 'Это мое можно сказать первое "творение" в скриптописании, так что ногами прошу не пинать :) ' 'работает примерно так: 'отслеживаем OnIdle, если отчет внешний и в Caption есть *, тогда ставим флаг. 'После записи файла (OnFileSaved) если флаг висит, вызываем диалог изменения версии. При согласии пользователя в нижний правый угол вставляется текст с датой и номером версии отчета и отчет записывается еще раз. 'ЗЫ: Конечно если было бы событие BeforeSaved, было бы легче и не нужно было бы записывать файл второй раз. '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '================================================== Sub Configurator_OnFileSaved(W) Dim ask_ch if W.Type = 1 and fst = 0 then Set DocFrm = Windows.ActiveWnd.Document if DocFrm = docWorkBook then Set DocFrm = DocFrm.Page(0) else exit Sub end if DialogTxtStrings = Split(DocFrm.Stream, vbCrLf) DialogTxtFunction = DialogTxtStrings Level = "" find_ver = 0 for i = 0 to UBound(DialogTxtStrings) if i = 2 then Coord = Split(Mid(DialogTxtStrings(i), 3), """,""") CoordX = CStr(Coord(14) - 57) CoordY = CStr(Coord(15) - 12) end If if i > 3 then NextStr = DialogTxtStrings(i) if Level = "Controls" then Do while right(NextStr, 2) <> "}," and i < UBound(DialogTxtStrings) i = i + 1 NextStr = NextStr + vbCrLf + DialogTxtStrings(i) loop IdentPos = 12 Params = Split(NextStr, """,""") if UBound(Params) > 12 then if (Params(1) = "STATIC") then if InStr(1,Params(0),"Ver")>0 then ' Message mid(Params(0),1,5), mNone ver_num = mid(Params(0),18,3) old_date = mid(Params(0),7,10) old_ver = ver_num if ver_num = "" then ver_num = 0 else ver_num = int(ver_num) end if if ver_num = 0 then ver_num = 1 else ver_num = ver_num + 1 end If ver_num = CStr(ver_num) ver_date = CStr(Date) Params(0) = "{""Ver "+ver_date+"_"+ver_num DialogTxtFunction(i) = Join(Params,""",""") ' Message DialogTxtFunction(i), mNone find_ver = 1 end if end if end if end if end if if left(NextStr, 9) = "{""Fixed""," then Level = "Table" elseif left(NextStr, 12) = "{""Controls""," then Level = "Controls" end if Next if Windows.ActiveWnd = Cal then str = vbCrLf+"Текущая версия: "+old_date+"_"+old_ver+vbCrLf+"Изменить на версию: "+CStr(Date)+"_"+ver_num ask_ch = MsgBox("Изменить версию?"+str, 65,W.Name) if ask_ch = 1 then if find_ver = 0 then GetDefaultString = "{""Ver "+CStr(Date)+"_0"+""",""STATIC"",""1342177280"","""+CoordX+""","""+CoordY+""",""52"",""8"",""0"",""0"",""4154"","""","""","""",""0"",""U"",""0"",""0"",""0"",""0"",""128"","""","""","""",""0"",""-8"",""0"",""0"",""0"",""400"",""0"",""0"",""0"",""204"",""1"",""2"",""1"",""34"",""MS Reference Sans Serif"",""-1"",""-1"",""0"",""Основной"",""{""""0"""",""""0""""}""}" DlgBlock = GetDefaultString WorkString = Ubound(DialogTxtStrings) - 1 DialogTxtStrings(WorkString) = Left(DialogTxtStrings(WorkString), Len(DialogTxtStrings(WorkString)) - 2) + _ "," + vbCrLf + DlgBlock + "}," DocFrm.Stream = Join(DialogTxtStrings, vbCrLf) else DocFrm.Stream = Join(DialogTxtFunction, vbCrLf) end if fst = 1 W.Save fst = 0 Cal = 0 end if end if end if End Sub Sub Configurator_OnIdle() if Windows.ActiveWnd is Nothing then exit sub if (InStr(1,Windows.ActiveWnd.Caption,"Внешний")<>0) and (InStr(1,Windows.ActiveWnd.Caption,"*")<>0) then Cal = Windows.ActiveWnd.hWnd end if End Sub fst=0 Cal=0 |
|||
10
MadDAD
15.01.16
✎
11:59
|
(6) исходя из этого:
GetDefaultString = "{""Ver "+CStr(Date)+"_0"+""",""STATIC"",""1342177280"","""+CoordX+""","""+CoordY+""",""52"",""8"",""0"",""0"",""4154"","""","""","""",""0"",""U"",""0"",""0"",""0"",""0"",""128"","""","""","""",""0"",""-8"",""0"",""0"",""0"",""400"",""0"",""0"",""0"",""204"",""1"",""2"",""1"",""34"",""MS Reference Sans Serif"",""-1"",""-1"",""0"",""Основной"",""{""""0"""",""""0""""}""}" Должно добавляться на слой "Основной" |
|||
11
Garykom
гуру
15.01.16
✎
12:06
|
В 7.7 когда много слоев на форме и много реквизитов разные глюки начинаются
к примеру у меня переставали срабатывать комбинации клавиатуры (шорткаты) навешенные на кнопки на скрытом слое )) |
|||
12
Garykom
гуру
15.01.16
✎
12:09
|
(11)+ это так, к тому что разное бывает
ЗЫ а автоизменение версии внешнего отчета это интересно, почему бы в 8-ке 1С это стандартно не сделать? а то приходится самому нумеровать при сохранении приписывая дату и версию |
|||
13
aka AMIGO
15.01.16
✎
12:10
|
(7) Ой-ой.. извини, бросил-было ветку, не заглянул..
Сейчас перешлю тебе скриптик |
|||
14
aka AMIGO
15.01.16
✎
12:20
|
(10) Вот оно что! кмк, у меня на форме в диалоге, нет слоя "Основной"
Есть Основной1 и Основной2 Скорей всего, в этом дело. Спасибо! |
|||
15
aka AMIGO
15.01.16
✎
12:28
|
Победа!
![]() Переименовал слой, появилась версия. Спа-си-бо! :) |
|||
16
Злопчинский
15.01.16
✎
14:47
|
хорошо бы чтобы именовалось по типу
ver ГГГГММДД-xx ЧЧММСС |
|||
17
Garykom
гуру
15.01.16
✎
14:50
|
(16) интересно как бы это для 8.Х по простому замутить?
нечто вроде создаешь в обработке реквизит "ВерсияОбработки" и оно автоматом начинает при сохранении и закрытии нумеровать |
|||
18
Злопчинский
15.01.16
✎
17:37
|
(17) а может дуля с маслом? ;-)
это вам не клюшки - это тослтый снеговик! ;-) |
|||
19
Garykom
гуру
15.01.16
✎
17:40
|
(18) ну просто плагины к стандартному конфигуратору никто не озадачился почему то придумать ((
это со стороны 1С огромная недоработка... |
|||
20
Злопчинский
15.01.16
✎
18:05
|
(19) ну, Орефков (явись!) же Снегопат "нахрендрячил" по самое немогу, всякие распаковщикы метаданных/объектов есть.. дело за Малым...
|
|||
21
Ёпрст
15.01.16
✎
18:10
|
(11) Это проблема не со слоями, есть просто платформенное ограничение на количество хоткеев. 40 вроде,на одной форме, не помню ужо сколько точно.
|
|||
22
Garykom
гуру
15.01.16
✎
18:12
|
(20) в смысле предлагается ждать http://catalog.mista.ru/public/102065/ ?
можно и через код в обработке который ПриОткрытии/ПриЗакрытии выполняется задачку решить или через что то внешнее вообще не связанное с 1С |
|||
23
Garykom
гуру
15.01.16
✎
18:13
|
(21) ха, если бы
проблема была именно в кол-ве "объектов Текст" с навешенными на формулу функциями |
|||
24
Garykom
гуру
15.01.16
✎
18:16
|
(23)+ т.е. убрал "лишние" "элементы диалога типа текст", путем их объединения в один с "+Симв(13)" и шорткаты снова заработали
|
|||
25
mishaPH
модератор
15.01.16
✎
22:40
|
я пользуюсь. прекрасная вещь. В скрипт еще дописал свою метку к ддате версии
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |