#0
by Crush
Тонкий клиент 8.3.4 Запускаю внешнюю обработку. Её объект остается на сервере, а клиенту передается форма. У формы есть свойства: Хочу получить ИспользуемоеИмяФайла без передачи контекста. Ведь объект внешней обработки есть на сервере. Подскажите как получить объект внешней обработки по уид или по имени формы? ВнешниеОбработкиМенеджер имеет методы Создать(Имя) и Подключить(Имя). В обоих случаях сказано, что создается объект внешней обработки. А мне нужно получить ранее созданный.
#2
by Crush
Ага. За последние 2 года сегодня первый раз взялся. получилось так #Область НеМобильноеПриложение #Если НЕ (МобильноеПриложениеСервер или МобильноеПриложениеКлиент) Тогда #КонецОбласти Теперь хочу это в общий модуль как то припаять, что бы из внешних обработок можно было одной строчкой вызывать
#3
by fisher
Получить "ранее созданный" объект обработки невозможно, потому что он самоликвидировался при завершении серверного вызова. А смысл процедуры РезетНаСервере остался за пределами моего понимания.
#4
by Crush
Там как раз получается ранее созданный объект. Из него вытягивается ИмяФайла и создается новый объект на основании файла. Потом на клиенте открывается его форма по имени.. Сейчас еще чуть допилю и выложу конечный результат. мож кому сгодиться, а может кто пинка правильного даст
#5
by fisher
Чтобы не сойти с ума, открою эту ветку завтра утром. Пока я что-то вообще не пойму ни смысла телодвижений, ни каким путем этот смысл достигается. Кто-то из нас двоих заработался.
#9
by H A D G E H O G s
При последующей контекстном вызове, с клиента поползут мигрируемые данные (Объект.Организация, Объект.НомерГТД) и он их увидит.
#10
by Crush
Имя файла нужно в момент перезапуска обработки. Цель была такая: быстро подключать в новые обработки возможность перезагрузки. Как помните в опенКонфе в 7.7 был шаблон на форму "Перезагрузить". Вот как получилось и работает. В модуле формы добавляем процедуру &НаКлиенте Процедура ДействиеРезет(Команда) РаботаСФормамиНаКлиенте.ПерезагрузитьВнешнююОбработку(ЭтаФорма); КонецПроцедуры Создаем команду и кнопку. Кстати если в свойствах конфы стоит только галка Мобильное приложение, то Сочетание клавиш команды не активно, а программно устанавливается. Общий модуль "РаботаСФормамиНаКлиенте": Только галка "Клиент (Управляемое приложение)". &НаКлиенте Общий модуль "РаботаСФормамиНаСервере": Галки "Сервер" и "Вызов сервера". #Если НЕ МобильноеПриложениеСервер Тогда КонецПроцедуры В модуль формы можно еще текста добавить, если лень создавать команду и кнопку вручную. &НаСервере не знаю как на счет "Заработался", но слезть с толстого клиента и столкнуться со стеной непонимания клиент-серверного программирования - это вынос мозга еще тот. Если кто знает правильный метод быстрого добавления кнопки "Перезагрузить" на управляемую форму внешней обработки, подскажите пожалуйста пока ко мне 03 не вызвали:)
#11
by Crush
У меня получилось обратиться к контексту при вызове процедуры из общего модуля. Точнее я не знаю как это сделать.
#17
by H A D G E H O G s
он автоматизировал перезапуск обработок при отладке вида 1. Закрыть. 2. Файл - Открыть - имя файла обработки.
#18
by Crush
А кто то кроме меня это протестил? Начал читать доки по УФ и там подтверждаются слова " fisher Получить "ранее созданный" объект обработки невозможно, потому что он самоликвидировался при завершении серверного вызова. " А объект то получается, иначе ВнешниеОбработки.Создать(ИмяОбработки).ИспользуемоеИмяФайла возвращало бы какую-нибудь ерунду. Проверил сейчас на двух разных однвременно работающих обработках - полет нормальный.
#19
by fisher
Так. С утра я хотя бы понял, чего ты хочешь добиться. А если в РаботаСФормамиНаКлиенте.ПерезагрузитьВнешнююОбработку закомментировать строчку РаботаСФормамиНаСервере.ПерезагрузитьВнешнююОбработку(ИмяОбработки); То результат разве изменится? :)
#21
by Crush
Изменится. Будет открываться тот экземпляр формы, который был открыт руками, а не тот, что в файле. Короче не перезагружается внешняя обработка без этой строчки.
#22
by fisher
А давай сначала. А то я плохо нащупываю нить. Смысл всех телодвижений, чтобы переоткрыть открытую внешнюю обработку кнопкой из этой самой обработки? Встроенных в конфу одноименных обработок нет?
#23
by Crush
1.Да. 2. Не важно есть или нет одноименные встроенные в конфу. Они уже не внешние обработки и не имеют свойства "ИспользуемоеИмяФайла".
#24
by H A D G E H O G s
Автор, ты - прекрасен. Это - лучшее, что я видел на мисте за последнее время.
#27
by H A D G E H O G s
#Если НЕ МобильноеПриложениеСервер Тогда #Если НЕ МобильноеПриложениеСервер Тогда КонецПроцедуры
#28
by H A D G E H O G s
А ИспользуемоеИмяФайла - получал бы в ПриСозданииНаСервере И еще смотрел - является ли обработка внешней ЭтоВнешняяОбработка=Метаданные.НайтиПоТипу(ТипЗнч(ОбработкаОбъект))=Неопределено;
#31
by H A D G E H O G s
Вообще, надо бы статью черкнуть, как правильно хранить данные в УФ, а то понапишуть дятлы, волосы на жопе дыбом встают.
#32
by Crush
Основная цель - это минимизировать работу в новой внешней обработке по созданию кнопки "Перезагрузить". А если в "ПриСозданииНаСервере" получать имя файла, то это дополнительный текст модуля, что не совпадает с основной целью. Кстати, сейчас идея возникла! "лампочка над затылком":) Если бы найти событие, которое вызывается при открытии файла внешней обработки, то вообще было бы круто:)
#33
by Crush
Похоже цель достигнута: Ничего писать во внешней обработке не надо:) Решается добавлением только одной общей команды с хоткеем. У себя назвал глShiftF5 Модуль: &НаКлиенте Свойства команды: При открытии нескольких экземпляров внешней обработки перезагружается только текущая активная.
#34
by fisher
Ты крут :) Я другого способа добраться до имени файла (имея только ссылку на форму), кроме твоего ВнешниеОбработки.Создать(ИмяОбработки) так и не нашел. А сам бы этого мог и не додуматься.
#35
by fisher
Не. Всё равно фигня. В тонком клиенте не получится. Сервер ведь другой комп и там клиентский путь к обработке может не канать. А если передавать файл обработки на сервер - то нормально отладить, наверное, не получится...
#39
by DmitriyDI
если да то это очень круто, а при перезапуске реквизиты на форме остаются заполнены? если да то просто добавить это в глобальник и постоянно использовать при отладке
#43
by Crush
Да.. С серваком засада. Либо файл передавать, либо отлаживать на серваке, либо класть обработку на общий ресурс и обращаться к ней через сетевой интерфейс (\МойКомпШараОбработка.epf). В 8.2(18.102) хреново работает метод АктивноеОкно - всё время возвращает основное окно конфигурации. Может это от того, что в 8.2 окно обработки открывается отдельным окном, а в 8.3 открывается в рабочей области основного окна. Но при этом код на серваке отрабатывается если непосредственно из обработки вызывать.
#44
by Crush
Вариант для клиент-сервер и файл-сервер Модуль команды: &НаКлиенте Функция ИмяФайлаВнешнейОбработки(ИмяОбработки)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Setup 24-ого релиза не хочет запускаться на 2-процессорном сервере
- Изменение пользователя на 1С сервере
- Доступ к базе данных на сервере, возможен только из одного каталога
- Как получить ИД объекта из внешней базы?
- как у внешней обработки программно получить список реквизитов?
- Ключ защиты установлен на сервере 1, а сервер 1С 8.1 на сервере 2
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- v8: Как получить на клиенте результат запроса на сервере?
- Как получить список баз, зарегистрированных на сервере 1С?
- Получить форму на сервере 1с
В этой группе 1С
- Выкидывает из 1с при печати.
- УПП - Схема учета доходов при длительном цикле производства (ПБУ 2/2008)
- v7: Как изменить счет проведения в документе
- УПП 1.3 - печатная форма М-11 в требовании накладной, откуда берутся цифры
- Сохранение значений реквизитов формы в УТ 11
- Перенос SQL базы с одного сервера на другой
- Производственный календарь в БП 3.0
- Транспонировать отчет на СКД
- Программно свернуть все строки дерева значений в обычной форме
- УПП Смена организационно-правовой формы
- Передача ТЗ в Запрос через com-соединение
- Хранилище 1С 8.3
- Общая форма отчетов в УТ. Как передать параметр.
- Всплывающие окна при открытии 1с
- КА: не совпадают сумма Реализации и проводка по 62-му
- Распределённая нетиповая ИБ
- Ошибка очереди обновления прав доступа
- Фатальная ошибка при формировании оборотки
- серверная база не выгружается в ДТ, не обновляется - ошибки
- v7: 1SBKTTL.DBF превысил 2 гб