Имя: Пароль:
1C
1С v8
FTP и 1С81
0 lamme
 
09.11.11
11:05
а это нормально - что 1С файлик весом 140кб - записывает порядка 17 сек
а far - 3-4 сек

вот код
Функция FTP_Connect()
       // Вставить содержимое обработчика.
   ИмяFTPСервера = элементыформы.Ftp_сервер.Значение;
   ПортFTPСоединения = элементыформы.Ftp_порт.Значение;
   ПользовательFTPСоединения = элементыформы.Ftp_пользователь.Значение;
   ПарольFTPСоединения = элементыформы.Ftp_пароль.Значение;
   ПассивноеFTPСоединение = элементыформы.ПассивныйРежим.Значение;
   
   
   #Если Клиент Тогда
       Состояние("Выполняется подключение к FTP: " + ИмяFTPСервера);
   #КонецЕсли
   
   Попытка
       
       Соединение = Новый FTPСоединение(ИмяFTPСервера, ПортFTPСоединения, ПользовательFTPСоединения, ПарольFTPСоединения, ,ПассивноеFTPСоединение);                        
               
   Исключение
       
       Соединение = Неопределено;
       сообщить ("Ошибка при подключении к FTP : " + ИмяFTPСервера + " ! " + ОписаниеОшибки());
   конецпопытки;
   
   Возврат Соединение;
       
конецфункции

- и сама отправка

Процедура Кнопка2Нажатие(Элемент)
   Соединение  = FTP_Connect();
   #Если Клиент Тогда

   Состояние("");
   #КонецЕсли


   
   Запрос = Новый Запрос();
   Запрос.УстановитьПараметр("ВидДанных", перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);
   Запрос.УстановитьПараметр("ПометкаУдаления", Ложь);
   
   Запрос.Текст =
"ВЫБРАТЬ
|    ХранилищеДополнительнойИнформации.Ссылка
|ИЗ
|    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
|    ХранилищеДополнительнойИнформации.ВидДанных = &ВидДанных
|    И ХранилищеДополнительнойИнформации.ПометкаУдаления = &ПометкаУдаления";

ВыборкаФайлов = Запрос.Выполнить().выбрать();


Элементыформы.Индикатор1.МинимальноеЗначение=0;
Элементыформы.Индикатор1.МаксимальноеЗначение=ВыборкаФайлов.Количество();

cx=0;
Пока  ВыборкаФайлов.Следующий() цикл
   cx = cx+1;
   Элементыформы.Индикатор1.Значение =cx;
   
   НайденнаяСтрока = тз_отправленныхФото.Найти(сокрлп(ВыборкаФайлов.Ссылка.уникальныйидентификатор())+".jpg", "ИмяФайла");
   Если НайденнаяСтрока = Неопределено Тогда
   

       Если ВыборкаФайлов.Ссылка.ВидДанных=перечисления.ВидыДополнительнойИнформацииОбъектов.Файл Тогда
           ОткрываемыйФайл = Новый Файл(ВыборкаФайлов.Ссылка.ИмяФайла);
           Если ОткрываемыйФайл.Существует() Тогда
               //ДвоичныеДанныеКартинки = Новый ДвоичныеДанные(ВыборкаФайлов.Ссылка.ИмяФайла);        
               //Соединение.записать(ИмяФайла,ЭлементыФормы.Ftp_сервер.Значение+"\foto\"+ВыборкаФайлов.Ссылка.уникальныйидентификатор()+".jpg");
               //Соединение.записать(ИмяФайла,"\foto\"+ВыборкаФайлов.Ссылка.уникальныйидентификатор()+".jpg");
           Иначе
               //Сообщить("Указанный файл " + ВыборкаФайлов.Ссылка.ИмяФайла + " не существует");    
           КонецЕсли;
       Иначе
           //ДвоичныеДанныеКартинки = ВыборкаФайлов.Ссылка.Хранилище.Получить().ПолучитьДвоичныеДанные();
           
           ДвоичныеДанныеКартинки = ВыборкаФайлов.Ссылка.Хранилище.Получить();
           ИмяФайла =  КВФ+сокрлп(ВыборкаФайлов.Ссылка.уникальныйидентификатор())+".jpg";
           ДвоичныеДанныеКартинки.Записать(ИмяФайла);
           
           //НайдФ = Соединение.найтиФайлы("foto",Сокрлп(ВыборкаФайлов.Ссылка.уникальныйидентификатор())+".jpg");
           //Если НайдФ.Количество()=0 тогда
           сообщить (ТекущаяДата());
               Соединение.записать(ИмяФайла,"\foto\"+ВыборкаФайлов.Ссылка.уникальныйидентификатор()+".jpg");
           сообщить ("-");
1 Нуф-Нуф
 
09.11.11
11:06
сравнивается копирование в фаре и получение-сохрание-копирование в 1с?
2 lamme
 
09.11.11
11:06
т.е. общий смысл всего этого действа - выбрать все изображения из Справочника-ХранилищедопИнфо
и записать их все на FTP
3 lamme
 
09.11.11
11:07
(1)
ну - в данном случае да
хочется понять - почему оно так медленно
и как то оптимизировать все это безобразие
4 lamme
 
09.11.11
11:08
1С:Предприятие 8.1 (8.1.15.14)
5 Нуф-Нуф
 
09.11.11
11:09
(3) замер проиводительности - и выясняй. может
3-4 копирования в фаре = 3-4 копирования в 1с, только к последнему добавляется 10 секунд на получени файла
6 lamme
 
09.11.11
11:11
(5)
а зачем 1С получает файл?

я туда просто записываю
без проверок на существование

замер грит - что именно Соединение.записать(...) - работает дольше всего
7 hhhh
 
09.11.11
11:35
может активный и пассивный режим?
8 Prokop78
 
15.11.11
00:44
Дело в том, что 1С криво работает с FTP. После того как я отмониторил команды, посылаемые 1С-кой на FTP-сервер во время своей работы, я прозрел.
9 MikleV
 
15.11.11
01:05
(8)угу..
есть такое