Здравствуйте, давно написал небольшой код для копирования выбранного файла в специальный каталог, в файловом варианте все отрабатывает чудесно но встал вопрос как это сделать на сервере?
Сам код:
Подскажите пожалуйста как нужно поправить, сейчас выходит ошибка (Во вложении).
Сам код:
Процедура ТЧЭскизДобавленияНаСервере(ПрисоединенныеФайлы,ИмяФайла)
ТЧНоваяСтрока=Объект.ТЧЭскиз.Добавить();
ТЧНоваяСтрока.Дата=ТекущаяДата();
ТЧНоваяСтрока.Время=Формат(ТекущаяДата(),"ДЛФ=T");
ТЧНоваяСтрока.Пользователь=Пользователи.ТекущийПользователь();
ТЧНоваяСтрока.ПутьКФайлу=ПрисоединенныеФайлы;
ТЧНоваяСтрока.ПрисоединенныеФайлы = ИмяФайла;
СоздатьКаталог("\\1CSERVER\эскизы"+Объект.Покупатель.Наименование+"Заявка №"+Объект.Ссылка.Номер+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy"));
КопироватьФайл(ПрисоединенныеФайлы,"\\1CSERVER\эскизы\Заявка №"+Объект.Ссылка.Номер+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy")+"\"+ИмяФайла);
КонецПроцедуры
ПоказатьПодскажите пожалуйста как нужно поправить, сейчас выходит ошибка (Во вложении).
Прикрепленные файлы:
![](/upload/forum/upload/0b0/0b0982e323b1c350b9204a8eab0bda7b.png)
По теме из базы знаний
Найденные решения
(23)
(15)
Как итог смог решить проблему переделав код следующим образом. Понимаю что не совсем правильно, но задача горит и как временное решение сгодиться:
(15)
Как итог смог решить проблему переделав код следующим образом. Понимаю что не совсем правильно, но задача горит и как временное решение сгодиться:
&НаКлиенте
Процедура ТЧЭскизПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
СтандартнаяОбработка=Ложь;
Отказ=Истина;
СтандартнаяОбработка=ложь;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл";
Диалог.ПолноеИмяФайла = "";
Диалог.МножественныйВыбор = Ложь;
Диалог.Каталог = "F:\";
Если Диалог.Выбрать() Тогда
ПрисоединенныеФайлы = Диалог.ПолноеИмяФайла;
ВычисляемИмяФайла = СтрРазделить(ПрисоединенныеФайлы, "\", Ложь);
ИмяФайла = ВычисляемИмяФайла.Количество();
ИмяФайла = ВычисляемИмяФайла[Имяфайла-1];
КонецЕсли;
//Диалог.
ТЧНоваяСтрока=Объект.ТЧЭскиз.Добавить();
ТЧНоваяСтрока.Дата=ТекущаяДата();
ТЧНоваяСтрока.Время=Формат(ТекущаяДата(),"ДЛФ=T");
ТЧНоваяСтрока.Пользователь=ПользовательНаСервере ();
ТЧНоваяСтрока.ПутьКФайлу=ПрисоединенныеФайлы;
НаименованиеПокупателя=НаименованиеПокупателяНаСервере();
НомерДокумента=НомерНаСервере ();
ТЧНоваяСтрока.ПрисоединенныеФайлы = ИмяФайла;
СоздатьКаталог("\\192.168.0.249\эскизы\"+НаименованиеПокупателя+"Заявка №"+НомерДокумента+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy"));
КопироватьФайл(ПрисоединенныеФайлы,"\\192.168.0.249\эскизы\"+НаименованиеПокупателя+"Заявка №"+НомерДокумента+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy")+"\"+ИмяФайла);
СтатусЭскизаПриИзмененииНаСервере()
КонецПроцедуры
Функция НаименованиеПокупателяНаСервере()
Возврат Объект.Покупатель.Наименование;
КонецФункции
Функция НомерНаСервере()
Возврат Объект.Ссылка.Номер;
КонецФункции
Функция ПользовательНаСервере ()
Пользователь=Пользователи.ТекущийПользователь();
Возврат Пользователь
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Учитывая, что процедура называется "ТЧЭскизДобавленияНаСервере", предполагаем что действие происходит на сервере. Доступ к шаре должно быть у пользователя, от чего имени запущен сам сервер1С.
Но в 1С есть возможность передавать файлы с клиента на сервер через ВременноеХранилище. На клиенте помещаете файл в хранилище, передаете адрес хранилища на сервер, на сервере получаете файл их хранилища и записываете куда хотите на самом сервере.
Но в 1С есть возможность передавать файлы с клиента на сервер через ВременноеХранилище. На клиенте помещаете файл в хранилище, передаете адрес хранилища на сервер, на сервере получаете файл их хранилища и записываете куда хотите на самом сервере.
(17)
(15)
Все выглядит так:
(15)
Все выглядит так:
&НаКлиенте
Процедура ТЧЭскизПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
СтандартнаяОбработка=Ложь;
Отказ=Истина;
СтандартнаяОбработка=ложь;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл";
Диалог.ПолноеИмяФайла = "";
Диалог.МножественныйВыбор = Ложь;
Диалог.Каталог = "F:\";
Если Диалог.Выбрать() Тогда
ПрисоединенныеФайлы = Диалог.ПолноеИмяФайла;
ВычисляемИмяФайла = СтрРазделить(ПрисоединенныеФайлы, "\", Ложь);
ИмяФайла = ВычисляемИмяФайла.Количество();
ИмяФайла = ВычисляемИмяФайла[Имяфайла-1];
КонецЕсли;
//Диалог.
ТЧЭскизДобавленияНаСервере(ПрисоединенныеФайлы,ИмяФайла);
СтатусЭскизаПриИзмененииНаСервере()
КонецПроцедуры
Процедура ТЧЭскизДобавленияНаСервере(ПрисоединенныеФайлы,ИмяФайла)
ТЧНоваяСтрока=Объект.ТЧЭскиз.Добавить();
ТЧНоваяСтрока.Дата=ТекущаяДата();
ТЧНоваяСтрока.Время=Формат(ТекущаяДата(),"ДЛФ=T");
ТЧНоваяСтрока.Пользователь=Пользователи.ТекущийПользователь();
ТЧНоваяСтрока.ПутьКФайлу=ПрисоединенныеФайлы;
ТЧНоваяСтрока.ПрисоединенныеФайлы = ИмяФайла;
СоздатьКаталог("\\1CSERVER\эскизы"+Объект.Покупатель.Наименование+"Заявка №"+Объект.Ссылка.Номер+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy"));
КопироватьФайл(ПрисоединенныеФайлы,"\\1CSERVER\эскизы\Заявка №"+Объект.Ссылка.Номер+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy")+"\"+ИмяФайла);
КонецПроцедуры
&НаКлиенте
Процедура ТЧЭскизПриАктивизацииСтроки(Элемент)
Если Не Элемент.ТекущийЭлемент=Неопределено Тогда
Если ТекущийЭлемент.ТекущийЭлемент.Имя="ТЧЭскизПрисоединенныеФайлы" Тогда
ТекущиеДанные=Элементы.ТЧЭскиз.ТекущиеДанные;
НомерСтроки=ТекущиеДанные.НомерСтроки;
ЗапуститьПриложение(Объект.ТЧЭскиз[НомерСтроки-1].ПутьКФайлу);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
(20) Ну, может с правами затык, а в (12) вы говорите, что у всех пользователей есть права на доступ к каталогу, а этих прав может не быть у пользователя, под которым 1с ходит на сервер.
Кстати, а нет ли в имени формируемого файла каких-нибудь запрещенных символов?
Кстати, а нет ли в имени формируемого файла каких-нибудь запрещенных символов?
(23)
(15)
Как итог смог решить проблему переделав код следующим образом. Понимаю что не совсем правильно, но задача горит и как временное решение сгодиться:
(15)
Как итог смог решить проблему переделав код следующим образом. Понимаю что не совсем правильно, но задача горит и как временное решение сгодиться:
&НаКлиенте
Процедура ТЧЭскизПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
СтандартнаяОбработка=Ложь;
Отказ=Истина;
СтандартнаяОбработка=ложь;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл";
Диалог.ПолноеИмяФайла = "";
Диалог.МножественныйВыбор = Ложь;
Диалог.Каталог = "F:\";
Если Диалог.Выбрать() Тогда
ПрисоединенныеФайлы = Диалог.ПолноеИмяФайла;
ВычисляемИмяФайла = СтрРазделить(ПрисоединенныеФайлы, "\", Ложь);
ИмяФайла = ВычисляемИмяФайла.Количество();
ИмяФайла = ВычисляемИмяФайла[Имяфайла-1];
КонецЕсли;
//Диалог.
ТЧНоваяСтрока=Объект.ТЧЭскиз.Добавить();
ТЧНоваяСтрока.Дата=ТекущаяДата();
ТЧНоваяСтрока.Время=Формат(ТекущаяДата(),"ДЛФ=T");
ТЧНоваяСтрока.Пользователь=ПользовательНаСервере ();
ТЧНоваяСтрока.ПутьКФайлу=ПрисоединенныеФайлы;
НаименованиеПокупателя=НаименованиеПокупателяНаСервере();
НомерДокумента=НомерНаСервере ();
ТЧНоваяСтрока.ПрисоединенныеФайлы = ИмяФайла;
СоздатьКаталог("\\192.168.0.249\эскизы\"+НаименованиеПокупателя+"Заявка №"+НомерДокумента+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy"));
КопироватьФайл(ПрисоединенныеФайлы,"\\192.168.0.249\эскизы\"+НаименованиеПокупателя+"Заявка №"+НомерДокумента+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy")+"\"+ИмяФайла);
СтатусЭскизаПриИзмененииНаСервере()
КонецПроцедуры
Функция НаименованиеПокупателяНаСервере()
Возврат Объект.Покупатель.Наименование;
КонецФункции
Функция НомерНаСервере()
Возврат Объект.Ссылка.Номер;
КонецФункции
Функция ПользовательНаСервере ()
Пользователь=Пользователи.ТекущийПользователь();
Возврат Пользователь
КонецФункции
Показать
(25) зачем два раза на сервер-то бегать?
Данные = ДанныеДляПечати();
СоздатьКаталог("\\192.168.0.249\эскизы\"+Данные.Покупатель+"Заявка №"+Данные.Номер+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy"));
КопироватьФайл(ПрисоединенныеФайлы,"\\192.168.0.249\эскизы\"+НаименованиеПокупателя+"Заявка №"+НомерДокумента+" от "+Формат(Объект.Дата,"ДФ=dd.MM.yyyy")+"\"+ИмяФайла);
.....
Функция ДанныеДляПечати()
Возврат Новый Структура("Покупатель, Номер", Объект.Покупатель.Наименование, Объект.Ссылка.Номер)
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот