Имя: Пароль:
1C
1С v8
Использование параметра объекты "ДополнительныеСвойства"
0 biimmap
 
19.12.16
16:01
Объясните мне плиз, что нужно, чтоб в форме я в эту структуру вставил несколько полей, и они были бы доступны в событиях "ОбработкаПроверкиЗаполнения" и "ОбработкаПроведения"?

Я так понял что запись данных в ДополнительныеСвойства производится только в процедуре формы ПередЗаписьюНаСервере.

Собственно там записываю в неё новые свойства, а в описанных обработчиках в модуле объекта они недоступны.

Нужно это для того, чтоб дважды не выполнялся довольно громоздкий код. На стороне формы мне нужно на при наличии ошибок спросить у пользователя нужно провести документ или нет. А в модуле на основании тех данных, которые получает громоздкий код строить остальные проверки. Оставшиеся проверки не требуют подтверждения пользователя, поэтому они выполняются в модуле объекта.
1 END
 
19.12.16
16:03
Лучше сделать реквизиты формы.
2 biimmap
 
19.12.16
16:04
причём тут реквизит формы в МОДУЛЕ ОБЪЕКТА??
3 Вафель
 
19.12.16
16:06
покажи код как ты записываешь
4 biimmap
 
19.12.16
16:08
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    ТекущийОбъект.ДополнительныеСвойства.Вставить("СписокСотрудниковСПериодами", СписокСотрудниковСПериодами);

КонецПроцедуры
5 biimmap
 
19.12.16
16:09
СписокСотрудниковСПериодами - это таблица. допустим она хранится на момент записи в реквизите формы. вот мне эту таблицу надо увидеть в модуле объекта при проведении
6 RomanYS
 
19.12.16
16:11
судя по
http://2.bp.blogspot.com/-oAJp8hb-r0Q/VQ6pppNJjEI/AAAAAAAAAP8/SsJB4ccqX8A/s1600/2.png

ОбработкаПроверкиЗаполнения объекта вызывается раньше ПередЗаписьюНаСервере формы
7 biimmap
 
19.12.16
16:13
5 баллов! спасибо!
8 biimmap
 
19.12.16
17:16
Теперь могу нормально пояснить суть:
1. В событии ПередЗаписью (на клиенте) вызывается серверный метод, который получает нужные мне таблицы для проверок. Одновременно с этим по данным таблицы происходит одна из проверок и на клиенте выводится вопрос пользователю в случае наличия ошибок.
2. В модуле формы проверки заполнения нет. Она есть только в модуле объекта.
3. А записать ДополнительныеСвойства можно только в обработчике формы ПередЗаписьюНаСервере.

так вот задача в том, чтоб после проверки в п.1 в п.2 (который выполняется в модуле объекта) передать таблицы с данными для проверок и повторно не выполнять сложные запросы.
9 aleks_default
 
19.12.16
17:17
В модуле формы проверки заполнения нет. Она есть только в модуле объекта - есть
10 biimmap
 
19.12.16
17:20
в модуле формы есть событие "ОбработкаПроверкиЗаполненияНаСервере". вы наверно не в курсе. посмотрите схему выше коллега прислал
11 aleks_default
 
19.12.16
17:29
(10)Это я ваши слова опроверг. В кавычки забыл взять.
12 RomanYS
 
19.12.16
17:34
(8) в модуле объекта делай проверку в ПередЗаписью, туда допсвойства уже придут
13 biimmap
 
19.12.16
17:44
(12) я оттуда не смогу пользователю выдать вопрос. и если пользователь ответит отрицательно, то собственно дальше ничего не нужно делать.

Может ещё есть способ передать в модуль объекта данные?

я сходы могу придумать ТЧ, которая на старте заполняется, на финише очищается. и по сути не хранится, просто будет неиспользуемый объект метаданных. но выход тупой.
14 Лефмихалыч
 
19.12.16
17:49
(13) схеронить их во временном хранилище
15 biimmap
 
19.12.16
17:50
(14) можно код? что в каких процедурах делать? хранилище доступно при переходе из одного модуля в другой?
16 RomanYS
 
19.12.16
17:55
(13) предложение было перенести (дополнительную, опциональную) проверку в модуле объекта из ОбработкаПроверкиЗаполнения в ПередЗаписью. Проверка на клиенте остается и "передеает" отключение проверки объекта через допсвойства.
17 biimmap
 
19.12.16
17:58
(16) а ничем не грозит тот факт, что ПередЗаписью уже транзакция началась?

так в целом вроде в теории всё красиво ложится...
18 Лефмихалыч
 
19.12.16
17:59
(15) ПоместитьВоВременноеХранилище(<Данные>, <Адрес>)
ПолучитьИзВременногоХранилища(<Адрес>)
19 biimmap
 
19.12.16
18:01
(18) могу ли я через это самое хранилище передать структуру, в которой одно поле будет таблицей а второе Менеджер временных талиц?
20 RomanYS
 
19.12.16
18:23
(18) а адрес как передавать?
21 biimmap
 
19.12.16
18:44
(18) с временным хранилищем не работает!!!

нет возможности передать адрес и ошибку выдаёт какую-то, что в кэше что-то лишнее...
22 Vaflya
 
19.12.16
20:33
Манать управляемые формы! Записанные в Объект свойства в событии формы недоступны в событиях Объекта?
23 biimmap
 
19.12.16
20:46
(22) да. всё именно так))) с первой частью фразы прям полностью согласен
24 RomanYS
 
19.12.16
20:58
(23) с (16)-то получилось? или не пробовал?
25 biimmap
 
20.12.16
09:38
мне не подходит. там транзакция запускается... у меня всё висеть будет и фалы кэша будут расти сильно (24)
26 biimmap
 
20.12.16
09:40
(24) буду делать табличные части, которые на старте буду заполнять а на финише очищать в событии ПослеЗаписи
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.