|   |   | 
| 
 | Упр.форма. В какой процедуре на форме доступно свойство ДополнительныеСвойства? | ☑ | ||
|---|---|---|---|---|
| 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С не следует своим же рекомендациям? Или просто информация на ИТС устарела? | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |