8.2. Как передать файл DBF на сервер для обработки? #465830


#0 by V_V_V
Есть обработка по втягиванию данных из DBF, модуль обработки файла выполняется &НаСервереБезКонтекста. В ней выбирается локальный файл - как его без особых проблем передать на сервер и дать ссылку на реальное местонахождение?
#1 by kiruha
параметры в 8.2 не отменяли
#2 by V_V_V
Может быть. Никогда прежде не доводилось перебрасывать файлы между клиентом и сервером - поэтому и задал вопрос. Чем мне могут помочь параметры? Пример какой-никакой есть?
#3 by AlexNV
Попробуй хранилище значения, оно вроде передается
#4 by kiruha
Синтаксис: ПоместитьФайлы(<ПомещаемыеФайлы>, <ПомещенныеФайлы>, <НаборПомещаемыхФайлов>, <Интерактивно>, <УникальныйИдентификаторФормы>) Параметры: <ПомещаемыеФайлы> (необязательный) Тип: Массив. Массив объектов типа ОписаниеПередаваемогоФайла. Каждый объект описывает получаемый файл: Хранение - расположение данных во временном хранилище; Имя - это локальный путь, по которому должен быть получен файл. Массив может быть заполнен полностью, в этом случае известен набор помещаемых файлов и адреса, по которым они должны быть сохранены. Массив может быть заполнен частично, у элементов массива заполнены только имена. В этом случае, набор помещаемых файлов определен, а места хранения не известны. Файлы будут размещены в новых временных хранилищах. Массив может быть не заполнен. В этом случае набор помещаемых файлов определяется по значениям остальных параметров метода (поиском по маске, либо интерактивным выбором). <ПомещенныеФайлы> (необязательный) Тип: Массив. Массив объектов типа ОписаниеПереданногоФайла. Каждый объект описывает помещенный файл: Хранение - расположение данных во временном хранилище; Имя - это локальный путь, по которому получен получен файл. <НаборПомещаемыхФайлов> (необязательный) Тип: ДиалогВыбораФайла; Строка. Определяет набор помещаемых файлов. Может быть задан строкой поиска для метода НайтиФайлы, либо, заранее подготовленным, диалогом выбора файлов в режиме открытия файлов. Если параметр определен, то параметр <ПомещаемыеФайлы> должен быть не определен либо быть пустым массивом. <Интерактивно> (необязательный) Тип: Булево. Указывает использование интерактивного режима, при котором пользователю показывается диалог, в котором он может выбрать набор помещаемых файлов. <УникальныйИдентификаторФормы> (необязательный) Тип: УникальныйИдентификатор. Уникальный идентификатор формы, который можно получить с помощью свойства УникальныйИдентификатор управляемой формы. Файл помещается во временное хранилище и автоматически удаляется после удаление объекта формы. Если параметр не указан, помещенное значение будет удалено, после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы. Возвращаемое значение: Тип: Булево. Описание: Помещает набор файлов из локальной файловой системы во временное хранилище. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами.
#5 by kiruha
Вообще там целый раздел. Можно просто Описание: Копирует файл-источник в файл-приемник. Допускается перезапись файла-приемника. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Примечание: Файл-приемник при создании будет иметь права доступа, аналогичные назначаемым при создании новых файлов (т.е. права доступа к файлу-источнику не копируются). Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные ''.
#6 by V_V_V
Спасибо за наводку на раздел - я в другом копался, по файлам.
#7 by V_V_V
Передаю данные так
#8 by V_V_V
#9 by V_V_V
В файловом варианте работает, в серверном ругается что длина файла превысила 8 символов.
#10 by acsent
dbf не работает с именами > 8.3
#11 by V_V_V
Извиняюсь: Длина имени файла превысила 8 символов
#12 by kiruha
На мой взгляд работа с файлами предполагает что они могут быть весьма большого размера, поэтому ПоместитьВоВременноеХранилище - как то некузяво Вообще конечно интересно сколько по времени преобразование файла в 100Мб
#13 by kiruha
Даже гонять файл сервер/клиент уже некузяво.
#14 by V_V_V
Согласен - но мне бы хоть как-то решить этот вопрос. Тем более что размеры файлов максимум 15 МБ. Кажется нашел в чем причина ругани по имени: оно таки больше 8-ми символов /tmp/v8_xbypRy_5f.dbf Щас буду резать до 8-ми - думаю заработает. Сервер линуксовый, эт чтоб слеши не смущали...  :)
#15 by V_V_V
Имя имелось ввиду полученное ПолучитьИмяВременногоФайла
#16 by kiruha
Предположим есть некий классификатор на клиенте. 15 Мб. Надо найти запись. На клиенте это будет меньше сек, если ДБФ проиндексирована. Если web соединение - 1024/100 кбит - 12 Кбайт на отдачу - 15 мин 15 мин на поиск записи !!
#17 by kiruha
Имеется ввиду если передавать файл на сервер
#18 by V_V_V
Да нет, все не так плохо - локалка. И задача не найти запись в DBF, а как раз внести в базу 1С. Свериться, не существует ли, проверить другие зависимости - тут серверу и флаг в руки.
#19 by V_V_V
Пишу код на прием данных Ругается: Формат файла отличен от .DBF
#20 by V_V_V
Изначальный DBF-файл нормальный - я с него в файловую базу втягиваю данные как обычно. А после передачи в хранилище и выдирания его оттуда на сервере - формат теряется.
#21 by shuhard
сравни файлы - скорее всего будет удлинение байт на 30-70
#22 by V_V_V
Размер один к одному - это я проверял. Тестирую на коротеньком файлике в 4554 байт - оригинал и временный сходятся.
#23 by shuhard
fc/b что говорит ?
#24 by V_V_V
А это что такое?
#25 by shuhard
пипец Сравнение двух файлов или двух наборов файлов и вывод различий между ними. FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W]   [/nnnn][диск1:][путь1]имя_файла1 [диск2:][путь2]имя_файла2  /A         Вывод только первой и последней строк для каждой группы различий.  /B         Сравнение двоичных файлов.  /C         Сравнение без учета регистра символов.  /L         Сравнение файлов в формате ASCII.  /LBn       Максимальное число несоответствий             для заданного числа строк.  /N         Вывод номеров строк при сравнении текстовых файлов ASCII.  /OFF[LINE] Не пропускать файлы с установленным атрибутом "Автономный".  /T         Символы табуляции не заменяются эквивалентным числом пробелов.  /U         Сравнение файлов в формате UNICODE.  /W         Пропуск пробелов и символов табуляции при сравнении.  /nnnn      Число последовательных совпадающих строк, которое             должно встретиться после группы несовпадающих.  [диск1:][путь1]имя_файла1               Указывает первый файл или набор файлов для сравнения.  [диск2:][путь2]имя_файла2               Указывает второй файл или набор файлов для сравнения.
#26 by V_V_V
Круто...  :) Сервер - Linux, локальная машина - ХР. Щас выдеру файлик - сравню...
#27 by shuhard
[Сервер - Linux] а работает ли на nix функционал dbf в 1С спросим мы ?
#28 by V_V_V
А не должен?
#29 by shuhard
ты файлы сравнивай - не отвлекайся
#30 by V_V_V
Честно говоря и сам ожидал, что там будет что-то криминальное. Но не поверишь, пишет: FC: различия не найдены (это дословно). Кстати, в винде этот же файлик мой winDBFview открывает на ура. Хотя все больше склоняюсь к той же мысли, что 1С-ке не нравится что-то в операционке сервера...
#31 by shuhard
сделай от противного, создай на сервере dbf, заполни его данными и прочитай обратно в 1С
#32 by V_V_V
Хорошо, попробую.
#33 by V_V_V
При создании файла на сервере та же ошибка: Формат файла отличен от .DBF. Даже внести данные не дает.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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