Как в управляемых формах хранить соединения? ftp и т.п. #687258


#0 by toypaul
Есть функция в общем модуле. Выполняется на клиенте. Функция создает управляему форму и вызывает метод для создания FTPСоединение. Затем это соединение нужно использовать в остальных функция в этой форме. Вопрос. Как сохранить подключение, чтобы не создавать его по 100 раз? Объявить через Перем не получается. После выхода из функции создающей подключение переменная становится неопределенной (хотя форма еще живая). В параметрах формы создать не получится - нет такого типа. Передать его в параметре метода не получается - не сериализуется. Задача несколько извращенная (пытаюсь сделать некое подобие ООП на упр формах), но решить как-то надо.
#1 by H A D G E H O G s
Ничего не понял.
#2 by ДенисЧ
Временное хранилищие
#3 by toypaul
Когда говорят "ничего не понял" обычно и не пытаются понять. По себе знаю.
#4 by H A D G E H O G s
Передать его в форму, не в составе <Параметры> чтобы оно не пошло гулять на сервер, а уже потом. НоваяФорма.Соединение=
#5 by H A D G E H O G s
Ну или временное хранилище
#6 by H A D G E H O G s
Этим я обозначил щок и трепет от того, что ты ниосилил. Ладно, кто то другой.
#7 by H A D G E H O G s
&НаКлиенте Перем Соединение Экспорт;
#8 by toypaul
как интересно временное хранилище поможет мне сохранить ПОДКЛЮЧЕННОЕ соединение?
#9 by toypaul
вот это я могу написать в создавемой форме? чтобы записать туда соединение?
#10 by toypaul
щя попробую ...
#11 by toypaul
смотрим Подключение.Соединение равно Неопределено. хотя СоздатьПодключение было Соединение = Новый FTPСоединение все это на клиенте
#12 by H A D G E H O G s
Мы с Денисч. надавали советом. Причем я уверен в 2 вариантах, но на практике не использовал и не один из них.
#13 by H A D G E H O G s
щас проверим
#14 by toypaul
временное хранилище не вариант. даже если каким-то чудом 1С будет из хранилища брать соединение и восстанавливать его - это какая-то бредятина
#15 by H A D G E H O G s
Дайте адрес какого нибудь ftp-шника.
#16 by dimm7310
в модуле управляемого приложения создай экспортную переменную Я так подключение к телефонии сохраняю Перем Телефония Экспорт;
#17 by toypaul
мысль. спасибо.
#18 by toypaul
а имеет значение если у меня у метода СоздатьПодключение не написано &НаКлиенте? сейчас вот написал и метод перестал быть видимым
#19 by toypaul
не понятно ...
#20 by toypaul
у меня вызов СоздатьПодключение идет в процедуре общего модуля. общий модуль с галкой только Клиент (упр приложение).
#21 by dimm7310
если не указывать явно директиву то выполняется на сервере
#22 by H A D G E H O G s
Ничего не мешает ему вызвать сервер.
#23 by toypaul
тьфу зараза ...
#24 by H A D G E H O G s
И получилось 2 переменные Соедиенние
#25 by dimm7310
Оставь надежду всяк на УФ переходящий
#26 by Зойч
Реквизит формы произвольного типа
#27 by Ksandr
Если есть вариант делать это на сервере то нужно использовать модуль с повторным использованием
#28 by toypaul
не уверен это что за штука?
#29 by Ksandr
хотя без разницы, на сервере или клиенте. Делай модуль поторного использования (на время сеанса) и все - задача решена
#30 by Зойч
Так тебя еще и уверить нужно
#31 by toypaul
ошибка была в том что метод создания подключения отрабатывал на сервере. ну и переменная была объявлена тоже на сервере. как поставил везде &НаКлиенет все заработало. спасибо всем :)
#32 by H A D G E H O G s
Тотоже, МарьИвановна. Респект, а то бы пошел по пути кондовых Волоходских погромистов через переменную модуля приложения.
#33 by H A D G E H O G s
Мне, чтобы это проверить, пришлось идти в Германию за ftp-серваком. toypaul, рекомендую тебе поэкспериментировать с временных хранилищем, настоятельно. Это тебе пригодиться. А то будешь в глобальные переменные пихать.
#34 by wPa
какая гадость эта ваша заливная форма )
#35 by H A D G E H O G s
Она прекрасна. Вот счаст у toypaul идет просветление и разделение сред Клиент-Сервер.
#36 by wPa
с сохранением локальных переменных в бинарики )
#37 by dimm7310
Сам ты кондовый маасквич в первом поколении
#38 by serffer
во временное хранилище нельзя помещать несериализуемые объекты в 8.3. в 8.2 они могут вести себя непредсказуемо(убиваться через 2-6 минут например).
#39 by Infsams654
+ и реквизит произвольного типа "Зойч" не сереализуешь
#40 by wPa
красота. Сейчас просветление найдет уже на Ежова )
#41 by Ksandr
Я с этим сталкивался, только хранить нужно было COM-соединение. Повторное использование единственный стабильный вариант.
#42 by H A D G E H O G s
Может что то и поменялось, мне фиолетово, у меня обработчик обновления каждую минуту дергает хранилище на всякий пожарный. Раньше 20 минут хранилось. В 8.3 - да, так уже по похранишь. Ежова без хрена не съешь, wPa
#43 by wPa
хитер
#44 by serffer
в нашем тиражном решении тоже было "раз в минуту". Тоже нестабильно оказалось(когда мало памяти на сервере вроде). Обошли по другому, но в этом случае так не прокатит. ЕМНИП: сервер не должен хранить состояния между 2мя вызовами клиента, ну или чтото типа того(типа религия веба что ли) Автору может попробовать через регл.задания организовать постоянное подключение.
#45 by H A D G E H O G s
1. У нас работает. 2. Автор уже проблему решил. 3. 8.3 заставляет чаще биться наши сердца.
#46 by dimm7310
" 8.3 заставляет чаще биться наши сердца." - хорошо сказал. Но это не повод устраивать лишний геморрой ради спортивного интереса.
#47 by dimm7310
+ я понимаю что мой вариант - не лучшее решение. Ищу новые.
#48 by banco
а зачем вообще хранить ftp соединение?
#49 by toypaul
Подниму тему ... Подключени-то создается и подключается, но при передаче формы (которая хранит это подключение) как параметра функции в другой метод подключение теряется. Если вызывать затем метод формы, который обращается к созданному подключению, выдается ошибка. Сначала думал какая-то проблема с подключением. Оказалось нет. Если созданное подключение использовать сразу (не передавать в составе формы дальше), то все нормально отрабатывает. Вот и получается что "обернуть" такое подключение в какую-то обертку (которой у меня была форма) не выходит. Придется по другому изворачиваться ...
#50 by H A D G E H O G s
Покажи кодом! (как трудно ты объясняешь словами)
#51 by toypaul
эта функция создает "мое" подключение в виде формы
#52 by toypaul
#53 by toypaul
потом вызываю функцию формы из общего модуля
#54 by toypaul
#55 by toypaul
на этой строке выдает ошибку, что нет доступа. смотрю параметры ftp - все установлено. написал обработку для проверки она отрабатывает нормально
#56 by H A D G E H O G s
ftp не может разрывать соединение по таймауту?
#57 by toypaul
отсюда сделал вывод, что ftp при передачи в составе формы что-то "внутри" такое теряет ... да и хер с ним. надоело уже ковыряться. по другому буду делать - чтобы метод отрабатывал без передачи подключения.
#58 by toypaul
не понял. подключение создается без ошибок. может что-то там и отключается при передаче. сие мне не ведомо.
#59 by olegves
Повторное использование (в свойствах модуля) тебе поможет
#60 by H A D G E H O G s
"потом вызываю функцию формы из общего модуля Потом - это когда? Через сколько секунд?
#61 by toypaul
сразу же
#62 by toypaul
не помогло :)
#63 by toypaul
+ к может если бы я фтп соединение создавал непосредственно в функции этого модуля, тогда бы помогло. но мне так не подходит. на самом деле не хватает хотя бы минимума ООП в данном случае :)
#64 by toypaul
и снова подниму. оказывается причина в другом была. выдает ошибку доступа при поиске каталога ftp.НайтиФайлы("2013/11/13") ftp.НайтиФайлы("/2013/11/13") оба вызова выдают ошибку
#65 by H A D G E H O G s
А так? ftp.НайтиФайлы("20131113") ftp.НайтиФайлы("20131113")
#66 by zladenuw
в сп как раз как в
#67 by toypaul
в документации написано "При использовании этой схемы в адресах необходимо указывать прямые слеши '/', а не обратные ''.
#68 by toypaul
не пойму как проверить существования каталога ...
#69 by zladenuw
УстановитьТекущийКаталог  ?
#70 by Serginio1
Ну можно рекурсивно Файлы=Фтп.НайтиФайлы(фтп.ТекущийКаталог,"*.*");
#71 by toypaul
файлов дофига может быть. зачем мне все выгребать?
#72 by Serginio1
Ну во первых проверить написание Файл.ПолноеИмя
#73 by Serginio1
или рекурсивно  Файлы=Фтп.НайтиФайлы(фтп.ТекущийКаталог,"2013");
#74 by toypaul
не понял. что проверить? какой-то фтп странный создал папку если папки нет выдает ошибку доступа. вместо того чтобы просто ничего не возвращать ...
#75 by Serginio1
Файлы=Фтп.НайтиФайлы("2013/11","12");
#76 by toypaul
с папкой, которая существует, проблем нет. проблема с папкой которой нет ...
#77 by Serginio1
Ну тогда Попытка исключение
#78 by toypaul
Пришлось рекурсивно устанавливать каталог и создавать новый если не вышло. Для оптимизации сначала устанавливается каталог по полному пути.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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