Имя: Пароль:
1C
1C 7.7
v7: Расположение реквизитов на форме с закладками
,
0 Slypower
 
12.07.19
10:24
Понимаю, что поезд давно ушел, но учиться никогда не поздно.
На 8ку перейти не советуйте, сами фирму душим, но директора козлятся.

Начал разбираться с ActiveX. Пример брался тут. Создал закладки на форме, все работает. Не могу понять, как играться с видимостью, или как расположить реквизиты, чтобы на каждой закладки были свои.
Т.к. на форме закладки создаются из текстового реквизита, то функцию отклика мыши не прикрепить. Как определять, как на какой закладке находишься?
1 ДенисЧ
 
12.07.19
10:29
Закладки - это список значений. И у него есть текущийЭлемент
2 Sserj
 
12.07.19
10:38
Так он судя по всему через пень-колоду. Не родные закладки а ActivX TabPanel какой то замутил.
3 ДенисЧ
 
12.07.19
10:39
Ну а кто ему доктор-то? Пусть тогда сам, в присядку... Заодно и напляшется...
4 Lazy Stranger
 
12.07.19
10:45
найди ТиС и посмотри как там устроено, обычно в процедуре ПриВыбреЗакладки() видимость слоев меняется
5 Slypower
 
12.07.19
10:51
Привет отсюда. http://www.1cpp.ru/forum/YaBB.pl?num=1195742958/0
Я же написал "Начал разбираться с ActiveX".
6 Slypower
 
12.07.19
10:51
Блин, не "привет", а "пример"))
7 ДенисЧ
 
12.07.19
10:53
(5) А чем тебя штатные закладки не устраивают?
8 Slypower
 
12.07.19
11:10
(7) а чем не устраивало тех, кто придумал 1C++? Удобство, красота, интерес к выполнению нового
9 ДенисЧ
 
12.07.19
11:14
(8) Тогда и вопрос надо задавать тем, кто придумал этот кундштюк, не так ли?
10 Slypower
 
12.07.19
11:15
(9) так я жду сообщения от тех, кто с этим работал, а не советы, куда мне идти и где мне писать
11 Bigbro
 
12.07.19
11:21
понимаю у некоторых есть необходимость поддерживать жизнь динозавров (учетных систем, живущих пару десятков лет), но решительно не понимаю необходимости двух динозавров скрещивать.
АктивИкс это же такое же устаревшее мммм... только из мира веб?
помню что когда лет 15 назад задавал вопрос чуваку по веб про активикс тот мне уже тогда ответил что это устаревшая хрень и сейчас тру джедаи ей не пользуются.
12 Slypower
 
12.07.19
11:24
(11) что тогда подобное лучше использовать?
13 Bigbro
 
12.07.19
11:29
не знаю в чем задача, мне всегда хватало встроенных возможностей языка для форм и закладок.
что хочется сделать из невозможного типовым функционалом?
14 Slypower
 
12.07.19
11:42
(13) как в 1с8 странице на форме. Сверху сделать закладки для формы - это стандартным методом. Но вот закладки в середине формы, они же страницы будут. Сами закладки/страницы реализовать смог. Размещаю две ТЗ в этом месте, и вот как при выборе закладки/страницы показывать либо первую тз, либо вторую? Понимаю, играться видимостью нужно, но как определить смену закладки, не понимаю. Может перехватчик нужен?
Если перейти по ссылке выше, то во 2м посте есть картинка. Так красным обведены эти закладки/страницы. На каждой своя ТЗ.
15 Salimbek
 
12.07.19
11:58
(14) Все что в (5) написано внимательно прочитали?
Это делали: Закладки.СоздатьЗакладки(Контекст,"ФормаЗакладки"); ?
Процедуру ФормаЗакладки_Change создавали?
16 Вафель
 
12.07.19
12:00
альф тут иногда появляется и все еще 7 юзает.
может он ответит
17 Slypower
 
12.07.19
12:02
(15) да, создавал, но туда не заходит. Какое условие нужно соблюсти, чтобы заходило в эту процедур?
(16) Так вроде и Ёпрст тоже этом хорошо разбирается) Тоже сюда заходит
18 Salimbek
 
12.07.19
12:02
(16) Зачем тут Альф? Тут надо понимать - как события activX транслируются в код на 1С-ке. А для этого начальную инструкцию по 1С++ просто почитать надо. А Альф - он по FormEx-у больше, так как автор именно этой DLL.
19 Slypower
 
12.07.19
12:02
(15) Закладки создает, а вот в ФормаЗакладки_Change не заходит
20 Salimbek
 
12.07.19
12:03
(19) Имена полей именно такие - или какие-то свои?
21 Вафель
 
12.07.19
12:04
ну вроде все эти закладки из 1с++ перекочевали таки из формекса
22 Salimbek
 
12.07.19
12:05
Вот цитата из http://www.1cpp.ru/docum/icpp/html/ActiveX.html :
"
Класс "АктивИкс" / "ActiveX".

Класс позволяет размещать на формах 1С:Предприятие элементы управления (далее ЭУ) ActiveX и обрабатывать события, возникающие в ЭУ. При возникновении события вызывается процедура модуля формы с именем:

<ИдентификаторЭлементаДиалога>_<Событие>

где ИдентификаторЭлементаДиалога - идентификатор элемента диалога, на месте которого создан ЭУ, и Событие - наименование события ЭУ (например OnClick). Например, обработчик Процедура ИДБраузер_BeforeNavigate2(Параметры...)

Класс может служить базовым классом для классов, определяемых пользователем.

В этом случае, если в модуле реализации КОП-наследника определены процедуры или функции с именами, совпадающими с именами событий (например, OnClick) без указания имени реквизита:

<Событие>

где Событие - наименование события ЭУ (например OnClick), Например, обработчик Процедура BeforeNavigate2(Параметры...)

то при возникновении соответствующих событий они будут вызваны. Если определены обработчики в модуле формы и в модуле реализации КОП, то сначала будут вызваны обработчики из модуля реализации КОП. Для обработки событий в модуле реализации КОП экземпляр класса должен быть создан следующим образом:

АтрФормы = СоздатьОбъект("АтрибутФормы");
АтрФормы.УстановитьАтрибут(Форма,"ФДерево");
Дерево=СоздатьОбъект("Дерево");//класс-наследник АктивИкс
АтрФормы.СоздатьЭлементУправления(Дерево); // СоздатьЭУ
Дерево.СоздатьЭУ("MSComctlLib.TreeCtrl");"
23 Salimbek
 
12.07.19
12:06
(21) Тут не ФормЭкс-ные закладки, а используется АктивИкс "Forms.MultiPage.1", у которого просто надо правильно ловить события.
24 Сияющий в темноте
 
12.07.19
14:13
может вам,это,сначала открыть Visual Basic и посмотреть как там этот ActiveX работает.
на самом деле,ActiveX это устаревшее название Active Controls,которые Ms в своих продуктах до сих пор используют.
25 Slypower
 
15.07.19
12:23
Походе я сделаю это через переключатель, чем смогу осилить еще и визуал))) А может есть пример перехвата события? Чет пример из СП меня не вдохновил)
26 АгентБезопасной Нацио
 
15.07.19
13:29
(25) как элемент формы-то называется?
27 Мимохожий Однако
 
15.07.19
13:49
(14) Я делал одну ТЗ и при переходе на другую закладку делал заполнение из ТЗ1, а при возврате из ТЗ2. При этом проблема размера ТЗ на форме уходила. А две ТЗ на одной форме вызывали проблемы.
28 ДенисЧ
 
15.07.19
13:56
(27) Видел я такое решение... Тормоза ещё те...
29 АгентБезопасной Нацио
 
15.07.19
13:57
(27) Эти проблемы лучше решать через Привязки. там и размером рулить можно, и сплиттеры разные делать...
30 Злопчинский
 
15.07.19
13:58
что вы там мучаетесь с ненужными излишествами?
вторые закладки сделать в виде обычных кнопок и переключать слои\видимости при нажатии на кнопки.
31 Ёпрст
 
15.07.19
14:00
(0) там же в примерах всё есть:

Процедура ФормаЗакладки_Change()
    Страница = Закладки.ТекущаяСтраница();
    Если ПустоеЗначение(Страница) = 0 Тогда
        <ту пишешь код в зависимости от текущей закладки..>
    КонецЕсли;
КонецПроцедуры
32 Slypower
 
15.07.19
14:24
(26) благодарю за наводку
(31) вот копировал, но не заходило туда.
1C++ классзакладок в 11 посте прочитал то,что нужно было. В общем, Спасибо
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший