|
v7: "Перехватчик" внешней компоненты 1С++ | ☑ | ||
---|---|---|---|---|
0
evgpinsk_
15.01.21
✎
09:58
|
В обработке КлассПерехватСобытий определена:
Процедура СобытиеГМ_ПриОткрытии(Конт,ФлагЧтенияНастройки) Экспорт далее хочу прочитать например поле текст: Сообщить(КонтФормы.Форма.ВысчитываемоеПоле); но этот код возвращает пустое значение. Т.е. прочитать поля ввода, которые являются реквизитами документа можно, а те поля, которые определяются функцией в модуле формы, уже нет Как то обойти этот момент можно? п.с. turboMd не властен над обработкой "КлассПерехватСобытий" ? |
|||
1
Mikeware
15.01.21
✎
10:09
|
форма еще не открыта. Надо использовать ПослеОткрытия
|
|||
2
evgpinsk_
15.01.21
✎
11:10
|
Уже сложно эксперементировать, почему-то турбоМД не властен над этой обработкой.
|
|||
3
Mikeware
15.01.21
✎
11:12
|
(2) ну сделай без турбомд. проблем-то...
|
|||
4
Mikeware
15.01.21
✎
11:12
|
на то классы и хранят во внешних...
|
|||
5
evgpinsk_
15.01.21
✎
11:18
|
Почему-то когда я сохранял как внешнюю в каталоге базы, не срабатывала. Уже вечером буду пробовать
|
|||
6
Злопчинский
15.01.21
✎
11:26
|
"поля, которые определяются функцией в модуле формы" - один я тупой и не понял что это такое?
|
|||
7
Mikeware
15.01.21
✎
11:45
|
(6) у тебя модуль телепатии сломался :-)
|
|||
8
Злопчинский
15.01.21
✎
12:00
|
(7) моя вангоспособность говорит о том, что "поля, которые определяются функцией" - это если следовать логике - атрибуты формы, создаваемые программно. Формекс такое умеет. Но сомневаюсь я что про это речь идет...
|
|||
9
Mikeware
15.01.21
✎
12:40
|
(8) делай поправку на, гкхм, "нетрадиционность" "мышления"
|
|||
10
Злопчинский
15.01.21
✎
12:50
|
(9) "главное, чтобы это не стало обязательным"...
|
|||
11
evgpinsk_
15.01.21
✎
13:09
|
(6) На форме может быть "Поле Ввода". Это поле может быть как реквизитом документа так и определяться функцией.
Так понятно? |
|||
12
Mikeware
15.01.21
✎
13:14
|
(11) что в вашем понимании "определяться функцией"? как "функция" "опеределяет" поле?
не, я-то понимаю, что вы хотели сказать. Но мне интересна сама цепочка :-) думаю, Злопу тоже. |
|||
13
evgpinsk_
15.01.21
✎
13:30
|
(12) Т.е. соответствие между
Значение "Поля ввода" определяется функцией и "Поле ввода" определяется функцией очень сложно увидеть??? п.с Отсутствие этого одного слова мешает великим умам догадаться о чём речь? Или опять я чтото не так сформулировал?? |
|||
14
Mikeware
15.01.21
✎
13:54
|
(13) значение поля ввода, связанного с реквизитом объекта - тоже может вычисляться функцией :-)
поле ввода реквизитом объекта быть не может. хотя бы просто потому, что объект вполне себе может существовать без формы. у вас какие-то "свои понимания, соответствия и взаимосвязи". |
|||
15
evgpinsk_
15.01.21
✎
14:29
|
(14) "поле ввода реквизитом объекта быть не может. "
Это точно? У меня какая-то особенная 1с?? https://prnt.sc/woe5qc Поле "Контрагент" - это поле ввода. И это поля является реквизитом документа |
|||
16
Злопчинский
15.01.21
✎
14:31
|
(13) "очень сложно увидеть???"
да. почему ты предполагаешь что я должен увидеть А, а не Б, если из написанного логичнее всего Б? |
|||
17
Mikeware
15.01.21
✎
14:44
|
(15) нет, это не 1с особенная - это вы у нас особенный. "альтернативный", так сказать...
|
|||
18
evgpinsk_
15.01.21
✎
14:45
|
(16) Я так понимаю это свойство бизнес-аналитиков постоянно обобщать и ни какой конкретики? )
Ещё раз повторю то что в (13) Я написал: "Поле ввода" определяется функцией. Предполагал что люди понимают, что функции возвращают значения. И значит слово "значение" можно было пропустить. Если разжёвывать, то да, нужно было написать так: Значение "Поля ввода" определяется функцией Правда и здесь в (14) у людей возникли вопросы и не понимание. Пришлось скрины кидать. П.с. А вот что такое "А" и "Б" я не знаю. Вы забываете что не все экстрасенсы |
|||
19
Mikeware
15.01.21
✎
14:46
|
(18) и скрины еще раз доказали, что вы ни хрена не понимаете :-)
|
|||
20
evgpinsk_
15.01.21
✎
14:47
|
(17) Так будет что-то по сути ответить?
(14) Гуру 1с заявляет "поле ввода реквизитом объекта быть не может" может или нет? (17) "это вы у нас особенный. "альтернативный", так сказать..." __________ или как обычно, только ярлыки умеем вешать? |
|||
21
Mikeware
15.01.21
✎
14:50
|
(20)
1.по сути: "беда, коль пироги начет печи сапожник" 2. не может 3. Ну, если ярлык соответсвует содержанию - то это называется "правильная классификация" |
|||
22
Arbuz
15.01.21
✎
16:21
|
погодите, я конспектирую: "Значение _ПоляВвода_ определяется функцией"... Эмм, это та функция которая на дополнительно->формула?
|
|||
23
evgpinsk_
15.01.21
✎
19:10
|
(22) А что удивляет?
|
|||
24
evgpinsk_
15.01.21
✎
19:13
|
Если говорим о "Поле ввода", то его значение можно определять через описанную в модуле функцию например в момент открытия формы
|
|||
25
evgpinsk_
15.01.21
✎
19:15
|
А если говорим о том чего "не может быть"
То но форме может быть стандартный Реквизит документа. И 1с также называет этот объект "Полем ввода" |
|||
26
Злопчинский
15.01.21
✎
19:55
|
(24) поле ввода является самостоятельным объектом, которое имеет свои атрибуты. поэтому когда звучит "поле ввода определяется функцией" - в первую очередь приходит на ум манипуляция атрибутами поля ввода. например, увеличиь шрифт поля ввода, сделать его синим, поменять фон поля ввода итд. Про значение тут вообще не всплывает. Потому что поле ввода- это поле ввода, а не значение в поле ввода. вот.
|
|||
27
Злопчинский
15.01.21
✎
19:56
|
(18) А - это то, что для тебя "поле ввода" и "значение" в поле ввода - одно и то же.
а "Б" - то, что это не так. . Ширшее смотрите, товарищ! |
|||
28
evgpinsk_
15.01.21
✎
20:26
|
(27) Давай не выдёргивать из контекста. Я написал "прочитать поле ввода".
Этот текст практически равнозначен "прочитать значение поля ввода". И когда говорят о ЧТЕНИИ поля, то и предполагается что читается значение этого поля. Если применительно к Ексель говорят, прочитать поле /ячейку/ A2, то ни у кого не возникает мысли а что именно читать, значение или атрибут ячейки |
|||
29
Ёпрст
15.01.21
✎
20:57
|
(0) форма еще не открыта, поэтому значений атрибутов формы еще нет.
|
|||
30
Ёпрст
15.01.21
✎
20:58
|
И..цель какая всего хоть? Перехватчик, для каких целей хоть?
|
|||
31
Злопчинский
15.01.21
✎
21:06
|
(28) излагай по возможности конкретно и просто. проблем тогда не будет.
|
|||
32
evgpinsk_
15.01.21
✎
21:07
|
(30) Права пользователям даны на документ для записи. Задача - обработка прав на программном уровне в зависимости от условий.
И соответственно сделать эту проверку для всех документов в одной процедуре а не в каждом документе. Одно из условий например, если по документу выдан другой документ, то исходный нельзя редактировать. Выданный документ определяется функцией. Функция уже прописана в контекстах документа и возвращает в шапке документа выданный документ. Вот это поле и хотел читать. Решения разные простые есть. Думал через класс можно реализовать, но не получалось. Вот и задал вопрос /который не стоит столько потраченного на него времени/ |
|||
33
Ёпрст
15.01.21
✎
21:15
|
(32) ну дык, прехватывай в приоткрытии, в зависимостии от вида дока, выполняй свою функцию для поиска дока-владельца/подчиненного, и если неттдоступа, то статусвозврата(0) и открытьформу с параметром толькопросмотр. Усё
|
|||
34
evgpinsk_
15.01.21
✎
21:21
|
Это одно из простых решений. Но немного сложнее чем прочитать поле в шапке документа. Мне больше было интересно не решение задачи а решение возникшего нюанса
|
|||
35
Ёпрст
15.01.21
✎
21:42
|
(34) перехватывай послеоткрытия..сымотри, че хочешь
|
|||
36
evgpinsk_
16.01.21
✎
03:14
|
Вариант когда обработка КлассПерехватСобытий находится в конфигураторе работает:
В обработке defcls.ert: # класс КлассПерехватСобытий = КлассПерехватСобытий@MD # {}; гугл не помог, как прописать ссылку в defcls.ert чтобы КлассПерехватСобытий.ert использовать как внешнюю ? |
|||
37
Mikeware
16.01.21
✎
09:34
|
(36) и https://script-coding.com/1cpp.html гугель не дал?
|
|||
38
Mikeware
16.01.21
✎
09:48
|
(29) так я ему это в первом сообщении написал. Но видишь ли, он считает поля ввода реквизитами _объектов_.
поэтому не понимает. |
|||
39
evgpinsk_
16.01.21
✎
11:10
|
(38) Это не я считаю, а 1с .
Любой реквизит документа, размещённый на форме документа, является "Полем ввода". https://prnt.sc/woe5qc |
|||
40
evgpinsk_
16.01.21
✎
11:10
|
(37) За это спасибо.
|
|||
41
Василий Алибабаевич
16.01.21
✎
11:37
|
(39) ГЫ. И конечно же фишки на вашем скрине "Сделать недоступным", "Сделать невидимым", "Запретить редактирование" относятся к реквизиту объекта?
Неужели ТС кроме 1С более ничего не видел? Практически в любой системе есть такое понятие как поле ввода. И оно может быть связано (предназначено для редактирования) с любой переменной. В том числе для редактирования реквизита объекта (в терминах 1С). А может и не быть. А может быть в разные моменты времени связано с разними переменными. Поэтому вполне естественно что "поле ввода" <> "реквизиту объекта". ЦЫ (27) |
|||
42
evgpinsk_
16.01.21
✎
12:05
|
(41) Вы читаете то что выше? Где я утверждала что "поле ввода" РАВНО "реквизиту объекта"
Ещё раз по полочкам, везде с цитатами: в (0) Я: "прочитать поля ввода, которые являются реквизитами документа можно" т.е "поля ввода" не всегда тождественно равны "реквизитам" а "могут" быть ими далее в (14) Mikeware как-раз таки категорично: "поле ввода реквизитом объекта быть НЕ может" на что я показываю конкретный скрин , в котором МОЖЕТ |
|||
43
Василий Алибабаевич
16.01.21
✎
12:08
|
(42) Не стыдно чего-то не знать. Стыдно в своем незнании упорствовать.
Еще раз. На вашей ссылке показано поле ввода привязанное к реквизиту объекта. И это никак не означает "поле ввода реквизитом объекта быть МОЖЕТ". Оно может быть привязано к реквизиту. Но ни в коем случае не может ему равняться. |
|||
44
evgpinsk_
16.01.21
✎
12:49
|
(43) Придраться можно к любой фразе. Давайте тогда поэмы писать?
"Поля ввода" на форме документа могут как ссылаться на реквизиты документа, так и не ссылаться и получать свои значения через привязанную функцию. Да в (0) я не корректно использовал слово "являются": "поля ввода, которые являются реквизитами документа " правильней "ссылаются на реквизит". |
|||
45
Mikeware
18.01.21
✎
10:15
|
(44) дело-то в том, что это не придирка.
поля ввода не могут быть реквизитами объекта - могут быть только реквизитами формы, визуального _представления_ объекта. Т.е. реквизит объекта может быть отображен для пользователя как какой-то визуальный инструмент управления, типа http://prntscr.com/x3bpy2 понимание, что есть что - дает понимание, откуда и в какой момент берутся данные. отсюда появляется понимание, почему в ПриОткрытии КонтФормы.Форма.ВысчитываемоеПоле - пустое. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |