Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 08:53

Создание каталога с именем из запроса

Автор Compodoctor, 12 окт 2013, 12:14

0 Пользователей и 1 гость просматривают эту тему.

Compodoctor

Существует вот такой код, содержащийся в модуле менеджера документа ЗаказНаряд

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

КонецПроцедуры
//делает запрос и формирует ИмяКаталога
Процедура ФайлыДокумента(ИмяКаталога, Ссылка) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказНаряд.Автомобиль.Марка КАК Марка,
| ЗаказНаряд.Автомобиль.Модель КАК Модель,
| ЗаказНаряд.Автомобиль,
| ЗаказНаряд.НомерУбытка
|ИЗ
| Документ.ЗаказНаряд КАК ЗаказНаряд
|ГДЕ
| ЗаказНаряд.Ссылка В (&Ссылка)";

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
МаркаМодель = Выборка.Марка + " " + Выборка.Модель;
ГосНомер = " " + Выборка.Автомобиль;
Номер = " " + Выборка.НомерУбытка;
КонецЦикла;

ИмяКаталога = "d:\Documents\Прием-сдача машин\" + МаркаМодель + ГосНомер + Номер;
ПроверитьСуществованиеКаталога(ИмяКаталога);

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


И вот такой код в модуле команды:

&НаСервере
Процедура ФайлыДокумента(Ссылка);
Документы.ЗаказНаряд.ФайлыДокумента(Ссылка);
КонецПроцедуры


Хочу реализовать выполнение в виде команды на командной панели формы.
Что не так? И что еще нужно написать в модуле команды (я так понимаю &НаКлиенте) чтобы заработало?


softbear

Так делаешь команду формы с текстом 
   
Документы.ЗаказНаряд.ФайлыДокумента(Ссылка);

И перетаскиваешь куда хочешь, хоть на форму, хоть на командную панель.

Compodoctor

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

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

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


В менеджере
Процедура ФайлыДокумента(ИмяКаталога, Ссылка) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказНаряд.Автомобиль.Марка КАК Марка,
| ЗаказНаряд.Автомобиль.Модель КАК Модель,
| ЗаказНаряд.Автомобиль,
| ЗаказНаряд.НомерУбытка
|ИЗ
| Документ.ЗаказНаряд КАК ЗаказНаряд
|ГДЕ
| ЗаказНаряд.Ссылка В (&Ссылка)";

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

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
МаркаМодель = Выборка.Марка + " " + Выборка.Модель;
ГосНомер = " " + Выборка.Автомобиль;
Номер = " " + Выборка.НомерУбытка;
КонецЦикла;


ИмяКаталога = "d:\Documents\Прием-сдача машин\" + МаркаМодель + ГосНомер + Номер;

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


Ошибки не выдает, но и каталог не создает
Добавлено: 12 окт 2013, 14:33


Вот скрины свойств Команды и Кнопки команды Подскажите, где я накосячил?

Андрей Федотов

А куда он проваливается?
В другое ЕСЛИ?

Dethmontt

Кнопка - она существует только на клиенте, соответственно и код который она вызывает должен быть на клиенте

Например процедура команда Создание
&НаКлиенте
Процедура Создание(Команда) Экспорт
   Перем ИмяКаталога;
   ЗапросИмени(ИмяКаталога,Объект.Ссылка);
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск