Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 09:00
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Перенос данных на ftp  (Прочитано 2414 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kota89

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Ученик 1С
Ребят объясните лаймеру как перенести данные на ftp по концу месяца на сервер?
PS. Вот листинг! Зарание благодарен вам!

Функция ВыгрузитьФайлыИПапкиНаFTP_Рекурсивно(Соединение, НачальныйКаталогВыгрузкиFTP, НачальнаяПапкаВыгрузкиКомп, ТекущаяПапка=Неопределено)
Рез = Истина;
Если ТекущаяПапка = Неопределено Тогда ТекущаяПапка = НачальнаяПапкаВыгрузкиКомп КонецЕсли;
МассивФайлов = НайтиФайлы(ТекущаяПапка, "");
ТекКаталог = СтрЗаменить(НачальныйКаталогВыгрузкиFTP + СтрЗаменить(СтрЗаменить(ТекущаяПапка, НачальнаяПапкаВыгрузкиКомп, ""), "\", "/"), "//", "/");
Если Прав(ТекКаталог, 1) <> "/" Тогда
ТекКаталог = ТекКаталог + "/";
КонецЕсли;

Для Каждого НайденныйФайл Из МассивФайлов Цикл
Файл = Новый Файл(НайденныйФайл.ПолноеИмя);
Если Файл.ЭтоКаталог() Тогда
ЕстьТакаяПапка = Соединение.НайтиФайлы(НачальныйКаталогВыгрузкиFTP + СтрЗаменить(СтрЗаменить(НайденныйФайл.Путь, НачальнаяПапкаВыгрузкиКомп + "\", ""), "\", "/"), НайденныйФайл.Имя).Количество() > 0;

Если не ЕстьТакаяПапка Тогда
НомерПопытки = 1;
Успешно = Ложь;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение.УстановитьТекущийКаталог(ТекКаталог);
Успешно = Истина;
Исключение
Сообщить("Попытка №" + НомерПопытки + ", установка каталога " + ТекКаталог + " - " + ОписаниеОшибки());
НомерПопытки = НомерПопытки + 1;
КонецПопытки;
КонецЦикла;
Если Не Успешно Тогда
Возврат Ложь;
КонецЕсли;

НомерПопытки = 1;
Успешно = Ложь;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение.СоздатьКаталог(НайденныйФайл.Имя);
Успешно = Истина;
Исключение
Сообщить("Попытка №" + НомерПопытки + ", " + НайденныйФайл.Имя + " - " + ОписаниеОшибки());
НомерПопытки = НомерПопытки + 1;
КонецПопытки;
КонецЦикла;

Если Не Успешно Тогда
Возврат Ложь;
КонецЕсли;


КонецЕсли;

НомерПопытки = 1;
Успешно = Ложь;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение.УстановитьТекущийКаталог(НачальныйКаталогВыгрузкиFTP + СтрЗаменить(СтрЗаменить(НайденныйФайл.ПолноеИмя, НачальнаяПапкаВыгрузкиКомп + "\", ""), "\", "/") + "/");
Успешно = Истина;
Исключение
Сообщить("Попытка №" + НомерПопытки + ", установка каталога " + ТекКаталог + " - " + ОписаниеОшибки());
НомерПопытки = НомерПопытки + 1;
КонецПопытки;
КонецЦикла;
Если Не Успешно Тогда
Возврат Ложь;
КонецЕсли;

ВыгрузитьФайлыИПапкиНаFTP_Рекурсивно(Соединение, НачальныйКаталогВыгрузкиFTP, НачальнаяПапкаВыгрузкиКомп, НайденныйФайл.ПолноеИмя);

Если не Рез Тогда
Возврат Ложь;
КонецЕсли;

Иначе
НомерПопытки = 1;
Успешно = Ложь;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение.УстановитьТекущийКаталог(ТекКаталог);
Успешно = Истина;
Исключение
Сообщить("Попытка №" + НомерПопытки + ", установка каталога " + ТекКаталог + " - " + ОписаниеОшибки());
НомерПопытки = НомерПопытки + 1;
КонецПопытки;
КонецЦикла;
Если Не Успешно Тогда
Возврат Ложь;
КонецЕсли;



// почему-то иногда при большой выгрузке глюкает ((
// а со второй попытки выкладывается.... странно...
НомерПопытки = 1;
Успешно = Ложь;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение.Записать(НайденныйФайл.ПолноеИмя, НайденныйФайл.Имя);
Успешно = Истина;
Исключение
Сообщить("Попытка №" + НомерПопытки + ", файл " + НайденныйФайл.ПолноеИмя + " - " + ОписаниеОшибки());
НомерПопытки = НомерПопытки + 1;
КонецПопытки;
КонецЦикла;

Если Не Успешно Тогда
Возврат Ложь;
КонецЕсли;

#Если Клиент Тогда
Состояние("Выгрузка файла: " + НайденныйФайл.ПолноеИмя);
#КонецЕсли

КонецЕсли;
КонецЦикла;

Возврат Рез;

КонецФункции

Последний раз редактировалось: MuI_I_Ika; 17 Фев 2014, 13:39


Оффлайн Кошки рулят

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-01-07
  • Сайт: 
	КомФайл=СоздатьОбъект("Текст");
КомФайл.ДобавитьСтроку("open ");           // сервер
КомФайл.ДобавитьСтроку("");           // логин
КомФайл.ДобавитьСтроку("");              // пароль

Для Н=1 По СписокФайлов.РазмерСписка() Цикл
     КомФайл.ДобавитьСтроку("send "+СписокФайлов.ПолучитьЗначение(Н));     // отправка локального файла на ftp-сервер
КонецЦикла;
КомФайл.ДобавитьСтроку("quit");                                                            // отключение от ftp-сервера
КомФайл.Записать(КаталогВременныхФайлов()+"send.txt");                               // сохраним командный файл в Темпе пользователя

Попытка
Шелл=СоздатьОбъект("WScript.Shell");
Исключение 
Шелл="";
КонецПопытки;   

// теперь выполнение командного файла   
Если Шелл="" Тогда
// если WScript не работает, придется по 1С-овски показывать черные окна
ЗапуститьПриложение("ftp -s:"+КаталогВременныхФайлов()+"send.txt");
Иначе
// тоже самое, но без показа черных окон
Шелл.Run("ftp.exe -s:"+КаталогВременныхФайлов()+"send.txt" ,0,1);
КонецЕсли;

Если ФС.СуществуетФайл(КаталогВременныхФайлов()+"send.txt")=1 Тогда
   ФС.УдалитьФайл(КаталогВременныхФайлов()+"send.txt");
КонецЕсли;

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
	КомФайл=СоздатьОбъект("Текст");
КомФайл.ДобавитьСтроку("open ");           // сервер
КомФайл.ДобавитьСтроку("");           // логин
КомФайл.ДобавитьСтроку("");              // пароль

Для Н=1 По СписокФайлов.РазмерСписка() Цикл
     КомФайл.ДобавитьСтроку("send "+СписокФайлов.ПолучитьЗначение(Н));     // отправка локального файла на ftp-сервер
КонецЦикла;
КомФайл.ДобавитьСтроку("quit");                                                            // отключение от ftp-сервера
КомФайл.Записать(КаталогВременныхФайлов()+"send.txt");                               // сохраним командный файл в Темпе пользователя

Попытка
Шелл=СоздатьОбъект("WScript.Shell");
Исключение 
Шелл="";
КонецПопытки;   

// теперь выполнение командного файла   
Если Шелл="" Тогда
// если WScript не работает, придется по 1С-овски показывать черные окна
ЗапуститьПриложение("ftp -s:"+КаталогВременныхФайлов()+"send.txt");
Иначе
// тоже самое, но без показа черных окон
Шелл.Run("ftp.exe -s:"+КаталогВременныхФайлов()+"send.txt" ,0,1);
КонецЕсли;

Если ФС.СуществуетФайл(КаталогВременныхФайлов()+"send.txt")=1 Тогда
   ФС.УдалитьФайл(КаталогВременныхФайлов()+"send.txt");
КонецЕсли;

Что за извращение? В 1с есть свой ftp клиент.

Оффлайн Кошки рулят

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-01-07
  • Сайт: 

Что за извращение? В 1с есть свой ftp клиент.
Извращение - это клиент в 1С. К тому же, его там нет. А ftp.exe есть в любой винде, работает одинаково стабильно (например, в отличии от MSSOAP, не зависит от разрядности) не зависит ни от каких релизов и багов с Утиной улицы ...

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С

Что за извращение? В 1с есть свой ftp клиент.
Извращение - это клиент в 1С. К тому же, его там нет. А ftp.exe есть в любой винде, работает одинаково стабильно (например, в отличии от MSSOAP, не зависит от разрядности) не зависит ни от каких релизов и багов с Утиной улицы ...

Ну назови его объектом. Главное он есть и работает :bleh:


 

Поиск по бае данных,(полнотекстовый поиск)

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3891
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2127
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 7377
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Куда сохраняются данные в режиме работы клиент при выгрузке данных обработкой "Универсальный обмен данными в формате XML"

Автор xDDРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 6970
Последний ответ 13 Ноя 2014, 08:23
от cska-fanat-kz
Как перенести конфу базы данных на новую конфу?

Автор dim3740Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 11283
Последний ответ 23 Авг 2010, 15:41
от mohock

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
AIFrame
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 180
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal