|
|
|
v7: Как обновить ОСВпоСчету из внешней обработки ? | ☑ | ||
|---|---|---|---|---|
|
0
palpetrovich
26.01.12
✎
17:22
|
Из внешней обработки открываю ОСВпоСчету, при повтором вызове - создается новый экземпляр, можно как-то обновить существующий?
...сильно подозреваю, что при повторном вызове надо строку ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету"); чем-то заменить :) |
|||
|
1
ДенисЧ
26.01.12
✎
17:25
|
ОткрытьФорму("Отчет", параметры, КаталогИБ() + "\extforms\ОсВПоСчету.ert")
Ну и параметры там правильно отрабатывать |
|||
|
2
palpetrovich
26.01.12
✎
17:29
|
(1) ОборотноСальдоваяВедомостьПоСчету - встроенная, я ее вызываю из внешнего
можно наверное закрыть форму если открыта и открыть по-новой, но мне кажеться что можно и просто обновить ...или я не прав? |
|||
|
3
viktor_vv
26.01.12
✎
17:29
|
Куда-то в эту строну копать.
Замечание. Для журналов, отчетов, списков в конце строки описателя формы может быть указан символ "#" с некоторым идентификатором: "#LLLL". Это используется для того, чтобы данная форма открылась в новом окне, а не активизировала существующее окно этой формы, если оно открыто. Где, LLLL — идентификатор, который позволяет открыть новое окно или активизировать уже открытое с этим идентификатором. Если идентификатор не задан, то обязательно открывается новое окно. |
|||
|
4
viktor_vv
26.01.12
✎
17:30
|
ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету#МойИД");
|
|||
|
5
palpetrovich
26.01.12
✎
17:34
|
(4) увы, плодит формы и так
|
|||
|
6
Cthulhu
26.01.12
✎
17:37
|
// Внешнаа обработка
Перем КонтОСВ; // ... где-то там, где надо: ОткрытьФорму("Отчет.<NвойОтчет>",КонтОСВ); КонтОСФ.Форма.ОбработкаОжидания("Сформировать",1); Форма.ОбработкаОжидания("ОтключитьОбновлениеОСВ",1); // ... Процедура ОтключитьОбновлениеОСВ() Форма.ОбработкаОжидания("",0); Если ТипЗначенияСтр(КонтОСВ)="ГрупповойКонтекст" Тогда КонтОСФ.Форма.ОбработкаОжидания("",0) КонецЕсли; КонецПроцедуры //ОтключитьОбновлениеОСВ |
|||
|
8
viktor_vv
26.01.12
✎
17:38
|
(5) Вот так точно не плодит.
Процедура ОткрытьОтчет() ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету#XXXX"); КонецПроцедуры Процедура висит на кнопке, сколько не нажимаю, просто активируется открытая форма. |
|||
|
9
palpetrovich
26.01.12
✎
17:42
|
(8) а, я понял, у меня немного не так. я сразу печФормуОСВ формирую, без окрытия основной формы
|
|||
|
10
viktor_vv
26.01.12
✎
17:43
|
(8) Хотя при таких условиях она и просто
ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету"); Не плодит. Скорее всего в коде надо еще искать. может там че-то еще меняется. |
|||
|
11
palpetrovich
26.01.12
✎
17:43
|
+(9) тем самым ввел всех в заблуждение, сорьки
|
|||
|
12
viktor_vv
26.01.12
✎
17:45
|
Это тебе тогда надо выведенную форму писать в переменную глобальную и передавать ее в форму. Смотри по кнопке Расшифровка вверху че ей там надо, там еще флаги меняются.
|
|||
|
13
palpetrovich
26.01.12
✎
17:46
|
(6) че-т не то
(7) эт ваще не то :) |
|||
|
14
viktor_vv
26.01.12
✎
17:46
|
(12) Не расшифровка, а Обновить, рядом с настройкой.
|
|||
|
15
palpetrovich
26.01.12
✎
17:47
|
(12) вызываю так:
глОбновить = 1; глФлагРасшифровки = 1; СписокПараметров = СоздатьОбъект("СписокЗначений"); СписокПараметров.ДобавитьЗначение(ВыбНачПериода, "Дата1"); СписокПараметров.ДобавитьЗначение(ВыбКонПериода, "Дата2"); СписокПараметров.ДобавитьЗначение(СчетПоКоду("281", ПланыСчетов.Основной), "Счет"); СписокПараметров.ДобавитьЗначение(ВидыСубконто.ТМЦ, "ВидСубконто1"); СписокПараметров.ДобавитьЗначение(2, "ОтборСубконто1"); СписокПараметров.ДобавитьЗначение(ВыбТовар, "Субконто1"); СписокПараметров.ДобавитьЗначение(ВидыСубконто.Партии, "ВидСубконто2"); СписокПараметров.ДобавитьЗначение(1, "ОтборСубконто2"); глРасшифровка = СписокПараметров; ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету"); глОбновить = 0; глФлагРасшифровки = 0; глРасшифровка = 0; |
|||
|
16
viktor_vv
26.01.12
✎
17:50
|
Вот это еще надо как-то использовать.
Если (глОбновить <> 0) или (глФлагРазворота <> 0) Тогда глТаблица = Таблица; КонецЕсли; Это из обработкиЯчейкиТаблицы глобальной. Таблица это параметр этой процедуры, передается при клике в таблице. А тебе как-то надо эту выведенную таблицу получить в твоей форме внешнего отчета. |
|||
|
17
viktor_vv
26.01.12
✎
17:52
|
СписокПараметров.ДобавитьЗначение(ВидыСубконто.Партии, "ВидСубконто2");
СписокПараметров.ДобавитьЗначение(1, "ОтборСубконто2"); глРасшифровка = СписокПараметров; глТаблица = Таблица; // ??? Как получить эту таблицу не знаю. ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету"); |
|||
|
18
palpetrovich
26.01.12
✎
17:53
|
(16) ну, вроде ОбработкаЯчейкиТаблицы с этим справляется :)
спасибо за наводку, сейчас попробую |
|||
|
19
palpetrovich
26.01.12
✎
17:54
|
+(18) блин, но-же при "клике", а мне как-то кликать там не надо :)
|
|||
|
20
viktor_vv
26.01.12
✎
17:55
|
Так она справляется, потому как этот параметр есть в предопреденной процедуре, и обработка ячейки вызывается непосредственно из этой таблицы.
Если в лоб,то своя глобальная переменная, в нее писать из ОСВ при выводе. И тогда в твоей обработке глРасшифровка = СписокПараметров; глТаблица = ТвояГлобальнаяПеременнаяСТаблицей; // ??? Как получить эту таблицу не знаю. ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету"); |
|||
|
21
palpetrovich
26.01.12
✎
17:57
|
кста, пробовал так
ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету", Конт); смотрел в отладчике, сразу после этого - Конт ничему не равна ...видать формы нет вообще :) несмотря на "Пока форма открыта, тип значения параметра <КонтекстФормы> равен 100, когда закрыта - 0." |
|||
|
22
Cthulhu
26.01.12
✎
17:59
|
(13): извини, но похоже то, что в (6) - не "че-т не то", а "ты просто нихрена не понял".
все там то. через контекст формы отчета вызывается в обработке ожидания процедура, обновляющая отчет, и тут же процедура контекста внешней обработки, отключающая обработку ожидания, запущенную в ОСВ через её контекст. (21): Сообщить("Успешно(1)/неудачно(0) открылась = "+ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету", Конт)+", Контекст открытой = "+Конт+" (тип="""+ТипЗначенияСтр(Конт)+""")","i"); |
|||
|
23
palpetrovich
26.01.12
✎
18:04
|
(22) не спорю, нихрена не понял
понял только что ОбработкаОжидания("... нужно в ОСВПоСчету лепить надо и дальше вдумываться не стал |
|||
|
24
Cthulhu
26.01.12
✎
18:07
|
(23): бред, в (6) исключительно код внешней обработки, в вызываемый отчет ничего "лепить" НЕ надо.
(как ты причудливо "понял", однако... ну ооочень альтернативно))))))) |
|||
|
25
viktor_vv
26.01.12
✎
18:08
|
(23) Не надо ее туда лепить, она через контекст из твоей обработки прилепится. Только скорее всего проблема с передачей открытой таблицы, которую надо обновить, все равно останется
|
|||
|
26
Cthulhu
26.01.12
✎
18:09
|
(25): телепатирую: можно предварительно аккуратно установить глоб.переменные глФлагРасшифровки и глРасшифровка, а также переменную Т
|
|||
|
27
palpetrovich
26.01.12
✎
18:10
|
(24) ну значит я ващще ниче не понял, попробую разобраться
|
|||
|
28
viktor_vv
26.01.12
✎
18:12
|
(26) Флаги он и так устанавливает, а вот с переменной Т проблема, откуда ее взять-то во внешней обработке? Если по простому то (20). В ОСВ добавить придется
Т.Опции(0, 0, 5, 2,,"ОСВ"); Т.ОбластьПечати(2); Т.Показать("Оборотно-Сальдовая ведомость ("+ПериодСтр(Дата1, Дата2)+")", ""); ТвояГлобальнаяПеременнаяСТаблицей = Т ; |
|||
|
29
Cthulhu
26.01.12
✎
18:14
|
(28): а вот тут я путаюсь. переменные модуля формы через контекст формы разве недоступны?
|
|||
|
30
viktor_vv
26.01.12
✎
18:16
|
(29) Так у него нет формы отчета, она закрыта, судя по (9), осталась только сформированная Таблица.
|
|||
|
31
viktor_vv
26.01.12
✎
18:17
|
(29) И таки штатно переменные модуля не доступны (с некоторой долей неуверенности :)) ), только реквизиты формы.
|
|||
|
32
palpetrovich
26.01.12
✎
18:18
|
(29) увы (6) не катит, ибо "КонтОСВ.Форма.ОбработкаОжидания("Сформировать",1);
Значение не представляет агрегатный объект (Форма)" формы нет, посмотри (15) |
|||
|
33
viktor_vv
26.01.12
✎
18:25
|
(32) Попробуй с правкой ОСВ и глобальника (20) и (28). Но тут с обновлениями нехорошо получится, хотя и изменения минимальны.
|
|||
|
34
palpetrovich
26.01.12
✎
18:26
|
(31) спасибо, глТаблица = Т; в ОСВПоСчету все решает
правда, дабы не курочить конфигурацию, пришлось ОСВ сохранить каку внеший |
|||
|
35
viktor_vv
26.01.12
✎
18:29
|
(34) Оно бы лучше свою переменную глобальную, тебе ж надо что б она жила подольше . А то глТаблица часто пользуется и короткоживущая, могут быть глюки.
|
|||
|
36
viktor_vv
26.01.12
✎
18:31
|
Я в том плане, что при открытой твоей обработке, откроют еще какой-нибудь стандартный отчет обновят его и привет, глТаблица пустая.
|
|||
|
37
palpetrovich
26.01.12
✎
18:33
|
(35) это обработка для монопольного использования, так что проблем не будет
|
|||
|
38
palpetrovich
26.01.12
✎
18:34
|
спасибо всем соучастникам :) viktor_vv - особо!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |