|
Функция ПолучитьФорму().Открыта() | ☑ | ||
---|---|---|---|---|
0
Garry1010
15.02.16
✎
11:50
|
Хоть и не в первый раз, но опять подниму тему, так как чёткого ответа всё-таки я не нашёл...
Цель - получить форму уже открытого(!) отчета в НЕ управляемом приложении. Естественно, что использование ПолучитьФорму() у объектов типа Отчет толку не даст, ибо она пытается получить форму для нового объекта отчета, который мне, конечно, не нужен - ибо он не тот, что уже открыт. Возникает вопрос: каков смысл функции глобального(!) контекста ПолучитьФорму(...) в НЕ управляемом приложении касательно Отчетов, если указывай/не указывай ей правильный путь к форме отчета(ибо со справочниками, например, работает!), но функция Открыта() для неё как будто не работает? То есть всегда выдаёт Ложь. А если подсунуть ей не путь (строку) к форме, а уже "полученный" объект типа Форма - то она всегда якобы открыта - всегда выдаёт Истина.
Собственно, нормально работает только функция ПолучитьФорму() у объектов типа ВнешнийОтчет и ВнешняяОбработка. Вот она правильно определяет открыта ли форма отчета. Кто-то знает ответ - почему у ПолучитьФорму() такая странная логика работы? Может, она просто неприменима для объектов типа Отчет и Обработка? |
|||
1
Рэйв
15.02.16
✎
11:58
|
ОтчетОбъект.<Имя отчета> (ReportObject.<Имя отчета>)
ПолучитьФорму (GetForm) Синтаксис: ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>) -------------- <КлючУникальности> - ни на какие мысли не наводит? СП тоже иногда читать все таки надо... |
|||
2
Garry1010
15.02.16
✎
12:08
|
(1) Кажется, я уже перепробовал все возможные варианты.
<КлючУникальности> - не-а, не наводит.;)) Ибо какой нафик ключ уникальности в открытом вручную отчете? Под ОтчетОбъект.<Имя отчета> (ReportObject.<Имя отчета>)
вы, видимо, понимаете: Отчеты.ОборотноСальдоваяВедомостьПоСчетуХозрасчетный.ПолучитьФорму("Форма")
Я же написал, что ПолучитьФорму() от объекта Отчет бессмысленно, ибо он будет получать её для нового(!) объекта отчета, а не для того, что уже открыт, - точно так же, как для документа или справочника. Вы этого не знали?О_О |
|||
3
vicof
15.02.16
✎
12:13
|
"ибо он будет получать её для нового(!) объекта отчета, а не для того, что уже открыт" - Ложь
<Уникальность> (необязательный) Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма. Ложь - искать форму с ключом уникальности по умолчанию, Истина - не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск. Значение по умолчанию: Ложь. |
|||
4
Рэйв
15.02.16
✎
12:16
|
(2)ОтчетОбъект в (1) это какбэ совсем не Отчеты.ОборотноСальдоваяВедомостьПоСчетуХозрасчетный.
Это отчет у которого уже открыта форма с установленным ключом уникальности |
|||
5
Garry1010
15.02.16
✎
12:23
|
(3)
Значение по умолчанию: Ложь. Ложь - искать форму с ключом уникальности по умолчанию
И - что? Если открыть отчет просто через меню, то естественно предположить, что и ключ уникальности будет равен "ключом уникальности по умолчанию" - разве не так? А чего ж оно не ищет? (4) И как вы предлагаете его найти - этот ОтчетОбъект? Может, вы не поняли: я ищу форму возможно открытого отчета НЕ(!!!) в самом этом отчете - а в совершенно другой обработке. Как работать с формой самого отчета из него самого - вопросов не вызывает никаких.:)) |
|||
6
DDwe
15.02.16
✎
12:26
|
(5) Ты чего нервируешься?
|
|||
7
Garry1010
15.02.16
✎
12:31
|
(6) Жду информацию о том, почему не работает сабж - а мне тут про то, какой я лох (будто первый день 1С'ку вижу).
|
|||
8
DDwe
15.02.16
✎
12:36
|
(7) Ну, так может правильно говорят? А если подумать?
|
|||
9
Garry1010
15.02.16
✎
12:38
|
(8) Я, вроде, написал по максимуму свои требования и вопросы...-_О Может, вместо хождения по приколам напишите, что хотели сказать?
|
|||
10
DDwe
15.02.16
✎
12:40
|
(9) Ну, требовать... это где-нибудь в другом месте.
|
|||
11
Garry1010
15.02.16
✎
12:42
|
(10) Требования - не к вам (больно хотелось), а к программе. Точнее, к функции глобального контекста.
... Ладно. Другие мнения/инфа есть у кого-то? Может быть... |
|||
12
DomovoiVShoke
15.02.16
✎
13:32
|
(3)А только у меня не дает вписать "уникальность" и пишет что избыток параметров?
|
|||
13
vicof
15.02.16
✎
13:36
|
(11) Лови.
https://yadi.sk/d/E4wlJ649orqU9 |
|||
14
vicof
15.02.16
✎
13:36
|
(12) См. (11)
|
|||
15
Garry1010
15.02.16
✎
13:36
|
(12) Вот-вот. ;) Одна из причин.
|
|||
16
DomovoiVShoke
15.02.16
✎
13:39
|
(13)В (0) "НЕ управляемом приложении"
|
|||
17
DomovoiVShoke
15.02.16
✎
13:43
|
(8)Все передумал, мучаюсь аж работа стоит, расскажите пожалуйста.
|
|||
18
vicof
15.02.16
✎
13:44
|
(16) Одинкуй
|
|||
19
vicof
15.02.16
✎
13:46
|
Если что, у меня 8.3.5. На более древних не смотрел.
|
|||
20
DomovoiVShoke
15.02.16
✎
13:46
|
(18)Скиньте обработку, если можно.
|
|||
21
DomovoiVShoke
15.02.16
✎
13:47
|
(19)Сейчас проверим.
|
|||
22
Garry1010
15.02.16
✎
13:47
|
(13) Да зачем мне открывать отчет? Мне его форму найти надо (если она открыта), чтобы потом заняться кое-какими операциями (по реквизитам и свойствам формы пройтись, например). А если она не открыта, то и... не нужна она мне.
И - да, я же указал, что НЕ управляемое приложение. |
|||
23
DomovoiVShoke
15.02.16
✎
13:49
|
(19)Проверил на 8.3.6 "Слишком много фактических параметров". Не дает вписать уникальность.
|
|||
24
Garry1010
15.02.16
✎
13:50
|
(18) Она у меня даже не открывается - на 8.2, правда. ВООБЩЕ! Даже в тело модуля формы не заходит, хотя Конфигуратор открывает её.
|
|||
25
DomovoiVShoke
15.02.16
✎
13:51
|
Блин я не заметил. Зачем функция ОткрытьФорму если надо ПолучитьФорму.
|
|||
26
DomovoiVShoke
15.02.16
✎
13:52
|
В ОткрытьФорму() дает вписать параметр уникальность, в ПолучитьФорму() не дает :)
|
|||
27
DomovoiVShoke
15.02.16
✎
13:56
|
(19)Даже если рассмотреть ОткрытьФорму(), какой параметр уникальности не ставь Истина/Ложь, все равно открываются новые формы.
|
|||
28
cathode
15.02.16
✎
14:08
|
(27) Это легко объясняется. В ПередОткрытием() у стандартных бухгалтерских отчетов стоит вызов
ТиповыеОтчеты.НазначитьФормеУникальныйКлючИдентификации(ЭтаФорма) В нем, если у формы не указан ключ уникальности, он перезаписывается принудительно. Так что открыть одну и ту же форму дважды можно только если предварительно самостоятельно назначить какой-то одинаковый ключ уникальности. |
|||
29
DomovoiVShoke
15.02.16
✎
14:25
|
(0)В общем дело дрянь. Очередной косяк в 1с.
|
|||
30
Garry1010
15.02.16
✎
14:31
|
(29) Собственно, о чём я и спрашивал: косяк ли это или я чего-то не допетрил... Может, какой-то хитрый вариант задания имени отчета возможен? - Типа как для включения переключаемости непереключаемого интерфейса.:)
|
|||
31
cathode
15.02.16
✎
14:46
|
(30) Это косяк, но не платформы, а типовой БП 2.0. В пустой конфигурации указанное в (0) работает как должно.
А как включить переключаемость непереключаемого интерфейса? |
|||
32
Garry1010
15.02.16
✎
14:56
|
(31) Дык, если бы работало, я бы не вопрошал сюда. Говорю же: для справочников и т.п. работает, а для отчетов - нет. Ничего не находит. Я же начал тестить не с ОСВ, а с ведомости по партиям на складах - а там нет этой НазначитьФормеУникальныйКлючИдентификации.
(31) О-о-о-ооо!!! Это есть великая тайна 1С!!! 8))) Мой коллега как-то с трудом нашёл такую фишку в инете. Как ни странно, надо сначала сделать наоборот (хотя исходно Общий интерфейс и так в конфе стоит как непереключаемый): ГлавныйИнтерфейс.Общий.Переключаемый = Ложь;
после чего можно смело переключаться ГлавныйИнтерфейс.ПереключитьИнтерфейс("...МойИнтерфейс");
и "Общий" интерфейс пропадёт. |
|||
33
DomovoiVShoke
15.02.16
✎
14:57
|
(31)В ПолучитьФорму() нельзя вставить параметр "уникальности".
|
|||
34
cathode
15.02.16
✎
15:17
|
(32) o_O
(33) Похоже, это как-то связано с параметрами совместимости. В БП2 ПолучитьФорму с четвертым параметром не компилируется. Если создать пустую конфигурацию с основным режимом запуска "Обычное приложение", то в ней компилируется. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |