Имя: Пароль:
1C
1C 7.7
v7: Отследить закрытие чилд-форм
0 monsterZE
 
27.11.12
17:44
Сабж, может кто-то уже реализовывал подобное?..
Есть альтернативный журнал документов. Задача такая - обновлять реквизиты в этом журнале по изменению доков им открываемых. =)
Можно было бы ограничиться модальным окном, но оно не дает менять размер.. что очень не удобно.
1 Ёпрст
 
27.11.12
17:45
дает.
2 Ёпрст
 
27.11.12
17:45
формеском можно растянуть модпальное окно
3 monsterZE
 
27.11.12
17:46
т.е. юзверь открыл документ, что-то поправил в нем, сохранил. по закрытию дока надо обновить его реквизиты в журнале, например сумму.
есть формекс и 1с++ =)
4 monsterZE
 
27.11.12
17:47
(2) ага, значит формексом можно.. покурим =)
5 Ёпрст
 
27.11.12
17:48
(3) дык проще автообновление задать и привет..
6 Ёпрст
 
27.11.12
17:49
поставщик данных сам обновит строки
7 Ёпрст
 
27.11.12
17:49
ну, на крайняк. самому обновить их..
8 monsterZE
 
27.11.12
17:52
на форме тз, заполняется по прямому запросу
как тогда лучше реализовать авто обновление? =)
по таймеру перезаполнять всю тз не очень быстро и удобно.. да и не нужно.. оператор обычно работает с конкретным документом. при закрытии оного, должон обновиться в журнале.
9 Попытка1С
 
27.11.12
17:56
Вообще если уж на то пошло есть ПоставщикДанных с параметрами автообновления.
10 Попытка1С
 
27.11.12
17:56
И альтернативный журнал на нем слепить было бы милое дело.
11 Ёпрст
 
27.11.12
17:57
(8) забить на тз, взять тп и поставщиком данных - прямой запрос..
там и автообновление есть, да и запрос "кастрирован" - берёт не весь журнал, а только чать. которая нужна для просмотра на форме.
12 monsterZE
 
27.11.12
17:57
(9) ок. почитаю.. ранее не пользовал =(
13 monsterZE
 
28.11.12
12:44
пока на ТП и Поставщика данных не переделал, хочется решить вопрос с чилд-формой.
по идее, при закрытии формы дока - надо найти в списке журнала, какой док закрыли и обновить его реквизиты..
формекс грузится в глобальнике. процедуры кликов мыши, например, отрабатывают.
навставлял

Процедура ПослеОткрытия(Конт)
   Сообщить("Открыли "+Конт);
КонецПроцедуры

Процедура ПослеЗакрытия(Конт)
   Сообщить("Закрыли "+Конт);
КонецПроцедуры

не фунциклирует.. формекс 2.0
14 monsterZE
 
28.11.12
12:49
по модальному окну - как можно изменить его размер? если (как я понял) для управления формой - она должна быть уже создана.
15 monsterZE
 
28.11.12
17:18
(2)
чет даже обычное окно не растягивает.. =) не говоря уже о модальном.
       Конт = "";
       ОткрытьФорму(ТабПД.Документ,Конт,);
       ФормаРасш = СоздатьОбъект("РасширениеФормы");
       ФормаРасш.УстановитьФорму(Конт.Форма);
       //ФормаРасш.Максимизирована(1);        
       Сообщить(ФормаРасш.ПолныйПуть());
       Сообщить(ФормаРасш.ПолныйТипОбъекта());

ругается, что нет такого свойства "Максимизирована"
16 monsterZE
 
28.11.12
17:20
=1
17 monsterZE
 
28.11.12
17:21
ну обычною растянул, а модальную? =)
18 Cthulhu
 
28.11.12
17:43
навскидку, б/ВК, б/оптимизации:
1. При каждом открытии документа - складывать в два массива (переменные модуля): 1) документы; 2) контексты открытых форм.
2. В обработке ожидания парсить массив#2 на ТипЗначенияСтр(..)<>"ГрупповойКонтекст", и для каждого такого:
а) обновлять соответствующую строку ТЗ на морде (дернув из первого массива документ по тому же индексу);
б) синхронно вычищать из обоих массивов обработанную таким образом позицию.
19 monsterZE
 
28.11.12
17:49
(18) спсб, про подобное думалось, но, имхо, это слишком геморно.. просто, если более "дешевого" способа не существует - пусть ждут, когда будет взлетать на ПоставщикеДанных.
видимо не правя форму все-таки нельзя.
20 Cthulhu
 
28.11.12
18:12
(19): десяток-другой строк кода - это да, страшный геморрой... по сравнению с поставщиком данных...
21 Cthulhu
 
28.11.12
18:21
(20)+: если можно поправить модуль формы документа - то и вообще без постоянной обработки ожидания в форме с обновляемым списком документов можно обойтись...
22 Ёпрст
 
29.11.12
10:47
(17)
Окна=СоздатьОбъект("Окна");
Окна.МенюОкна(Форма,1,1,0,1); //разрешаем max

так, для начала, её можно максимизировать
23 monsterZE
 
29.11.12
12:33
(22) ага, попробую.. я уж думал в самой форме, при открытии, проверять параметр и максимизировать формексом.
24 monsterZE
 
29.11.12
12:54
к (23) ну похоже так и есть =)
25 monsterZE
 
29.11.12
13:18
тест не прошел =)
добавил в форму документа

//---
Процедура ПриОткрытии()  
   Если Форма.Параметр=1 Тогда    
       Окна=СоздатьОбъект("Окна");
       //Окна.МенюОкна(Форма,1,1,0,1);        
       Окна.Максимизировать(Форма)
   КонецЕсли;    
//---

Через меню окна - кнопка макимизировать активна, но не работает. Т.е. не максимизирует окно.
Через само максимизировать - экран моргает и окошко прыгает в левый верхний угол.. таскается и меняет размер на еще меньший.
26 Ёпрст
 
29.11.12
14:52
у мну всё разворачивается в модальном окошке.
27 Ёпрст
 
29.11.12
14:52
формекс какой версии хоть ?
28 monsterZE
 
29.11.12
15:18
версия 2.0.5.108
29 monsterZE
 
29.11.12
17:29
Вынес все в процедуру формекса - работает.. ноне так, как надо.

Процедура ПослеСозданияФормы()
                           
   //Сообщить("ыы");
   
   Если Форма.Параметр=1 Тогда    
       РФ=СоздатьОбъект("РасширениеФормы");
       РФ.УстановитьФорму(Форма);
       РФ.Максимизирована=1;
       
       //О=СоздатьОбъект("Окна");
       //Ш=1024;
       //В=600;
       //О.РазмерОкна(Форма,Ш,В,);
       //О.Максимизировать(Форма);
       //Сообщить("Ш="+Ш);
       //Сообщить("В="+В);
   КонецЕсли;    
   
КонецПроцедуры
30 monsterZE
 
29.11.12
17:30
максимизирует и размер окна меняется, но тч не растягивается!
т.е. тянется только сама форма. =(( втф?
31 monsterZE
 
29.11.12
17:31
причем максимизируется на весь экран, а не на рабочее пространство 1с
32 monsterZE
 
29.11.12
17:32
кнопка "развернуть" нажимается но не отрабатывает.
33 FN
 
29.11.12
19:00
(3) неправильное решение - а если документ изменил другой юзвер? Без автообновления никак, так что используй ТП или обычный журнал с отбором
34 monsterZE
 
30.11.12
09:13
(33) есть кнопка обновляющия все документы за выбранный период (либо можно включить таймер автообновления) но, как правило (в моем случае):
- один юзверь исправляет один документ и на текущий момент времени, ему интересен именно этот документ

зы. про тп читаю пока..
35 monsterZE
 
30.11.12
09:15
к (34) т.е., как правило, по конкретному клиенту, в один момент времени, исправляет доки конкретный юзверь.
36 Ёпрст
 
30.11.12
09:15
(34)возьми готовый класс.. там кода на 2 строки будет
37 monsterZE
 
30.11.12
09:18
(36) про что конкретно?
38 monsterZE
 
30.11.12
09:20
я сегодня еще поковыряю формекс.. если ничего путного не выйдет, тогда на пока просто разверну формы в конфигураторе.