| 
    
            
         
         | 
    
  | 
v7: Как сделать окно внешней обработки невидимым - 2 | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        victuan1    
     27.07.16 
            ✎
    18:26 
 | 
         
        Продолжение темы Как сделать окно внешней обработки невидимым
 
        Через 1с++ можно сделать окно внешней обработки невидимым? Т.е. пользователь ее не видит. Но можно обращаться к ней из других форм через Форма.Параметр и процедуру ПриПовторномОткрытии(). Ёпрст: А зачем для этого форма обработки ? ВыполняемыйМодуль(2) или ДопГлобальник(1) формекса .. или классы(3) - покрывают все потребности (1) Если использовать ДопГлобальник, то модуль не проходит синтаксический контроль при использовании процедур и функций ДопГлобальника. Можно? конечно, ДопГлобальник загружать в модуле одной обработки, а использовать в модуле другой, но рой синтаксических ошибок всё равно будет мешать в конфигураторе. Использовать Шаблон? Некрасиво, и не получится определить в ДопГлобальнике процедуры. А функции должны будут возвращать только простые типы данных, либо придется результат оборачивать в ЗначениеВСтрокуВнутр. Использование этих доп. функций (Шаблон, ЗначениеВстрокуВнутр, ЗначениеИзСтрокиВнутр) наверняка скажется на производительности. Как изящно решить проблему?  | 
|||
| 
    1
    
        orefkov    
     27.07.16 
            ✎
    18:42 
 | 
         
        классы     
         | 
|||
| 
    2
    
        victuan1    
     27.07.16 
            ✎
    18:50 
 | 
         
        Как с помощью классов объявить глоб. переменную, не изменяя основной глобальный модуль?
 
        Эта переменная должна быть доступна в модулях внешних обработок и модулях некоторых справочников и документов.  | 
|||
| 
    3
    
        victuan1    
     27.07.16 
            ✎
    18:53 
 | 
         
        ГМЕ = СоздатьОбъект("МойКласс");
 
        Или как сделать чтобы ссылка ГМЕ не разрушалась при закрытии обработки и была доступна в контексте другого открываемого модуля?  | 
|||
| 
    4
    
        arsik    
     гуру 
    27.07.16 
            ✎
    19:04 
 | 
         
        (3) Объявить экспортную переменную ГМЕ в глобальном модуле религия не позволяет?     
         | 
|||
| 
    5
    
        victuan1    
     27.07.16 
            ✎
    19:08 
 | 
         
        (4) Если бы позволяла, то я бы туда запихал все свои доп. процедуры и функции, и зачем мне тогда нужны были бы Классы, ВМ или ДопГлобальник?     
         | 
|||
| 
    6
    
        arsik    
     гуру 
    27.07.16 
            ✎
    19:19 
 | 
         
        (5) Ну если глобальник нельзя менять, то возможно там уже опубликованы глобальные переменные и не факт что все они используются. Посмотри внимательно.     
         | 
|||
| 
    7
    
        arsik    
     гуру 
    27.07.16 
            ✎
    19:20 
 | 
         
        (5) Какая конфа?     
         | 
|||
| 
    8
    
        akaBrr    
     27.07.16 
            ✎
    19:23 
 | 
         
        (2) Как с помощью внешней обработки это сделать?     
         | 
|||
| 
    9
    
        victuan1    
     27.07.16 
            ✎
    19:30 
 | 
         
        (7) Любая (ТИС, Бух, УСН), поэтому список свободных гл. переменных не известен.     
         | 
|||
| 
    10
    
        victuan1    
     27.07.16 
            ✎
    19:30 
 | 
         
        (8) Что именно сделать?     
         | 
|||
| 
    11
    
        akaBrr    
     27.07.16 
            ✎
    19:40 
 | 
         
        (10) Как с помощью классов объявить глоб. переменную, не изменяя основной глобальный модуль?
 
        Эта переменная должна быть доступна в модулях внешних обработок и модулях некоторых справочников и документов. вот это было написано в (2) как вы собирались это делать через внешнюю обработку?  | 
|||
| 
    12
    
        arsik    
     гуру 
    27.07.16 
            ✎
    19:42 
 | 
         
        (9) Во всех стандартных практически есть работа с торговым оборудованием. Для этого выделенная отдельная глобальная переменная. пользуйся ей.     
         | 
|||
| 
    13
    
        arsik    
     гуру 
    27.07.16 
            ✎
    19:43 
 | 
         
        И в принципе можешь весь функционал сделать как обработку подключаемого оборудования.     
         | 
|||
| 
    14
    
        victuan1    
     27.07.16 
            ✎
    19:47 
 | 
         
        (11) С помощью формекс можно подключить Доп. Гл. модуль, в котором объявлена экспортная переменная. Она будет доступна во всех модулях конфигурации и внешних обработках даже после закрытия этой внешней обработки.
 
        Но возникают проблемы, описанные в (0) и я их не могу решить ((  | 
|||
| 
    15
    
        victuan1    
     27.07.16 
            ✎
    19:48 
 | 
         
        (12) Эта переменная мне нужна для обслуживания торгового оборудования. Если я ее перепределю, то разве смогу нормально пользоваться торговым оборудованием?     
         | 
|||
| 
    16
    
        victuan1    
     27.07.16 
            ✎
    19:50 
 | 
         
        Либо сохранять значения переменных в файле или в реестре. Но это ваще жесть!     
         | 
|||
| 
    17
    
        arsik    
     гуру 
    27.07.16 
            ✎
    19:53 
 | 
         
        (15) Если я правильно помню, там в переменной хранится ссылка на массив подключенного оборудования. Ну добавь в этот массив еще свое "оборудование".     
         | 
|||
| 
    18
    
        arsik    
     гуру 
    27.07.16 
            ✎
    19:55 
 | 
         
        + (17) Вроде не массив а ТЗ
 
        Будет у тебя обращение через точку только. глТорговоеОборудование.ГМЕ  | 
|||
| 
    19
    
        victuan1    
     27.07.16 
            ✎
    20:03 
 | 
         
        (18) Нет там такой переменной.     
         | 
|||
| 
    20
    
        victuan1    
     27.07.16 
            ✎
    20:06 
 | 
         
        Ладно, допустим уговорили на использование гл. переменной в основном гл. модуле.
 
        Что лучше использовать Класс или ВыполняемыйМодуль? Через тот и другой можно обращаться к функциям, процедурам и переменным через точку. Классы менее удобны тем, что нужно держать в каталоге базы defcls, который должен учесть определения других классов, если они были задействованы конфигурацией до начала ее адаптации под мои задачи  | 
|||
| 
    21
    
        Злопчинский    
     27.07.16 
            ✎
    23:20 
 | 
         
        задвинь окно обработки за пределы окна программно и все - чем не подходит?     
         | 
|||
| 
    22
    
        victuan1    
     28.07.16 
            ✎
    04:34 
 | 
         
        (21) У меня аппетиты выросли) Нужно чтобы контекст этой обработки был доступен из других модулей конфигурации. Для этого того нужен 1с++. А раз он нужен, то лучше я вынесу эти функции/обработки/переменные в отдельный ВыполняемыйМодуль (или Класс? пока не решил, что лучше).
 
        Доп. глобальный модуль Формекса не подходит, т.к. его функции/процедуры/переменные не будут проходит синтаксический контроль в модулях, что очень не удобно при отладке и разработки программы (а этот этап будет продолжительным). Поэтому выбираю ВМ (или класс?), т.к. он (в отличие от допглобальника) позволяет обращаться к функциям/процедурам/переменным через точку (селектор), а это позволяет пройти синтаксический контроль.  | 
|||
| 
    23
    
        Это_mike    
     28.07.16 
            ✎
    07:32 
 | 
         
        А прикольно -  править "модули некоторых справочников и документов" религия не запрещает, а добавить одну переменную в глобальник - запрещает.
 
        Если будет система классов, определяемых пользователем - то все равно в глобальник придется вносить изменения (грузить 1спп). Хотя я - за классы...  | 
|||
| 
    24
    
        Это_mike    
     28.07.16 
            ✎
    07:34 
 | 
         
        (22) для отладки - можно определить переменные, функции и процедуры в глобальнике.     
         | 
|||
| 
    25
    
        victuan1    
     28.07.16 
            ✎
    07:57 
 | 
         
        (23) Нельзя править типовые объекты метаданных: глМодуль, справочники, документы и т.д.
 
        Можно править те объекты метаданных, которые были добавлены в конфигурацию: справочники, документы и которые не влияют на типовые объекты метаданных. Это сделано для того, чтобы можно было обновлять конфигурацию типовыми релизами через "Объединение конфигурации" и при этом, чтобы ничего не сломалось. Грузить 1с++ не обязательно через гл.модуль, ее можно загрузить из внешней обработки, которую откроет пользователь, или из модулей добавленных объектов метаданных (справочников, документов) при первом обращении к ним пользователя.  | 
|||
| 
    26
    
        victuan1    
     28.07.16 
            ✎
    08:00 
 | 
         
        (24) Можно и так. Но мне проще временно объявить в глобальнике  одну переменную, которая будет глобальной ссылкой на ВМ или Класс.
 
        При желании в рабочем режиме эту переменную можно изъять из гл.модуля, а объявить как переменную, инициализируемую внешним гл. модулем, который будет содержать только эту экспортную переменную. А остальной функционал реализовать через ВМ или Класс.  | 
|||
| 
    27
    
        Это_mike    
     28.07.16 
            ✎
    08:11 
 | 
         
        (26) именно так.
 
        кстати, если уж сильно приспичило, дефкласс можно создать/ подредактировать при первом запуске обработки, и попросить пользователей перезапуститься. Можно поэкспериментировать с автоматической выгрузкой модулей классов из самой обработки как у Ёпрст сделано, емнип - метода Маляева?)  | 
|||
| 
    28
    
        victuan1    
     28.07.16 
            ✎
    08:14 
 | 
         
        Сейчас экспериментирую с ВМ, при этом текст модуля я защитил КЗК2, но происходит падение 1С. Написал Альфу:
 
        При вызове процедур и функции выполняемого модуля (ВМ_КЗК.txt), комплированного с помощью КЗК-2, падает 1С на операторе "Сообщить" внутри компилированного модуля. Оператор "Предупреждение" работает успешно. Если этот модуль выполнять не в компилированном виде (ВМ_КЗК.txt.bk1), то падения не происходит. Также не происходит падения если компилированный модуль подключать как внешний глобальный модуль (а не выполняемый модуль).  | 
|||
| 
    29
    
        victuan1    
     28.07.16 
            ✎
    08:16 
 | 
         
        (27) По сути, что Класс, что ВМ, в моем случае - одно и тоже. Тот же вызов переменных/процедур/функций через объект с точкой.
 
        Почему приверженность именно к Классу, а не к ВМ (выполняемому модулю)?  | 
|||
| 
    30
    
        Это_mike    
     28.07.16 
            ✎
    08:25 
 | 
         
        (29) потому, что один раз созданый, объект класса обладает всем нужным функционалом, и предоставляет наружу только то, что надо. Это идеологически правильно.
 
        Хотя хез, что у тебя за задача.  | 
|||
| 
    31
    
        victuan1    
     28.07.16 
            ✎
    09:01 
 | 
         
        (30) ВМ тоже можно создавать один раз, сразу после загрузки 1С++.
 
        У меня это просто набор переменных, функций и процедур, которые ничего не визуализируют на форме или где бы ни было. Просто что-то делают и возвращают результат выполнения.  | 
|||
| 
    32
    
        Злопчинский    
     28.07.16 
            ✎
    11:39 
 | 
         
        ЕГАИС пилишь или что-то зарплатное?     
         | 
|||
| 
    33
    
        victuan1    
     28.07.16 
            ✎
    14:17 
 | 
         
        (32) ЕГАИС     
         | 
|||
| 
    34
    
        Это_mike    
     28.07.16 
            ✎
    14:32 
 | 
         
        (33) пока допилишь - уже отменят :-)     
         | 
|||
| 
    35
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:32 
 | 
         
        Вообще не понимаю, в чем у тебя проблема.
 
        Пишешь обработку, пихаешь в неё все свои вк, формы, классы. При старте, анализируешь, загружены ли вк, если нет, грузишь, далее проверяешь, запущены ли твои классы, если нет, грузишь, далее проверяешь, есть ли твой доп глобальник, если нет, грузишь.. усё собственна. Можешь еще и кучу других обработок туда напихать, при желании.  | 
|||
| 
    36
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:33 
 | 
||||
| 
    37
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:37 
 | 
         
        Ну, а используя Перехватчик, так можешь вообше творить чудеса     
         | 
|||
| 
    38
    
        victuan1    
     28.07.16 
            ✎
    14:39 
 | 
         
        (34) Я даже не мечтаю уже об этом )))
 
        При старте обработки, если 1с++ был уже загружена (например, ПриНачалеРаботыСистемы), то как дозагрузить свои классы? Как обработка пройдет синтаксический контроль, если использует переменные/процедуры/функции, объявленные в доп.глобальнике?  | 
|||
| 
    39
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:47 
 | 
         
        (38) дык скачай поделку да посмотри     
         | 
|||
| 
    40
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:47 
 | 
         
        там нет проблем с синтаксисом     
         | 
|||
| 
    41
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:49 
 | 
         
        На счет классов, их не обязательно загружать в приначалеработы системы, если че.     
         | 
|||
| 
    42
    
        victuan1    
     28.07.16 
            ✎
    14:50 
 | 
         
        (39) Понял, я просто не ту смотрел. Я смотрел Редактор2
 
        (41) Разве классы не нужно определять через Дефкласс.прн до загрузки 1с++?  | 
|||
| 
    43
    
        Это_mike    
     28.07.16 
            ✎
    14:51 
 | 
         
        (40) кстати, а как в перехватчике (да и вообще) с проверкой синтаксиса вирт() ?     
         | 
|||
| 
    44
    
        Это_mike    
     28.07.16 
            ✎
    14:51 
 | 
         
        (41) Хм. обана....     
         | 
|||
| 
    45
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:53 
 | 
         
        (42) их можно загрузить потом, через объект MetaInfoClasses     
         | 
|||
| 
    46
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    14:53 
 | 
         
        предварительно проверив их существование     
         | 
|||
| 
    47
    
        victuan1    
     28.07.16 
            ✎
    14:58 
 | 
         
        (41) Ага, увидел. Классы можно подгружать уже при загруженной 1с++ через МетаИнфо.     
         | 
|||
| 
    48
    
        victuan1    
     28.07.16 
            ✎
    15:02 
 | 
         
        (40) Увидел доп.глобальник. Один хрен, ты его функции обернул в Шаблон, либо используешь в формуле контролов на форме.
 
        Для меня это не приемлемо. Красивых способов использовать методы допглобальника не существует?  | 
|||
| 
    49
    
        Это_mike    
     28.07.16 
            ✎
    15:03 
 | 
         
        (45)ну тогда задача (0) решена     
         | 
|||
| 
    50
    
        Это_mike    
     28.07.16 
            ✎
    15:04 
 | 
         
        (48) вызовы из реквизитов диалога, например :-)     
         | 
|||
| 
    51
    
        victuan1    
     28.07.16 
            ✎
    15:04 
 | 
         
        За динамическое подключение класса спасибо, наверное, теперь буду использовать Класс вместо ВМ (выполняемого модуля). Хотя реализация их использования одинакова, что в лоб, что по лбу. Там и там через точку.     
         | 
|||
| 
    52
    
        victuan1    
     28.07.16 
            ✎
    15:06 
 | 
         
        (49) Не решена пока не будет найден изящный способ объявить глобальную переменную без вмешательства в основной гл. модуль.     
         | 
|||
| 
    53
    
        victuan1    
     28.07.16 
            ✎
    15:07 
 | 
         
        Я же ведь не смогу сохранить значение переменной, созданной в экземпляре моего класса, т.к. после закрытия обработки, он будет разрушен.     
         | 
|||
| 
    54
    
        victuan1    
     28.07.16 
            ✎
    15:07 
 | 
         
        (50) Написал же в том же посте, что это неприемлимо ), нужно использовать в модуле и без Шаблона     
         | 
|||
| 
    55
    
        Это_mike    
     28.07.16 
            ✎
    15:08 
 | 
         
        (52) сделай дополнительный.     
         | 
|||
| 
    56
    
        Это_mike    
     28.07.16 
            ✎
    15:09 
 | 
         
        (53) Переменная в глобальнике. в дополнительном.     
         | 
|||
| 
    57
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:09 
 | 
         
        (52) дык определяй в доп глобальнике, делов то     
         | 
|||
| 
    58
    
        victuan1    
     28.07.16 
            ✎
    15:10 
 | 
         
        (55) Но эта переменная не будет проходить синтаксический контроль в конфигураторе. Неудобно для отладки программы)     
         | 
|||
| 
    59
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:12 
 | 
         
        (58) всё будет     
         | 
|||
| 
    60
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:12 
 | 
         
        И это, методы доп глобальника я использую в своём классе, там нет шбалона, о котором ты пишешь, смотри внимательнее     
         | 
|||
| 
    61
    
        Это_mike    
     28.07.16 
            ✎
    15:12 
 | 
         
        (58) оборачивай в ложное условие, в конце концов..     
         | 
|||
| 
    62
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:14 
 | 
         
        (61) тоже вариант     
         | 
|||
| 
    63
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:14 
 | 
         
        ТС просто на ровном месте буксует.
 
        Объяснил бы конкретнее, чего надо что ле.  | 
|||
| 
    64
    
        victuan1    
     28.07.16 
            ✎
    15:14 
 | 
         
        (59) В режиме Предприяетие будет, но не в режиме Конфигуратор. (60) Ты используешь доп.глобальник в Классе, т.е. то и то.
 
        Мне маслить малясное не нужно, нужно выбрать либо Класс либо доп.глобальник. Поэтому я выбираю Класс, а доп.глобальник оставляю на всякий случай, когда религия запретит использовать в осн. гл.модуле доп. переменную )))  | 
|||
| 
    65
    
        victuan1    
     28.07.16 
            ✎
    15:15 
 | 
         
        (63) Нет, я не буксую. Я уже на финишной прямой - шлифую углы. )     
         | 
|||
| 
    66
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:16 
 | 
         
        (64) а какая разница что использовать ?     
         | 
|||
| 
    67
    
        Это_mike    
     28.07.16 
            ✎
    15:16 
 | 
         
        (64) когда ты куда-нибудь идешь, ты тоже выбираешь, либо шагать левой ноо, либо правой?     
         | 
|||
| 
    68
    
        Это_mike    
     28.07.16 
            ✎
    15:16 
 | 
         
        (65) только почему ты их шлифуешь головой, если надо это делать руками?     
         | 
|||
| 
    69
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:17 
 | 
         
        По-уму, лучше вообще через турбомд лепить. Там и контролы создавть     
         | 
|||
| 
    70
    
        victuan1    
     28.07.16 
            ✎
    15:17 
 | 
         
        Я колебался между Классом и ВМ, но Ёпрст показал как его дозагружать "на лету".
 
        Теперь для меня эти два объекта равнозначны. Есть ли особенности по скорости работы этих двух объектов?  | 
|||
| 
    71
    
        victuan1    
     28.07.16 
            ✎
    15:18 
 | 
         
        (68) Почему ты так считаешь? Я уже написал горку кода с использованием ВМ. С целью тестирования.     
         | 
|||
| 
    72
    
        victuan1    
     28.07.16 
            ✎
    15:19 
 | 
         
        (67) Тут выбор пока в направлении пути)     
         | 
|||
| 
    73
    
        victuan1    
     28.07.16 
            ✎
    15:19 
 | 
         
        Между допглобальником и ВМ/Классом.
 
        А вот выбор между ВМ и Классом это уже выбор ноги.  | 
|||
| 
    74
    
        victuan1    
     28.07.16 
            ✎
    15:20 
 | 
         
        Есть опыт какая нога легче на подъем (быстрее) - левая или правая (ВМ или Класс)?     
         | 
|||
| 
    75
    
        victuan1    
     28.07.16 
            ✎
    15:21 
 | 
         
        (69) Пока задача стоит сделать обертку исключительно для кода, а не для визуализации.     
         | 
|||
| 
    76
    
        victuan1    
     28.07.16 
            ✎
    15:23 
 | 
         
        (61)
 
        Если 1=0 Тогда гме = 0 КонецЕсли; Хорошая идея.  | 
|||
| 
    77
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:23 
 | 
         
        как то у тебя каша какая то, класс это класс, с его методами, наследованием, перезагрузкой методов.
 
        А вм, это вм, всего лишь обёртка для доп процедур и существует, пока переменная вм жива. Класс же есть всегда, пока его спецом не выгрузишь  | 
|||
| 
    78
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    15:24 
 | 
         
        (76) это [:]||||||[:]
 
        который перекочевал в снеговик, чтобы пофигуратор определял что за объект и показывал методы через точку.  | 
|||
| 
    79
    
        victuan1    
     28.07.16 
            ✎
    15:26 
 | 
         
        (77) Значит, Класс быстрее, т.к. при повторной инициализации не теряется время на компиляцию.     
         | 
|||
| 
    80
    
        victuan1    
     28.07.16 
            ✎
    15:27 
 | 
         
        Ладно, иду ваять. По ходу пьесы буду возвращаться в тему.     
         | 
|||
| 
    81
    
        DrZombi    
     гуру 
    28.07.16 
            ✎
    15:40 
 | 
         
        (78) Хотя 1С не рекомендует так писать код, захламляя его лишними командами :)     
         | 
|||
| 
    82
    
        Это_mike    
     28.07.16 
            ✎
    15:42 
 | 
         
        (74) ВМ/ГМ привычнее поначалу, классы логичней.     
         | 
|||
| 
    83
    
        Это_mike    
     28.07.16 
            ✎
    15:43 
 | 
         
        (81) вместо чтоб "порекомендовать", сделали бы нормальный редактор, как телепат в клющках     
         | 
|||
| 
    84
    
        victuan1    
     28.07.16 
            ✎
    16:12 
 | 
         
        Сочетая ГМ/ВМ|Классы не удобно то, что приходится использовать разные ВК (1с++/Формекс). Было бы удобней, если бы сделали сборку единой ВК:
 
        icpp.dll+formex.dll+precomp.dll  | 
|||
| 
    85
    
        Это_mike    
     28.07.16 
            ✎
    16:15 
 | 
         
        (84) формекс когда-то был в составе 1с++. потом АЛьФ чой-то обиделся...     
         | 
|||
| 
    86
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    16:34 
 | 
         
        (85) не, просто было тяжело компилить в одну вк, тогда оне стремительно развивались, проще было разделить     
         | 
|||
| 
    87
    
        victuan1    
     28.07.16 
            ✎
    16:46 
 | 
         
        (86) Сейчас нет развития - можно и соединить.     
         | 
|||
| 
    88
    
        Это_mike    
     28.07.16 
            ✎
    16:48 
 | 
         
        (87) а оно надо?
 
        их уже вообще пора забывать...  | 
|||
| 
    89
    
        victuan1    
     28.07.16 
            ✎
    17:04 
 | 
         
        (88) Ты не представляешь сколько клиентов на клюшках, которые не собираются никуда переходить     
         | 
|||
| 
    90
    
        Это_mike    
     28.07.16 
            ✎
    17:06 
 | 
         
        (89) Найти бы нормальных... и на удаленку...     
         | 
|||
| 
    91
    
        victuan1    
     28.07.16 
            ✎
    17:14 
 | 
         
        (90) Я нашел, теперь отдых только снится)))     
         | 
|||
| 
    92
    
        victuan1    
     28.07.16 
            ✎
    18:08 
 | 
         
        Вот засада... МетаИнфо с какого релиза 1с++ поддерживается?     
         | 
|||
| 
    93
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    18:10 
 | 
         
        (92) ну, все icpp его поддерживают     
         | 
|||
| 
    94
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    18:10 
 | 
         
        а у тя че, древняя, с встроенным формексом поди, да ?     
         | 
|||
| 
    95
    
        victuan1    
     28.07.16 
            ✎
    18:12 
 | 
         
        мммм. К примеру стоит у клиента древняя 1с++, на которой уже наворочено в 1ске хрен до кучи. Он поставит icpp и у него не взлетит годами выстраданный функционал. 
 
        Может такое быть? Я читал, что icpp обратно не совместима со старыми версиями.  | 
|||
| 
    96
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    18:13 
 | 
         
        (95) там вся несовместимость, только со старыми методами формекса - чутка другие методы создания контролов и объекта сервис. Минимум изменений.     
         | 
|||
| 
    97
    
        victuan1    
     28.07.16 
            ✎
    18:13 
 | 
         
        (94) У меня и древняя стоит, ее я баловался с универсальным переносом данных между неодинаковыми базами клюшек.     
         | 
|||
| 
    98
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    18:13 
 | 
         
        причем, можно написать универсальный код, чтоб работало и там и там     
         | 
|||
| 
    99
    
        victuan1    
     28.07.16 
            ✎
    18:22 
 | 
         
        (98) Ладно, будешь моим консультантом в сложных случаях ;)     
         | 
|||
| 
    100
    
        Ёпрст    
     гуру 
    28.07.16 
            ✎
    18:24 
 | 
         
        (99) если вспомню     
         | 
|||
| 
    101
    
        Злопчинский    
     28.07.16 
            ✎
    19:51 
 | 
         
        (94) Ёпрст, скажи как попытный гуру
 
        - какую версию 1С++ ставить в продакшен сейчас - какую версию формекса  | 
|||
| 
    102
    
        Злопчинский    
     28.07.16 
            ✎
    19:51 
 | 
         
        а... попытный = опытный
 
        ;-)  | 
|||
| 
    103
    
        victuan1    
     28.07.16 
            ✎
    20:10 
 | 
         
        (101) Он давал ссылки здесь:
 
        http://catalog.mista.ru/public/20885/ 1cpp.dll http://www.1cpp.ru/images/3/32/Icpp-latest.rar formex.dll http://www.dorex.ru/files/?formex_t.zip  | 
|||
| 
    104
    
        Garykom    
     гуру 
    28.07.16 
            ✎
    20:11 
 | 
         
        Может хорош уже вире/троянописателям то подсказывать?     
         | 
|||
| 
    105
    
        Garykom    
     гуру 
    28.07.16 
            ✎
    20:12 
 | 
         
        (103) dorex того (( почил в бозе     
         | 
|||
| 
    106
    
        Это_mike    
     28.07.16 
            ✎
    21:02 
 | 
         
        Забавно, что у Масяньки были какие-то траблы с чуть более старой версией формекса, нежели последняя...     
         | 
|||
| 
    107
    
        Злопчинский    
     29.07.16 
            ✎
    00:30 
 | 
         
        (103) вообщем-то насколько я себе представляю на дорекспро лежала некая "финальная" версия. после которой формекс был отдан на разграбление и развивался/дорабатывался уже не Альфом (на 1С++ форуме).
 
        собственно поэтому и ветка  | 
|||
| 
    108
    
        victuan1    
     29.07.16 
            ✎
    04:15 
 | 
         
        (107) Разве дорекс.про не сайт Альфа?
 
        http://dorex.pro/?projects&formex&download  | 
|||
| 
    109
    
        victuan1    
     29.07.16 
            ✎
    06:16 
 | 
         
        (36) RegEditor выдал ошибки:
 
        === Syntax error в модуле 'unknown' 42951144 т = КонтекстФормыОбработки<<?>> {(1)}: Переменная не определена (КонтекстФормыОбработки) Старая версия 1с++? Как избежать этих ошибок, если вдруг у клиента окажется старая версия?  | 
|||
| 
    110
    
        victuan1    
     29.07.16 
            ✎
    06:29 
 | 
         
        1С 2.5.0.7, 3-ю версию ставить надо?     
         | 
|||
| 
    111
    
        victuan1    
     29.07.16 
            ✎
    06:31 
 | 
         
        3-я версия 1с++ не ставит себя в Сервис-Параметры, где теперь настройки "Оптимизация", "Отладка" и т.д. смотреть?     
         | 
|||
| 
    112
    
        Это_mike    
     29.07.16 
            ✎
    07:14 
 | 
         
        (111) Помощь-О программе?     
         | 
|||
| 
    113
    
        victuan1    
     29.07.16 
            ✎
    07:18 
 | 
         
        (112) Нет там эти настроек     
         | 
|||
| 
    114
    
        victuan1    
     29.07.16 
            ✎
    07:19 
 | 
         
        Точнее, они там ReadOnly. Интерактивно менять не дает.     
         | 
|||
| 
    115
    
        Это_mike    
     29.07.16 
            ✎
    07:44 
 | 
||||
| 
    116
    
        victuan1    
     29.07.16 
            ✎
    08:09 
 | 
         
        (115) "Эти 3 настройки ВК настраиваются в параметрах 1С на закладке Настройки 1С++"
 
        Так вот нет этой закладки в Сервис - Параметры, если 1с++ версии 3.х. Если версии 2.х, то - есть! ЧЯДНТ?  | 
|||
| 
    117
    
        ADirks    
     29.07.16 
            ✎
    08:57 
 | 
         
        (116) специально убрали настройки из интерфейса - ибо нефиг
 
        только программно МетаИнфо = СоздатьОбъект("MetaInfoClasses"); МетаИнфо.УстановитьТекУстановки(0, 0, 0); //кэширование отключено МетаИнфо.УстановитьТекУстановки(1, 0, 0); //с кэшированием или оУправлениеНастройками = СоздатьОбъект("УправлениеНастройками"); оУправлениеНастройками.Включить("Оптимизация"); оУправлениеНастройками.Включить("ПерехватитьСобытияГК"); оУправлениеНастройками.Включить("TurboBL");  | 
|||
| 
    118
    
        victuan1    
     29.07.16 
            ✎
    09:15 
 | 
         
        (117) Спасибо. А есть ответ на вопрос, что метод КомпилироватьМодуль работает по разному в разных версиях 1с++ в случае синтакс. ошибок?
 
        В версии 2.х выдает ошибки: === Syntax error в модуле 'unknown' 42951144 т = КонтекстФормыОбработки<<?>> {(1)}: Переменная не определена (КонтекстФормыОбработки) а в версии 3.х выдает Исключение. Как можно в версии 2.х программно узнать, что возникла ошибка синтаксиса и подавить вывод сообщений в табло сообщений пользователю?  | 
|||
| 
    119
    
        ADirks    
     29.07.16 
            ✎
    09:24 
 | 
         
        (118) как-то не задавался, но возможно это ?
 
        ВыполняемыйМодуль :: РазрешитьИсключения / EnableExceptions Синтаксис: РазрешитьИсключения() Описание: Включает флаг выдачи исключений вместо показа ошибок в окне сообщений. После выполнения данного метода методы ВыполнитьМодуль, КомпилироватьМодуль вызывают исключение в случае ошибки, а не выдают сообщение в окно сообщений. В случае ошибок синтаксиса в тексте модуля или ошибок выполнения генерируется исключение. Метод КомпилироватьИВыполнитьМодуль всегда выбрасывает исключения, независимо от выполнения данного метода.  | 
|||
| 
    120
    
        Ёпрст    
     гуру 
    29.07.16 
            ✎
    09:27 
 | 
         
        (110) да, ибо 2-ая не развивалась, совсем.
 
        (119) так и есть  | 
|||
| 
    121
    
        victuan1    
     29.07.16 
            ✎
    09:47 
 | 
         
        (119)
 
        Модуль.РазрешитьИсключения(1); Модуль.КомпилироватьМодуль(); Как-то странно работает метод РазрешитьИсключения в 2.5.0.7, он выдает исключение независимо от того, есть ошибка в тексте модуля или нет.  | 
|||
| 
    122
    
        Ёпрст    
     гуру 
    29.07.16 
            ✎
    09:50 
 | 
         
        (121) забить на 2* и ставить icpp     
         | 
|||
| 
    123
    
        victuan1    
     29.07.16 
            ✎
    09:55 
 | 
         
        (122) Я так не хочу. Мины надо обезвреживать.     
         | 
|||
| 
    124
    
        victuan1    
     29.07.16 
            ✎
    09:57 
 | 
         
        (121) Тут 1 в скобках лишняя:
 
        Модуль.РазрешитьИсключения(); Модуль.КомпилироватьМодуль(); Но в таком случае РазрешитьИсключения() никак не влияет на поведение в случае синт. ошибки - исключение не возникает :-(  | 
|||
| 
    125
    
        victuan1    
     29.07.16 
            ✎
    09:58 
 | 
         
        Мда.. вот засада!     
         | 
|||
| 
    126
    
        victuan1    
     29.07.16 
            ✎
    10:00 
 | 
         
        Как программно определить версию плюсов?     
         | 
|||
| 
    127
    
        Ёпрст    
     гуру 
    29.07.16 
            ✎
    10:10 
 | 
||||
| 
    128
    
        victuan1    
     29.07.16 
            ✎
    10:24 
 | 
         
        1с++ 2.5.0.7 вернул 33882119
 
        1с++ 3.3.3.0 вернул 50463232 И как это расшифровывать?  | 
|||
| 
    129
    
        Ёпрст    
     гуру 
    29.07.16 
            ✎
    10:28 
 | 
         
        Да ё.. ну посмотри
 
        так, что ле: Мета = СоздатьОбъект("MetaInfoClasses"); Сообщить(Мета.ПолучитьВерсиюФайла());  | 
|||
| 
    130
    
        victuan1    
     29.07.16 
            ✎
    10:34 
 | 
         
        Получается, так:
 
        Версия = МетаИнфо.ПолучитьВерсиюФайла(); Если Число(Версия) < 3 Тогда мсообщить("Установлена версия 1С++ "+Версия+". Установите версию 1cpp.dll не ниже 3.х.х ("+Ссылка1СПП+")"); Возврат 0 КонецЕсли;  | 
|||
| 
    131
    
        Злопчинский    
     29.07.16 
            ✎
    18:45 
 | 
         
        (129) Ёпрст, не будь бякой
 
        скажи какую версию формекса из последних стоит юзать и какую 1С++ спасибо.  | 
|||
| 
    132
    
        victuan1    
     29.07.16 
            ✎
    22:31 
 | 
         
        Я не понял как использовать в классе Контроль установки/записи атрибутов:
 
        ПриПолучении_ИмяАтрибута ПриЗаписи_ИмяАтрибута Примеры есть?  | 
|||
| 
    133
    
        Ёпрст    
     гуру 
    01.08.16 
            ✎
    08:07 
 | 
         
        (131) я использую последние
 
        (132)че за класс ?  | 
|||
| 
    134
    
        Это_mike    
     01.08.16 
            ✎
    08:29 
 | 
         
        (133) "последние" - звучит невесело :-)     
         | 
|||
| 
    135
    
        Ёпрст    
     гуру 
    01.08.16 
            ✎
    08:42 
 | 
         
        (134) врят ли кто-то будет их еще модернизировать     
         | 
|||
| 
    136
    
        Это_mike    
     01.08.16 
            ✎
    08:51 
 | 
         
        (135) угу     
         | 
|||
| 
    137
    
        ADirks    
     01.08.16 
            ✎
    09:03 
 | 
         
        (131) а у меня FormEx 108 - уже не помню точно почему, но кажется в 109 события мыши "просачивались" сквозь системные модальные формы.     
         | 
|||
| 
    138
    
        Это_mike    
     01.08.16 
            ✎
    09:20 
 | 
         
        (137) и еще какие-то проблемы были - Масянька натыкалась     
         | 
|||
| 
    139
    
        Ёпрст    
     гуру 
    01.08.16 
            ✎
    09:39 
 | 
         
        (138) в модальной форме не работает ПередОткрытием     
         | 
|||
| 
    140
    
        Ёпрст    
     гуру 
    01.08.16 
            ✎
    09:40 
 | 
         
        но этот [:]||||[:]   всех устраивает, его АЛьФ так и не поправил     
         | 
|||
| 
    141
    
        Это_mike    
     01.08.16 
            ✎
    09:49 
 | 
         
        (140) известный глюк считается фичей...     
         | 
|||
| 
    142
    
        victuan1    
     02.08.16 
            ✎
    05:53 
 | 
         
        (133) Не важно какой, любой пользовательский класс (КОП).     
         | 
|||
| 
    143
    
        ADirks    
     02.08.16 
            ✎
    06:24 
 | 
         
        (133) например
 
        Перем Родитель Экспорт; Процедура ПриЗаписи_Родитель(НовРодитель) Родитель = НовРодитель; ПостроитьЗапросы(); КонецПроцедуры  | 
|||
| 
    144
    
        victuan1    
     02.08.16 
            ✎
    08:22 
 | 
         
        (143) Не работает, 1с++ версии 3.2.2.0     
         | 
|||
| 
    145
    
        Ёпрст    
     гуру 
    02.08.16 
            ✎
    12:15 
 | 
         
        (144) а что должно работать ?     
         | 
|||
| 
    146
    
        Ёпрст    
     гуру 
    02.08.16 
            ✎
    12:17 
 | 
         
        Что за класс Контроль и откуда ты его ввзял ?     
         | 
|||
| 
    147
    
        Ёпрст    
     гуру 
    02.08.16 
            ✎
    12:17 
 | 
         
        Что за события ПриЗаписи_Реквизит, и с чего они должны "работать"  ?     
         | 
|||
| 
    148
    
        Злопчинский    
     02.08.16 
            ✎
    12:19 
 | 
         
        (139) наверное ПослеОткрытия()..?     
         | 
|||
| 
    149
    
        Ёпрст    
     гуру 
    02.08.16 
            ✎
    12:19 
 | 
         
        (148) да     
         | 
|||
| 
    150
    
        ADirks    
     02.08.16 
            ✎
    12:53 
 | 
         
        (147) ну это типа атрибуты объекта с контролем записи/чтения
 
        во всяких дельфях это OnGeg / OnSet пишешь к примеру о = СоздатьОбъект(...); о.Родитель = "Вася"; а внутре класса срабатывает метод ПриЗаписи_Родитель() и из Васи делает что-то другое, или какие-то дополнительные телодвижения  | 
|||
| 
    151
    
        Ёпрст    
     гуру 
    02.08.16 
            ✎
    13:20 
 | 
         
        (150) че-то не видел этого в доке :(     
         | 
|||
| 
    152
    
        ADirks    
     02.08.16 
            ✎
    13:24 
 | 
         
        (151) да в общем-то не самая нужная фича, обычный syntax sugar
 
        была чуть ли не с самого начала  | 
|||
| 
    153
    
        Ёпрст    
     гуру 
    02.08.16 
            ✎
    13:29 
 | 
         
        (152) Значит, не заметил, проверил, работает..только вот, применение этим методам сразу и не найду. Зачем оно ? :)     
         | 
|||
| 
    154
    
        ADirks    
     02.08.16 
            ✎
    13:38 
 | 
         
        (153) В основном чтобы что-то сделать после установки атрибута, или перед получением. Типа, код будет красивше.     
         | 
|||
| 
    155
    
        Ёпрст    
     гуру 
    02.08.16 
            ✎
    13:58 
 | 
         
        (154) в общем ясно.     
         | 
|||
| 
    156
    
        Злопчинский    
     02.08.16 
            ✎
    16:23 
 | 
         
        емеа.. если бы это все я применил в клюшках - снеговик вообще бы у меня не прижился.. ;-)     
         | 
|||
| 
    157
    
        victuan1    
     02.08.16 
            ✎
    20:13 
 | 
         
        (153) Потому что не работает напрямую запись в переменные, объявленные в классе.
 
        МойКласс.МояПеременная = 13; Сообщить(МойКласс.МояПеременная); //выдаст значение, которое было до использования пред. оператора присвоения (т.е не 13)  | 
|||
| 
    158
    
        victuan1    
     02.08.16 
            ✎
    20:25 
 | 
         
        Проверил еще раз, работает (143) и (157).
 
        Моя ошибка была в том, что я писал: Перем МояПеременная, МояПеременная2 Экспорт; а надо так: Перем МояПеременная Экспорт; Перем МояПеременная2 Экспорт; Иначе экспортной будет только МояПеременная2. Неудобно конечно, несклько десятков экспортных переменных объявлять таким способом. Может есть способ задать Экспорта для всего списка переменных?  | 
|||
| 
    159
    
        victuan1    
     02.08.16 
            ✎
    20:32 
 | 
         
        А есть ли пример скрипта (кода), который позволяет заменить текст модуля внешней обработки на другой (например, из текстового файла)?
 
        #ЗагрузитьИзФайла не предлагать.  | 
|||
| 
    160
    
        Зая Бусечка    
     02.08.16 
            ✎
    20:36 
 | 
         
        (159) Предлагаю #ЗагрузитьИзФайла. 
 
        Или напрячь межушный ганглий и осилить документацию к 1сpp и ему сопутствующему turbomd  | 
|||
| 
    161
    
        victuan1    
     02.08.16 
            ✎
    20:40 
 | 
         
        (160) Спасибо)  #ЗагрузитьИзФайла помогло! Вопрос закрываю.
 
        Обратная задача, как программно сохранить текст модуля внешнего отчета в текстовый файл?  | 
|||
| 
    162
    
        Зая Бусечка    
     02.08.16 
            ✎
    20:55 
 | 
         
        (161) gcomp опять не предлагать?     
         | 
|||
| 
    163
    
        victuan1    
     02.08.16 
            ✎
    21:07 
 | 
         
        (162) Да почему же?
 
        Но ведь я прошу _п_р_и_м_е_р_ кода. Пока я изучаю матчасть, может мне предложат более короткий путь? Я себя невольно чувствую изобретателем велосипеда)  | 
|||
| 
    164
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    07:58 
 | 
         
        (161) в формексе есть метод для получения текста модуля + еще был способ один (формекс, вроде как не ловит внешние формы, не помню)     
         | 
|||
| 
    165
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    08:49 
 | 
         
        вспомнил, через информатор еще можно:
 
        http://www.1cpp.ru/docum/html/Informer.html#getmoduletext  | 
|||
| 
    166
    
        victuan1    
     03.08.16 
            ✎
    09:32 
 | 
         
        (165) Спасибо.
 
        Проверяю: конт = ""; ЗагрузитьВнешнююКомпоненту("1cpp.dll"); Информатор = СоздатьОбъект("Информатор"); ОткрытьФорму("Отчет",конт,"F:\1.ert"); стр = Информатор.ПолучитьТекстМодуля(конт); конт.Форма.Закрыть(0); Т = СоздатьОбъект("Текст"); Т.ДобавитьСтроку(стр); Т.Записать("F:\1.txt"); Т.Показать("Файл","F:\1.txt"); Всё нормально, но если модуль 1.ert зашифрован КЗК-2, то стр возвращается пустой. Как решить проблему?  | 
|||
| 
    167
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    09:48 
 | 
         
        (166) никак. Не пользоваться поделками, зашифрованными кзк-2.     
         | 
|||
| 
    168
    
        Это_mike    
     03.08.16 
            ✎
    09:58 
 | 
         
        (166) как ты думаешь, если бы информатором можно было бы получить текст зашифрованного модуля - нужно ли было бы это шифрование? :-)     
         | 
|||
| 
    169
    
        Это_mike    
     03.08.16 
            ✎
    09:59 
 | 
         
        (167) тут все хуже. он хочет и рыбку сьесть, и чешую продать....     
         | 
|||
| 
    170
    
        victuan1    
     03.08.16 
            ✎
    09:59 
 | 
         
        (166) (168) Так мне нужно получить текст модуля в зашифрованном виде! ;)))     
         | 
|||
| 
    171
    
        Это_mike    
     03.08.16 
            ✎
    10:01 
 | 
         
        (170) для подмены чтоль?     
         | 
|||
| 
    172
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    10:01 
 | 
         
        (170) занафига ?
 
        если очень надо, то активмд  | 
|||
| 
    173
    
        victuan1    
     03.08.16 
            ✎
    10:03 
 | 
         
        (171) Подмены чего?
 
        (172) В принципе, выход нашелся, сейчас проверю...  | 
|||
| 
    174
    
        victuan1    
     03.08.16 
            ✎
    10:38 
 | 
         
        (173) Нет, не получилось. Пошел изучать ActiveMD     
         | 
|||
| 
    175
    
        victuan1    
     03.08.16 
            ✎
    10:49 
 | 
         
        (174) Изучил, ну и где в нем работа с внешними обработками?
 
        Идти изучать gcomp?  | 
|||
| 
    176
    
        Это_mike    
     03.08.16 
            ✎
    10:51 
 | 
         
        (172) шоб тему не заводить - на файловой базе прямые запросы на запись только фоксом, 1склайт низя?     
         | 
|||
| 
    177
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    10:58 
 | 
         
        (175) на вот, еще почитай. Не понятно, чего лепишь и чего надо
 
        http://www.1cpp.ru/forum/YaBB.pl?num=1417782474 (176) ага  | 
|||
| 
    178
    
        Это_mike    
     03.08.16 
            ✎
    11:04 
 | 
         
        (177) фокса не ставится на 2008-й у меня почему-то...
 
        пни в нужно мнаправлении - как еще можно "на горячуюю" подменить регистр копией другого? скопировать и поменять имена полей - надо минут 30, а их нет... Иначе к вечеру порвут как грелку...  | 
|||
| 
    179
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:05 
 | 
         
        (178) да ладно ? на 2012 и то ставится     
         | 
|||
| 
    180
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:07 
 | 
         
        вот этот не устанавливается ?
 
        https://www.microsoft.com/en-us/download/details.aspx?id=14839  | 
|||
| 
    181
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:08 
 | 
         
        так то по ado можно еще запрос на инсерт/апдейт.. только имена полей рученьками писать тогда     
         | 
|||
| 
    182
    
        Это_mike    
     03.08.16 
            ✎
    11:11 
 | 
         
        (181) а чойто рученьками? я запрос могу и метапарсером сгенерить.
 
        Но адо - попробую (180) да, вроде его пробовал. Админа нет сейчас на месте, у меня права немного ниже админских. Ну и его зона ответсвенности.  | 
|||
| 
    183
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:12 
 | 
         
        (182) а ну да, через обрметаsql получишь текст, его и пихай в адо тогда     
         | 
|||
| 
    184
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:13 
 | 
         
        только вот, адо, через какой провайдер ? :))     
         | 
|||
| 
    185
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:13 
 | 
         
        лучше всё же vfpoledb заставить работать     
         | 
|||
| 
    186
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:14 
 | 
         
        слушай, а доступа извне нет, по сетке ?
 
        Можешь же запрос на своём компе слепить.  | 
|||
| 
    187
    
        Это_mike    
     03.08.16 
            ✎
    11:15 
 | 
         
        Блин, как кайфно работать на SQL...     
         | 
|||
| 
    188
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:15 
 | 
         
        да и вообще, со сторонней базы запрос выполнить, при желании. Там надо то всего лишь пути до файлов знать     
         | 
|||
| 
    189
    
        Это_mike    
     03.08.16 
            ✎
    11:16 
 | 
         
        (186) хм. попробую щаз. просто сервер удален на пару километров, доступ по рдп
 
        (188) чтоб со сторонеей базы - один хрен нужен фокс на серваке.  | 
|||
| 
    190
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:20 
 | 
         
        (189) да, но мот у тебя есть еще сервачок, на которые есть права, чтоб сам поставил оледб и с него по сетке до базы стучаться     
         | 
|||
| 
    191
    
        Это_mike    
     03.08.16 
            ✎
    11:25 
 | 
         
        (190) ладно, попытаюсь выпросить отсрочку от растрела...     
         | 
|||
| 
    192
    
        victuan1    
     03.08.16 
            ✎
    11:31 
 | 
         
        (180) Связался с АЛьФом, совместно решили проблему. Не понадобился ни АктивМД, ни gcomp, ни Информатор, ни #ЗагрузитьИзФайла.
 
        Всё получилось просто и красиво)))  | 
|||
| 
    193
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:32 
 | 
         
        (192) он еще живой ?
 
        И как решили ?  | 
|||
| 
    194
    
        victuan1    
     03.08.16 
            ✎
    11:39 
 | 
         
        (193) Ну, если мне отвечал не бот, то живой ))))
 
        Решили вместо внешней обработки использовать текстовый файл, который грузить как класс 1с++ в компилятор. Соответственно, проблемы чтения текста из внешней обработки нет, т.к. нет самой внешней обработки ))  | 
|||
| 
    195
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:43 
 | 
         
        (194) и что это даст ?     
         | 
|||
| 
    196
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:44 
 | 
         
        ты и так мог хранить текст класса либо в текстовом файле, либо в ert.. разницы - никакой.     
         | 
|||
| 
    197
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:45 
 | 
         
        Не вкурил, как это поможет в (0) ?     
         | 
|||
| 
    198
    
        victuan1    
     03.08.16 
            ✎
    11:52 
 | 
         
        (197) Сейчас я решал не задачу в (0), а в (161), (166).
 
        С (0) я уже давно разобрался - использую классы 1с++.  | 
|||
| 
    199
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:55 
 | 
         
        (198) и как ты получил с помощью (194) текст модуля закодированный кзк-2 ?     
         | 
|||
| 
    200
    
        victuan1    
     03.08.16 
            ✎
    11:56 
 | 
         
        Еще одну неприятную бяку поймал. 1С падает если в модуле класса обратиться к несуществующей колонке таблицы значений.
 
        Например: сообщить(глСуперТЗ.МояКолонка); уронит 1С, если колонка с идентификатором МояКолонка не существует в глСуперТЗ. Кто-нибудь сталкивался с этим?  | 
|||
| 
    201
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:56 
 | 
         
        или ты свою поделку сам зашифровал и пытался её модуль получить, или что ?     
         | 
|||
| 
    202
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:58 
 | 
         
        (200) попытка-исключение или проверить на существование колонки через видимость     
         | 
|||
| 
    203
    
        victuan1    
     03.08.16 
            ✎
    11:58 
 | 
         
        (199) Мне нужно программно получить ЗАШИФРОВАННЫЙ текст модуля . Я не пытаюсь его расшифровать.
 
        (201) Да, сам шифрую. Я еще в уме, чтобы не пытаться взломать чужие поделки, защищенные КЗК-2.  | 
|||
| 
    204
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    11:59 
 | 
         
        (203) зачем ?     
         | 
|||
| 
    205
    
        victuan1    
     03.08.16 
            ✎
    11:59 
 | 
         
        (202) В попытке и упадет. А через видимость как?     
         | 
|||
| 
    206
    
        victuan1    
     03.08.16 
            ✎
    12:00 
 | 
         
        (203) Чтобы запускать через ВыполняемыйМодуль.     
         | 
|||
| 
    207
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:00 
 | 
         
        (206) храни его в мокселе или в операторах основной программы, тупо в переменной.     
         | 
|||
| 
    208
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:03 
 | 
         
        (205) ВидимостьКолонки вернёт -1 для не существующей колонки     
         | 
|||
| 
    209
    
        victuan1    
     03.08.16 
            ✎
    12:06 
 | 
         
        (208) Кстати через попытку тоже не падает.     
         | 
|||
| 
    210
    
        victuan1    
     03.08.16 
            ✎
    12:14 
 | 
         
        (207) Мне нужно хранить глобальные переменные. Значения которых будут доступны после закрытия объектов, их задающие.
 
        Поэтому я через внешний гл. модуль объявил одну экспортную переменную. Сделал ее таблицей значений с одной строкой, и напихал в нее несколько десятков колонок по числу нужных мне глобальных переменных. Причем состав этих колонок-переменных расширяем в зависимости от выполняемого функционала. Т.е. эти переменные не только глобальные, но и динамические.  | 
|||
| 
    211
    
        victuan1    
     03.08.16 
            ✎
    12:14 
 | 
         
        Можешь предложить решение удобнее?     
         | 
|||
| 
    212
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:19 
 | 
         
        (211) вектор, ассоциативныйВектор, структура - выбирай.     
         | 
|||
| 
    213
    
        victuan1    
     03.08.16 
            ✎
    12:20 
 | 
         
        Неприятно то, что один и тот же код, выполненный в модуле стандартного объекта 1С и в модуле класс 1С++ ведет себя по разному: "поле агрегатного объекта не обнаружен" vs <Падение 1С>. 
 
        Как-то после этого стремаюcь использовать 1с++: мало ли где еще что упадет в самый неподходящий момент. Я думал, что за годы своего развития "плюсы" отлажены и работают надежнее чем сам движок 1С....  | 
|||
| 
    214
    
        victuan1    
     03.08.16 
            ✎
    12:22 
 | 
         
        (212) Хотелось обойтись стандартными объектами 1С 7.7, чтобы можно было при желании быстро переходить на вариант без использования ВК (воткнув весь функционал в стандартный гл. модуль).
 
        А так потеряется гибкость. И будет очередная поделка, жестко зависящая от любого чиха.  | 
|||
| 
    215
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:25 
 | 
         
        (214) Хозяин-барин
 
        массив[100] сделай тогда и привет  | 
|||
| 
    216
    
        victuan1    
     03.08.16 
            ✎
    12:34 
 | 
         
        (215) Это будет точно привет. Надо будет лист распечатать с легендой по этим номерам ))     
         | 
|||
| 
    217
    
        victuan1    
     03.08.16 
            ✎
    12:37 
 | 
         
        Лучше уж тогда СписокЗначений:
 
        глСп.Установить(<ИмяПеременной>,<ЗначениеПеременной>); глСп.Получить(<ИмяПеременной>);  | 
|||
| 
    218
    
        victuan1    
     03.08.16 
            ✎
    12:37 
 | 
         
        Но хотелось еще короче:
 
        глСп.<ИмяПеременной>; Поэтому изначально подошла ТЗ, а тут 1С++ со своими глюками...  | 
|||
| 
    219
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:38 
 | 
         
        (217) он медленнее, в массиве первым элементом храни описание     
         | 
|||
| 
    220
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:38 
 | 
         
        тз, тоже медленно     
         | 
|||
| 
    221
    
        victuan1    
     03.08.16 
            ✎
    12:39 
 | 
         
        (219) Скорость в этом месте не критична. Эти переменные используются при интерактивных действия пользователя.     
         | 
|||
| 
    222
    
        victuan1    
     03.08.16 
            ✎
    12:40 
 | 
         
        СписоЗначений зато динамичен и очень ёмок. В нем миллионы значений можно сохранить.     
         | 
|||
| 
    223
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:42 
 | 
         
        (222) зашифрованный текст модуля просто храни в переменной модуля. Потом скармливай его в вм     
         | 
|||
| 
    224
    
        Ёпрст    
     гуру 
    03.08.16 
            ✎
    12:43 
 | 
         
        и не нужно будет иметь класс для этого     
         | 
|||
| 
    225
    
        victuan1    
     03.08.16 
            ✎
    12:48 
 | 
         
        (224) Зашифрованный текст модуля надо же где-то изначально взять. Он хранится в виде текстового файла, потом я его считываю с помощью BinaryData и выполняю в ВМ.
 
        Вопрос был в создании тиражируемых зашифрованных модулей (т.е. программным способом). С альфом этот вопрос решили.  | 
|||
| 
    226
    
        victuan1    
     03.08.16 
            ✎
    12:50 
 | 
         
        (224) Что класс, что ВМ, примерно одно и то же для моих задач. Решил всё-таки использовать для основных обработок Класс, т.к. с его помощью проще вести разработку и отладку. ВМ использую только для выполнения тех зашифрованных текстовых файлов.     
         | 
|||
| 
    227
    
        victuan1    
     03.08.16 
            ✎
    12:52 
 | 
         
        (220) А разве ТЗ будет медленной, если в ней 100 колонок и одна строка, которая является всегда текущей.
 
        Обращение МояТЗ.МояКолонка будет медленным в этом случае?  | 
|||
| 
    228
    
        victuan1    
     03.08.16 
            ✎
    12:55 
 | 
||||
| 
    229
    
        victuan1    
     04.08.16 
            ✎
    08:50 
 | 
         
        (210) (219) Решил отказаться от идеи динамических экспортных переменных. Будет список статичных переменных.     
         | 
|||
| 
    230
    
        victuan1    
     05.08.16 
            ✎
    10:50 
 | 
         
        Вот с такой проблемой столкнулся.
 
        Скомпилированный КЗК-2 модуль КОП не видит экспортные переменные, объявленные во внешнем дополнительном глобальном модуле (через Formex): Ошибка связывания процедур контекста окружения. <<глобальная переменная (ГЛМОЯПЕРЕМ)>> Класс: МойКласс Файл: F:\МойКласс.ert компиляция не выполнена! Внимание! Инициализация класса: МойКласс закончилась неудачно! Если модуль класса не компилировать, то проблемы нет.  | 
|||
| 
    231
    
        Ёпрст    
     гуру 
    05.08.16 
            ✎
    10:55 
 | 
         
        А как твой класс связан с глобальной переменной из глобальника?     
         | 
|||
| 
    232
    
        Ёпрст    
     гуру 
    05.08.16 
            ✎
    10:56 
 | 
         
        и че за модуль класса ?     
         | 
|||
| 
    233
    
        victuan1    
     05.08.16 
            ✎
    11:06 
 | 
         
        (231) Он читает из нее значение.     
         | 
|||
| 
    234
    
        victuan1    
     05.08.16 
            ✎
    11:06 
 | 
         
        (232) модуль КОП     
         | 
|||
| 
    235
    
        Ёпрст    
     гуру 
    05.08.16 
            ✎
    11:12 
 | 
         
        (233)перед загрузкой класса, доп глобальник уже загружен ?
 
        Ну воткни обманку в код класса, делов-то  | 
|||
| 
    236
    
        Ёпрст    
     гуру 
    05.08.16 
            ✎
    11:12 
 | 
         
        Если 0=1 Тогда
 
        ГЛМОЯПЕРЕМ = "Вася"; КонецЕсли;  | 
|||
| 
    237
    
        victuan1    
     05.08.16 
            ✎
    11:14 
 | 
         
        (236) Нельзя. Эта обманка создает локальную переменную ГЛМОЯПЕРЕМ, даже несмотря на то что ее код не выполняется. Видимо, так работает интерпретатор встроенного языка 1С.     
         | 
|||
| 
    238
    
        victuan1    
     05.08.16 
            ✎
    11:16 
 | 
         
        Обманул через
 
        Функция глПрисвоить(Кому,Что) Кому = Что КонецФункции Шаблон("[глПрисвоить(глПер,ГЛМОЯПЕРЕМ)]");  | 
|||
| 
    239
    
        Ёпрст    
     гуру 
    05.08.16 
            ✎
    11:18 
 | 
         
        (238) можно и так, у меня в примере так и было, не помню     
         | 
|||
| 
    240
    
        victuan1    
     05.08.16 
            ✎
    11:26 
 | 
         
        (239) Ну да, из твоего примера взял.     
         | 
|||
| 
    241
    
        victuan1    
     05.08.16 
            ✎
    11:26 
 | 
         
        Ну вроде поделка получилась, отдал людям потестить)     
         | 
|||
| 
    242
    
        Это_mike    
     05.08.16 
            ✎
    11:36 
 | 
         
        (235) как обмануть Вирт()?     
         | 
|||
| 
    243
    
        Ёпрст    
     гуру 
    05.08.16 
            ✎
    12:14 
 | 
||||
| 
    244
    
        Это_mike    
     08.08.16 
            ✎
    13:35 
 | 
         
        (180) Ёпрст,  пни в правильном направлении по строке соединения с фоксом. 
 
        достал меня этот dbf. Пользую вот так: СтрокаСоединения="DRIVER={Microsoft Visual FoxPro Driver};Deleted=No;Null=Yes;Collate=RUSSIAN;Exclusive=No;SourceType=DBF;SourceDB="+КаталогИБ(); ИБ=СоздатьОбъект("ODBCDataBase"); ИБ.ПрисоединитьИБ(КаталогИБ(), , ,СтрокаСоединения); рс=СоздатьОбъект("ODBCRecordset"); рс.УстБД(ИБ); Результат=рс.ВыполнитьИнструкцию(ТекстЗапроса); Результат.выбратьСтроку(); и так: Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE"; DB = СоздатьОбъект("OLEDBData"); Рез = DB.Соединение(Соединение); Запрос = DB.СоздатьКоманду(); ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); тз.ВыбратьСтроку(); результат одинаков: FAILED! ICommandText::Execute():  | 
|||
| 
    245
    
        Злопчинский    
     08.08.16 
            ✎
    13:39 
 | 
         
        у мну вот так работает
 
        Попытка База = СоздатьОбъект("OLEDBData"); RS = База.Соединение(" |Provider=VFPOLEDB.1; |Null = Yes; |Exclusive = No; |SourceType = DBF; |Data Source=" + КаталогИБ() + "; |Mode=ReadWrite; |Extended Properties=""""; |User ID=""""; |Password=""""; |Mask Password=False; |Collating Sequence=MACHINE; |DSN="""""); //Это ВАЖНО !!! соединение Collating Sequence=MACHINE Запрос = База.СоздатьКоманду();  | 
|||
| 
    246
    
        Это_mike    
     08.08.16 
            ✎
    13:45 
 | 
         
        (245) нифига.     
         | 
|||
| 
    247
    
        Это_mike    
     08.08.16 
            ✎
    13:45 
 | 
         
        ЧЯНТД?     
         | 
|||
| 
    248
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:06 
 | 
||||
| 
    249
    
        Это_mike    
     08.08.16 
            ✎
    14:11 
 | 
         
        (248) такая же фигня     
         | 
|||
| 
    250
    
        Это_mike    
     08.08.16 
            ✎
    14:11 
 | 
         
        скульлайт у меня работает, а вот фокса не хочет     
         | 
|||
| 
    251
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:16 
 | 
         
        (249) запрос то какой хоть ?     
         | 
|||
| 
    252
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:16 
 | 
         
        кажи :)     
         | 
|||
| 
    253
    
        Это_mike    
     08.08.16 
            ✎
    14:24 
 | 
         
        (252) да любой. последний - 
 
        |select |J.iddoc |from _1journ J |order by | J.iddoc  | 
|||
| 
    254
    
        Это_mike    
     08.08.16 
            ✎
    14:25 
 | 
         
        что-то со строкой, или с драйвером, чтоль...     
         | 
|||
| 
    255
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:28 
 | 
         
        (253) в фоксе критично в некоторых местах отсутствие as     
         | 
|||
| 
    256
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:29 
 | 
         
        И это, нафига тебе фокс, если ты к скулю подключаешься ?
 
        _1journ?  | 
|||
| 
    257
    
        Это_mike    
     08.08.16 
            ✎
    14:33 
 | 
         
        (256) глаз замылился.
 
        исправил, но результат не изменился. поставил "as", тоже без толку.  | 
|||
| 
    258
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:34 
 | 
         
        этот провайдер воткни
 
        https://www.microsoft.com/en-us/download/details.aspx?id=14839  | 
|||
| 
    259
    
        Это_mike    
     08.08.16 
            ✎
    14:34 
 | 
         
        его и воткнул     
         | 
|||
| 
    260
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:36 
 | 
         
        Это, монопольно база открыта ?     
         | 
|||
| 
    261
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:36 
 | 
         
        там если че, нужно заплатку от hogik ставить, чтоб в монопольном режиме запросы фокса запущать :)     
         | 
|||
| 
    262
    
        Это_mike    
     08.08.16 
            ✎
    14:37 
 | 
         
        (260) Нет, в разделенном.     
         | 
|||
| 
    263
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:38 
 | 
||||
| 
    264
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:38 
 | 
         
        (262) 
 
        такой тоже не выполняется ? select * from 1sjourn  | 
|||
| 
    265
    
        Это_mike    
     08.08.16 
            ✎
    14:41 
 | 
         
        (264) хм. такой выполнился.     
         | 
|||
| 
    266
    
        Это_mike    
     08.08.16 
            ✎
    14:41 
 | 
         
        "ниссего нипанимаю"©     
         | 
|||
| 
    267
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:41 
 | 
         
        (265) это, еще был прикол с табуляцией     
         | 
|||
| 
    268
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:42 
 | 
         
        метапарсер её не жувал, в каких то случаях.
 
        Каких, не вспомню, табуляцию не использовал, токма пробелы.  | 
|||
| 
    269
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:42 
 | 
         
        (266) давай реальный запрос, который с ошибкой :)     
         | 
|||
| 
    270
    
        Это_mike    
     08.08.16 
            ✎
    14:43 
 | 
         
        Ладно, извиняюсь за беспокойство, пошел мучить апдейт.
 
        после сиквельной версии..  | 
|||
| 
    271
    
        Это_mike    
     08.08.16 
            ✎
    14:43 
 | 
         
        после сиквельной версии в файловой "все не так"     
         | 
|||
| 
    272
    
        Это_mike    
     08.08.16 
            ✎
    14:44 
 | 
         
        (269) да реального не было, только поставил, апдейтнуть надо табличку     
         | 
|||
| 
    273
    
        Ёпрст    
     гуру 
    08.08.16 
            ✎
    14:45 
 | 
         
        (272) ну.. там тоже всё примитив:
 
        ТекстЗапроса = " |Update Номенклатура |SET $Номенклатура.ОсновнаяЕдиница = $Номенклатура.БазоваяЕдиница |FROM $Справочник.Номенклатура as Номенклатура |Where $Номенклатура.ОсновнаяЕдиница = $ПустойИд and Номенклатура.isfolder=2";  | 
|||
| 
    274
    
        victuan1    
     21.08.16 
            ✎
    17:10 
 | 
         
        Насколько глючная эта 1с++?
 
        Имею в виду последнюю версию (3.2.2.0). Очень тяжело отлаживать модули пользовательских классов - постоянно зависает 1С на точке останова в отладчике. Ничего криминального в коде нет. Если текст модуля из класса перенести в модуль внешней обработки, вызываемой стандартным способом, то отладчик не виснет на точке останова. Винда 7 32-битная.  | 
|||
| 
    275
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    08:14 
 | 
         
        3.2.4.3
 
        хз че там у тебя, на XP ничего не виснет, нигде  | 
|||
| 
    276
    
        ADirks    
     22.08.16 
            ✎
    08:16 
 | 
         
        (274) Отладка глючит, да
 
        У тебя классы как оформлены? В ert или txt? версия 3.2.4.2  | 
|||
| 
    277
    
        Это_mike    
     22.08.16 
            ✎
    08:22 
 | 
         
        (275) на семерке есть глюки при отладке.     
         | 
|||
| 
    278
    
        victuan1    
     22.08.16 
            ✎
    09:31 
 | 
         
        (276) в ert.
 
        Кстати, еще неудобно, что класс в ert не имеет доступа к табличному документу (Таблица), которая находится в этой же ert.  | 
|||
| 
    279
    
        victuan1    
     22.08.16 
            ✎
    09:32 
 | 
         
        (277) Устранить нельзя?
 
        А также есть проблемы с "плюсами" в Виндовс 10 (32/64) в режиме Предприятие?  | 
|||
| 
    280
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    09:34 
 | 
         
        (278) имеет     
         | 
|||
| 
    281
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    09:35 
 | 
         
        как и к остальным атрибутам формы.     
         | 
|||
| 
    282
    
        victuan1    
     22.08.16 
            ✎
    09:40 
 | 
         
        В модуле КОП такой код:
 
        ИмяИсхТаблицы = "КодыАлкоголя"; ТаблицаПеречень = СоздатьОбъект("Таблица"); ТаблицаПеречень.ИсходнаяТаблица(ИмяИсхТаблицы); ТаблицаПеречень.Вывести(); НомСтрокиТаблицы = 2; Пока Лев(ТаблицаПеречень.Область(НомСтрокиТаблицы, 1).Текст, 3) <> "###" Цикл Код = СокрЛП(ТаблицаПеречень.Область(НомСтрокиТаблицы, 1).Текст); Наименование = СокрЛП(ТаблицаПеречень.Область(НомСтрокиТаблицы, 2).Текст); спКл.ДобавитьЗначение(Код,нрег(сокрлп(Наименование))); НомСтрокиТаблицы = НомСтрокиТаблицы + 1; КонецЦикла; выдает сообщение "Файл КодыАлкоголя не найден!"  | 
|||
| 
    283
    
        victuan1    
     22.08.16 
            ✎
    09:46 
 | 
         
        Исключение возникает на строке:
 
        ТаблицаПеречень.ИсходнаяТаблица(ИмяИсхТаблицы); В ert-шку с КОП таблица с именем КодыАлкоголя добавлена.  | 
|||
| 
    284
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:09 
 | 
||||
| 
    285
    
        victuan1    
     22.08.16 
            ✎
    10:18 
 | 
         
        (284) Т.е. путь к ерт-шке надо указывать?     
         | 
|||
| 
    286
    
        victuan1    
     22.08.16 
            ✎
    10:19 
 | 
         
        Мне нужно из самого класса обратиться к таблице, которая находится в ерт-шке этого же класса.
 
        Тоже надо путь указывать?  | 
|||
| 
    287
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:19 
 | 
         
        (285) да     
         | 
|||
| 
    288
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:20 
 | 
         
        (286) да, тупо получив РасположениеФайла()     
         | 
|||
| 
    289
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:20 
 | 
         
        Ну и коды свои, можешь и не в мокселе хранить, а просто в переменной.     
         | 
|||
| 
    290
    
        victuan1    
     22.08.16 
            ✎
    10:33 
 | 
         
        (287) Угу, получилось. У меня это так выглядит:
 
        ТаблицаПеречень.ИсходнаяТаблица(ИмяИсхТаблицы,СпПутей.ПолучитьЗначение(2)+ИмяКласса);  | 
|||
| 
    291
    
        victuan1    
     22.08.16 
            ✎
    10:34 
 | 
         
        (289) Откуда я эти коды загружу в переменную? Мне нужно организовать постоянное хранилище этих кодов, с возможностью простого обновления. Удобнее всего в Таблица.     
         | 
|||
| 
    292
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:40 
 | 
         
        (291) да просто в коде пишешь
 
        перем Коды Экспорт; ... коды = "200#Водка#500#Пивасик"; и усё Дальше имеешь хоть массив хоть структуру, хоть тз или че те там надо из строки. Можешь и значениеИзСтроки сразу, в общем, как угодно. Не обязательно это в мокселе хранить  | 
|||
| 
    293
    
        victuan1    
     22.08.16 
            ✎
    10:42 
 | 
         
        (292) Не удобно мне так. Все классификаторы у меня давно запилены в мокселе. Я просто их переношу теперь в класс. Ты мне предлагаешь за так доп. объем работы? ))     
         | 
|||
| 
    294
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:42 
 | 
         
        Абрхамс, раньше, в операторах основной программы, целые вк пихал в бэйс64 в виде строки, и ничего :). Хотя в мокселе да, удобнее     
         | 
|||
| 
    295
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:42 
 | 
         
        (293) ну, можешь формировать строку из мокселя и пихать в класс. Хоть в зашифрованном виде.     
         | 
|||
| 
    296
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:43 
 | 
         
        Зато, можешь весь класс хранить как строку и подключать когда хочешь, не имея самой формы класса.     
         | 
|||
| 
    297
    
        victuan1    
     22.08.16 
            ✎
    10:45 
 | 
         
        (295) Да, уже всё сделал я! Работает у меня моксель в классе. Помог ты мне ссылкой. Спасибо.     
         | 
|||
| 
    298
    
        victuan1    
     22.08.16 
            ✎
    10:45 
 | 
         
        (296) Мне так не надо. Мне нужен инструмент для отладки классов. А вот он виснет в винде 7.     
         | 
|||
| 
    299
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    10:49 
 | 
         
        (298) поставь виртуалку и в ней православную хрюшу, там и отлаживай. Там нет проблем ни с какими вк.     
         | 
|||
| 
    300
    
        victuan1    
     22.08.16 
            ✎
    10:54 
 | 
         
        (299) Мне нужно чтобы и клиент мог отлаживать без всяких ограничений. Иначе могут запинать меня: "Сделал поделку на ВК, которые вешают 1С".     
         | 
|||
| 
    301
    
        victuan1    
     22.08.16 
            ✎
    10:56 
 | 
         
        Может ADirks что подскажет?
 
        А где взять 1с++ 3.2.4.3 По ссылке http://www.1cpp.ru/images/3/32/Icpp-latest.rar не та  | 
|||
| 
    302
    
        Злопчинский    
     22.08.16 
            ✎
    11:00 
 | 
         
        ну так в итоге - первоначальную-то задачу в (0) удалось решить?     
         | 
|||
| 
    303
    
        victuan1    
     22.08.16 
            ✎
    11:03 
 | 
         
        (302) Да, задача была немного трансформирована и успешно решена с использованием 1с++ (и опционально FormEx)     
         | 
|||
| 
    304
    
        victuan1    
     22.08.16 
            ✎
    11:04 
 | 
         
        Т.е вместо внешней обработки юзаются Классы, а они не видимы априори.     
         | 
|||
| 
    305
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    11:06 
 | 
||||
| 
    306
    
        aka AMIGO    
     22.08.16 
            ✎
    11:09 
 | 
         
        формексы.. суперпуперклассы..
 
        Есть простейшее решение средствами самой 1с v7. Для начала - из формы диалога отчета/обработки убирается кнопка типа "Сформировать". Процедура остается, чтобы быть вызванной из "ПриОткрытии()" http://pics.rsh.ru/img/10_zci8kzl5.png как здесь: http://pics.rsh.ru/img/12_v8zbme3d.png Процедурка вызова - в нужном месте модуля документа/справочника/пр.др.. http://pics.rsh.ru/img/13_79y81bru.png и - результат. Только отчет, диалога нет: http://pics.rsh.ru/img/14_v7wgz8aw.png  | 
|||
| 
    307
    
        victuan1    
     22.08.16 
            ✎
    11:17 
 | 
         
        (306) Таблица в РВД?     
         | 
|||
| 
    308
    
        victuan1    
     22.08.16 
            ✎
    11:18 
 | 
         
        (305) ух ты!
 
        "Добавил в icpp объекты для последовательного чтения и записи XML файлов. Решение базируется на XmlLite"  | 
|||
| 
    309
    
        aka AMIGO    
     22.08.16 
            ✎
    11:20 
 | 
         
        (307) "Пустая"     
         | 
|||
| 
    310
    
        Злопчинский    
     22.08.16 
            ✎
    11:20 
 | 
         
        (306) хм.. автору вроде нужно было обеспечить постояннуую "видимость" объектов/переменных, то есть некий "дополнительный глобальный контекст"...?     
         | 
|||
| 
    311
    
        victuan1    
     22.08.16 
            ✎
    11:26 
 | 
         
        (306) Похожий подход у меня тоже реализован. Но он не подходит когда, нужно:
 
        1) хранить значение переменной, не объявленной в гл. модуле, пока запущен сеанс 1С 2) избежать потери времени на исполнение метода ОтрытьФорму("Отчет.ХХХ")  | 
|||
| 
    312
    
        victuan1    
     22.08.16 
            ✎
    11:27 
 | 
         
        (305) А официал-ссылки нету?     
         | 
|||
| 
    313
    
        Злопчинский    
     22.08.16 
            ✎
    11:27 
 | 
         
        (311) так в итоге - как вывернулся-то?     
         | 
|||
| 
    314
    
        aka AMIGO    
     22.08.16 
            ✎
    11:28 
 | 
         
        (310) Ну, так если надо, чтобы что-нибудь было видно можно изменить режим вывода таблицы:
 
        http://pics.rsh.ru/img/15_km0y28f2.png (311) Понятно. Успеха!  | 
|||
| 
    315
    
        Злопчинский    
     22.08.16 
            ✎
    11:30 
 | 
         
        (314) товарищ и не читатель и не писатьель? хочу иметь дополнительную переменную, видимую во всех прочих внешних отчетах и обработках, причем эту доппеременную - без изменения конфигурации ...     
         | 
|||
| 
    316
    
        victuan1    
     22.08.16 
            ✎
    11:30 
 | 
         
        (305) А XmlLite.dll встроена в 1с++ или должна отдельно валяться?     
         | 
|||
| 
    317
    
        aka AMIGO    
     22.08.16 
            ✎
    11:31 
 | 
         
        (315) Писатель, и только :)     
         | 
|||
| 
    318
    
        victuan1    
     22.08.16 
            ✎
    11:32 
 | 
         
        (313) С помощью Формекс создаю доп. глобальник, который содержит только эту доп. переменную.
 
        А остальной функционал на Классе, ссылка на который сохраняется в этой переменной.  | 
|||
| 
    319
    
        victuan1    
     22.08.16 
            ✎
    11:33 
 | 
         
        Уточню, в доп. переменной хранится ЭКЗЕМПЛЯР класса. Т.о. всего его атрибуты доступны на все время сессии 1С.     
         | 
|||
| 
    320
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    11:40 
 | 
         
        (316) всё встроено     
         | 
|||
| 
    321
    
        victuan1    
     22.08.16 
            ✎
    11:42 
 | 
         
        (320) А есть примеры использования xmllite?     
         | 
|||
| 
    322
    
        victuan1    
     22.08.16 
            ✎
    11:44 
 | 
         
        И чем она выгодно отличается от ВК OpenXML (http://x-romix.narod.ru/)?     
         | 
|||
| 
    323
    
        Ёпрст    
     гуру 
    22.08.16 
            ✎
    11:45 
 | 
         
        (321) выкладывали на 1cpp, я не пользовался, меня и домдокумент устраивает     
         | 
|||
| 
    324
    
        victuan1    
     23.08.16 
            ✎
    22:24 
 | 
         
        Еще один баг 1С++.
 
        Пытаюсь загрузить КОП методом МетаИнфо.ЗагрузитьОписаниеКлассов(стр) Стр содержит строку: класс Вася.Пупкин=I:\ВА СЯ\Вася_Пупкин.ert{} как видим в имени папки (ВА СЯ) есть пробел. Получаем ошибку: Не существует файла: I:\ВАСЯ\Вася_Пупкин.ert для класса: Вася.Пупкин Регистрация класса закончилась неудачно! Пробел пропал!!! Пытался имя файла с путем заключить в кавычки, эффект тот же: класс Вася.Пупкин="I:\ВА СЯ\Вася_Пупкин.ert"{} Как забороть этот страшный косяк?  | 
|||
| 
    325
    
        victuan1    
     23.08.16 
            ✎
    23:05 
 | 
         
        То же самое будет если задать класс через defcls.prm (с пробелом в имени папки). 
 
        В имени папки пробел присутствует на самом деле. (Переименовать папку не предлагать)  | 
|||
| 
    326
    
        Злопчинский    
     23.08.16 
            ✎
    23:17 
 | 
         
        ЛичноЯПапкиВсегдаНазываюБезПробелов     
         | 
|||
| 
    327
    
        victuan1    
     24.08.16 
            ✎
    00:26 
 | 
         
        (326) Клиент всегда прав! (с) Так что не обсуждается.     
         | 
|||
| 
    328
    
        Djelf    
     24.08.16 
            ✎
    01:46 
 | 
         
        (327) Ну так почини... исходники 1с++ открыты.     
         | 
|||
| 
    329
    
        victuan1    
     24.08.16 
            ✎
    04:25 
 | 
         
        (328) Вот это поворот!
 
        Не смогу - квалификации и времени на повышение квалификации на данный момент нет.  | 
|||
| 
    330
    
        Chieftain    
     24.08.16 
            ✎
    06:41 
 | 
         
        (324) Кладем файл I:\ВАСЯ\Вася_Пупкин.prm, содержащий текст
 
        "класс Вася.Пупкин=Вася_Пупкин.ert{}" затем делаем МетаИнфо.ЗагрузитьОписаниеКлассов("I:\ВАСЯ\Вася_Пупкин.prm")  | 
|||
| 
    331
    
        victuan1    
     24.08.16 
            ✎
    08:12 
 | 
         
        (330) Не помогло, и я даже не удивлен, т.к. пробел в ВАСЯ надо ставить и в этом варианте:
 
        "класс Вася.Пупкин=Вася_Пупкин.ert{}" затем делаем МетаИнфо.ЗагрузитьОписаниеКлассов("I:\ВА СЯ\Вася_Пупкин.prm") Тупит именно ЗагрузитьОписаниеКлассов(), видимо оно вырезает в строке все пробелы и напрасно.  | 
|||
| 
    332
    
        Chieftain    
     24.08.16 
            ✎
    08:18 
 | 
         
        (331) А я удивлен.
 
        MetaInfoClasses = СоздатьОбъект("MetaInfoClasses"); MetaInfoClasses.ЗагрузитьОписаниеКлассов("d:\Папка С пробелами\Вася_Пупкин.prm"); Внутри Вася_Пупкин.prm: класс Вася.Пупкин=Вася_Пупкин.ert{}  | 
|||
| 
    333
    
        Chieftain    
     24.08.16 
            ✎
    08:21 
 | 
         
        +(332) У меня уже 100 лет на любых путях работает код:
 
        // ИНИЦИАЛИЗАЦИЯ КЛАССОВ КаталогКлассов = КаталогИБ()+"Extented\Classes\"; MetaInfoClasses = СоздатьОбъект("MetaInfoClasses"); ПОИСК_КЛАССОВ = СоздатьОбъект("ФС"); ИмяФайла = ПОИСК_КЛАССОВ.НайтиПервыйФайл(КаталогКлассов+"*.prm"); Пока ПустаяСтрока(ИмяФайла)=0 Цикл MetaInfoClasses.ЗагрузитьОписаниеКлассов(КаталогКлассов+ИмяФайла); ИмяФайла = ПОИСК_КЛАССОВ.НайтиСледующийФайл(); КонецЦикла; Пробелы режутся если полный путь указан, а если путь не указан, берется относительно prm-файла и все ок  | 
|||
| 
    334
    
        victuan1    
     25.08.16 
            ✎
    04:47 
 | 
         
        (332) А я не понимаю. Этот код выдает ошибку, которую я выше писал. Из-за чего это может быть?
 
        Какую версию 1с++ используешь?  | 
|||
| 
    335
    
        Chieftain    
     25.08.16 
            ✎
    04:49 
 | 
         
        (334) Где пробовал - там 3.2.3.18
 
        Покажи содержимое Вася_Пупкин.prm  | 
|||
| 
    336
    
        victuan1    
     25.08.16 
            ✎
    06:00 
 | 
         
        Не существует файла: F:\ВАСЯ\ВАСЯ_Пупкин.prm для класса: ВАСЯ.Пупкин
 
        Регистрация класса закончилась неудачно! (Папка на самом деле называется ВА СЯ) содержимое: Класс ВАСЯ.Пупкин=ВАСЯ_Пупкин.ert{};  | 
|||
| 
    337
    
        victuan1    
     25.08.16 
            ✎
    06:06 
 | 
         
        (335) Блин! Моя невнимательность, неправильно задал строку для   ЗагрузитьОписаниеКлассов()
 
        Всё работает! Респект тебе.  | 
|||
| 
    338
    
        Злопчинский    
     25.08.16 
            ✎
    23:28 
 | 
         
        вы такие умные, ребята!
 
        чувствую себя полным идиётом...  | 
|||
| 
    339
    
        victuan1    
     27.08.16 
            ✎
    12:52 
 | 
         
        Вопрос про пиктограммы. Имеются типовые (или почти) конфигурации, в них нужно внедрить новые справочники и документы (через режим "Объединение конфигураций"), которые используют в табличных частях (формах списка, ТЧ документа) пиктограммы, которых нет в типовой конфигурации в библиотеке "Общие картинки".
 
        Задача многократно повторяемая. Можно ли как-то используя 1с++ безгеморно решить эту проблему?  | 
|||
| 
    340
    
        victuan1    
     27.08.16 
            ✎
    12:55 
 | 
         
        (275) Спасибо, 3.2.4.3 не виснет при отладке в Вин 7.     
         | 
|||
| 
    341
    
        Ёпрст    
     гуру 
    29.08.16 
            ✎
    09:49 
 | 
         
        (339) дык картинки храни просто на форме, на невидимом слое, или в мокселе. И бери оттуда. Не грузя их в "Общие картинки"     
         | 
|||
| 
    342
    
        victuan1    
     29.08.16 
            ✎
    18:01 
 | 
         
        (341) А как хранить на форме и как брать?     
         | 
|||
| 
    343
    
        victuan1    
     29.08.16 
            ✎
    19:02 
 | 
         
        Ну как хранить понятно, а как брать?     
         | 
|||
| 
    344
    
        Dmitry77    
     29.08.16 
            ✎
    19:24 
 | 
         
        В 77 есть #ЗагрузитьИзФайла 
 
        Повесил это код на кнопку и переписывай файл пока не надоест...  | 
|||
| 
    345
    
        victuan1    
     29.08.16 
            ✎
    19:31 
 | 
         
        (344) Мне не это нужно.     
         | 
|||
| 
    346
    
        Ёпрст    
     гуру 
    30.08.16 
            ✎
    10:50 
 | 
         
        (343) Подсовывать в штатные контролы, возможно будет только с помощью дюнаврап и классов от chessman     
         | 
|||
| 
    347
    
        Ёпрст    
     гуру 
    30.08.16 
            ✎
    10:51 
 | 
         
        либо, переписывать на табличное поле и там, как угодно.     
         | 
|||
| 
    348
    
        victuan1    
     30.08.16 
            ✎
    20:16 
 | 
         
        (346) Ох блин! Т.е. простого пути нет?
 
        А ссылка на хороший пример из "дюнаврап и классов от chessman" у тебя есть? Или мне в гугль идти?  | 
|||
| 
    349
    
        victuan1    
     30.08.16 
            ✎
    20:21 
 | 
         
        Гугль не дал примеров именно для ТЧ списка или документа. Только для вкладок, списков значений...     
         | 
|||
| 
    350
    
        victuan1    
     30.08.16 
            ✎
    20:27 
 | 
         
        А если задачу поставить проще? Пусть картинки добавлены в "Общие картинки". Как узнать идентификатор нужной картинки и этот ИД установить для ТЧ?     
         | 
|||
| 
    351
    
        Ёпрст    
     гуру 
    31.08.16 
            ✎
    09:58 
 | 
         
        (350) Класс Система и там ПолучитьОлеКартинку, посмотри в справке метод     
         | 
|||
| 
    352
    
        Ёпрст    
     гуру 
    31.08.16 
            ✎
    10:02 
 | 
         
        ПолучитьOLEКартинку, если быть точнее     
         | 
|||
| 
    353
    
        victuan1    
     01.09.16 
            ✎
    08:36 
 | 
         
        (340) Но зато теперь виснет в отладчике на "православной ХР" ))
 
        Блин, что за бяка такая!  | 
|||
| 
    354
    
        victuan1    
     01.09.16 
            ✎
    13:00 
 | 
         
        Да, и на Вин 7 бывает зависает. Короче, не дружат плюсы с отладчиком. Печально..     
         | 
|||
| 
    355
    
        victuan1    
     01.09.16 
            ✎
    21:38 
 | 
         
        Вылетает, если в отладчике пытаться прочитать значение переменной, которая не существует в данном контексте.     
         | 
|||
| 
    356
    
        victuan1    
     07.09.16 
            ✎
    18:52 
 | 
         
        На одном компьютере обнаружил еще одну бяку. Если загружены 1с++ и Формекс, то при использовании КОП 1с++, происходит падение 1с на операторе Предупреждение().
 
        Если формекс не загружать, то падения не происходит. Как лечить?  | 
|||
| 
    357
    
        victuan1    
     08.09.16 
            ✎
    10:34 
 | 
         
        ап. вопрос серьезный.     
         | 
|||
| 
    358
    
        ADirks    
     08.09.16 
            ✎
    10:43 
 | 
         
        В каком порядке грузятся компоненты?
 
        Что ещё грузится? крайне желательно, чтобы первой грузилась 1cpp, потом FormEx, а потом уж всё остальное  | 
|||
| 
    359
    
        victuan1    
     08.09.16 
            ✎
    12:22 
 | 
         
        Сначала грузиться 1с++, потом формекс, потом подключается класс через МетаИнфо, затем в классе вызывается Предупрждение.
 
        Если из этой цепочки убрать загрузку формекса, то траблы нет. Пока на одном компьютере такая бяка обнаружена.  | 
|||
| 
    360
    
        victuan1    
     08.09.16 
            ✎
    13:28 
 | 
         
        какую еще инфу предоставить?     
         | 
|||
| 
    361
    
        Ёпрст    
     гуру 
    08.09.16 
            ✎
    14:26 
 | 
         
        >>>затем в классе вызывается Предупрждение. 
 
        Зачем ?  | 
|||
| 
    362
    
        Ёпрст    
     гуру 
    08.09.16 
            ✎
    14:27 
 | 
         
        Используй лучше "Легкое сообщение" заместо этого, и красившее и систему не стопарит     
         | 
|||
| 
    363
    
        Это_mike    
     08.09.16 
            ✎
    14:36 
 | 
         
        (362)офф. А почему Турбомд может не работать? Из-за перехватчика - может?
 
        А то вот понадобилось внезапно под конец, и не заработало  | 
|||
| 
    364
    
        victuan1    
     08.09.16 
            ✎
    15:35 
 | 
         
        Обнаружил что еще запускается класс с перехватчиком предопределенных процедур.     
         | 
|||
| 
    365
    
        victuan1    
     08.09.16 
            ✎
    15:36 
 | 
         
        (362) Что такое "легкое сообщение"?     
         | 
|||
| 
    366
    
        victuan1    
     08.09.16 
            ✎
    16:11 
 | 
         
        Проверил влияние Перехватчика отключением он не причем. Виснет 1С если запущен формекс, если формекс не запускать, то не виснет. Куда копать дальше?     
         | 
|||
| 
    367
    
        Это_mike    
     08.09.16 
            ✎
    16:19 
 | 
         
        (366) а какие-нибудь формексовские объекты создаются? или только загрузка?     
         | 
|||
| 
    368
    
        Ёпрст    
     гуру 
    08.09.16 
            ✎
    17:42 
 | 
         
        (363) Их есть несколько версий и только одна корректно более менее работает с 1cpp     
         | 
|||
| 
    369
    
        Ёпрст    
     гуру 
    08.09.16 
            ✎
    17:47 
 | 
||||
| 
    370
    
        Ёпрст    
     гуру 
    08.09.16 
            ✎
    17:57 
 | 
         
        (363) вот эта
 
        https://cloud.mail.ru/public/Micg/RNZLTUP6K  | 
|||
| 
    371
    
        victuan1    
     08.09.16 
            ✎
    19:35 
 | 
         
        (367) упростил всё до минимума - только загрузка 
 
        (368) 2.0.5.108  | 
|||
| 
    372
    
        victuan1    
     10.09.16 
            ✎
    14:51 
 | 
         
        Ну вот, еще на одном компьютере тоже зависло. Но уже на операторе Вопрос() внутри КОП.
 
        Формекс не загружался, только 1с++. Как решить проблему?  | 
|||
| 
    373
    
        victuan1    
     10.09.16 
            ✎
    18:04 
 | 
         
        (372) Нет, формекс там стоит в закгрузке ПриНачалеРаботыСистемы. просто версия древняя, в Сервис-Параметры не отображалась. Отключил загрузку формекса - проблема ушла. Запуск 1с++ перед формексом не решает проблему.     
         | 
|||
| 
    374
    
        victuan1    
     10.09.16 
            ✎
    18:22 
 | 
         
        Удалось создать демо-пример для иллюстрации ошибки. Если есть заинтересованные, то могу выслать для анализа кода.     
         | 
|||
| 
    375
    
        victuan1    
     10.09.16 
            ✎
    18:50 
 | 
         
        Для всех заинтересованных: https://yadi.sk/d/ODIKTzSFuyqUN
 
        Для иллюстрации проблемы используются файлы: ПроверкаКОП.ert - обработка, инициализирующая КОП. КОП_Проверка.ert - собственно класс. Порядок действий, приводящий к появлению проблемы: 1) в гл. модуле конфигурации 1С нужно объявить экспортную переменную глКОП: Перем глКОП Экспорт; 2) В режиме 1С:Предприятие открыть ПроверкаКОП.ert, нажать кнопку Сформировать, затем Проверка - произойдет показ диалогов Предупреждение и Вопрос. 3) Закрыть обработку ПроверкаКОП.ert 4) Снова открыть ПроверкаКОП.ert, нажать кнопку Проверка - произойдет зависание программы 1С. Отладчик остановится на операторе Предупреждение внутри класса КОП_Проверка.ert Если кнопку Проверка нажимать повторно, не закрывая обработку ПроверкаКОП.ert - зависания не происходит. Т.е. проблема возникает при переопредении переменной, ссылающейся на экземпляр класса. 1с++ использовалась версии 3.2.4.3. Формекс - 2.0.5.108, но на более ранних версиях проблема сохраняется.  | 
|||
| 
    376
    
        victuan1    
     10.09.16 
            ✎
    18:53 
 | 
         
        Возможно окна Предупреждение или Вопрос появляются, но они невидимы и нет возможности их интерактивно обработать.     
         | 
|||
| 
    377
    
        Djelf    
     10.09.16 
            ✎
    21:54 
 | 
         
        (375) Win10, 1cpp 3.2.4.3, formex 2.0.5.101 - все ок.
 
        А если таймаут в предупреждении и вопросе указать тоже замерзает?  | 
|||
| 
    378
    
        victuan1    
     11.09.16 
            ✎
    05:04 
 | 
         
        (377) Не успел еще проверить. При случае проверю. Мне приходится удаленно подключаться к клиенту для проверки. Т.к. на моих компах подобного сабжа нет.     
         | 
|||
| 
    379
    
        victuan1    
     12.09.16 
            ✎
    12:08 
 | 
         
        Доп. информация. "Замерзает" именно из-за переопределения переменной, ссылающейся на экземпляр класса:
 
        глЕ = глКОП; глЕ.ИмяФайлаОбработки("Проверка") В таком виде: глКОП.ИмяФайлаОбработки("Проверка") зависания при повторном запуске обработки не происходит. Таймаут в Предупреждение не помогает.  | 
|||
| 
    380
    
        victuan1    
     12.09.16 
            ✎
    12:22 
 | 
         
        Если Формекс не загружать, то зависания также нет при любом варианте.
 
        На одном из двух компьютеров сторонний дебаггер сообщает об необработанном исключении в 1cv7s.exe (https://yadi.sk/i/YdHco4Guv4HjN). Могу организовать удаленный доступ на компьютер, в котором имеет место быть сабж (уже два таких устойчивых инцидента на разных компьютерах зарегистрированы).  | 
|||
| 
    381
    
        Ёпрст    
     гуру 
    12.09.16 
            ✎
    12:30 
 | 
         
        Ничего не падает и не "подвисает"
 
        Win2012 x64 Win XP x32  | 
|||
| 
    382
    
        Злопчинский    
     12.09.16 
            ✎
    12:38 
 | 
         
        смотреть версии формекса и 1С++ ???     
         | 
|||
| 
    383
    
        victuan1    
     12.09.16 
            ✎
    13:51 
 | 
         
        (382) А что смотреть? Последние стоят.     
         | 
|||
| 
    384
    
        victuan1    
     12.09.16 
            ✎
    13:51 
 | 
         
        (381) Этот сабж я воспроизвел на двух ПК из 20. Могут дать уд. доступ к сабжевому компу.     
         | 
|||
| 
    385
    
        Djelf    
     12.09.16 
            ✎
    17:30 
 | 
         
        Поймал вылет! Еще одно условие для вылета: объявление  переменной глКОП не должно быть первым в глобальнике.
 
        Странно, вчера не вылетало...  | 
|||
| 
    386
    
        victuan1    
     12.09.16 
            ✎
    17:58 
 | 
         
        (385) У меня первым стоит.     
         | 
|||
| 
    387
    
        Djelf    
     12.09.16 
            ✎
    18:28 
 | 
         
        (386) Вот поэтому и вылетает не всегда. Перемести пониже будет вылетать стабильнее.
 
        Присвоение глЕ=глКОП тоже не обязательно... Похоже при закрытии формы глКОП как то портится Без formex, кстати, тоже вылетает, даже на таком коде 
     | 
|||
| 
    388
    
        victuan1    
     12.09.16 
            ✎
    18:32 
 | 
         
        (387) Мне без формекса уронить не удалось ни разу.     
         | 
|||
| 
    389
    
        Злопчинский    
     12.09.16 
            ✎
    19:09 
 | 
         
        продолжаю наблюдение...     
         | 
|||
| 
    390
    
        Djelf    
     12.09.16 
            ✎
    21:14 
 | 
         
        А что там наблюдать? И так уже понятно.
 
        Открытие модальных окон из класса можно делать только из класса инициализированного в вызывающей форме.  | 
|||
| 
    391
    
        Злопчинский    
     13.09.16 
            ✎
    12:02 
 | 
         
        А в доку внести...?     
         | 
|||
| 
    392
    
        victuan1    
     13.09.16 
            ✎
    18:53 
 | 
         
        Это пока предположение. И почему проблему с классами КОП вызывает  формекс?     
         | 
|||
| 
    393
    
        Djelf    
     13.09.16 
            ✎
    23:01 
 | 
         
        (392) formex не виноват т.к. я воспроизвел проблему на созданной с нуля базе только с загрузкой 1сpp (иначе классов же не будет).
 
        Для вывода монопольной формы нужна ссылка на родительскую. Видимо класс при создании запоминает эту ссылку. Когда форма закрыта, что-то еще может остаться в памяти как "мусор", но именно этот мусор и помогает не падать. Когда ссылка очищается полностью - ссылка на форму ведет в космос и мы падаем... А вот когда ссылка на форму очистится явление не сильно предсказуемое, поэтому оно иногда работает довольно долго.  | 
|||
| 
    394
    
        victuan1    
     14.09.16 
            ✎
    15:06 
 | 
         
        И что, 1с++ кривая, или есть возможность ее поправить?     
         | 
|||
| 
    395
    
        Djelf    
     14.09.16 
            ✎
    15:41 
 | 
         
        (394) Кто ж это уже будет делать...
 
        Есть обходной путь: сделай микро класс обертку над предупреждением и вопросом и пересоздавай его внутри своего класса.  | 
|||
| 
    396
    
        victuan1    
     14.09.16 
            ✎
    16:03 
 | 
         
        (395) Не понял идею.     
         | 
|||
| 
    397
    
        Djelf    
     14.09.16 
            ✎
    16:09 
 | 
         
        (396) В Класс Сообщения
 
        Функция Предупредить(ТекстПредупреждения="",Таймаут=0) Экспорт Предупреждение(ТекстПредупреждения,Таймаут); КонецФункции в твой коп вместо Предупредить Сообщения=СоздатьОбъект("Сообщения"); Сообщения.Предупредить("Упаду?"); привязка к форме будет пересоздаваться и так падать не должно.  | 
|||
| 
    398
    
        Chieftain    
     14.09.16 
            ✎
    17:10 
 | 
         
        (375) 1C++ 3.2.4.1, FormEx 2.0.5.101, не воспроизвелось.     
         | 
|||
| 
    399
    
        victuan1    
     14.09.16 
            ✎
    17:12 
 | 
         
        (398) У меня воспроизводилось на этих версиях.     
         | 
|||
| 
    400
    
        victuan1    
     14.09.16 
            ✎
    17:13 
 | 
         
        (398) Для чистоты эксперимента нужно проверить на указанных мною.     
         | 
|||
| 
    401
    
        Chieftain    
     14.09.16 
            ✎
    17:17 
 | 
         
        (400) Выложи свои версии, 4.3 на 1Cpp.ru не нашел что-то сходу     
         | 
|||
| 
    402
    
        Chieftain    
     14.09.16 
            ✎
    17:20 
 | 
         
        (399) Понял в чем косяк, 1С++ и formex загружал в глобальнике. При загрузке из обработки были какие-то проблемы, сейчас порою - может найду.     
         | 
|||
| 
    403
    
        victuan1    
     14.09.16 
            ✎
    17:30 
 | 
         
        (402) Какая разница где загружать?     
         | 
|||
| 
    404
    
        victuan1    
     14.09.16 
            ✎
    17:33 
 | 
         
        (401) 3.2.4.3 здесь лежит http://www.1cpp.ru/forum/YaBB.pl?num=1332077808     
         | 
|||
| 
    405
    
        Chieftain    
     14.09.16 
            ✎
    17:34 
 | 
         
        (404) Устал я походу - не вижу там ссылки     
         | 
|||
| 
    406
    
        Djelf    
     14.09.16 
            ✎
    17:45 
 | 
         
        А нет... все таки formex. Забыл что он в функции загрузки коп грузится. Убрал - не падает. 
 
        Но в любом случае через класс обертку и с ним не падает.  | 
|||
| 
    407
    
        Djelf    
     14.09.16 
            ✎
    17:51 
 | 
         
        (405) https://cloud.mail.ru/public/45EM/KVt7spxJW
 
        чистая конфа с тестом падения, внутри 1cpp 3.2.4.3 у меня 100% падение  | 
|||
| 
    408
    
        victuan1    
     14.09.16 
            ✎
    18:05 
 | 
         
        (407) Проверил на дом. компе. Упало. Спасибо)
 
        Напомню инструкцию для вызова падения: 1) запустить демо-конфу по ссылке https://cloud.mail.ru/public/45EM/KVt7spxJW 2) в меню выбрать "упасть" 3) откроется обработка, нажать последовательно кнопки "ИнитКОП", "Упасть", "Закрыть", обработка закроется. 4) в меню выбрать "упасть" 5) обработка снова откроется, сразу нажать "Упасть". 1С зависнет.  | 
|||
| 
    409
    
        Chieftain    
     14.09.16 
            ✎
    18:56 
 | 
         
        (408) Попробуй в КОП_Проверка.ert добавить код:
 
        Перем FormEx_ЗаголовокПредупреждения Экспорт; Перем FormEx_ИконкаПредупреждения Экспорт; Перем FormEx_ОсновнаяКнопкаПредупреждения Экспорт;  | 
|||
| 
    410
    
        Djelf    
     14.09.16 
            ✎
    18:59 
 | 
         
        (409) Ай шайтан! Не падает ;)     
         | 
|||
| 
    411
    
        Chieftain    
     14.09.16 
            ✎
    19:01 
 | 
         
        (410) Видимо ноги растут из этой фичи:
 
        [.0] функционал переопределения иконки, заголовка и кнопки "по умолчанию" для диалогов "Предупреждение" и "Вопрос" // для переопределения надо определить переменные FormEx_ЗаголовокПредупреждения, FormEx_ИконкаПредупреждения и FormEx_ОсновнаяКнопкаПредупреждения и задать им значение //FormEx_ЗаголовокПредупреждения: строка с заголовком диалога //FormEx_ИконкаПредупреждения: число 1 - "стоп"; 2 - "вопрос"; 3 - "предупреждение"; 4 - "информация"; любое другое значение - не менять; //FormEx_ОсновнаяКнопкаПредупреждения: число - порядковый номер кнопки диалога, которая становится "по умолчанию"  | 
|||
| 
    412
    
        Chieftain    
     14.09.16 
            ✎
    19:03 
 | 
         
        +(411) ИМХО: пытается получить переменные из текущего контекста как из модуля, а там другой тип (КОП) - вот и валится.     
         | 
|||
| 
    413
    
        Djelf    
     14.09.16 
            ✎
    19:05 
 | 
         
        (411) Об этом я думал, т.е. пытался установить эти параметры через Сервис - не помогало. А вот про экспортные переменные совсем не подумал.     
         | 
|||
| 
    414
    
        Chieftain    
     14.09.16 
            ✎
    19:10 
 | 
         
        (413) Возможно для обычных модулей FormEx их явно добавляет, поэтому проблем с чтением нет. А у КОПов свойства нет и при попытке чтения крашится.     
         | 
|||
| 
    415
    
        victuan1    
     14.09.16 
            ✎
    19:56 
 | 
         
        (409) Проверил, не падает.
 
        Оператор Вопрос это тоже "лечит"?  | 
|||
| 
    416
    
        Chieftain    
     14.09.16 
            ✎
    20:04 
 | 
         
        (415) Что мешало сразу и проверить? У меня не падает.     
         | 
|||
| 
    417
    
        victuan1    
     14.09.16 
            ✎
    20:06 
 | 
         
        (416) Я сразу и проверил. У меня не падает. Интересуюсь, как у других.     
         | 
|||
| 
    418
    
        Chieftain    
     14.09.16 
            ✎
    20:10 
 | 
         
        (417) Ну в общем-то, если логически рассуждать - должно вылечиться, т.к. эти переменные и на диалог вопроса влияют     
         | 
|||
| 
    419
    
        victuan1    
     14.09.16 
            ✎
    20:16 
 | 
         
        (418) Да, прочитал - вижу. Проверю еще на двух компьютерах (когда будет доступ) и можно будет считать вопрос решенным.))     
         | 
|||
| 
    420
    
        Злопчинский    
     14.09.16 
            ✎
    20:25 
 | 
         
        Ну вы монстры!!!     
         | 
|||
| 
    421
    
        victuan1    
     15.09.16 
            ✎
    14:17 
 | 
         
        Пользователи тех двух ПК отчитались - всё стало работать нормально.
 
        АЛьФ подготовил сборку, в которой эта проблема решена без объявления в КОП переменных переопределения иконки. https://yadi.sk/d/mp4drZMqvBqLr  | 
|||
| 
    422
    
        Ёпрст    
     гуру 
    15.09.16 
            ✎
    14:43 
 | 
         
        (421) Попроси его, чтоб событие ПослеОткрытия работало в модальных формах еще.     
         | 
|||
| 
    423
    
        Chieftain    
     15.09.16 
            ✎
    14:57 
 | 
         
        (422) Так юзай ФормаПриСоздании(), оно вроде работает везде     
         | 
|||
| 
    424
    
        victuan1    
     15.09.16 
            ✎
    15:02 
 | 
         
        (422) А сам что не попросишь?     
         | 
|||
| 
    425
    
        АЛьФ    
     15.09.16 
            ✎
    15:03 
 | 
         
        Обновленная версия выложена на dorex.pro
 
        2(422) При всем моем уважении... Там реально не реально сделать. 2(423) ПослеСозданияФормы()  | 
|||
| 
    426
    
        Chieftain    
     15.09.16 
            ✎
    15:06 
 | 
         
        (425) ФормаПриСоздании аналогично ПослеСозданияФормы и генерится объектом "Форма" из состава 1С++     
         | 
|||
| 
    427
    
        victuan1    
     15.09.16 
            ✎
    15:07 
 | 
         
        (425)
 
        [665.21 Kb] [версия: 2.0.5.110 от 15.09.2016] [скачиваний: 888] Откуда столько скачиваний?  | 
|||
| 
    428
    
        Chieftain    
     15.09.16 
            ✎
    15:08 
 | 
         
        +(426) правда оно чуть сложнее - объект "Форма" нужно держать. У меня просто в глобальном перехватчике все есть + доп.процедуры генерятся     
         | 
|||
| 
    429
    
        АЛьФ    
     15.09.16 
            ✎
    15:11 
 | 
         
        2(427) Логично предположить, что я просто не скидываю счетчик. :)
 
        Но он и сам по себе глючно сделан.  | 
|||
| 
    430
    
        Ёпрст    
     гуру 
    15.09.16 
            ✎
    15:47 
 | 
         
        (425) ну и ладно, я то переделал в своё время все свои поделки :)
 
        Так, думал, мот там не долго.  | 
|||
| 
    431
    
        Ёпрст    
     гуру 
    15.09.16 
            ✎
    15:49 
 | 
         
        (429) А, древнюю хотелку, с добавитьАтрибут с типом атрибута 9 (текстовая колонка), можно как-нить доработать ? Или там тоже засада по самые помидоры ?     
         | 
|||
| 
    432
    
        АЛьФ    
     15.09.16 
            ✎
    15:55 
 | 
         
        2(431) Добавление атрибутов это ж вообще не я до работоспособного состояния доводил, а Артур. Так что для меня там действительно засада, надо опять во всю влезать в проект.
 
        Смотри как я к "вижуал студио" сейчас подключаюсь: - на работе бездисковая станция, сервер где-то далеко-далеко за морями, - с нее подрубаюсь к домашнему компу в терминальном режиме, - там запускаю виртуальную машину с хрюшей, - и уже тут запускаю студию. Естественно, в таком режиме нормально не поработаешь. Кстати, во многом именно поэтому и пришлось остановить развитие проекта.  | 
|||
| 
    433
    
        Ёпрст    
     гуру 
    15.09.16 
            ✎
    15:57 
 | 
         
        (432) ну ясно. Артуру, тоже в своё время некогда было копаться. Так-то много полезных вещей с добавленной колонкой можно было бы лепить.
 
        А и ладно, один хрне, все на снеговике ужо. почти все  | 
|||
| 
    434
    
        Chieftain    
     15.09.16 
            ✎
    16:08 
 | 
         
        (432) (433) Вроде на 1Cpp какой-то деятель вопросы по этому поводу сегодня задавал
 
        http://www.1cpp.ru/forum/YaBB.pl?num=1191404333/all  | 
|||
| 
    435
    
        АЛьФ    
     15.09.16 
            ✎
    16:20 
 | 
         
        2(434) Это месяц назад. Но там я тоже уже не бывал давно. Спасибо.     
         | 
|||
| 
    436
    
        Vippi    
     15.09.16 
            ✎
    16:38 
 | 
         
        (433)
 
        > А и ладно, один хрне, все на снеговике ужо. почти все Не, не все :) (435) Рад видеть, Алексей.  | 
|||
| 
    437
    
        АЛьФ    
     15.09.16 
            ✎
    16:40 
 | 
         
        2(436) Взаимно.     
         | 
|||
| 
    438
    
        Chieftain    
     15.09.16 
            ✎
    16:47 
 | 
         
        (435) Извиняюсь за ошибку, забыл что сегодня уже сентябрь... заработался...     
         | 
|||
| 
    439
    
        victuan1    
     15.09.16 
            ✎
    17:42 
 | 
         
        (438) Хорошо, когда детей в школу отправлять не надо)))     
         | 
|||
| 
    440
    
        Chieftain    
     15.09.16 
            ✎
    17:45 
 | 
         
        (439) Ну дочь в этом году в 1 класс пошла)) Правда водит ее жена - я в этот момент только спать ложусь последнее время))     
         | 
|||
| 
    441
    
        victuan1    
     15.09.16 
            ✎
    17:52 
 | 
         
        А я и дочь в школу вожу и сына в садик. И забираю я же. И жену на/с работу вожу)))     
         | 
|||
| 
    442
    
        Djelf    
     15.09.16 
            ✎
    21:10 
 | 
         
        (425) Я как-то не понял про ПослеОткрытия...
 
        > 2(422) При всем моем уважении... Там реально не реально сделать. FormEx_2.0.5.101 - в модальных срабатывает FormEx_2.0.5.108 - в модальных не срабатывает FormEx_2.0.5.110 по ссылке выше - в модальных срабатывает! оО  | 
|||
| 
    443
    
        АЛьФ    
     16.09.16 
            ✎
    08:34 
 | 
         
        2(442) Эуэмуэ.... Кхем... Вот точно помню, что затык там конкретный был с CDialog::DoModal, что я так и не разобрался как обойти. Может я чего не то помню? Старею...     
         | 
|||
| 
    444
    
        ildary    
     16.09.16 
            ✎
    15:00 
 | 
         
        Уважамые гуру, все не читал, стоит обновлять FormEx до 2.0.5.110, если сейчас стоит 2.0.5.109? Задача скрытия формы пока что не стоит.     
         | 
|||
| 
    445
    
        АЛьФ    
     16.09.16 
            ✎
    15:49 
 | 
         
        2(444) Если все работает, то нет смысла обновляться. Этот новый релиз очень специфичный глюк исправляет.     
         | 
|||
| 
    446
    
        Злопчинский    
     16.09.16 
            ✎
    17:12 
 | 
         
        (433) а я? а как же я...?! ;-)     
         | 
|||
| 
    447
    
        Злопчинский    
     16.09.16 
            ✎
    17:14 
 | 
         
        так где правильный формекс следует брать, со всеми псолдедними и предпоследними доработками? ведь вроде когда Альф отошел от проекта - его автономно пилили формекс на 1С++ ктото.. а сейчас Альф допилил... в итоге - где "правильно"..? или ветка по формексу всего одна?     
         | 
|||
| 
    448
    
        Chieftain    
     16.09.16 
            ✎
    17:20 
 | 
         
        (447) на дорексе, вестимо. Артур, емнип, когда пилил - все изменение Алексею сливал     
         | 
|||
| 
    449
    
        Злопчинский    
     16.09.16 
            ✎
    19:42 
 | 
         
        (448) спсб!     
         | 
|||
| 
    450
    
        Djelf    
     16.09.16 
            ✎
    21:17 
 | 
         
        (445) На 110й РасширениеФормы.ОбработкаОжидания спамит  CTimerWithEvent::SendEvent     
         | 
|||
| 
    451
    
        АЛьФ    
     19.09.16 
            ✎
    11:03 
 | 
         
        2(450) Так и знал, что что-то обязательно всплывет. Сегодня поправлю.     
         | 
|||
| 
    452
    
        АЛьФ    
     19.09.16 
            ✎
    12:41 
 | 
         
        +(451) Поправил.     
         | 
|||
| 
    453
    
        Djelf    
     19.09.16 
            ✎
    13:14 
 | 
         
        (452) Спасибо! Не спамит, на предупреждении не вылетает.
 
        А с методами methColArray, methCreateStdControl_Static, methCtrlInfo, methFieldsArray, methGetCtrl, methTraceWindows что-то полезное/интересное сделать можно? Или это только для отладки?  | 
|||
| 
    454
    
        АЛьФ    
     19.09.16 
            ✎
    13:20 
 | 
         
        2(453) Это Артур делал. Насколько я понимаю, именно для отладки.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |