Как сохранить файл из 1С (программно) #650078


#0 by Aleksey1989
Добрый день. Подскажите, пожалуйста, как сохранить вордовский файл из 1С (программно), чтобы в его имени были пробелы? Использую вот такой код: П.с. я использую макет, который имеет тип "Двоичные данные". При запуске MSWordИзДвоичныеДанныеССервера.Записать(ИмяФайла) вылетает ошибка, что первый параметр неправильный.
#1 by Builder
Попробуй что ли кавычек добавь в имя файла.
#2 by de Bug
ИмяФайла = """C:Реализация товаров и услуг.docx""";
#3 by Aleksey1989
Не работает: Выше приведенный код выдает ту же самую ошибку
#4 by Wobland
ПолучитьИзВременногоХранилища, говоришь? а что ты туда положил?
#5 by Aleksey1989
Вордовский шаблон.
#6 by Aleksey1989
+ Просто работа с макетом типа Active Document не возможна в клиент-серверном режиме, поэтому пришлось искать обходные пути.
#7 by Wobland
в каком месте? по какому адресу?
#8 by Aleksey1989
Не совсем понял вопрос. Сам вордовский шаблон загружен в макет, который имеет тип "Двоичные данные". На сервере я получаю этот шаблон и передаю его на клиента, на котором word установлен. Но чтобы открыть этот макет через word, надо преобразовать двоичные данные в документ word, это делается сохранением этого документа на диск. Имя документа должно получиться следующим: "C:Автомат. Претензия от 31.01.2013 18.48.53.docx"
#9 by Wobland
Синтаксис: ПолучитьИзВременногоХранилища(<Адрес>) скажи мне свой адрес
#10 by Aleksey1989
e1cib/tempstorage/9fbe19c4-7a61-4191-86f0-e522c4e500d0
#11 by Wobland
откуда ты его взял?
#12 by Wobland
&НаСервере Процедура Показать(Команда)
#13 by Aleksey1989
Из переменной ДвоичныеДанныеССервера кода: ..................... &НаСервере
#14 by Wobland
никогда б не догадался, что ПолучитьДвоичныеДанные возвращает строку
#15 by Aleksey1989
Первое, что попало в голову, как говорится :). На самом деле я этот код сейчас дорабатываю, как сделаю все, буду готовить шаблонный код, чтобы его можно было использовать впоследствии, в том числе поработаю и над названиями переменных и процедур.
#16 by Aleksey1989
Не знаю, что ты хотел сказать этим кодом, но попытаюсь догадаться: Использование функции "ПолучитьФайл" вместо "ПолучитьИзВременногоХранилища". Если да, то возникает опять же ошибка в имени файла.
#17 by Wobland
это я открываю вордовский документ, хранящийся в базе. а почему "опять же ошибка в имени файла"?
#18 by Aleksey1989
Это не ошибка, а моя невнимательность. Я проглядел про вызов процедуры ПолучитьВременноеИмя и по ошибке вставил то имя, которое я до этого хотел увидеть (с пробелами).
#19 by Reset
ПолучитьФайл(<Адрес>, <ИмяФайла>, <Интерактивно>) Параметры: Тип: Строка. Расположение данных во временном хранилище или в информационной базе. Т.е. то же самое что у тебя, но одной строкой
#20 by Reset
Правильно я написал? :) Базировался только на чтении СП :) Когда то нужно привыкать к УП)
#21 by Wobland
вот одной строкой, проверяй ;) ПолучитьФайл(ПоместитьВоВременноеХранилище(Документы.Претензия.ПолучитьМакет("НекийМакет")), """C:" + ПолучитьПользователя +  ". Претензия от " + Строка(ТекущаяДата)+".docx""")
#22 by Wobland
ложь третьим параметром
#23 by Reset
Ну так это извращенный вариант просто от Документы.Претензия.ПолучитьМакет("НекийМакет").Записать("C:.. и т д")Ж
#24 by Reset
я говорил про
#25 by Wobland
получить макет на тонком нельзя, одной строкой не выйдет
#26 by Wobland
а до этого сходить на сервер и покласть в хранилище макет
#27 by Reset
Я понимаю. Ладно, забей, лучше ТСу помоги. Я справлюсь ;)
#28 by Wobland
а ТСу мы уже не нужны
#29 by Aleksey1989
Неправильно, 1С ругается: {Документ.Претензия.Форма.ФормаДокумента.Форма}: Ошибка при вызове метода контекста (ПолучитьФайл)            ПолучитьФайл(ДвоичныеДанныеССервера, """C:" + ПолучитьПользователя +  ". Претензия от " + Строка(ТекущаяДата)+".docx""", ложь); по причине:
#30 by Aleksey1989
Даже если убрать из названия файла функцию ТекущаяДата (она возвращает строку, в которой есть символы ":", а они не допустимы), то все равно ошибка будет.
#31 by GANR
Посмотри, как это делается в справочнике типовых конф "Внешние обработки", ведь последние, прежде чем запуститься, сохраняются на жесткий диск.
#32 by GANR
+ А Windows права-то на сохранение файла в указанном месте имеются?
#33 by Aleksey1989
Конечно имеются. Что за справочник типовых конф?
#34 by GANR
ДополнительныеОтчетыИОбработки он в современных конфигурациях называется. Кликаешь на обработку - она сохраняется на ЖД и запускается.
#35 by GANR
Не факт, конечно, что поможет, может быть дело не в имени файла, а в ДвоичныеДанныеССервера.
#36 by Aleksey1989
Дело 100 % в имени файла, т.к. если оно будет без пробелов, то все будет ок.
#37 by GANR
Хм... Почему-же у меня тогда это сохраняется (по крайней мере год назад так было)?
#38 by Aleksey1989
Тогда на ум приходит только один вариант: ошибка в платформе.
#39 by Aleksey1989
Кстати, тройные кавычки тоже указывать нельзя, с ними даже имя, в котором нет пробелов, не подходит. М.б. в 1С символы пробела заменяются каким-нибудь спец. символом?
#40 by GANR
Нужно покопаться в стандартной подсистеме типовых конфигураций и БСП "РаботаСФайлами" - там целый сложный процесс, оказывается, по работе с именем файла. Ну, а если и это не поможет - тогда написать на v8@1c.ru с обязательным указанием (без этого письма не будут рассмотрены): - названия и релиза конфигурации - регистрационного номера программного продукта Я там получил ответы на многие интересующие меня вопросы, которые не смог узнать на форумах.
#41 by GANR
В общем модуле БСП ПрисоединенныеФайлы можно быть ответ.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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