Вход | Регистрация
 

Гиперссылка с формы на внешний файл (1с8.2)

Гиперссылка с формы на внешний файл (1с8.2)
Я
   mir-mup
 
22.09.10 - 12:57
Необходимо создать кнопку на форме, которая открывает ВНЕШНИЙ файл, с жеского диска(и прикрепляет гиперссылку на файл). Очень долго бьюсь нарыл кучу литературы, но ничего не выходит:
http://www.sql.ru/forum/actualthread.aspx?bid=63&tid=547230&pg=1
не могу понять что делаю не так. Очень прошу помощи.
   le_
 
1 - 22.09.10 - 13:02
Что значит "прикрепляет гиперссылку на файл"?
К чему прикрепляет? Что прикрепляет?
   le_
 
2 - 22.09.10 - 13:10
//пример открытия и чтения файла: 
Процедура МегаКнопаНажатие(Элемент)
   //открываем диалог выбора файла 
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл...";
    Диалог.ПредварительныйПросмотр = Ложь;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "Текстовые файлы (*.txt)|*.txt";
    Диалог.Каталог = "D:\";
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    Иначе
        Возврат;
    КонецЕсли;
   //читаем файл 
    Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8);
    Строка = Текст.ПрочитатьСтроку();
    Пока Строка <> Неопределено Цикл
        Строка = Текст.ПрочитатьСтроку();
        Сообщить(Строка);
    КонецЦикла;
КонецПроцедуры
   le_
 
3 - 22.09.10 - 13:18
Просмотрел мельком сообщения из ссылки в (0)...
Открыть вордовский файл можно несколькими способами. Например: КомандаСистемы() или через OLE.

У надписи есть событие "Нажатие" - туда и вставляй открытие файла.

Процедура Надпись1Нажатие(Элемент)
   //открываем файл через КомандаСистемы() или через OLE. 
КонецПроцедуры
   mir-mup
 
4 - 22.09.10 - 14:23
благодарю буду пробовать.
   mir-mup
 
5 - 22.09.10 - 15:23
Большое спасибо что помогаете, но как открыть потом этот файл
Нужно чтобы прикреплялась гиперссылка на форме.
создаю справочник 
ИмпортДокументов, 
созадю реквизиты
Объект - строка
Фото - хранилище значения
Создаю форму элемента справочника:
Объект
Декорация надпись(флаг гипрессылака, надпись нажатие "текст процедуры".

\ открываю отладчик 
выбераю файл,
сохраняю провожу.

как открыть прикрепленный файл? (чтобы при счелчке по кнопке открывался файл с жеского диска)
Спасибо огромное что помогаете!
   mir-mup
 
6 - 23.09.10 - 09:59
Плиз!!! помогите с Гиперссылкой!!!
   Ork
 
7 - 23.09.10 - 10:08
(6) Не нужно такого количества восклицательных знаков.
К гиперссылке в восьмере не "прикрепишь".
Ход событий примерно такой:
Есть кнопка выбора файла (работу см. (2)). Есть список значений, структура, соответсвие (на выбор) где прописано связка ИмяГиперссылки-Файл. В обработчике нажатия гиперссылки ищешь свой файл и если он задан - открываешь.
   mir-mup
 
8 - 23.09.10 - 11:44
создаю справочник 
ИмпортДокументов, 
созадю реквизиты
Объект - строка
Фото - хранилище значения
Создаю форму элемента справочника:
Объект
Декорация надпись(флаг гипрессылака, надпись нажатие "текст процедуры".

\ открываю отладчик 
выбераю файл,
сохраняю провожу.

Куда лезть чтобы его открыть или что где задать?
   le_
 
9 - 23.09.10 - 16:17
(8) Набор несвязных слов.
   mir-mup
 
10 - 23.09.10 - 17:51
я уж не пойму куда проще разживать задачу. Вы подробно читали что написано?
нужна организация гиперсылки на внешний файл чтобы ПОЛЬЗОВАТЕЛЬ мог без заморок открыть файл по гиперссылке.... как в ворде или в экселе гиперссылка на файл.

выше описал то что сделал по вашему совету (спасибо конечно что помогаете, но слова все связанные причем рускими буквами написанные ....читайте как есть и смысл поймете.
 Я написал что гиперссылку получается поставить, точнее открыть диалоговое окно и выбрать файл,

Как пользователь сможет открыть этот выбранный файл? на что жать? форме не хватает кнопки открытия этого файла как ее созадть?
   le_
 
11 - 23.09.10 - 18:50
(10)

//При нажатии на ссылку:
Процедура Надпись1Нажатие(Элемент)
   //самый простой вариант: 
    КомандаСистемы("start D:\text.txt", "D:\")//"D:\text.txt" - путь к файлу, который нужно открыть 
КонецПроцедуры
   le_
 
12 - 23.09.10 - 18:52
(11) Красивше будет через WScript.Shell.
   mir-mup
 
13 - 24.09.10 - 10:19
нужно чтобы пользователь мог привязать и открыть любой файл.
в кнопку открытия нужно вставить именно тот путь что мы брали кнопкой привязки.
а кнопка надпись или еще что там, все равно. Ктонибудь может написать как сделать или хотябы ссылку дать что почетать(просьба на радченко не ссылаться нету тама и на другие источники где нет тоже прошу ни кидать)...
WScript.Shell. - если есть инфа как это сделать и красиво и самое главное чтобы работало напишите пожалуйста.
   le_
 
14 - 24.09.10 - 10:56
   mir-mup
 
15 - 24.09.10 - 11:24
спасибо за старания просмотрел ВнешнийОтчет2.erf, 
у меня есть справочник куда пользователь заносит данные
там как и на форме отчета нужны две кнопки ВЫБРАТЬ ФАЙЛ
и ПРИКРИПИТЬ ФАЙЛ.
как это реализовать?
   hhhh
 
16 - 24.09.10 - 11:33
(15) ну открой любую обработку в типовых. Клиент-банк, например. Там все файлы открываются на раз, причем, ничего дополнительно делать не нужно.
   le_
 
17 - 24.09.10 - 11:39
(15) "Выбрать файл" - так же как в моём примере и реализовать.

Если под "Прикрепить файл" подразумевается "сохранить его в реквизите справочника", то:

ХранилищеФайла = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьКФайлу), Новый СжатиеДанных(9))//ХранилищеФайла - реквизит справочника типа ХранилищеЗначений. 
Открытие файла в этом случае можно сделать так:

ИмяФайла = ПолучитьИмяВременногоФайла();
ВыбранныйЭлементСправочника.ХранилищеФайла.Получить().Записать(ИмяФайла); //ну, а дальше открытие, как в примере (14) 
//оставляю возможность выразить свои творческие способности )
Вместо самого файла в справочнике можно хранить только ссылку на него (путь к нему). В этом случае, нужно будет учитывать то, что файлы могут перемещаться, изменяться, удаляться и т.п.
   mir-mup
 
18 - 24.09.10 - 12:09
спс, буду пробовать. по окончании обязательно напишу получилось или нет.
   mir-mup
 
19 - 24.09.10 - 15:17
не прикрипить файл(мне не нужна раздутая картинками база,с проблемой переименования удаления и другими вопросами сам справлюсь), а прикрипить ссылку на внешний файл. И вторую кнопку чтобы открыть этот файл по ссылке(мне паралельно какой рограммой он откываться будет, вордом, экселем или как картинка, или в 1се.)

кто то посоветывал скачать типовую клиент-банк,буду искать скачивать, чтобы там
подглядеть как сделано. Вот ток вопрос, там точно как нужно "ссылка на файл" а не файл в базу. У меня уже есть пару конфигураций типа Документооборота, вот там в
базу файл кидается, а мне нужна именно ссылка на внешний файл.

Конечно лучше всего если есть у кого такая конфигурация киданите один справочник
в конфигурации, можно на мыло,если есть скажите, мыло напишу.

Вот что делаю что делать дальше уважаемые Гурру помогите пожалуйста
очень уж долго над этой проблеммой бьюсь.

создаю: справочник, в нем реквизиты ... реквезит СсылкаНаФайл(тип Хранилище занач)
создаю: форму, на форме создаю Дикорацию надпись(вид гиперссылка)(Надпись нажатие туда вставляю "пример открытия и чтения файла" то что посоветовали(первая процедура) //пример открытия и чтения файла:  
Процедура МегаКнопаНажатие(Элемент)
   //открываем диалог выбора файла  
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл...";
    Диалог.ПредварительныйПросмотр = Ложь;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "Текстовые файлы (*.txt)|*.txt";
    Диалог.Каталог = "D:\";
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    Иначе
        Возврат;
    КонецЕсли;
   //читаем файл  
    Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8);
    Строка = Текст.ПрочитатьСтроку();
    Пока Строка <> Неопределено Цикл
        Строка = Текст.ПрочитатьСтроку();
        Сообщить(Строка);
    КонецЦикла;
КонецПроцедуры
дальше что добавить надо туда чтобы в реквизит СсылкаНаФайл добовлялась ссылка.
и как по кнопке, надписи, или еще какому нибудь элементу открыть тот файл, который перед этим выберается при счелчке по Ссылке(декорация)
   le_
 
20 - 24.09.10 - 15:49
(19) "СсылкаНаФайл" должна иметь тип значения строка!

>дальше что добавить надо туда чтобы в реквизит СсылкаНаФайл добовлялась ссылка.

СсылкаНаФайл = Диалог.ПолноеИмяФайла;
P.S.: mir-mup, ты из какой страны? Пойму, если не русский, но если русский, старайся писать так, чтобы было понятно, тем, кто будет это читать. Если бы я тебе в ответ написал что-нибудь типа:
Ссылка на файл текстовый дальше что надо добавить ссылка на файл присвоить диалог полное имя файла.
Ты понял бы, что я имею ввиду?..
   mir-mup
 
21 - 24.09.10 - 16:22
дальше что добавить надо туда, чтобы в реквизит "СсылкаНаФайл" добовлялась ссылка.

уважаемый учитель русского языка. У меня всегда была тройка. И теперь нужна тройка, если поставите можно и двойка - три или две кнопки.
кнопка1(прикрипить гиперссылку)  Кнопка2(открыть файл) Кнопка3(Очистить)

Пожалуйста ни придирайтесь к запятым, если можете помочь по вопросу помогите, если нет то может кто знает как это сделать и все же научит.

Мир не без добрых людей.
   le_
 
22 - 24.09.10 - 16:45
(21)

СсылкаНаФайл = Диалог.ПолноеИмяФайла//это для первой кнопки
 

Для второй кнопки текст уже имеется в примере, подставляй туда значение реквизита "СсылкаНаФайл".

СсылкаНаФайл = ""//это для третьей кнопки
 


Я не учитель русского языка ) Просто после прочтения подобных сообщений приходится догадываться (угадывать), что именно ты имел ввиду. Диктанты на 5-ку со всеми зпт никто не просит писать...
   mir-mup
 
23 - 27.09.10 - 12:01
Не получается строку в реквизит записать, чтобы потом прочитать его.
реквизит ПутьКФайлу тип строка(неогр длинны)

Процедура ДекорацияНажатие(Элемент)
       //открываем диалог выбора файла 
 
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл...";
    Диалог.ПредварительныйПросмотр = Ложь;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "Текстовые файлы (*.doc)|*.doc";
    Диалог.Каталог = "D:\";
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    Иначе
        Возврат;
    КонецЕсли;
   //читаем файл 
 
    Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.ANSI);
    Строка = Текст.ПрочитатьСтроку();
    Пока Строка <> Неопределено Цикл
        Строка = Текст.ПрочитатьСтроку();
        Сообщить(Строка);
    КонецЦикла;

КонецПроцедуры



&НаКлиенте
Процедура СсылкаНаФайлНажатие(Элемент)
   // Вставить содержимое обработчика.
 
    
    Сообщить(ПутьКФайлу);
    
   //Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.ANSI);
 
   //Текст.Открыть();        
 
    ЗапуститьПриложение(ПутьКФайлу);
КонецПроцедуры


две дикорации одна пивязывает ссылку другая открывает ссылку. при открытой форме все работает. После закрытия формы ссылка стирается. Если можете, прошу помогите.
   le_
 
24 - 27.09.10 - 12:23
(23) А где у тебя записывается элемент справочника с измененным значением реквизита?

Ты открыл форму элемента справочника, присвоил что-то там, не записал и закрыл. Естественно, при следующем открытии формы в реквизите ничего не будет.
   mir-mup
 
25 - 27.09.10 - 13:53
МММ... как сделать?

строку в реквизит записать, чтобы потом прочитать его. ?
   le_
 
26 - 27.09.10 - 13:56
(25)

ПутьКФайлу = Диалог.ПолноеИмяФайла;
ЭтотОбъект.Записать();
   Dmitr
 
27 - 27.09.10 - 13:57
(0) А вот вопрос ты свою базу в вэб клиенте собираешься юзать? Если да тогда вопрос как вэб клиент будет находить твой внешний файл.
   mir-mup
 
28 - 27.09.10 - 14:36
не в веб. Нужно чтобы файлы базу не раздували... (архив огромен документов будет полно многие какртинки-сканы попробуй бухгалтерам объясни что их файнридить нужно)
нужна просто ссылка. чтобы открыть по ссылке внешний файл. две кнопки привязать файл  и открыть файл. Есть у кого соображения? может кто дела, поделитесь опытом скинте лит-ру где почитать можно или код, и реквизиты какие создавать.
плиз очень нужно!
   le_
 
29 - 27.09.10 - 15:44
(28) По-моему, в этой теме уже есть всё, что нужно...
   mir-mup
 
30 - 27.09.10 - 15:55
не хватает только ответа!
 
 
   ll13
 
31 - 27.09.10 - 16:04
(27) Легко.

(30) Ответ тебе давно написали, только ты его прочесть и понять не в состоянии.
   mir-mup
 
32 - 27.09.10 - 16:37
Вы уж пожалуйста припишите куда хоть вставить или что еще дописать....

ПутьКФайлу = Диалог.ПолноеИмяФайла;
ЭтотОбъект.Записать();
Ответ гдето давно написали .... на страницах интернета или в базе какой нибудь, вот только  найти его в состоянии не многие .... . разжуйте пожалуйста.

ПутьКФайлу = Диалог.ПолноеИмяФайла;
ЭтотОбъект.Записать();
?
   Snorkler
 
33 - 27.09.10 - 16:45
   le_
 
34 - 27.09.10 - 17:00
(32) > куда хоть вставить

В модуль формы элемента справочника.
При этом, "ПутьКФайлу" должен быть не просто элемент формы, а реквизит справочника. И если он таковым будет, то вот это:

ЭтотОбъект.Записать(); 
можно не писать, а использовать вместо этого кнопочки на форме ("Записать", "ОК") или ответить положительно на вопрос о сохранении изменений, при закрытии формы.


+ (33) Или книжку хотя бы купи по программированию под 1С.
   mir-mup
 
35 - 27.09.10 - 17:06
&НаКлиенте
Перем ПутьКФайлу;


&НаКлиенте
Процедура ДекорацияНажатие(Элемент)
       //открываем диалог выбора файла  
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл...";
    Диалог.ПредварительныйПросмотр = Ложь;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "файлы (*.doc)|*.doc";
    Диалог.Каталог = "D:\";
    Если Диалог.Выбрать() Тогда
    ПутьКФайлу = Диалог.ПолноеИмяФайла;
     ЭтотОбъект.Записать();
    
    Иначе
        Возврат;
    КонецЕсли;
   //читаем файл  
    Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.ANSI)
;
    Строка = Текст.ПрочитатьСтроку();
        Пока Строка <> Неопределено Цикл
        Строка = Текст.ПрочитатьСтроку();
                Сообщить(Строка);
    
    
    КонецЦикла;
        КонецПроцедуры
            
     
          
&НаКлиенте
Процедура СсылкаНаФайлНажатие(Элемент)
   // Вставить содержимое обработчика. 
    
    Сообщить(ПутьКФайлу);
    
   //Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.ANSI); 
   //Текст.Открыть();         
    ЗапуститьПриложение(ПутьКФайлу);
КонецПроцедуры



ревизит ПутьКФайлу является реквизитом формы, тип неогр длинна... ? что в код добавить? ошибку выдает ,куда поставить: ЭтотОбъект.Записать();
   mir-mup
 
36 - 27.09.10 - 17:07
сори является и реквизит справочника  и реквизитом формы.
   le_
 
37 - 27.09.10 - 17:16
&НаКлиенте
Процедура ДекорацияНажатие(Элемент)
   //открываем диалог выбора файла   
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл...";
    Диалог.ПредварительныйПросмотр = Ложь;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "файлы (*.doc)|*.doc";
    Диалог.Каталог = "D:\";
    Если Диалог.Выбрать() Тогда
        Объект.ПутьКФайлу = Диалог.ПолноеИмяФайла;
    Иначе
        Возврат;
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура СсылкаНаФайлНажатие(Элемент)
    Сообщить(Объект.ПутьКФайлу);
    ЗапуститьПриложение(Объект.ПутьКФайлу);
КонецПроцедуры
   mir-mup
 
38 - 27.09.10 - 17:24
Огромное спасибо. Очень долго возился. И сам бы ни как не справился. Еще раз Большое  Спасибо всем кто откликнулся и помогал!
   le_
 
39 - 27.09.10 - 17:28
(38) Задачка на 5 минут на самом деле.

Если планируешь дальше программированием под 1С заниматься, то либо на курсы, либо за книжками в магазин топать нужно.
   mir-mup
 
40 - 27.09.10 - 17:39
Просто Вы действительно долго работаете, а я и книжками обложился и по чатам и форумам рыскаю, с трудом, вроде на Ваш взгляд очень простые задачки решаю, и надеюсь что когда нибудь и Вам смогу в чем то помочь. Еще раз Большое Спасибо.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.