Имя: Пароль:
1C
1С v8
Создание каталога с именем из запроса
0 Compodoctor
 
12.10.13
13:20
Модуль команды:
[code]&НаКлиенте
Процедура Создание(ИмяКаталога, Ссылка) Экспорт
    ЗапросИмени(ИмяКаталога,Ссылка);
    КаталогНаДиске = Новый Файл(ИмяКаталога);
    Если КаталогНаДиске.Существует() Тогда
        Сообщить("Папка с таким именем уже существует");
    Иначе
        СоздатьКаталог(ИмяКаталога);
        Сообщить("Создана новая папка "+ИмяКаталога);
    КонецЕсли;

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

&НаСервере
Процедура ЗапросИмени(ИмяКаталога, Ссылка)
    Документы.ЗаказНаряд.ФайлыДокумента(ИмяКаталога, Ссылка);
КонецПроцедуры[/code]

В менеджере
[code]Процедура ФайлыДокумента(ИмяКаталога, Ссылка) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказНаряд.Автомобиль.Марка КАК Марка,
    |    ЗаказНаряд.Автомобиль.Модель КАК Модель,
    |    ЗаказНаряд.Автомобиль,
    |    ЗаказНаряд.НомерУбытка
    |ИЗ
    |    Документ.ЗаказНаряд КАК ЗаказНаряд
    |ГДЕ
    |    ЗаказНаряд.Ссылка В (&Ссылка)";
    
    // Запрос.Параметры.Вставить("Ссылка", Ссылка);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        МаркаМодель = Выборка.Марка + " " + Выборка.Модель;
        ГосНомер = " " + Выборка.Автомобиль;
        Номер = " " + Выборка.НомерУбытка;
    КонецЦикла;
    
    
    ИмяКаталога = "d:\Documents\Прием-сдача машин\" + МаркаМодель + ГосНомер + Номер;
        
КонецПроцедуры[/code]

Ошибки не выдает, но и каталог не создает. В чем проблема, что не так?
1 Casey1984
 
12.10.13
13:23
Клиент серверный вариант? А на том ли компе каталог ищите?
2 Compodoctor
 
12.10.13
13:27
Комп один. Да и вообще никакого сообщения не выдает. Если б не там искал или не там создавал - че-то сообщить все равно должен?
3 Casey1984
 
12.10.13
13:31
А "Сообщить("Создана новая папка "+ИмяКаталога);" отрабатывает?
4 Casey1984
 
12.10.13
13:32
(3) Отладчик до неё вообще доходит?
5 Compodoctor
 
12.10.13
13:34
Так вот походу нет. Иначе бы что-то вякал бы
6 Casey1984
 
12.10.13
13:35
Вот значит рыть куда уходит:) как-то так.
7 Casey1984
 
12.10.13
13:36
Может путь в ИмяКаталога вообще не тот?
8 Compodoctor
 
12.10.13
13:39
Какой-бы путь ни был возможны три варианта:
1. Невозможно создать папку.
2. Папка уже есть.
3. Папка создана.

Никакого ответа не наблюдаю. Или ято-то я не так понимаю?
9 Casey1984
 
12.10.13
13:48
(8) по мне так код вообще в процедуре ФайлыДокумента должен остановиться...
10 Compodoctor
 
12.10.13
14:04
Походу он у меня даже до процедуры не доходит. Не врубаюсь
вот скрин конфигуратора
https://docs.google.com/file/d/0ByiCKdu5OGhxZV9Ha2gtSEVBRUE/edit?usp=sharing
11 Casey1984
 
12.10.13
14:09
(10) а чего гадать, отладчик в помощь... И зачем вот это написали:

// Запрос.Параметры.Вставить("Ссылка", Ссылка);

?
12 Casey1984
 
12.10.13
14:11
Команда вообще вызывает процедуры? Свойства команды глянь...
13 Compodoctor
 
12.10.13
14:20
Свойства команды в скрине. Все должно вроде бы работать, но не пашет.
14 Compodoctor
 
12.10.13
14:27
Вот скрин со свойствами кнопки
https://docs.google.com/file/d/0ByiCKdu5OGhxTEwzekZJdG9HUVk/edit?usp=sharing
15 Casey1984
 
12.10.13
14:36
(14) (13) Где там в скрине свойства команды, сами же пишите "Вот скрин со свойствами кнопки"... Даешь команду!
16 Compodoctor
 
12.10.13
14:37
(10) - скрин свойств команды
17 Casey1984
 
12.10.13
14:39
(16) в окне свойств, в заголовке написано: Кнопка
18 Compodoctor
 
12.10.13
15:04
Сорри ссылка на свойства команды
https://docs.google.com/file/d/0ByiCKdu5OGhxQk9meS15UkUwMnM/edit?usp=sharing
19 Casey1984
 
12.10.13
15:05
(18) а где: Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)????????
20 Compodoctor
 
12.10.13
15:09
Ага. Начинаю понимать. И что в этой процедуре писать?
21 Casey1984
 
12.10.13
15:10
(20) в неё управление передается... сами как думаете?
22 Compodoctor
 
12.10.13
15:16
Я думал, что оправление передается, когда я в свойствах кнопки задаю ИмяКоманды.
Лан, понял, счас попробую
23 Compodoctor
 
12.10.13
16:56
ЗАРАБОТАЛО!!!
В модуле команды
[code]
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПарвметрыВаыполненияКоманды);
    ФайлыДокумента(ЗапросИмени(ПараметрКоманды));
    
КонецПроцедуры

    
Процедура ФайлыДокумента(ИмяКаталога)
    КаталогНаДиске = Новый Файл(ИмяКаталога);
    Если КаталогНаДиске.Существует() Тогда
        Сообщить("Папка с таким именем уже существует");
    Иначе
        СоздатьКаталог(ИмяКаталога);
        Сообщить("Создана новая папка "+ИмяКаталога);
    КонецЕсли;

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

&НаСервере
Функция ЗапросИмени(ПараметрКоманды)
    Возврат Документы.ЗаказНаряд.ПолучитьИмяКаталога(ПараметрКоманды);
КонецФункции [/code]

В модуле менеджера

[code]
Функция ПолучитьИмяКаталога(Ссылка) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказНаряд.Автомобиль.Марка КАК Марка,
    |    ЗаказНаряд.Автомобиль.Модель КАК Модель,
    |    ЗаказНаряд.Автомобиль,
    |    ЗаказНаряд.НомерУбытка
    |ИЗ
    |    Документ.ЗаказНаряд КАК ЗаказНаряд
    |ГДЕ
    |    ЗаказНаряд.Ссылка В (&Ссылка)";
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        МаркаМодель = Выборка.Марка + " " + Выборка.Модель;
        ГосНомер = " " + Выборка.Автомобиль;
        Номер = " " + Выборка.НомерУбытка;
    КонецЦикла;
    
    
    ИмяКаталога = "d:\Documents\Прием-сдача машин\" + МаркаМодель + ГосНомер + Номер;
    Возврат ИмяКаталога;    
    
КонецФункции [/code]