|   |   | 
| 
 | Как в процедуре док ПриЗаписи узнать что она вызвана при закрытой форме? | ☑ | ||
|---|---|---|---|---|
| 0
    
        SerGa 10.10.12✎ 13:19 | 
        т.е. нужно при записи почистить некоторые реквизиты документа в случае запись вызвана не из фомы..     | |||
| 1
    
        zak555 10.10.12✎ 13:20 | 
        это какие реквизиты нужно почистить и зачем ?     | |||
| 2
    
        5 Элемент 10.10.12✎ 13:21 | 
        Никак     | |||
| 3
    
        Fragster гуру 10.10.12✎ 13:22 | 
        алгоритм при программном и интерактивном действии не должен отличаться.     | |||
| 4
    
        1Страх 10.10.12✎ 13:22 | 
        в событии ПередЗаписью формы заполни какое-нибудь доп свойство и анализируй его
  но подход неверный, имхо | |||
| 5
    
        Fragster гуру 10.10.12✎ 13:22 | 
        а вообще - в форме устанавливать в ДополнительныеСвойства что-нибудь, а в ПриЗаписи - анализировать.     | |||
| 6
    
        SerGa 10.10.12✎ 13:22 | 
        (1) это не суть важно... априори считаем это необходимым...     | |||
| 7
    
        Нуф-Нуф 10.10.12✎ 13:22 | 
        в процедуре перед записью модуля формы добавлять дополнительно свойство. и по его наличию в модуле объекта определять откуда вызвана запись     | |||
| 8
    
        Fragster гуру 10.10.12✎ 13:22 | 
        только менять надо ПередЗаписью, а не ПриЗаписи     | |||
| 9
    
        Фрэнки 10.10.12✎ 13:23 | 
        я в таких случаях ПриОткрытии формы добавляю дополнительное свойство объекту.
  ПриЗаписи или ПередЗаписью в модуле объекта смотрю было установлено дополнительное свойство или нет. | |||
| 10
    
        1Страх 10.10.12✎ 13:23 | 
        (7) ты опоздун, смотри (4)     | |||
| 11
    
        zak555 10.10.12✎ 13:23 | 
        (6) херня а не "априори"
  объект он и в африке объект и ему пофигу откуда его пишут --- прграммно или интерективно | |||
| 12
    
        SerGa 10.10.12✎ 13:24 | 
        Всем спасибо.  путь ясен...!!     | |||
| 13
    
        Фрэнки 10.10.12✎ 13:25 | 
        (10) в чем неверность такого подхода, если другого применения для ДополнительноеСвойство нету     | |||
| 14
    
        1Страх 10.10.12✎ 13:25 | 
        (13) см (3)     | |||
| 15
    
        olegves 10.10.12✎ 13:27 | 
        (0) при записи из формы передавай свой параметр записи, а в модуле объекта проверяй этот свой параметр. Если параметра нет, значит запись не из формы     | |||
| 16
    
        Classic 10.10.12✎ 13:32 | 
        (3)
  Зачем тогда ОбменДанными.Загрузка ? | |||
| 17
    
        Рэйв 10.10.12✎ 13:33 | 
        (0)Сделай экспортную переменную модуля объекта и ставь ее в истина в ПриЗаписи в форме.
  Но лучше бы ты прислушался к (3) | |||
| 18
    
        Fragster гуру 10.10.12✎ 13:34 | 
        (13) применение - передача данных по цепочке событий.     | |||
| 19
    
        pumbaEO 10.10.12✎ 13:35 | 
        УФ ?     | |||
| 20
    
        Fragster гуру 10.10.12✎ 13:35 | 
        (16) алгоритм в таком случае выполнился в другом узле РИБ (по хорошему). а "мальчики, которые могут поменять задним числом без проверок" - это неправильно.     | |||
| 21
    
        SerGa 10.10.12✎ 13:38 | 
        (15) Как передавать параметр?
  (17) а ведь точно.... самый простой вариант. к мнению (3) прислушался, там особый случай на логику записи движений никак не влияет... | |||
| 22
    
        Aprobator 10.10.12✎ 13:38 | 
        (0) экспортная переменную модуля объекта. В модуле формы в событии ПриЗаписи ставишь ей какое нибудь значение. Ну и в модуле объекта ПриЗаписи выполняешь анализ ее значения.     | |||
| 23
    
        Classic 10.10.12✎ 13:39 | 
        (20)
  Не факт, что такой же алгоритм, как при интерактивном проведении. | |||
| 24
    
        Fragster гуру 10.10.12✎ 13:40 | 
        (23)->(3). ОбменДанными.Загрузка сделан для того, чтобы повторно не взывать все алгоритмы проверок, формирования движений и т.д.     | |||
| 25
    
        Фрэнки 10.10.12✎ 13:51 | 
        (21) (22) Ну и в чем прописанная в тексте модуля объекта экспортная переменная отличается от прописывания в модуле формы добавления элемента в структуру ДополнительныеСвойства ?     | |||
| 26
    
        SerGa 10.10.12✎ 13:54 | 
        (25) по большому счету не чем наверно в данном случае..  на мой взгляд чуть проще и прозрачней код...     | |||
| 27
    
        Aprobator 10.10.12✎ 13:54 | 
        (25) дело вкуса. Право на жизнь имеет и то и то. Просто экспортная переменная - первое что пришло в голову. Такая задача ни разу не возникала.     | |||
| 28
    
        hhhh 10.10.12✎ 13:56 | 
        (14) у меня задача была: выгрузка оплат в эксель. Как раз надо выгружать только измененные интерактивно. А если главбух запустила групповое перепроведение за год, то выгружать документы не надо.     | |||
| 29
    
        pumbaEO 10.10.12✎ 13:57 | 
        (27) На УФ не сильно прокатит.     | |||
| 30
    
        Aprobator 10.10.12✎ 13:57 | 
        интерактивные проверки должны вызываться из событий формы, только и всего.     | |||
| 31
    
        Aprobator 10.10.12✎ 13:58 | 
        (29) экспортные переменные в модуле объекта запрещены?     | |||
| 32
    
        ssh2006 10.10.12✎ 14:00 | 
        На УФ с доп свойствами может не сработать     | |||
| 33
    
        Aprobator 10.10.12✎ 14:02 | 
        (32) почему? ДополнительныеСвойства - свойство объекта. Правда писать в него можно только на стороне сервера.     | |||
| 34
    
        ssh2006 10.10.12✎ 14:08 | 
        Как-то пробовал из обработки заполнения в модуле объекта поместить в доп свойства значение, а в при создании формы на сервере считать их. Разные объекты получались, исходный объект со своими доп свойствами уже не был жив. Могу ошибаться, но кажется так было.     | |||
| 35
    
        Aprobator 10.10.12✎ 14:13 | 
        скорей всего не с того объекта форму получал.     | |||
| 36
    
        Лефмихалыч 10.10.12✎ 14:13 | 
        (0) с некоторыми оговорками и ограничениями может подойти вот эта метода:
  
 Но проще и правильнее перестать хотеть так делать: различное поведение при открытой форме и закрытой - это быдлокодинг в чистом виде | |||
| 37
    
        ssh2006 10.10.12✎ 14:19 | 
        Q: "Можно ли изменить ДополнительныеСвойства у документа из управляемой формы в режиме тонкого клиента, а затем поймать в обработчике события ПриЗаписи() объекта "документ"?"
  A: "Теоретически можно, но практического смысла в этом мало. На клиенте нет объектов. Поэтому чтобы изменить свойство ДополнительныеСвойства вам нужно пойти на сервер, там реквизит формы преобразовать в объект и тогда уже менять его свойство ДополнительныеСвойства. Воспользоваться тем, что вы изменили, можно будет только в этом же серверном вызове и до тех пор, пока жив ваш программный объект. Т.е. где-то тут рядом вам нужно будет его записывать. Если же вы поменятете таким образом ДополнительныеСвойства и решите обратно преобразовать объект в данные формы и вернуться на клиента, то ваши изменения пропадут, т.к. форма "не запоминает" это свойство программного объекта." http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=563290 | |||
| 38
    
        Aprobator 10.10.12✎ 14:39 | 
        (37) пасиб - буду знать теперь.     | |||
| 39
    
        olegves 10.10.12✎ 17:32 | 
        (21) в процедуре ПередЗаписьюНаСервере
  ПараметрыЗаписи - это структура, куда можно вставлять свои параметры | |||
| 40
    
        Mort 10.10.12✎ 17:49 | 
        (37) Не верю что Радченко ТАК ответил...
  В параметрах процедур передЗаписьюнаСервере и ПриЗаписиНаСервере есть ТекущийОбъект. Это и есть тот самый записываемый объект, которому можно назначить доп. свойства. | |||
| 41
    
        ssh2006 10.10.12✎ 18:25 | 
        (40) Да вроде устанавливать доп свойства в передЗаписьюнаСервере, чтобы потом их получить в ПередЗаписьюОбъекта - это как раз в этой схеме: [Воспользоваться тем, что вы изменили, можно будет только в этом же серверном вызове и до тех пор, пока жив ваш программный объект.].     | |||
| 42
    
        Mort 10.10.12✎ 18:28 | 
        (41) В той, только имелось в виду другое: "Т.е. где-то тут рядом вам нужно будет его записывать"     | |||
| 43
    
        ssh2006 10.10.12✎ 18:30 | 
        (42) ну без записи же не обойтись...     | |||
| 44
    
        Mort 10.10.12✎ 18:36 | 
        (43) С чего бы? 
  Процедура ПередЗаписьюНаСервере(...) ТекущийОбъект.ДополнительныеСвойства.Вставить("Ж*ПА"); // Ловим в модуле объекта КонецПроцедуры; | |||
| 45
    
        Aprobator 10.10.12✎ 18:46 | 
        запись то тут не при чем. Имелось ввиду, что если после изменения допсвойств объекта будет использован метод ЗначениеВДанныеФормы, то допсвойства сотрутся. Проверять, имхо, надо.     | |||
| 46
    
        ssh2006 10.10.12✎ 18:48 | 
        (44) да, тут вопросов нет. 
  Сбегать на сервер, поменять доп свойства и продолжить дальше смотреть на форму, с тем, чтобы позже нажав кнопку записать отловить их в ПриЗаписи не получится. Я так это понимаю. Чтобы эти доп свойства попали в ПриЗаписи объекта, нужно, чтобы они устанавливались в том же серверном вызове, что и сама процедура ПриЗаписи. Установка в ПередЗаписьюНаСервере как раз это решает. Но для вызова этой процедуры нужно вызвать запись. Т.е. можно установить доп св-ва и следом Записать() или устанавливать их уже ПередЗаписьюНаСервере. Противоречий не вижу. (45) как раз причем. Чтобы эти доп свойства попали в ПриЗаписи объекта, нужно, чтобы они устанавливались в том же серверном вызове, что и сама процедура ПриЗаписи - я так понимаю. | |||
| 47
    
        Aprobator 10.10.12✎ 18:50 | 
        (46) проверяй (44) и все увидишь сам. Объект один, но измененный. И не за что не поверю, что модуль объекта видит другой объект без изменений сделанных в модуле формы.     | |||
| 48
    
        ssh2006 10.10.12✎ 18:53 | 
        (47) что проверять-то, я написал [да, тут вопросов нет.]. Это и в СП написано     | |||
| 49
    
        Фрэнки 11.10.12✎ 09:36 | 
        Можно подвести резюме по всему обсуждению:
  - при использовании "толстых форм из толстого клиента" - допсвойства или экспортные переменные модуля объекта дают возможность увидеть, что открытой формы нет. - при использовании управляемых форм прежнее дефолтное использование экспортной переменной или дополнительного свойства слишком затруднительно и уже практически теряет всякий смысл, поскольку события для объектов в УФ расширены и содержат ПараметрыЗаписи в виде структуры, куда вставляются дополнительные непосредственно в коде для инициации записи объекта. Т.е. все отличия в ПараметрыЗаписи, которых в режиме совместимости с версией 8.1 просто нет. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |