Имя: Пароль:
1C
 
Диалоговое окно которое предложит выбрать путь сохранения?
, ,
0 Олеся999
 
24.12.15
08:30
В модуле менеджера делаю сохранялку в pdf
ТабДок.Записать("C:\pdff\файл.pdf", ТипФайлаТабличногоДокумента.PDF);
Подскажите пожалуйста как место "C:\pdff\файл.pdf" вызвать диалоговое окно которое предложит выбрать путь сохранения?
1 Рэйв
 
24.12.15
08:33
Процедура ПутьКФайлуНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка=Ложь;
    ДиалогФыбораФайла                                =    Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогФыбораФайла.Фильтр                        =    "Файл данных (*.txt)|*.txt";
    ДиалогФыбораФайла.Заголовок                        =    "Выберите файл для сохранения остатков";
    ДиалогФыбораФайла.ПредварительныйПросмотр        =    Ложь;
    ДиалогФыбораФайла.Расширение                    =    "txt";
    ДиалогФыбораФайла.ИндексФильтра                    =    0;
    ДиалогФыбораФайла.ПолноеИмяФайла                =    Элемент.Значение;
    
    
    Если ДиалогФыбораФайла.Выбрать() Тогда
        Элемент.Значение = ДиалогФыбораФайла.ПолноеИмяФайла;
    КонецЕсли;
    
КонецПроцедуры
2 Рэйв
 
24.12.15
08:35
Это выбрать с именем файла
3 Рэйв
 
24.12.15
08:35
Если просто папку:
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Диалог.Заголовок = ЗаголовокДиалога;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Каталог = ИмяКаталога;

    Если Диалог.Выбрать() Тогда
        ИмяКаталога = Диалог.Каталог;
        Возврат Истина;
    Иначе
        Возврат Ложь;
    КонецЕсли;
4 Рэйв
 
24.12.15
08:37
А вообще поищи

УниверсальныеМеханизмы.ВыбратьКаталог()
5 Cyberhawk
 
24.12.15
08:41
Из модуля менеджера нельзя передать управление на клиент, так что по-простому - никак
6 Олеся999
 
24.12.15
08:44
(5) Вот и я думаю диалог то должен на клиенте открываться
7 Рэйв
 
24.12.15
08:47
(6)Ну скорее всего изначально у тебя же есть какая-то форма откуда ты в модуль менеджера приходишь? Вот там бы и раместить строковый реквизит и в него сделать выбор пути
8 Рэйв
 
24.12.15
08:48
и даже если он напрямую на форме будет недоступен можно передавать его параметром
9 Олеся999
 
24.12.15
08:52
(7) Вызываю так вот :
&НаКлиенте
Процедура ПечатьСер(Команда)
    ТабДок = Новый ТабличныйДокумент;
        СерНаСервере(ТабДок);
        ТабДок.Показать();
    
    
    
    КонецПроцедуры

&НаСервере
Процедура СерНаСервере(ТабДок)


    Справочники.Контрагенты.Сер(ТабДок, Объект.Ссылка);
    
КонецПроцедуры
10 Рэйв
 
24.12.15
09:29
(9)Сделай вызов перед СерНаСервере(ТабДок), получи путь в переменную и отправь ее параметром
СерНаСервере(ТабДок,Путь);
ну и туда тоже
Справочники.Контрагенты.Сер(ТабДок, Объект.Ссылка,Путь)
11 Олеся999
 
24.12.15
09:34
(10) А какую процедуру в модуле делать?)
12 Рэйв
 
24.12.15
09:38
(11)
наверное как то так:-)

ТабДок.Записать(Путь+"\файл.pdf", ТипФайлаТабличногоДокумента.PDF);

Это если каталог выбирался

или
ТабДок.Записать(Путь, ТипФайлаТабличногоДокумента.PDF);
если сразу файл
13 Олеся999
 
24.12.15
09:40
(12)     <<?>>СерНаСервере(ТабДок); (Проверка: Тонкий клиент)
пишет ошибку
14 Рэйв
 
24.12.15
09:41
(13)Какую?
15 Олеся999
 
24.12.15
09:45
(14) {Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(282,3)}: Недостаточно фактических параметров (СерНаСервере)
        <<?>>СерНаСервере(ТабДок); (Проверка: Тонкий клиент)
16 Рэйв
 
24.12.15
09:47
(15):-)

Переделай правильно высовы и определения функций и включи в них Путь как я показал в (10)

Чтобы он был и в вызове и в определении.
А иначе так и будет ругаться если не будет совпадать
17 Рэйв
 
24.12.15
09:47
*вызовы
18 Олеся999
 
24.12.15
09:52
Модуль менеджера :
Процедура Сертификат(ТабДок, Ссылка, Путь) Экспорт


Это модуль команды тут тоже где то Путь добавить надо ??
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Сер)
    ТабДок = Новый ТабличныйДокумент;
    Сер(ТабДок, ПараметрКоманды);

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Истина;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    //}}
КонецПроцедуры

&НаСервере
Процедура Сер(ТабДок, ПараметрКоманды)
    Справочники.Контрагенты.Сер(ТабДок, ПараметрКоманды);
КонецПроцедуры

Это модуль команды тут тоже где то Путь добавить надо ?
19 Олеся999
 
24.12.15
09:52
Модуль менеджера :
Процедура Сер(ТабДок, Ссылка, Путь) Экспорт
20 Рэйв
 
24.12.15
09:55
(19)Вобщем тебе надо сделать так, чтобы выбранный на клиенте Путь дожил до места где у тебя идет сохранение. Там уж тебе виднее на месте по какой цепочке его передавать
21 singlych
 
24.12.15
10:00
И вообще у табдока есть свойство ИспользуемоеИмяФайла
22 Олеся999
 
24.12.15
10:02
(20) {Справочник.Контрагенты.Команда.Сер.МодульКоманды(18)}: Недостаточно фактических параметров
    Справочники.Контрагенты.Сер(ТабДок,ПараметрКоманды);
23 Рэйв
 
24.12.15
10:03
(21)Так она и хочет его выбрать:-)
24 Рэйв
 
24.12.15
10:04
(22)Справочники.Контрагенты.Сер(ТабДок,ПараметрКоманды,Путь)


Я же говорил И при ВЫЗОВЕ и при  определении должно быть одинаково:-)
25 Олеся999
 
24.12.15
10:06
Так я пробовала так {Справочник.Контрагенты.Команда.Сер.МодульКоманды(18,61)}: Переменная не определена (Путь)
    Справочники.Контрагенты.Сер(ТабДок,ПараметрКоманды, <<?>>Путь); (Проверка: Сервер)
26 Рэйв
 
24.12.15
10:13
(25):-)) блииин

вкратце описание действий
1.передалать определение
Процедура СерНаСервере(ТабДок)
на
Процедура СерНаСервере(ТабДок,Путь)

2. в процедуре
Получить на клиенте в переменную путь каталог через код
  
Диалог = Новый    ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Диалог.Заголовок = ЗаголовокДиалога;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Каталог = ИмяКаталога;

    Если Диалог.Выбрать() Тогда
        Путь= Диалог.Каталог;
    Иначе
      Возврат;
    КонецЕсли;
2.
передалать вызов
СерНаСервере(ТабДок)
на
СерНаСервере(ТабДок,Путь)

3.передалать определение Процедура Справочники.Контрагенты.Сер(ТабДок, Объект.Ссылка)

на
Процедура Справочники.Контрагенты.Сер(ТабДок, Объект.Ссылка,Путь)

4. в процедуре
СерНаСервере() переделать вызов
Справочники.Контрагенты.Сер(ТабДок, Объект.Ссылка)
на
Справочники.Контрагенты.Сер(ТабДок, Объект.Ссылка,Путь)
....
и так по всей цепочке до сохранения
...


Уже разжевал как мог:-)
27 Рэйв
 
24.12.15
10:15
Еще раз повторяю.
Параметры вызова процедуры и параметры ее описания Должны быть ОДИНАКОВЫЕ.
Когда начинает писать про недостаток или избыток фактических параметров- это значит они у тебя не совпадают и надо исправить
28 singlych
 
24.12.15
10:21
(23) Так нафига на сервере этот путь заполнять. ТабДок создается на клиенте, там же определяется путь и там же он пишется в ТабДок.ИспользуемоеИмяФайла, или тупо в параметр метода Показать(). Нафига его пробрасывать на сервер. Для методологического развития разве что...
29 Рэйв
 
24.12.15
10:25
(28)ну вообще то да.Так было бы проще.Я просто предлагал вариант.Который впринципе тоже совершенно не сложен:-)
30 Рэйв
 
24.12.15
10:25
я бы вообще сделал реквизит на форме
31 cw014
 
24.12.15
10:26
Олеся, завязывайте... Ну не ваше это дело - программировать. Марш в модели
32 singlych
 
24.12.15
10:27
"В модуле менеджера делаю сохранялку в pdf
ТабДок.Записать..."

Только вот как сервер будет записывать табдок по клиентскому пути, я бы посмотрел.
33 Олеся999
 
24.12.15
11:03
Модуль Менеджера :
Процедура Сер(ТабДок, Ссылка, Путь) Экспорт
    .
        .
        .
        .
        .
     ТабДок.Записать(Путь+"\файл.pdf", ТипФайлаТабличногоДокумента.PDF);

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


Модуль Команты:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Сер)
    ТабДок = Новый ТабличныйДокумент;
    Сер(ТабДок, ПараметрКоманды);

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Истина;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    //}}
КонецПроцедуры

&НаСервере
Процедура Сер(ТабДок, ПараметрКоманды)
    Справочники.Контрагенты.Сер(ТабДок,ПараметрКоманды);
КонецПроцедуры



Форма Элемента:

&НаКлиенте
Процедура ПечатьСер(Команда)
    ТабДок = Новый ТабличныйДокумент;
        СерНаСервере(ТабДок,Путь);
        ТабДок.Показать();
    
         Диалог = Новый    ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Диалог.Заголовок = ЗаголовокДиалога;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Каталог = ИмяКаталога;

    Если Диалог.Выбрать() Тогда
        Путь= Диалог.Каталог;
    Иначе
      Возврат;
    КонецЕсли;
    
    КонецПроцедуры

&НаСервере
Процедура СерНаСервере(ТабДок,Путь)


    Справочники.Контрагенты.Сер(ТабДок, Объект.Ссылка, Путь);
    
КонецПроцедуры

Вываливает ошибки :


{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(282,30)}: Переменная не определена (Путь)
        СерНаСервере(ТабДок,<<?>>Путь); (Проверка: Тонкий клиент)
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(286,21)}: Переменная не определена (ЗаголовокДиалога)
    Диалог.Заголовок = <<?>>ЗаголовокДиалога; (Проверка: Тонкий клиент)
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(288,19)}: Переменная не определена (ИмяКаталога)
    Диалог.Каталог = <<?>>ИмяКаталога; (Проверка: Тонкий клиент)
34 sash-ml
 
24.12.15
11:19
Процедура ПечатьСер(Команда)
    ТабДок = Новый ТабличныйДокумент;
        
        
    
         Диалог = Новый    ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Диалог.Заголовок = "укажите путь";
    Диалог.МножественныйВыбор = Ложь;
    

    Если Диалог.Выбрать() Тогда
        Путь= Диалог.Каталог;
    Иначе
      Возврат;
    КонецЕсли;
    СерНаСервере(ТабДок,Путь);
    КонецПроцедуры
35 Рэйв
 
24.12.15
11:21
(0)Слушай, не парься ты. Возврати таб на клиент и там выбери путь и сохрани:-)
36 Олеся999
 
24.12.15
11:23
(35) А как это сделать ?)))
37 Олеся999
 
24.12.15
11:33
(34) {Справочник.Контрагенты.Команда.Сер.МодульКоманды(18)}: Недостаточно фактических параметров
    Справочники.Контрагенты.Сер(ТабДок,ПараметрКоманды);
38 Олеся999
 
24.12.15
12:02
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Сер)
    ТабДок = Новый ТабличныйДокумент;
    Сер(ТабДок, ПараметрКоманды, Путь );// что то строка ей эта не нравится

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Истина;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    //}}
КонецПроцедуры

&НаСервере
Процедура Сер(ТабДок, ПараметрКоманды, Путь )
    Справочники.Контрагенты.Сер(ТабДок, ПараметрКоманды, Путь);
КонецПроцедуры

Ошибка :
{Справочник.Контрагенты.Команда.Сер.МодульКоманды(6,38)}: Переменная не определена (Путь)
    Сер(ТабДок, ПараметрКоманды, <<?>>Путь ); (Проверка: Тонкий клиент)
39 sash-ml
 
24.12.15
12:11
зачем сохранять пустой документ?
40 Олеся999
 
24.12.15
12:45
(39) почему пустой?
41 sash-ml
 
24.12.15
12:45
(40) а в каком месте он формируется?
42 Олеся999
 
24.12.15
12:47
в модуле менеджера
Процедура Сертификат(ТабДок, Ссылка, Путь) Экспорт