Имя: Пароль:
1C
 
Как сделать окно выбора файла?
0 Андрей_Н
 
04.02.08
17:13
Сохраняю данные документа в Эксель. Как в форме документа сделать окошко, в котором можно было бы выбрать куда сохранять данные?
1 DGorgoN
 
04.02.08
17:18
ФС.ВыбратьФайл();
2 Попытка1С
 
04.02.08
17:28
Процедура ПриНачалеВыбораЗначения(ЭлементДиалога, ФлагПродолжения)
   Перем Каталог,Фильтр;
   Если ЭлементДиалога = "ИмяФайла" Тогда
       Если ФС.ВыбратьФайл(0, ИмяФайла, Каталог, "Файл выгрузки", "Файлы Excel (*.xls)|*.xls", "xls") = 1 Тогда
           ИмяФайла = Каталог+ИмяФайла;
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры
3 у лю 427
 
04.02.08
17:29
за такой пример процедуры в (2) можно бить морду.....
4 Попытка1С
 
04.02.08
17:31
(3) да ты что? и за что это?
5 Попытка1С
 
04.02.08
17:47
(3) Куда-то наш умник пропал...
6 Gepard
 
04.02.08
17:49
(4) +1
7 Gepard
 
04.02.08
17:51
(6) + наверное он это Перем Каталог,Фильтр; имел ввиду... т.е. вместо фильтр - ИмяФайла
8 у лю 427
 
04.02.08
18:32
перед вызовом ФС.ВыбратьФайл
нужно восстановить стартовые каталоги для просомтра,
после выбора - сохранить полученный каталог - он будет стартовым при следующем выборе (даже в след сеансе)

таким образом,
- начало просомтра там, где закончили предыдущий
- если файлы лежат в одном каталоге - юзер сразу ныряет туда без брожения по диску...
9 Gepard
 
04.02.08
20:00
(8) логично, но не смертельно... это уже на совести программиста :))
10 у лю 427
 
04.02.08
20:59
зато потом юзеры не орут, что файло смиздили.....
11 Попытка1С
 
04.02.08
21:04
(8) Вообще то эти диалоги винда сама умеет сохранять, и последнее в сеансе тоже.
12 Попытка1С
 
04.02.08
21:06
+ 11 И ты считаешь что за это реально нужно морду бить.... извини но это уже понты.
13 Яндекс
 
05.02.08
05:00
(11)Паришь?

Есть еще понятие - "юзабилти".
14 Если
 
05.02.08
05:36
роцедура ВыбратьКат()
   Если ФС.ВыбратьКаталог(Кат, "Выберите каталог") = 1 Тогда
       Кат=Кат+"\";                                        
       СохранитьЗначение("КаталогДебиторки", Кат)
   КонецЕсли;
КонецПроцедуры  // ВыбратьФайл(ИФ,типфайлов="xls",аут=60)

//******************************************************************************
Кат=ВосстановитьЗначение("КаталогДебиторки");
Если ПустоеЗначение(Кат)=1 Тогда
   Кат = "E:\Dz\";
КонецЕсли;    
//******************************************************************************
ДЛя успокоения.
15 big
 
05.02.08
06:58
(14) Разочек пну тебя, Михаил :)

Если ФС.ВыбратьКаталог(Кат, "Выберите каталог",60) <> 1 Тогда
    Возврат;
КонецЕсли;
Кат=Кат+"\";                                        
СохранитьЗначение("КаталогДебиторки", Кат)
16 Если
 
05.02.08
07:00
Зачем?
Если ПустоеЗначение(Кат)=1 Тогда
   Кат = "E:\Dz\";
КонецЕсли;    
Если нет надобности в другом каталоге, то назначим по умолчанию.
17 big
 
05.02.08
07:11
Всё дело в этом

Если ФС.ВыбратьКаталог(Кат, "Выберите каталог",60) <> 1 Тогда
    Возврат;
КонецЕсли;
18 Если
 
05.02.08
07:22
те же яйца, только сбоку.
19 Яндекс
 
05.02.08
07:22
Я тоже не понял в чем разница
20 Если
 
05.02.08
07:27
(19) Счас на У лю нарвемся - он объяснит, кто мы и в чем разница.
21 big
 
05.02.08
07:31
(18,19) ИМХО при больших участках кода будет более удобочитаемым и быстрее работает (ИМХО опять же)
22 Яндекс
 
05.02.08
07:34
(21)Ну тогда надо было вообще СохранитьЗначение выносить в процедуру при закрытии формы.
23 у лю 427
 
05.02.08
07:37
(22) в общем то да, если работа с формой преполагает открытие нескольких файлов.
а восстанавливать в ПриОткрытии
24 Если
 
05.02.08
07:39
(23) Я показал код выгрузки в один файл. Ну а если несколько, то согласен.
25 у лю 427
 
05.02.08
07:45
хотя с точки зрения читабельности кода как раз лучше все (восстановить, сохранить) собрать в одной проце....
26 Яндекс
 
05.02.08
07:54
с точки зрения читабельности кода, этот код лучшее


если датамесяц(рабочаядата()) = 1 тогда
 сообщить("январь");
иначеесли  датамесяц(рабочаядата()) = 1 тогда
 сообщить("февраль");
...
...
иначеесли  датамесяц(рабочаядата()) = 1 тогда
 сообщить("декабрь");
конецесли;


чем


перем Месяц[12];

Месяц[1] = "январь";
Месяц[2] = "февраль";
...
...
Месяц[12] = "декабрь";

сообщить(Месяц[рабочаядата()]);
27 Яндекс
 
05.02.08
07:54
с точки зрения читабельности кода, этот код лучшее


если датамесяц(рабочаядата()) = 1 тогда
 сообщить("январь");
иначеесли  датамесяц(рабочаядата()) = 1 тогда
 сообщить("февраль");
...
...
иначеесли  датамесяц(рабочаядата()) = 1 тогда
 сообщить("декабрь");
конецесли;



чем



перем Месяц[12];

Месяц[1] = "январь";
Месяц[2] = "февраль";
...
...
Месяц[12] = "декабрь";

сообщить(Месяц[рабочаядата()]);
28 Если
 
05.02.08
07:56
с цифрами месяцев попутал.
29 у лю 427
 
05.02.08
07:56
с точки зрения читабельности рулит функция

ПолучитьМесяцПрописью (Дата)

а как она реализована - это неинтересно
30 у лю 427
 
05.02.08
07:57
внутри функции м.б. и 27.1  и 27.2
31 Яндекс
 
05.02.08
08:04
(28)Тут важно что поняли о чем речь?

(29)Не много не согласен. Ибо как работает функция тоже приходиться парсить.
32 Если
 
05.02.08
08:05
(31) да я так, ни о чем.:)))