|
Открыть форму документа во OLE-соединении БЕЗ главного окна приложения | ☑ | ||
|---|---|---|---|---|
|
0
GANR
09.06.26
✎
23:58
|
Порядок действий:
На стороне УХ в толстом клиенте выполняем программный код, чтобы открыть форму документа во внешней базе (БП 3) V83App = Новый COMObject("V83.Application"); V83App.Connect("Srvr=""уууу"";Ref=""ffff"";Usr=""tttt"";Pwd=""xxx"";"); ВнешняяСсылка = V83App.Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Новый УникальныйИдентификатор("467c0a4a-067d-4dd6-80ec-ca6b2eb7d3be")); ПараметрыФормы = V83App.NewObject("Структура", "Ключ", ВнешняяСсылка); V83App.OpenForm("Документ.РеализацияТоваровУслуг.ФормаОбъекта", ПараметрыФормы); Фактический результат: Во внешнем соединении открывается окно приложения и внутри него документ. Желаемый результат: Открыть форму документа во внешнем соединении БЕЗ главного окна приложения. Каким образом можно добиться желаемого результата? |
|||
|
1
timurhv
10.06.26
✎
00:17
|
Это к Гению 1С, он научит
|
|||
|
2
GANR
10.06.26
✎
00:22
|
(1) Делал в 2012 году такое, но к сожалению никак не найду исходник. Может навигационные ссылки можно как-то открывать с токеном, чтобы не было надобности по 100 раз пароль и логин вводить.
|
|||
|
3
GANR
10.06.26
✎
00:25
|
Модераторов попрошу тему переименовать в "Открыть форму документа во внешнем соединении БЕЗ главного окна приложения".
|
|||
|
4
H A D G E H O G s
10.06.26
✎
00:31
|
ПерейтиПоНавигационнойСсылке(<НавигационнаяСсылка>)
Возможен переход по внешней ссылке. Для внешней ссылки, которая содержит сигнатуру "e1cib" выполняются следующие действия: Если начало ссылки совпадает с навигационной ссылкой информационной базы текущего сеанса, то выполняется переход по локальной ссылке; Если начало ссылки не совпадает с навигационной ссылкой информационной базы, то осуществляется поиск запущенного клиента, подключенного к базе, адрес которой соответствует ссылке. Если такой клиент найден, окно его приложения активизируется и в нем выполняется переход по ссылке. Если соответствующего запущенного экземпляра тонкого клиента нет, то выполняется попытка запуска нового экземляра тонкого клиента с соответствующей строкой соединения и в нем выполняется переход. |
|||
|
5
GANR
10.06.26
✎
00:41
|
(4) похоже, это наиболее приближенный к современный реалиям вариант
|
|||
|
6
Мультук
гуру
10.06.26
✎
06:43
|
(0)
Цель то какая ? |
|||
|
7
GANR
10.06.26
✎
08:33
|
(6) Человек просматривающий нагруженные из внешних систем документы в 1 таблицу должен иметь возможность в 1 клик открыть его как он есть в первоисточнике на просмотр
|
|||
|
8
Rovan
гуру
10.06.26
✎
08:56
|
(0) а так
V83App.Visible = 0 |
|||
|
9
GANR
10.06.26
✎
09:01
|
(8) Ни документ ни главное окно базы источника не видно тогда
|
|||
|
10
Rovan
гуру
10.06.26
✎
09:28
|
попробуй
WindowState = 2 // Minimize |
|||
|
11
Климов Сергей
10.06.26
✎
09:32
|
(7) А просмотр печатной формы не спасёт отца русской демократии? Это сильно проще в реализации.
|
|||
|
12
Garykom
гуру
10.06.26
✎
22:46
|
(7) Попытка изобрести свою бесшовную интеграцию с ДО?
Кстати оно вполне реализуемо и даже универсально для любых справочников/документов Причем нафик COM/OLE, сделать через веб или лучше http-сервис Суть что тебе надо взять некий объект с данными из другой базы и отобразить его Данные взять не проблема, причем используя метаданные даже знаем какие есть Остается внешний вид - и тут как раз для УФ форм можно программно получить и нарисовать как надо, почти как в исходном справочнике или документе и с ТЧ https://infostart.ru/1c/tools/304736/ Минус только один - это нихрена не задачка уровня джуна, тут и сеньор пару недель провозится Но зато будет универсальный механизм и готовый материал для статьи на ИС или выступления на эвенте |
|||
|
13
егаис
11.06.26
✎
08:12
|
(11) А есть примеры, как это реализуется?
У меня дергается представление документа в управленку из бух по http. Как реализовать вывод печатной формы в управленке, зная уид документа источника? Знаю метод получения данных через json и формирования отчета скд через внешний источник данных. Есть еще варианты, например табдок передать готовый? |
|||
|
14
toypaul
гуру
11.06.26
✎
08:24
|
(13) передать как двоичные данные. например, файлы в ДО так передаются
|
|||
|
15
Климов Сергей
11.06.26
✎
09:18
|
(13) Примеров нет. По команде из управленки формировать для документа печатную форму по умолчанию. Возвращать готовый mxl.
|
|||
|
16
stix2010
11.06.26
✎
10:04
|
(13) передачу табдок через двоичные данные совсем недавно делал, ничего сложного,табдок записать в двоичные данные и передать нужным транспортом, на другой стороне перевести обратно в табдок и отобразить.
ПФ в БСП генерится тут Результат = УправлениеПечатью.СформироватьПечатныеФормыДляБыстройПечати(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати); |
|||
|
17
GANR
11.06.26
✎
12:49
|
(4) Пока склоняюсь к этому.
(12) Писать звездолет уж точно не вариант. Я то напишу, да только кто поддерживать будет без меня - большой вопрос. |
|||
|
18
TormozIT
гуру
11.06.26
✎
14:09
|
V83App.Visible = False;
V83App.OpenFormModal() |
|||
|
19
AAA
11.06.26
✎
14:38
|
Типичный случай неверно поставленной задачи. Автор пишет - "Человек просматривающий нагруженные из внешних систем документы в 1 таблицу должен иметь возможность в 1 клик открыть его как он есть в первоисточнике на просмотр"
Кто это придумал и поставил такую задачу? Предполагаю, что это даже не человек, просматривающий... Дуиаю, что человек просматривающий просто сверяет данные в БП3 с данными источника (другой программы). И здесь уже были вполне разумные подходы к решению этой задачи. Грубо говоря, нужен отчет по сверке импортированных в БП3 данных. И COM тут не надо. HTTP сервис в руки и вперед |
|||
|
20
GANR
11.06.26
✎
15:07
|
(18) Вот так в итоге взлетело. Тормозит сильно, однако.
V83App.Visible = false; Form = V83App.GetForm("Документ.КорректировкаПоступления.ФормаОбъекта", ПараметрыФормы); Form.DoModal(); |
|||
|
21
H A D G E H O G s
11.06.26
✎
15:31
|
(20) Каждый раз открывается сеанс 1С?
|
|||
|
22
GANR
11.06.26
✎
15:36
|
(21) Если я это буду "набело" делать, то конечно же в переменную суну сеанс.
|
|||
|
23
Eiffil123
11.06.26
✎
16:28
|
(22) а в какую переменную? где она будет?
|
|||
|
24
GANR
11.06.26
✎
16:40
|
(23) Вариантов много очень. Но вообще я уж решил прекратить копать в сторону OLE - лучше уж навигационные ссылки.
|
|||
|
25
vicof
12.06.26
✎
08:11
|
(22) Вот тут бы пару букв поменять местами в выделенном слове
|
|||
|
26
GANR
12.06.26
✎
19:32
|
(25) Как посоветуете?
|
|||
|
27
TormozIT
гуру
12.06.26
✎
20:08
|
(24) Специалист по межпроцессным интеграциям пользовательского интерфейса 1С тут есть? Да, он сделал их уже много и сейчас вот делает EDT-1C. Не все ведутся на модные пластинки "COM/OLE - прошлый век, позор, зашквар".
Рекомендую статью https://infostart.ru/1c/articles/387577/ Она поможет ускорить подключение. |
|||
|
28
Garykom
гуру
12.06.26
✎
22:14
|
(27) Это все конечно хорошо и прекрасно
Но как быть с Linux, macOS, Android и iOS? Что делать когда с x86/x64 будет переход на ARM или даже RISC-V? |
|||
|
29
Гений 1С
гуру
12.06.26
✎
23:16
|
(20) ну вот и без гения справились.
ну задача изначально не в духе 1С. потому и решение довольно костыльное. 1с так не умеет |
|||
|
30
Гений 1С
гуру
12.06.26
✎
23:20
|
может лучше не во внешнем, а в родном? Скопировать по-элементно? а?
|
|||
|
31
GANR
13.06.26
✎
06:56
|
(28) Если переведут на Линукс эта задача будет последним, о чем вспомнят пользователи.
|
|||
|
32
GANR
13.06.26
✎
19:40
|
(30) Можно, конечно, но... Учитывая масштабы овчинка выделки не стоит точно. Проще навигационные ссылки загнать по обмену да и пользователя подучить - ничуть не хуже.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |