Имя: Пароль:
1C
1C 7.7
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
я пользуюсь. прекрасная вещь. В скрипт еще дописал свою метку к ддате версии