сохранить файл на сервере 1с #778860


#0 by Александр056
доброго всем! задача: взять файл ексель с клиента, кинуть на сервер и там сохранить, затем отбработать. на клиенте получил, в двоичные данные преобразовал, на сервер передал, там получил двоичные данные, вопрос как сохранить его на сервере? функция КаталогВременныхФайлов получает каталог временных файлов у клиента, хотя и используется в процедуре НаСервере. Подскажите как это осуществить?
#1 by zak555
Если на сервера не будет Экселя, что тогда?
#2 by Александр056
скажем админам поставить)
#3 by Defender aka LINN
Тогда можно вспомнить, что 1С файлы Excel читает. На файловой базе разработку ведем, да? Ну и зачем тебе каталог, когда можно сразу имя временного файла получить?
#4 by Mauser
Одна из черепашек... обманывает. И не надо пользоваться КаталогВременныхФайлов. Представь себе, что твою кучку кода запустят одновременно несколько сеансов. Пользуйся ПолучитьИмяВременногоФайла, она для этого и предназначена.
#5 by Александр056
балин сама функция и сформирует адрес на сервере?
#6 by Defender aka LINN
Гимли, она формирует путь там, где запущена.
#7 by Александр056
т.е. если я ее запущу в процедуре НаСервере, то и будет она сформирована на сервере?
#8 by Mauser
Ну не на сайте 1С же
#9 by Александр056
спасибо, вроде получилось создал файлик в папке userv82 чет такое, т.е. не под моим пользаком, все доброй ночи
#10 by Зая Бусечка
Файл создаётся в темпе того пользователя, под которым работает сервер 1с
#11 by vde69
извиняюсь за дебильный вопрос: а как узнать на каком сервере выполняется код если у меня 5 серверов в кластере? по этому все, что тут предлагали - это не верные советы... почитайте рекомендации 1с на эту тему (на ИТС)
#12 by Defender aka LINN
ПолучитьИмяВременногоФайла - не верный совет? Ну просвяти же нас, о гуру, светом правды-истины!
#13 by Mauser
Тебе, пожалуй, тоже полезно будет
#14 by vde69
правильно ПоместитьВоВременноеХранилище ПолучитьИзВременногоХранилища
#15 by vde69
+ ПолучитьИмяВременногоФайла  нужно использовать только в рамках одного серверного вызова, в рамках нескольких серверных вызовов контекст уже протухнет
#16 by Defender aka LINN
При чем тут вообще временное хранилище? Поместил ты туда двоичные данные, получил, все гуд. Дальше твои действия какие?
#17 by Mauser
Тогда уж правильно - НачатьПомещениеФайла Он придумал за ТС себе проблему, что у него несколько серверных вызовов и героически с ней борется.
#18 by vde69
дальше в рамках одной серверной процедуры можно запустить ексель, а вот получишь ли ты обратно этот файл из следующего серверного вызова будет зависить от контекста выполнения. По этому сабж должен или ждать внутри серверного вызова завершение чужеродного потока (что плохо), либо работать как-то по другому.
#19 by vde69
нет, просто этот вопрос - классический завал в билетах 1с :)
#20 by Defender aka LINN
Я рекомендую тебе отдохнуть. Выпей кружечку хорошего пива, что ли.
#21 by vde69
2 недели на новой работе, может уже пора в отпуск?
#22 by Defender aka LINN
Пора-пора. Речь про пути к временным файлам, а ты про временное хранилище и серверные вызовы втираешь.
#23 by Александр056
не поможет. объект файл не передается, а двоичные данные да я получу, и ? надо ексель сохранить о чем собственно и вопрос
#24 by Mauser
Это слишком сложно для нас, прости.
#25 by Александр056
не прощаю! подскажи)
#26 by Mauser
Что именно? Как обработать - знаешь только ты. Для передачи надо на клиенте начать помещение файла с параметром - путем, получишь адрес в хранилище. С этим адресом идешь на сервер, извлекаешь по нему двоичные данные и сбрасываешь на диск. Дальше твои ёксельные фантазии.
#27 by Александр056
. С этим адресом идешь на сервер, извлекаешь по нему двоичные данные и сбрасываешь на диск. вот в этом и вопрос, куда сохранить? всмысле как бы получить временную папку там на сервере, точно зная что будет доступна и т.д. и исходя из этого сохранить уже файл, дальше все понятно что мои фантазии. Как сгенерировать ПУТЬ для сохранения на сервере?
#28 by Mauser
Ты точно тему читаешь? Они тебе угрожают оружием?
#29 by Александр056
ПолучитьИмяВременногоФайла   не помогло(
#30 by Mauser
Чем мотивировало?
#31 by Александр056
{Форма.Форма.Форма}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу "C:UsersUSR1CV82AppDataLocalTempv8_CC39_28.xslx". Это может быть вызвано одной из следующих причин. • Указан несуществующий файл или путь. • Файл используется другой программой. • Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.
#32 by Defender aka LINN
Ставлю на вариант №1
#33 by Александр056
у меня еще опечатка в формате была, исправил, щас пойду админов спрашивать
#34 by Александр056
капец затра***ся, ексель есть, файлик сохраняется не открывает и все, ну пздц
#35 by Nite
Права в дком на сервере поменять еще нужно.
#36 by schoolboy2016
Это удачно я зашел. У меня нет опыта управляемых форм и с файловой системой я тоже до этого не работал, а тут поставили задачу сделать возможность прикрепления к документу реализация товаров и услуг в УТ 11, файлов pdf. Файлы должны храниться на общем диске. Хорошо хоть сроков не стоит, есть время разобраться...
#37 by schoolboy2016
Вопрос: переносить файл в сетевой каталог обязательно использую серверные методы? Или есть возможность на клиенте все сделать, читать сам файл в 1с от меня не требуется. Просто дать информацию, есть у этого документа файлы или нет...
#38 by Александр056
сделай общий каталог до которого сможешь стучаться из любого места, и из 1с будешь получать свои файлы
#39 by Александр056
ок, с сохранением передачей разобрался, теперь просто не открывает, может быть из-за этого?
#40 by hitodom
Обычный таб док умеет читать ексель
#41 by schoolboy2016
В свое время делал загрузку данных из xls правда опять же на обычных формах. Использовал ADODB. Очень понравилось, что не требует установки excel на сервер, да и в инете оч много информации о методах. Использовал функцию из инета для получения данных в тз. Функция ЗагрузитьМетодом_MSADODB(Знач ФайлEXCEL, Знач ИмяЛиста, Знач СтрокаЗаголовка = 2, НачСтрока = 3, КонСтрока = 0,
#42 by schoolboy2016
Вот так список листов вычислял, и передавал нужный лист в ту функцию. Процедура ФайлExcelПолучитьСписокЛистов(Знач ФайлEXCEL, Знач ПодключениеADODB = "MicrosoftJetOLEDB40")
#43 by schoolboy2016
Добрый день. Не хочу плодить тему, поэтому задам свой вопрос тут. У меня при попытке создания каталога выдает ошибку. {ВнешняяОбработка.РаботаСФайлами.Форма.Форма.Форма}: Ошибка при вызове метода контекста (СоздатьКаталог): Ошибка создания каталога: Ошибка доступа к файлу 'Файл'. 5(0x00000005): Отказано в доступе. Функция вот такая: Я лично думаю, раз функция клиентская, то наверное она для создания каталога использует права пользователя, от которого у меня запущена 1С. У этого пользователя как не странно полные права, админ домена. В чем прикол? Может есть какой-нибудь способ в 1С задать учетку под которой будет производиться создание каталога?
#44 by schoolboy2016
Забыл дописать, база запускается локально с моего компа, мой комп в домене, сервер 1с на другом компе, который не в домене, база sql на третьем компе, который в домене... =)
#45 by schoolboy2016
Я тут подумал, пожалуй лучше разместить каталог архива на терминальном сервере, там не потребуются права доменные.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С