Функция ПолучитьФорму().Открыта() #765302


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

В этой группе 1С