|
Упр.форма. В какой процедуре на форме доступно свойство ДополнительныеСвойства? | ☑ | ||
---|---|---|---|---|
0
Birmingem
27.11.19
✎
14:52
|
Задача, из модуля объекта передать в модуль формы какое то значение.
В инете есть примеры с использованием ДополнительныеСвойства: / в модуле документа Процедура ОбработкаЗаполнения(Основание) ДополнительныеСвойства.Вставить("ОбработкаЗаполненияОтказ", Истина); КонецПроцедуры //в модуле формы Процедура ПередОткрытием(Отказ) Если ДополнительсныеСвойства.Свойство("ОбработкаЗаполненияОтказ") Тогда КонецПроцедуры Попробовал, не нашел в какой же процедуре в модуле формы существует ДополнительныеСвойства. Везде ругается что нет такого. Или это только для обычных форм и в упр.формах это свойство отменили? Тогда какие есть варианты передать временное значение из модуля документа в модуль формы? |
|||
1
Fish
27.11.19
✎
14:53
|
Дополнительные свойства - это у объекта.
|
|||
2
aleks_default
27.11.19
✎
14:54
|
В модуле формы нужно обращаться Объект.ДополнительныеСвойства
|
|||
3
GROOVY
27.11.19
✎
14:55
|
ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)
ДополнительныеСвойства (AdditionalProperties) Использование: Только чтение. Описание: Тип: Структура. Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер). |
|||
4
RomanYS
27.11.19
✎
14:57
|
(0) попробуй ПриЧтенииНаСервере
|
|||
5
Birmingem
28.11.19
✎
11:07
|
Попробовал так: Объект.ДополнительныеСвойства в процедурах ПриСозданииНаСервере, ПриЧтенииНаСервере, ПриОткрытии. Везде ругается: Поле объекта не обнаружено (ДополнительныеСвойства)
|
|||
6
Fish
28.11.19
✎
11:08
|
(5) У тебя объект чему равен? Тип какой?
|
|||
7
Birmingem
28.11.19
✎
11:16
|
(6)Объект - ДанныеФормыСтруктура
|
|||
8
Birmingem
28.11.19
✎
11:18
|
Создаю документ на основании другого документа. Из процедуры ОбработкаЗаполнения() в форму надо передать признак - открывать или не открывать форму.
|
|||
9
Dmitry1c
28.11.19
✎
11:19
|
вроде у ТекущийОбъект в процедуре ПередЗаписьюНаСервере
|
|||
10
Fish
28.11.19
✎
11:19
|
(7) А должен быть ДокументОбъект.
|
|||
11
Birmingem
28.11.19
✎
11:20
|
(10)Ок. Как в форме получить ДокументОбъект?
|
|||
12
RomanYS
28.11.19
✎
11:26
|
(11) Он есть в (4), (9) . Можно получить через РеквизитФормыВЗначение. Но твою задачу это не решит.
|
|||
13
Birmingem
28.11.19
✎
11:39
|
В модуле объекта, в процедуре ОбработкаЗаполнения() делаю
ДополнительныеСвойства.Вставить("ОбработкаЗаполненияОтказ", Истина); В модуле формы, в процедуре ПриСозданииНаСервере (так как это новый документ) делаю Док=РеквизитФормыВЗначение("Объект"); Док.ДополнительныеСвойства.Свойство("ОбработкаЗаполненияОтказ") Результат Ложь. Т.е. ДополнительныеСвойства все таки не сохраняют значения из модуля объекта до модуля формы? |
|||
14
RomanYS
28.11.19
✎
11:49
|
(13) Потому что это другой экземпляр Объекта и для него ОбработкаЗаполнения не вызывалась
Опиши исходную задачу. По какому условию появилось ОбработкаЗаполненияОтказ, может проще это условие в форме воспроизвести |
|||
15
Birmingem
28.11.19
✎
11:53
|
Задача простая.
На основании конкретного документа, можно ввести только 1 другой документ. В процедуре ОбработкаЗаполнения проверяю, есть ли уже такой документ. Если есть, то надо запретить создание нового документа. Так как в процедуре ОбработкаЗаполнения() этого сделать нельзя, то запрещаю открыть форму нового документа. |
|||
16
Birmingem
28.11.19
✎
11:54
|
Ну и вообще, теоретический вопрос, как же все таки передать переменную из модуля объекта в модуль формы?
|
|||
17
RomanYS
28.11.19
✎
11:58
|
(15) или проверяй это ПриСозданииНаСервере в форме или "пиши", например, в комментарий
(16) через доп. свойства нельзя |
|||
18
pechkin
28.11.19
✎
11:58
|
из обработки заполнения никак не передашь
|
|||
19
pechkin
28.11.19
✎
11:59
|
если нужен отказ, то кидай исключение
|
|||
20
Birmingem
28.11.19
✎
12:07
|
Нашел решение моей задачи.
Оказывается в процедуре ПриСозданииНаСервере() у свойства Параметры есть свойство Основание, в котором находится документ, на основании которого вводится новый документ. Буду проверять здесь. (19)Да. Видел рекомендацию от 1С, делать ВызватьИсключение. Но тогда на экране появляется окно с ошибкой, в котором кнопка перехода в конфигуратор. Т.е. выглядит как программная ошибка, косяк программиста, совсем некрасиво :) (18)Вот засада ... Значит никак не передать... |
|||
21
pechkin
28.11.19
✎
12:08
|
по хоршему нужно чтоб вызывалось событие ПриЧтенииНаСервере, но это нужно в 1с писать, может к 8.3.55 добавят
|
|||
22
pechkin
28.11.19
✎
12:09
|
(20) кстати у юзеров неет кнопки перехода в конфигуратор
|
|||
23
pechkin
28.11.19
✎
12:09
|
если конечно УФ
|
|||
24
aleks_default
28.11.19
✎
12:19
|
Кстати фирма 1с вот тут https://its.1c.ru/db/v8std#content:396:hdoc пишет что проверку нужно делать через ВызватьИсключение и "При этом не рекомендуются какие-либо иные решения для подобных проверок. В частности, не следует создавать дополнительные команды для ввода на основании и размещать проверки в обработчиках этих команд."
Я вот смотрю сейчас в свою ERP и вижу что ввод на основании некоторых документов сделан именно с помощью дополнительных подключаемых на форму команд. Получается компания 1С не следует своим же рекомендациям? Или просто информация на ИТС устарела? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |