Имя: Пароль:
1C
 
Прописать на форме выбор файла самим пользователем
0 Старуха Шапокляк
 
27.02.10
14:46
1С 7.7
Пишу обработку, на форму которой надо разместить возможность выбора файла Эксель. В модуле обработки, я сейчас вручную прописываю путь к файлу:

Excel.Workbooks.Open(ПолноеИмяФайла);

А как программно написать, чтобы пользователь сам указывал файл Эксель?
1 ДенисЧ
 
27.02.10
14:48
ВыбратьФайл(<?>,,,,)
Синтаксис:
ВыбратьФайл(<ТипДиалога>,<ИмяФайла>,<ИмяНачКаталога>,<ЗаголовокОкна>,<Фильтр>,<Расширение>,<Таймаут>)
Назначение:
Открывает окно диалога выбора/сохранения файла.
Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена', 1 - если нажата кнопка 'ОК'.
Параметры:
<ТипДиалога> -: 0 - диалог типа <открыть>, 1 - диалог типа <сохранить>;
<ИмяФайла> - переменная, содержащая на входе строку с именем файла, а на выходе - имя выбранного файла;
<ИмяНачКаталога> - переменная, содержащая на входе строку с  начальным каталогом, а на выходе - имя выбранного каталога;
<ЗаголовокОкна> - строка с заголовком окна;
<Фильтр> - строка с фильтром отбора файлов (например: 'Все файлы (*.*) |*.*');
<Расширение> - строка с расширением файла по умолчанию;
<Таймаут> - время ожидания отклика пользователя в секундах (необязателен).
Подробнее см. в документации, глава 'Работа с Файлами'
2 Старуха Шапокляк
 
27.02.10
14:51
(1) А как это связать с Эксель?
3 ДенисЧ
 
27.02.10
14:51
(2) а что есть "связать с Эксель" ?
4 БТР
 
27.02.10
14:52
Поле ввода, а на кнопочку рядом вешаешь процедуру с (1)
5 Mikeware
 
27.02.10
14:52
(2) Веревочкой. с бантиком...
6 Старуха Шапокляк
 
27.02.10
14:54
Поделитесь обработкой с примером пож-та. Можите скинуть на почту.
7 mustang1
 
27.02.10
14:56
на какую?
8 ДенисЧ
 
27.02.10
14:58
(6) уехало.
9 БТР
 
27.02.10
14:59
Процедура СвязатьСЭксель()
НачФайл = "";
НачКаталог = "D:\";
Если ВыбратьФайл(0,НачФайл ,НачКаталог ,"Выберите файл эксель","(*.xls)","xls") = 1 тогда
ИмяПеременнойРеквизитаПоляВводаНаФорме = НачКаталог +НачФайл;
Иначе
Сообщить("Не выбран файл");
КонецПроцедуры

Как то так наверное.
10 ДенисЧ
 
27.02.10
15:02
Можно ещё сделать покрасивше... Строка ввода с педалью. И ПриНачалеВыбораЗначения() поймать...
11 mustang1
 
27.02.10
15:04
(8) ну вот а я сижу обработку по приличней откапываю)))
12 ДенисЧ
 
27.02.10
15:06
(11) А я нарисовал с нуля :-) Там 4 строчки всего. Для proof of concept хватит
13 БТР
 
27.02.10
15:10
Счас уже не помню, но что то строка с педалькой как то плохо работала, не красиво, вешал на отдельную кнопку всегда. Может и ошибаюсь, давно уж было.
14 Mikeware
 
27.02.10
15:12
(13) Да нормально все работает.
(10) Неужели у автора нет типовых ТиС или Бухии?
15 ДенисЧ
 
27.02.10
15:13
(14) А я откуда знаю? :-)
Мне проще написать самому, чем выискивать что-то в типовых...
16 Старуха Шапокляк
 
27.02.10
15:13
(8) Спасибо! У Вас написан код почти как в (9), код поняла, а что теперь писать вместо строчки:

Excel.Workbooks.Open("С:\File.xls");
17 ДенисЧ
 
27.02.10
15:16
(16) Дык последнюю строчку в обработке меняй...
18 Старуха Шапокляк
 
27.02.10
15:20
Сейчас у меня код:

Процедура Сформировать()
...
//Excel.Workbooks.Open("С:\File.xls");  // так было
...
КонецПроцедуры

Процедура Выбрать()
   имя = ""; кат = КаталогИБ();
   Если фс.ВыбратьФайл(0, имя, кат, "Выберите файл", "Excel files (*.xls)|*.xls") = 1 Тогда
       Форма.тФайл.Заголовок(кат + имя);
   КонецЕсли;
КонецПроцедуры

Что теперь писать в Процедуре Сформировать вместо строчки Excel.Workbooks.Open("С:\File.xls") ???
19 FIXXXL
 
27.02.10
15:23
(18) переменную модуля объяви и присвой ей полный путь до файла в Процедура Выбрать()
и считывай в Процедура Сформировать()
20 dk
 
27.02.10
15:24
(18) как умудряешься вообще прогить?
21 Старуха Шапокляк
 
27.02.10
15:25
(19) Как?
(20) Вот так и мучаюсь
22 БТР
 
27.02.10
15:25
(18) Excel.Workbooks.Open(кат + имя)
23 БТР
 
27.02.10
15:27
или
Excel.Workbooks.Open(Форма.тФайл.Заголовок) Если в это поле народ руками пкть вбивать будет.