Имя: Пароль:
1C
1С v8
формат DBF на управляемых формах
,
0 ms333602412
 
01.09.16
12:07
Всем доброго дня!
Пеервёл БП с 2.0 на 3.0.
в 2.0 была обработка которая загружает документы формата dbf. Соответственно, сделал эту обработку на УФ, и всё было замечательно пока тестировал на файловой базе. и вот сейчас перевели базу на серверную и печалько. сейчас код выглядит так

&НаКлиенте
Процедура Загрузить(Команда)
    ЧитатьФайл(Объект.ПутьКФайлу)    
КонецПроцедуры

Процедура ЧитатьФайл(Файл) Экспорт
     БД= Новый XBase;
     БД.ОткрытьФайл(Объект.ПутьКФайлу,,Истина);
     БД.Кодировка=КодировкаXBase.OEM;
     Объект.Доки.Очистить();
     НашлиКонтрагента = 0;
     БД.Первая();
     Пока Не БД.ВКонце() Цикл
          бла бла бла.....
         КонецЦикла;
КонецПроцедуры
Подскажите пож-та каким образом теперь могу передать этот файл dbf на сервер что б его там так же разобрать и обработать?
1 vicof
 
01.09.16
12:09
ПоместитьВоВременноеХранилище
2 ms333602412
 
01.09.16
12:10
(1) с этим я согласен, задача на первый взгляд простая, но помещается во временное хранилище у меня не файл а путь к файлу, и на сервере так же самая проблема. а сам файл на клиенте поместить нельзя
3 ms333602412
 
01.09.16
12:11
если есть работающий код, скопируйте сюда его пож-та
4 Горогуля
 
01.09.16
12:11
ровно та же проблема была. поправил принцип действия, переписал всю логику чтения. потратил день, теперь жадничаю и ленюсь искать ту обработку
5 Остап Сулейманович
 
01.09.16
12:11
(2) "помещается во временное хранилище у меня не файл а путь к файлу".
Нужно поменять подход к решению задачи. И все-таки поместить файл, а не путь.
6 Aleksandr N
 
01.09.16
12:12
(2) Используйте двоичные данные.
7 vicof
 
01.09.16
12:12
Не, запускай обработку только на файловой базе :)
8 Горогуля
 
01.09.16
12:13
&НаКлиенте
Процедура ПрочитатьФайлПроНоменклатуру(Команда)
    Объект.Номенклатура.Очистить();
    НачатьПомещениеФайла(Новый ОписаниеОповещения("ПрочитатьФайлПроНоменклатуруЗавершение", ЭтаФорма), АдресФайла, Объект.ИмяФайла, Ложь);
    ПрочитатьФайлПроНоменклатуруНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ПрочитатьФайлПроНоменклатуруЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
    АдресФайла=Адрес;
КонецПроцедуры
9 ms333602412
 
01.09.16
12:13
(6) как говориться толи лыжи не едут то ли я .., но с двоичными данными тоже не получилось, пытался найти хорошую статью как это сделать, тоже не получилось
10 Aleksandr N
 
01.09.16
12:16
(9) в (8) верно написано.
11 ms333602412
 
01.09.16
12:18
всем спасибо! боду попробовать!
12 Dotoshin
 
01.09.16
12:23
(0) А что мешает сразу открывать файл на сервере?
13 ms333602412
 
01.09.16
12:24
(12) а каким образом он туда попадёт если его клиент не отправит??
14 Горогуля
 
01.09.16
12:24
(12) его там нет
15 Dotoshin
 
01.09.16
12:25
(13) (14) А что мешает его сразу туда положить?
16 ms333602412
 
01.09.16
12:25
(15) напиши пож-та волшебный код, спомощью он на сервере окажется?)))
17 Горогуля
 
01.09.16
12:26
(15) автор заперт в австралийской тюрьме и надиктовывает файл постепенно на свиданиях. ну не может он до сервера добраться
18 Dotoshin
 
01.09.16
12:26
+ (15) Он же откуда-то берется этот файл. Вот пусть этот источник из которого он берется сразу кладет его на сервер.
19 ms333602412
 
01.09.16
12:26
(15) неуж то файл параметром в функцию?
20 ms333602412
 
01.09.16
12:27
(17) гувантанама
21 Dotoshin
 
01.09.16
12:27
(16) Напиши сначала код, который кладет его на клиента.
22 ms333602412
 
01.09.16
12:29
(21) Строковое значение на форме, путь к файлу на диске
23 Dotoshin
 
01.09.16
12:30
(22) и?
24 Dotoshin
 
01.09.16
12:30
На диске он откуда взялся?
25 ms333602412
 
01.09.16
12:31
(24) тётка в возрасте в больших очках его из др программы выгрузила))) это меняет логику передачи до сервера?))))
26 Dotoshin
 
01.09.16
12:34
(25) Пусть тетка в больших очках выгрузит его сразу на сервер. Создай на сервере папку для этих дбф-ов и расшарь ее, а тетку проинструктируй куда фалы надо складывать.
27 Горогуля
 
01.09.16
12:34
(25) в корне. файл придётся передавать, тётка не справится сама
28 ms333602412
 
01.09.16
12:36
(26) усадил тётку на сервер, дал ей папку в руки, и говорю ей клади сюда файлы))) смотрит на меня со слезами и говорит, сервер ведь не понимает что на форме у клиента твориться)))) может не нужно тётке рядом с сервером сидеть?)))
29 Неверный Параметр И
 
01.09.16
12:38
(20) Guantanamera, guajira guantanamera...
30 Неверный Параметр И
 
01.09.16
12:40
Может рано вам с теткой на БП 3, а?
Даже в типовой подсмотреть не можете.
31 Dotoshin
 
01.09.16
12:40
(28)Зачем ты над теткой издеваешься? Я бы тоже заплакал, если б меня заставили сидеть на сервере с папкой в руках. Посади тетку на стул и подключи на ее компе расшаренную папку как сетевой диск и пусть она вместо диска С выбирает этот сетевой диск, когда дбф сохраняет.
32 Горогуля
 
01.09.16
12:41
(31) сетевой диск, ага. зайди на \\192.168.0.21\public - там открыто
33 ms333602412
 
01.09.16
12:42
да проблема не в физическом расположении файла, а в контексте формы, на клиенте и на сервере
34 Dotoshin
 
01.09.16
12:42
Вот тебе еще вариант.
КопироватьФайл("C:\Temp\Order.htm", "C:\My Documents\Order.htm");

Опять же расшарь папку и воткни этот код в свою обработку и будет тебе щасье
35 ms333602412
 
01.09.16
12:44
(34) да не будет в этом счастье, проблема не в этом, а то, что в контексте клиента и сервера передать файл только через временное хранилице можно. я шутил насчёт тётки и папок, проблема в контексте управляемой формы, а я смотрю вы всерьёзз озаботились о физическом сервере и папке
36 ms333602412
 
01.09.16
12:45
нужен был просто алгоритм передачи между контекстами управляемой формы
37 Dotoshin
 
01.09.16
12:45
(32) там закрыто
38 Горогуля
 
01.09.16
12:45
(35) скоро до него дойдёт, не отвлекайся
39 ms333602412
 
01.09.16
12:45
(30) типовой ДБФ не использует уже, только если др варианты файлов посмотреть
40 Неверный Параметр И
 
01.09.16
12:47
(35) Тебе, между прочим, подсказали обход, который ты смог осмыслить, проблемы которую ты осмыслить не можешь.
41 ms333602412
 
01.09.16
12:48
(32) это Ты сетевой диск закрыл и теперьв него зайти не получается?))ай ай ай
42 ms333602412
 
01.09.16
12:49
(40) тааак, что я не осмыслил, что я упустил из виду?
43 Горогуля
 
01.09.16
12:52
(42) люди предлагают считать указанный путь серверным. со всеми вытекающими
44 impulse9
 
01.09.16
12:52
(42) сделай сетевой путь к серверной папке у пользователя, и скажи ей класть dbf туда. Это если с временнымхранилищем не получается
45 ms333602412
 
01.09.16
12:55
Сторонники "указания нужной папки", объясните пож-та связь контекста формы и расположения папок на ПК или сервере?
46 Горогуля
 
01.09.16
12:56
(45) я отношусь к сторонникам? связи нет никакой. обработка идёт на сервере с серверными путями
47 Неверный Параметр И
 
01.09.16
12:58
(45) Я, пожалуй, в (40) был не прав по поводу осознания, извиняюсь.
48 Dotoshin
 
01.09.16
13:00
(45) Так тебе шашечки или ехать?
49 ms333602412
 
01.09.16
13:00
(46) так хоть откуда запускай обработку, всё равно ведь выбор файла будет на клиенте, и по контексту его всё равно нужно будет передавать на север
50 Горогуля
 
01.09.16
13:00
+(46) твоя задача наколдовать там файл. передачей ДД ли, тёткой ли - неважно
51 Dotoshin
 
01.09.16
13:01
(49) Где у тебя хоть слово про выбор файла в (0) ?
52 ms333602412
 
01.09.16
13:02
(50) файл формирует др программа и выгружает его на диск.
53 Dotoshin
 
01.09.16
13:02
(52) А сразу на сервер она его не может выгружать?
54 ms333602412
 
01.09.16
13:03
(51) смотри (22) , а что б эта строка заполнилась, предварительно выскакивает окно выбора файла.(я думал это и так понятно)
55 Garykom
 
гуру
01.09.16
13:03
Если файл маленький то из двоичных данных его в base64 строку и передавать параметром куда угодно...
56 Неверный Параметр И
 
01.09.16
13:04
(52) И ты не можешь скопировать файл из того места, куда его выгрузили, в расшаренный католог на сервере?
57 ms333602412
 
01.09.16
13:04
(53) нет, не может, упрограммы формирующий файл не прямой связи с базой приёмника файла, поэтому пеердают его по почте
58 ms333602412
 
01.09.16
13:05
(55) файл действительно маленький, скорей всего так и поступлю. Спасибо
59 Горогуля
 
01.09.16
13:06
и так и не передашь ДД с клиента. нечем будет перед девушками хвастать
60 Dotoshin
 
01.09.16
13:06
(57) Ну и что? Из почты его нельзя сохранить на сервере, в расшаренной папке?
61 Fish
 
01.09.16
13:06
(57) Ну тогда ещё проще. Подключаешься из 1С к почтовому ящику, и получаешь файл прямо из письма.
62 Неверный Параметр И
 
01.09.16
13:08
(57) А говорил, что тетками!
63 Горогуля
 
01.09.16
13:10
(62) передают по почте. на почте россии как раз работают тётки в больших очках
64 ptiz
 
01.09.16
13:21
(8) Вопрос новичка:
а как процедура ПрочитатьФайлПроНоменклатуруНаСервере узнает, что файл наконец помещен в хранилище? Или её вкрячивать в обработку ожидания?  И где она возьмет адрес этого файла в хранилище - из реквизита формы?
65 Garykom
 
гуру
01.09.16
13:34
(64) узнает когда ее вызовут в обработчике окончания помещения
66 ptiz
 
01.09.16
18:58
(65) А зачем она стоит в коде сразу после НачатьПомещениеФайла()? Ведь тут она вызовется сразу - без ожидания.
И что делать, если мы на клиенте хотим что-то отработать после загрузки файла? Как клиент узнает, что файл загружен?
67 Garykom
 
гуру
01.09.16
19:13
(66) это на совести автора, может он там регламентное запускает на сервере которое файлы ловит ))

мануал хороший по этому http://catalog.mista.ru/public/195003/
68 Горогуля
 
01.09.16
20:06
(66) (67) это код так отрефакторился, ничо не знаю ;)