Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: "Перехватчик" внешней компоненты 1С++

v7: "Перехватчик" внешней компоненты 1С++
Я
   evgpinsk_
 
15.01.21 - 09:58
В обработке КлассПерехватСобытий определена:
Процедура СобытиеГМ_ПриОткрытии(Конт,ФлагЧтенияНастройки) Экспорт

далее хочу прочитать например поле текст:
Сообщить(КонтФормы.Форма.ВысчитываемоеПоле);

но этот код возвращает пустое значение.

Т.е. прочитать поля ввода, которые являются реквизитами документа можно, а те поля, которые определяются функцией в модуле формы, уже нет

Как то обойти этот момент можно?

п.с. turboMd не властен над обработкой "КлассПерехватСобытий" ?
   Mikeware
 
1 - 15.01.21 - 10:09
форма еще не открыта. Надо использовать ПослеОткрытия
   evgpinsk_
 
2 - 15.01.21 - 11:10
Уже сложно эксперементировать, почему-то турбоМД не властен над этой обработкой.
   Mikeware
 
3 - 15.01.21 - 11:12
(2) ну сделай без турбомд. проблем-то...
   Mikeware
 
4 - 15.01.21 - 11:12
на то классы и хранят во внешних...
   evgpinsk_
 
5 - 15.01.21 - 11:18
Почему-то когда я сохранял как внешнюю в каталоге базы, не срабатывала. Уже вечером буду пробовать
   Злопчинский
 
6 - 15.01.21 - 11:26
"поля, которые определяются функцией в модуле формы" - один я тупой и не понял что это такое?
   Mikeware
 
7 - 15.01.21 - 11:45
(6) у тебя модуль телепатии сломался :-)
   Злопчинский
 
8 - 15.01.21 - 12:00
(7) моя вангоспособность говорит о том, что "поля, которые определяются функцией" - это если следовать логике - атрибуты формы, создаваемые программно. Формекс такое умеет. Но сомневаюсь я что про это речь идет...
   Mikeware
 
9 - 15.01.21 - 12:40
(8) делай поправку на, гкхм, "нетрадиционность" "мышления"
   Злопчинский
 
10 - 15.01.21 - 12:50
(9) "главное, чтобы это не стало обязательным"...
   evgpinsk_
 
11 - 15.01.21 - 13:09
(6) На форме может быть "Поле Ввода". Это поле может быть как реквизитом документа так и определяться функцией.
Так понятно?
   Mikeware
 
12 - 15.01.21 - 13:14
(11) что в вашем понимании "определяться функцией"? как "функция" "опеределяет" поле?
не, я-то понимаю, что вы хотели сказать. Но мне интересна сама цепочка  :-) думаю, Злопу тоже.
   evgpinsk_
 
13 - 15.01.21 - 13:30
(12) Т.е. соответствие между
Значение "Поля ввода" определяется функцией
и
"Поле ввода" определяется функцией 
очень сложно увидеть???

п.с Отсутствие этого одного слова мешает великим умам догадаться о чём речь? Или опять я чтото не так сформулировал??
   Mikeware
 
14 - 15.01.21 - 13:54
(13) значение поля ввода, связанного с реквизитом объекта - тоже может вычисляться функцией :-)
поле ввода реквизитом объекта быть не может. хотя бы просто потому, что объект вполне себе может существовать без формы.
у вас какие-то "свои понимания, соответствия и взаимосвязи".
   evgpinsk_
 
15 - 15.01.21 - 14:29
(14) "поле ввода реквизитом объекта быть не может. "
Это точно?
У меня какая-то особенная 1с??
https://prnt.sc/woe5qc

Поле "Контрагент" - это поле ввода. И это поля является реквизитом документа
   Злопчинский
 
16 - 15.01.21 - 14:31
(13) "очень сложно увидеть???"
да.
почему ты предполагаешь что я должен увидеть А, а не Б, если из написанного логичнее всего Б?
   Mikeware
 
17 - 15.01.21 - 14:44
(15) нет, это не 1с особенная - это вы у нас особенный. "альтернативный", так сказать...
   evgpinsk_
 
18 - 15.01.21 - 14:45
(16) Я так понимаю это свойство бизнес-аналитиков постоянно обобщать и ни какой конкретики? )
Ещё раз повторю то что в (13)
Я написал: "Поле ввода" определяется функцией.

Предполагал что люди понимают, что функции возвращают значения. И значит слово "значение" можно было пропустить.
Если разжёвывать, то да, нужно было написать так:
Значение "Поля ввода" определяется функцией

Правда и здесь в (14) у людей возникли вопросы и не понимание. Пришлось скрины кидать.

П.с. А вот что такое "А" и "Б" я не знаю. Вы забываете что не все экстрасенсы
   Mikeware
 
19 - 15.01.21 - 14:46
(18) и скрины еще раз доказали, что вы ни хрена не понимаете :-)
   evgpinsk_
 
20 - 15.01.21 - 14:47
(17) Так будет что-то по сути ответить?
(14)  Гуру 1с заявляет "поле ввода реквизитом объекта быть не может"
может или нет?


(17) "это вы у нас особенный. "альтернативный", так сказать..."
__________
или как обычно, только ярлыки умеем вешать?
   Mikeware
 
21 - 15.01.21 - 14:50
(20)
1.по сути: "беда, коль пироги начет печи сапожник"
2. не может
3. Ну, если ярлык соответсвует содержанию - то это называется "правильная классификация"
   Arbuz
 
22 - 15.01.21 - 16:21
погодите, я конспектирую: "Значение _ПоляВвода_ определяется функцией"... Эмм, это та функция которая на дополнительно->формула?
   evgpinsk_
 
23 - 15.01.21 - 19:10
(22) А что удивляет?
   evgpinsk_
 
24 - 15.01.21 - 19:13
Если говорим о "Поле ввода", то его значение можно определять через описанную в модуле функцию например в момент открытия формы
   evgpinsk_
 
25 - 15.01.21 - 19:15
А если говорим о том чего "не может быть"
То но форме может быть стандартный Реквизит документа. И 1с также называет этот объект "Полем ввода"
   Злопчинский
 
26 - 15.01.21 - 19:55
(24) поле ввода является самостоятельным объектом, которое имеет свои атрибуты. поэтому когда звучит "поле ввода определяется функцией" - в первую очередь приходит на ум манипуляция атрибутами поля ввода. например, увеличиь шрифт поля ввода, сделать его синим, поменять фон поля ввода итд. Про значение тут вообще не всплывает. Потому что поле ввода- это поле ввода, а не значение в поле ввода. вот.
   Злопчинский
 
27 - 15.01.21 - 19:56
(18) А - это то, что для тебя "поле ввода" и "значение" в поле ввода - одно и то же.
а "Б" - то, что это не так.
.
Ширшее смотрите, товарищ!
   evgpinsk_
 
28 - 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) излагай по возможности конкретно и просто. проблем тогда не будет.
   evgpinsk_
 
32 - 15.01.21 - 21:07
(30) Права пользователям даны на документ для записи. Задача - обработка прав на программном уровне в зависимости от условий.
И соответственно сделать эту проверку для всех документов в одной процедуре а не в каждом документе.
Одно из условий например, если по документу выдан другой документ, то исходный нельзя редактировать.
Выданный документ определяется функцией. Функция уже прописана в контекстах документа и возвращает в шапке документа выданный документ. Вот это поле и хотел читать.

Решения разные простые есть.

Думал через класс можно реализовать, но не получалось. Вот и задал вопрос /который не стоит столько потраченного на него времени/
   Ёпрст
 
33 - 15.01.21 - 21:15
(32) ну дык, прехватывай в приоткрытии, в зависимостии от вида дока, выполняй свою функцию для поиска дока-владельца/подчиненного, и если неттдоступа, то статусвозврата(0) и открытьформу с параметром толькопросмотр. Усё
   evgpinsk_
 
34 - 15.01.21 - 21:21
Это одно из простых решений. Но немного сложнее чем прочитать поле в шапке документа. Мне больше было интересно не решение задачи а решение возникшего нюанса
   Ёпрст
 
35 - 15.01.21 - 21:42
(34) перехватывай послеоткрытия..сымотри, че хочешь
   evgpinsk_
 
36 - 16.01.21 - 03:14
Вариант когда обработка КлассПерехватСобытий находится в конфигураторе работает:

В обработке defcls.ert:
# класс КлассПерехватСобытий = КлассПерехватСобытий@MD

# {};


гугл не помог, как прописать ссылку в defcls.ert чтобы КлассПерехватСобытий.ert использовать как внешнюю ?
   Mikeware
 
37 - 16.01.21 - 09:34
(36) и https://script-coding.com/1cpp.html гугель не дал?
   Mikeware
 
38 - 16.01.21 - 09:48
(29) так я ему это в первом сообщении написал. Но видишь ли, он считает поля ввода реквизитами _объектов_.
поэтому не понимает.
   evgpinsk_
 
39 - 16.01.21 - 11:10
(38) Это не я считаю, а 1с .
Любой реквизит документа, размещённый на форме документа, является "Полем ввода".
https://prnt.sc/woe5qc
   evgpinsk_
 
40 - 16.01.21 - 11:10
(37) За это спасибо.
   Василий Алибабаевич
 
41 - 16.01.21 - 11:37
(39) ГЫ. И конечно же фишки на вашем скрине "Сделать недоступным", "Сделать невидимым", "Запретить редактирование" относятся к реквизиту объекта?

Неужели ТС кроме 1С более ничего не видел? Практически в любой системе есть такое понятие как поле ввода. И оно может быть связано (предназначено для редактирования) с любой переменной. В том числе для редактирования реквизита объекта (в терминах 1С). А может и не быть. А может быть в разные моменты времени связано с разними переменными.

Поэтому вполне естественно что "поле ввода" <> "реквизиту объекта". ЦЫ (27)
   evgpinsk_
 
42 - 16.01.21 - 12:05
(41) Вы читаете то что выше? Где я утверждала что "поле ввода" РАВНО "реквизиту объекта"

Ещё раз по полочкам, везде с цитатами:

в (0) Я: "прочитать поля ввода, которые являются реквизитами документа можно"
т.е "поля ввода" не всегда тождественно равны "реквизитам" а "могут" быть ими

далее в (14)   Mikeware как-раз таки категорично: "поле ввода реквизитом объекта быть НЕ может"
на что я показываю конкретный скрин , в котором МОЖЕТ
   Василий Алибабаевич
 
43 - 16.01.21 - 12:08
(42) Не стыдно чего-то не знать. Стыдно в своем незнании упорствовать.
Еще раз. На вашей ссылке показано поле ввода привязанное к реквизиту объекта. И это никак не означает "поле ввода реквизитом объекта быть МОЖЕТ".
Оно может быть привязано к реквизиту. Но ни в коем случае не может ему равняться.
   evgpinsk_
 
44 - 16.01.21 - 12:49
(43) Придраться можно к любой фразе. Давайте тогда поэмы писать?
"Поля ввода" на форме документа могут как ссылаться на реквизиты документа, так и не ссылаться и получать свои значения через привязанную функцию.

Да в (0) я не корректно использовал слово "являются": "поля ввода, которые являются реквизитами документа "
правильней "ссылаются на реквизит".
   Mikeware
 
45 - 18.01.21 - 10:15
(44) дело-то в том, что это не придирка.
поля ввода не могут быть реквизитами объекта  - могут быть только реквизитами формы, визуального _представления_ объекта. Т.е. реквизит объекта может быть отображен для пользователя как какой-то визуальный инструмент управления, типа http://prntscr.com/x3bpy2
понимание, что есть что - дает понимание, откуда и в какой момент берутся данные. отсюда появляется понимание, почему в ПриОткрытии КонтФормы.Форма.ВысчитываемоеПоле - пустое.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.