Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет - так хочет, делаем:
Первым делом настроим автоматическую архивацию данных. Конечно, можно использовать планировщик Windows и VBS скрипт, но это дедовский способ, т.к. уже полно универсальных, платных и бесплатных инструментов для архивации данных.
Из платных могу посоветовать handy backup, версия expert умеет работать с 1С, но цена ~ 5 300 немного останавливает - поэтому мы используем бесплатный Cobian Backup - респект разработчику!
Установка Cobian Backup Скачиваем с оф. сайта
и запускаем установщик:
Устанавливаем службу, используя учетку от 1С
Далее идет установка, ОК по завершении.
Настройка автоархивирования 1С У нас в арсенале 3 базы 1С:
1 - файловая 2 - серверных
Для создания архивов 1С мы будем использовать типовой механиз, для этого создана папка Backup1C и в ней bat файлы выполняющие архивацию баз:
Для файловых баз код bat файла следующий (zup.bat):
Код Batch File (DOS, CMD, BAT) echo ************************************************************
echo Setup param:
echo ************************************************************
set __1c_path=C:\Program Files (x86)\1 cv82\common\1 cestart.exe
set __base_name=zup_msk
set __base_path=E:\Accounting\Staff\zup_msk
set __upload_path=D:\Backup1C
set __username=Backup
set __password=123420
echo ******************
echo Create folder:
echo ******************
md "%__upload_path% \%__base_name% "
echo ************************************************************
echo Create backup:
echo ************************************************************
"%__1c_path% " config /Out"%__upload_path% \%__base_name% \%__base_name% .log" /F"%__base_path% " /N"%__username% " /P"%__password% " /DumpIB"%__upload_path% \%__base_name% \%__base_name% -%date% .dt"
Для серверных (crm.bat):
Код Batch File (DOS, CMD, BAT) echo ************************************************************
echo Setup param:
echo ************************************************************
set __1c_path=C:\Program Files (x86)\1 cv82\common\1 cestart.exe
set __base_name=crm
set __base_path=server1C\db_crm
set __upload_path=D:\Backup1C
set __username=Backup
set __password=123420
echo ******************
echo Create folder:
echo ******************
md "%__upload_path% \%__base_name% "
echo ************************************************************
echo Create backup:
echo ************************************************************
"%__1c_path% " config /Out"%__upload_path% \%__base_name% \%__base_name% .log" /S"%__base_path% " /N"%__username% " /P"%__password% " /DumpIB"%__upload_path% \%__base_name% \%__base_name% -%date% .dt"
Отроем Cobian Backup, для создания заданий
Настроим архивацию файловой базы:
Добавляем создание, снимаем галки внизу, т.к. у нас не будет прямого копирования:
на закладке Файлы устанавливаем копирование каталога на FTP:
Расписание:
далее можно задать цикличность - приоритет, сжатие архивов, шифрование - но это я буду использовать при архивировании документов, а для 1С мы это не используем.
Доп. действия:
Выполнить и ждать закрытия bat файл и добавим паузу в 180 секунд (этого времени хватает чтобы выполнить выгрузку базы ЗУП)
На закладке Дополнительно, я поставил только одну галку - Синхронизация
Итог настройки:
Запускаем задание для проверки работоспособности, и через ~ 3 минуты:
Архив успешно создан, FTP сервер я пока не настроил, поэтому он вызвал ошибку - Но главное мы получили дамп базы 1С для дальнейшего копирования на сервера ftp, при верных настройках ftp, все отлично копируется - проверено уже не раз
Настраиваем архивацию серверной базы
Тут все тоже как и в файловой, только добавим перезапуск агента сервера 1С(для перезапуска процессов 1С и отключения пользователей)
и базы на SQL большие - поэтому после выполнения bat файла добавим паузу 3000 секунд
Результат тестового выполнения:
Архив сделался за 8 минут, т.е. паузы 600 секунд вполне хватит.
Выгрузка на Dropbox
Для выгрузки на DropBox использовал резервное копирование от Антивируса Касперского. Он быстро подключился к хранилищу, правда пришлось на нем оплатить место до 1 ТБ)
В итоге:
все работает как часики: архивы создаются 2 раза в неделю и заливаются на облачные сервера
Категория:
Администрирование Выгрузка картинок из базы 1С в XML В нынешнее время для электронного каталога или интернет-магазина необходимо выгружать не только информацию о цене и характеристиках товара, но и сопутствующие изображения. Хранящиеся в базе или связанные с номенклатурой изображения порой приходилось выгружать отдельно, подвергая предварительной обработке имена файлов, подгоняя их под правила связи товара с изображениями в приемнике. Тем не менее, в 1С существует возможность поместить двоичные данные изображений в виде строки в XML, либо другой файл выгрузки, чтобы уже на месте разобрать информацию о товаре.
Рассмотрим на примере следующей конфигурации.
Перечень объектов:
- справочники "Номенклатура", подчиненный ему справочник "Файлы";
- документ "Установка цен";
- обработка "Выгрузка прайса";
- перечисления "Типы файлов", "Типы номенклатуры";
- регистр "Цены номенклатуры".
Для начала, добавим форму элемента для справочника "Файлы"
Код 1C v 8.2 УП &НаСервере
Процедура ОбновитьКартинкуФорма(ХранилищеКартинки)
Если Объект. ТипФайла = Перечисления. ТипыФайлов. Картинка Тогда
Картинка = ПоместитьВоВременноеХранилище( ХранилищеКартинки. Получить( ) , УникальныйИдентификатор) ;
КонецЕсли ;
КонецПроцедуры
&НаСервере
Процедура ПоместитьНаСервер(Данные = Неопределено)
ХранилищеКартинки = ? ( Данные = Неопределено , Неопределено , Новый ХранилищеЗначения( Данные) ) ;
ОбновитьКартинкуФорма( ХранилищеКартинки) ;
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьФайл(Команда)
Режим = РежимДиалогаВыбораФайла. Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( Режим) ;
ДиалогОткрытияФайла. ПолноеИмяФайла = "" ;
ДиалогОткрытияФайла. Фильтр = "Все *.*|*.*|.jpg|*.jpg|.png|*.png" ;
ДиалогОткрытияФайла. МножественныйВыбор = Ложь ;
ДиалогОткрытияФайла. Заголовок = "Выберите файл" ;
Если ДиалогОткрытияФайла. Выбрать( ) Тогда
мФайл = ДиалогОткрытияФайла. ПолноеИмяФайла;
ПоместитьНаСервер( Новый ДвоичныеДанные( мФайл) ) ;
Иначе
Текст = "Файл не выбран!" ;
Предупреждение( Текст) ;
КонецЕсли ;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ОбновитьКартинкуФорма( ТекущийОбъект. ХранилищеФайла) ;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ТекущийОбъект. ХранилищеФайла = ? ( ПустаяСтрока( Картинка) , Неопределено , Новый ХранилищеЗначения( ПолучитьИзВременногоХранилища( Картинка) ) ) ;
КонецПроцедуры
Настроим форму документа "Установка цен".
Код 1C v 8.2 УП &НаСервере
Процедура ЗаполнитьТЧ()
Результат = ВыгрузкаПрайса. ПолучитьТаблицуЦен( Объект. Дата) ;
Объект. Товары. Загрузить( Результат) ;
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьТЧ( ) ;
КонецПроцедуры
Добавляем обработку выгрузки в XML.
Код 1C v 8.2 УП &НаКлиенте
Процедура Выгрузить(Команда)
Если ПустаяСтрока( ФайлВыгрузки) Тогда
Возврат ;
КонецЕсли ;
мСтрока = ВыгрузкаПрайса. ПолучитьДанныеXML( ) ;
мФайл = Новый ТекстовыйДокумент;
мФайл. УстановитьТекст( мСтрока) ;
мФайл. Записать( ФайлВыгрузки) ;
КонецПроцедуры
&НаКлиенте
Процедура ФайлВыгрузкиОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь ;
Режим = РежимДиалогаВыбораФайла. Сохранение;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( Режим) ;
ДиалогОткрытияФайла. ПолноеИмяФайла = ФайлВыгрузки;
Фильтр = "(*.xml)|*.xml" ;
ДиалогОткрытияФайла. Фильтр = Фильтр;
ДиалогОткрытияФайла. Заголовок = "Выберите файл" ;
Если ДиалогОткрытияФайла. Выбрать( ) Тогда
ФайлВыгрузки = ДиалогОткрытияФайла. ПолноеИмяФайла;
Иначе
Текст = "ru = "" Файл(ы) не выбран!"" ; en = "" File(s) not selected!"" " ;
Предупреждение( НСтр( Текст) ) ;
КонецЕсли ;
КонецПроцедуры
При заполнении табличной части "Товары" документа "Установка цен" и в обработке выгрузки мы обращаемся к общему модулю "Выгрузка прайса":
Код 1C v 8.2 УП Функция ПолучитьТаблицуЦен(ДатаЗапроса = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| ЕСТЬNULL(Цены.Цена, 0) КАК Цена,
| ПРЕДСТАВЛЕНИЕ(Номенклатура.Ссылка) КАК НоменклатураСтрока
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Товар,
| ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
| ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних) КАК Цены
| ПО Номенклатура.Ссылка = Цены.Товар
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура
|АВТОУПОРЯДОЧИВАНИЕ" ;
Запрос. УстановитьПараметр( "Дата" , ? ( ЗначениеЗаполнено( ДатаЗапроса) , ДатаЗапроса, ТекущаяДата( ) ) ) ;
Возврат Запрос. Выполнить( ) . Выгрузить( ) ;
КонецФункции
Функция ПолучитьИзображения(НоменклатураСсылка)
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| Файлы.Ссылка
|ИЗ
| Справочник.Файлы КАК Файлы
|ГДЕ
| Файлы.Владелец = &Владелец
| И Файлы.ТипФайла = ЗНАЧЕНИЕ(Перечисление.ТипыФайлов.Картинка)
| И НЕ Файлы.ПометкаУдаления" ;
Запрос. УстановитьПараметр( "Владелец" , НоменклатураСсылка) ;
Возврат Запрос. Выполнить( ) . Выгрузить( ) ;
КонецФункции
Функция ПолучитьДанныеXML() Экспорт
ТЧ_Цены = ПолучитьТаблицуЦен( ) ;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML. УстановитьСтроку( ) ;
ЗаписьXML. ЗаписатьОбъявлениеXML( ) ;
ЗаписьXML. ЗаписатьНачалоЭлемента( "price_list" ) ;
Для Каждого СтрокаЦен Из ТЧ_Цены Цикл
ЗаписьXML. ЗаписатьНачалоЭлемента( "tovar" ) ;
ЗаписьXML. ЗаписатьАтрибут( "name" , СтрокаЦен. НоменклатураСтрока) ;
ЗаписьXML. ЗаписатьАтрибут( "price" , Формат( СтрокаЦен. Цена, "ЧРД=.; ЧГ=0" ) ) ;
ТЧ = ПолучитьИзображения( СтрокаЦен. Номенклатура) ;
Если НЕ ТЧ. Количество( ) = 0 Тогда
ЗаписьXML. ЗаписатьНачалоЭлемента( "picture_list" ) ;
Для Каждого СтрТЧ Из ТЧ Цикл
мДанные = СтрТЧ. Ссылка. ХранилищеФайла. Получить( ) ;
Если НЕ ЗначениеЗаполнено( мДанные) Тогда
Продолжить;
КонецЕсли ;
ЗаписьXML. ЗаписатьНачалоЭлемента( "picture" ) ;
ЗаписьXML. ЗаписатьАтрибут( "binary" , Base64Строка( мДанные) ) ;
ЗаписьXML. ЗаписатьКонецЭлемента( ) ;
КонецЦикла ;
ЗаписьXML. ЗаписатьКонецЭлемента( ) ;
КонецЕсли ;
ЗаписьXML. ЗаписатьКонецЭлемента( ) ;
КонецЦикла ;
ЗаписьXML. ЗаписатьКонецЭлемента( ) ;
СтрокаXML = ЗаписьXML. Закрыть( ) ;
Возврат СтрокаXML;
КонецФункции
Кодирование изображений выполняется с помощью функции Base64Строка , в качестве аргумента передаются двоичные данные из справочника "Файлы". Предполагается, что приемник XML может выполнить обратное преобразование. В 1С это можно сделать с помощью функции Base64Значение.
результат выгрузки прайса в XML:
Код Batch File (DOS, CMD, BAT) <?xml version="1 .0 "?>
<price_list>
<tovar name="Товар 1 " price="5 ">
<picture_list>
<picture binary="iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAB3RJTUUH3QINBSMt
F2PHEwAAABd0RVh0U29mdHdhcmUAR0xEUE5HIHZlciAzLjRxhaThAAAACHRwTkdH
TEQzAAAAAEqAKR8AAAAEZ0FNQQAAsY8L/GEFAAAABmJLR0QA/wD/AP+gvaeTAAAA
pklEQVR4nGP4jw3kajICEVYpBmRFcMafGkMgQhZB1wBRBDEYohquBy6F0AAXejM5
DoiQbUAWgehB2ACRg0jDEbIgRCUTAyponLY4XF8cjoBcNAUMaB44EiEBRJhsuJOY
8 rSY+oMNgDohJBCsvPiyZd0xIAIyICJwBUDF6E4iDEh1EnoowdXBVaOFElnBCvE3
cggCufAwgIQ1xMdQP5CcNMhJfMQnbwDR3npihwr9YwAAAABJRU5ErkJggg=="/>
</picture_list>
</tovar>
<tovar name="Товар 2 " price="10 "/>
<tovar name="Товар 3 " price="15 "/>
<tovar name="Товар 4 " price="18 ">
<picture_list>
<picture binary="iVBORw0KGgoAAAANSUhEUgAAAGUAAAAaCAYAAACuCJLbAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlzAAADtgAAA7YBp8dLNgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3Nj
YXBlLm9yZ5vuPBoAABQvSURBVGiB7Xp5cJ3HceevZ77rXXjv4QZIAjzFUxIpSqQo
0 ZIiS5apK1EiKYpke2OvdawrLttyNrXeql2K3qxd8WZXKW9i+YiPjeNLdJxDt2Qd
DGVCMi+JJ0iQBEFcxPXu975zpvcPABQIgtRWHFftbrmrpoBvpmemp3/TPT09j5gZ
lyai7dvvEzhyRMaGHCObduT4aFUi+z7dfkNAHmhsTqh80VNuuxdh1Sp13/3 bNd5H
6 XSx9m3bSKwubbIblWtr2Pa4GyWgrRRLEYcQZkha/FoW8v8RmSw0tA4Ng6tCB2XD
krUU+T4yGe+mrW/4 wNzKnxOUvY9ebU4kzFTgO9mC9luIZDJSlAoVMoo5BcEmmOjX
vqr/x0kS60hT5AguWVIUmLlCUlViljmaEEGuoRqW139jTzi73/mgENG3HlkfW2Q5
mVxI7R7k4mqkFmjFVhRpN1RBVYdUYRGFWuk5URaE9/OHlyQCnesviH6lsS5Fmvnc
pmLwr7TBNGPO/oYUxNowTZOThrQShkGOIApituhPSt2rlR7O6yD/8 Df3ujNd2nmg
vPKxtYkoHW/I+VgakLGk5kdZ3/cLbqTznq8qtSCoeF5Qq0UcqrD2f6wwIc4Haqay
5 SUULwRY/oogz0WKQVrPrcjJ9vdAmgkeAFyq32ySZpxsASsRt2Mpy0o6tkjaplVv
2 WY6LmXeMPWpxoTumRitTXzkb96pTvc7B8r2bWusbC3TOFI2V9TccE01Cslzw+GJ
anloPOeWJoqeNxaFqhaR9n2fCWBvlhB0EQXOdnSSSAMATYG1eH7aPDVQDIFfr3Vc
jGYrHgB4SvmK+byz82JHNM+yFgcAA2TbNsUNFg3SNJoyjt2USWaymWR70jLb4rbB
MYcPJql2dF4gxqZdmQEA2EYiXfxQckxV5gWRWlJRISq1sG94LN9/bKxSGixUwrIP
7 Xkeu5hUJLlzAnC+RQBqDoZzPI8+vCG97+1 B9/ab18TTWds6eHyw/PVv7i1NtxPA
BGgAuObyFnP3wZEL/O8Pv3ffwse/8 OKZs8NlPbe65hRSMObe8XPV0xx1GpAXss0a
KwYCPMQAchwnTJWqflvR85aHuragIRYwxxaSNJdaMl6aSCgP26iArawNAHh2aL0T
xrz6IJALa75Oh27UNzyW739nOJ/vm/CjvOdp9z0QZoMx83s2CAwAf/lnt7f/1 dd2
j95597L45g0dTZWyChYvysxb2JG+0 iBKgCCY4W/YtOCd5Ss6DvWfLXlf/MqrJQD4
93 +0 IVlnJ+RYoRj85y/etmTBvPRy0zJTzNB//pdv/NP8jobs337ngfSGLd/aN5eS
L6K42QDOBdD7KX22HmbyT/JO6cwFCK6HWAy65EN7UaiAFnTWC0uastMwzEVOTOW6
ipvcTYBL/MQT4uXii5l81ViZ19hYqXmlkdFC976Bwkj3SMUv5D1Vu1CI6f/1 RerP
fX/zK3e33XbLkttjlkxCEPcNFnaM52rFtpa6lrbmxAZJwgamXRxzuRodE0I4/QP5
d1pakwuSjtXsxIz5AMBEipglALDmIIr4NBmoM4Ronhjzdi7Z9Bc730fRACAu0T67
bua3mPV9KV66yDwUAyibdcSKlqS9rjPdOr++fqUds1NZS3WlMvLoHc4tRXr6idWW
Xcs0lvN0JWfmb0q2LyyETvpMzWeMvbvrI5hSdGbpFdtj8xaPAIBpGFpIiZG3f35D
dWzwTgLISKT2z7txy9OWlQqmJbAdW2VjUWJRx8RdptRxAGCmaGzEndj7wu5bSxOl
tljcDlddv+zIsnULhwVNroMI2PfqoSUjAxNNdsz0b77/uv006Vn4wJvHOgZODs9r
bs1OXH3bFT0A8MoP3rzGrYWRHUscW3LrJ78KADzWtfEX//D6raHrLgbJYqK+8 c0r
7 /3 k3wFA9wtPby6OD2+QJPx1f/CprwFAEAR08p+f3Vg+O3idbTtDmaWrukYO77v3
PLUzYEpZWnLXR79z4vkfPhgGfkuyfeGrjWuuPVLoO9ZeOLb/9 wBGrGn+m5FbbgrK
xRVWXeP++rWbd2k9eW6Nv/3 i76rAb3fSDe+2 LF9xkAtn20eP7Y03OWJ/hqsHGhnj
RmzIMXyJZCRE2kkmWBuWKwwnqo0OtEaVwm9Py1MbO3M4sWDpqGVZGkEgTz73v/6 a
Vdg5JSuCgrfeHxp63V68csixbQUA7fXV1sb66lVSIq6ZiIgAgrnjx6/9 YWGk2Eog
lCfKGP3xeKdXCV6/8 gMrT0+Nx3tePrhZay0BYOkVC/s7VswbJyG4e/eJNRPD+fax
vvHSNbevO/6 zJ5//8 NmB8fkA8IF7Noy1NhRadv7gRw/3 HT59+8 zzoTjcf+3 Or/2 X
j131wMMPWYl4xT+Ruw8A9v3o67zho3/0 lGEYnO858gSzrkMiuaPU2xMGpdzvzbIG
BKBIkPiumxv9GLNO1IbY4FUbuif27fgrrVUGRH7LNTd/f3DHM59hFXbqwFsshOgS
Ahj+xbMPBLnRfwsAtdBdJFav3U+JTCiEHQTaqwtNjgeWbYhs5MiAZFIppEtjQ2f7
Tx7p6+7 uHh4anTjh+cEOv1bl0PMQeX5kWlYIAH2v/mTrNCAkjAlhWCcBUkQCjm2r
sZ4DC4TQQpgSphG1EYEkgyiKDHN0ou32Dy4/3 dBcN7Zm07K9hikDAOj+Zc8qSDCg
sffnB5ZprSVo0vj3Pb/veiGFnhnFMVjs+buua6cBWXPt8t1XbF7Znzv+1 sdPHz59
BwMkhFDJbPK0YVrDIIB11Hzw77/7 vQ/+/m+NJLPJPgBw82N/AL9odr/y003Mug4A
L7/5 nq8QBGhSAGXFkzuFYfVOzy3kewGZIELvc3/z37RWGQC6cc3GTycaWovTlqUj
xSGzO7D7tSWlgVOfcMtF1Io5FEfOBvv27Rno2dd1wnOLxYCNdJnr6uoCWxrjdVUp
AicWkZEoj44O9Z7Njezsy+V6RouDrosHP7u+uR8A9faeHPz817cfTSQS9OjquuuE
lIBh/nN1zYc/nonFpF3qn18oV0q93/rSlzkKbj27++UzVz7xwNOCoIzTQ0tF4Kco
VA4ydWP1McO6+bpFZ8dGSg1i6oBsTpiW0Te8SFRq2Z6u4ytAgG0Zyg8iOTZSqpen
+i7Tixcen3anKtTW3l09qwnAwo768Vu2rOnlILR/+cL+jQSAhFAPfeF3flRXn/II
wv/Hp166uf/E0MrA9ebR8L5P/u6DG45+/2 uvdTCzsXf7d/7 ULVfaAcBwnAMNi5bl
B3bv5Cmle1c99JkvvPv3336wenbgU1prlAvVilcts4pCVEuFtRxGHUpFiIzY5/a8
e/qliefe1FfqvgBKwbCkWmu+dtn+rlf+AjPC5pB1uPv4sxNXL23mJU2pRq1VC4fa
Ga73pQEArIkRzQrIL0K3tFjLtFJCK4XBXO1L2596ajqEzQNQn13f3EQAvIqdkuqM
oomyMs6OmNDMDNSMEuIA1D/86 MCywZFqioggpOB7r08NGoNHUuVqQKeOdjtEhHtu
uazvH1/vXcwM2vXSrvZrH6TD7vCAUxopAUQWEcEyhbrngaV96Dk0T0sZDfWcyLhu
iIbmRCnbe2gBBhDqtoYzH7yjbdeTf/L2Sgbj4HOvtW6+ftHJdJ135MSh4dVj/aeu
B0/e2SrKfuTpz/+H7o3ct9lghmZWN9265eBjaxtHYpMWwp947LHTn1hm81RY0wEA
6 Zbkmcf+6 y3xznVP1gDQ5eubWIBAkuTrT+34 MhgOAy4DowLoBIA7tqzIjvfkwMwg
EEsxiZloLCUUseWZQlRYIm7b0okbLOKzwFBT0UTvhDs4XbekM/1 bT3/795 d99ctb
Wv/nl+9 sfvVnH1/7 +W888OL6D634+Wc/s3mH3T2w1syVWwE2MOmJSE3tlnWrGseW
d2ZypoEoCkP65k/2 r4QK+dlXe9rDwEcYeMjlC4ZQfhi4NezqOjHP7DmxNKoVTbdS
Qlgr61qpgMJETn7vJ291ciVvUnE8JlRNu5USckPjCVnNx2QhX2ee7Ft88IV9lwde
DaHnorM9lo9KRfOhDy16l7UKVBgKFYWkVdT9jT29h99++23 FES9gZghA97/7 +Eeu
uXHp9QBAgsTxrkc/Kw1pAoA0ZMAACiOVjr0vHdm456VHbgAAgcmoJfKiNX4taAHA
nmn8Gwb7U7rA7XdfsfHu+9 etS9THswbJsjIi16h4Soi0jshUZSJVNA0rmYxbySbD
lLbjzA4BAUAeKHpVZs4DQJCv/Ymz78SPr1He992dh3+xcGjkK4VfHL8p1312Xd+B
wVWi6jaKfHUe9Pkx/O5DI/UnzxTr7t+y7HRTNuYBQBAoCQDdpyfqgcmb8yu7znTU
fGUygHzJi5VHSw3Tg8TiZrhmWcMYABw9MdH4866+VjBj5eL6PADUvND66g/eWdnT
X0y+uvNUx4svHbuaAUhDqPaYqFHFYxovWxtWNh6YHvOGtS3P9f/3 m+46 +6 UPfKQh
Ke8EA/G6mO/kSwvNiJPTfILYmb5QLljefNRJ2kUA2PnTd+7 O9Y1f/Y3/cef8WMpO
Ta3DAIDLNix85Q+33 mElUk4aAOqb6lobsvbClo661U0tmTY7RuVEGJXQ1BQZ6XRJ
lQr1FSVQqgqxyLasVEPacVJFFcRi3sxLFgFAPA4jnXEeL5f872rN9Npb/R3TJoww
iv3sme4l+aLnDI2U0yuX1L8r5kgmP7+jt9PzlfHFnrcbp+sScSs4fCKXDoLJiOuK
y5rGTGMyHbPv6FgzM9MzO04vOJcSYOCBLcuO//lIJZEv+fFXdp3paG1O1G7buODY
vkOjyYoXpgdHKqm/3 n5w1cy5b7+u47AOlccVb4wZOD1QvAYAHFNWb1yajSPQNzy3
/+xVxWq0CAA608aw6DqeEqXKuY2lNAvGe5eyj/6 nD//g2//xnx7Rio2Xvt31+I2P
bN57esaNrXFe+sydD19/CMBVQpIBAKYpLCkoHXesxsa2VG5gpFJMxYJqqq2sxCrc
F0VOwWPJpZjJYcKwGxrqE9m2tLSyk9YybgjypJSlu1Y1xY9+4 YY/fvyjV336Uw9d
eaSh3nGFmMxV2ZaMYjEj6mxPlYnAne11JTBDaz1ZZiSNrr68ZTRmy5AIICLOph33
4 ftXHzvYM5q1TKma6mO1+29 b0vPbtyzpvedDy/ovW5jJW5ZUYxPVWCZle5YlVDZp
uexHxX9397KXE45RM6UInnnl1Lxoonzqj+9 e9sNFzfFjUtB0Wobjlizfe13Hc2vb
k3vCopeLFJPSTPlq2GAK4W9cmv0lM4gBysatshQUNWfsgXs2zHuLASTAVdMQgWMb
nvNW9+WppOWZpgibU6bRZJO15aGrnzctwyMBHHv5yFYnZecMS/jxjDPxsSfu/OnU
PqJkKl40LOGnsrEiR+wEXiT9ql8wRFh2AwTrh+9 SxAB1fW6TMxoFbZUgcVXJjxbl
q95Af6548nDvWG7Tokzy0zd1PqZZh6YhkkYylrXrYvNB526s76Wc50oSnU8X5MtI
iAv6qKo/oqr+uIyZWRG360mQpf2ooP2wqGt+yWpOr2TFgSrVBlQY1cDMUHxBnm3G
pAQAJIUkKSwdRO5FBWKQZn1hHmuK0W7NLIw0ahSFEMk4aQFQ3BGs2fY6Gnu0bfms
eMZwU3MDYDCIIZi15FDHAk9nB4+MjA0dGX/dYn/PPJuGNj3Z5cknmLHgrQF9JjwA
JU1olhmCqHeEoISF4NFr2+5 yTNFg1sXbCcRky4S0ZJKmc780fZuYLDyjzNQ2vffn
/MJMzExaM6kwrEZVfzSq+SUQDJYko5pf1JVgJHKDIphJhdrlUFU5jGrKD6usWDNP
XfcvUibzmiBmZhUqxVNzThfNLHi6TPFOynbB2kRU8YqIlIpc31UVNwxztbJF3KYK
Vc/OlTvt0XwHImUaXphQMdN1hic6IUQk3CBueGFceEEcGrb2oobxs7Xy2KniQcOv
7 XdSleGbk3dV8frrfC51f2Tb/VZ/4 VRDzo1d5mlxRdWNDDf0Ru9dHrvNdgzbjFtJ
JsCwjbh0rMzFduUMAC7aQGAGnXfYMADU+if2AwCZ0iCCJAipo8iDvjDbPMVnc6j8
S8kyF73fo9bMNPzcT3nniwEBISzT0X7kClPadkNyoZDCApEAAZFjF2UUOay0TUrb
kSbzrE+Hx0bdY0NDlRfmpYPusUQtd9/WQwEw85GLiLo+t8kZ88OGCscWR5FYmomp
FcszWOUYZEhDQlpS2pl4q5CCiMCzbV9P2r5iAgkSc197mFlrDqBZaaUCDiLPSDjZ
yA8qQa42zFMC0ZSlkSCAL8jq/ko0nYf6l9DFUv4gJjCxMKUNzVpY0tJKKxAZ0rZS
RszKMsGMmNRgLjg4OBF11WrhO3GXe5sy0cSmJ7u86ddH473ZmF/ets1fP/RMrjUe
hAXYxZKnC6eLRmibaEmmZF2dYaSFIkhoYgYiNygySJgxM0XECN2oypqVNA2HBLMw
yJxjWVwbr+UjL/RIkDDjZlxP1PIcKqW1SDGfvzfpPTj+NR6/pnLR/yJM3qfTVLM/
JXAYAYDQGqgV3bFKWO1Tpq0DjfHhQrArYYlTdeSOaFOXNj2517voczAAEBE9/cRq
c7HrxAZ9M+PVzNYAlDKESNgOWhMGtYFgCQKiUGs9JYMQk4ehNISQBhlgYjUVcpGE
kNIQREDoh4EOzz+UiZg0n/8 +/38 bXcrlMTNrAHKGS6bJI4wZOiiH6GfNOc2yJiks
J8xotC2u8qdinnv/E4dDngXCRX9ihG3bxBt4w4rlXCvPpi0UOSXFSZcoboJNkvI3
v2a5BEUApFLMQgRQ2o1Lv5KJxV0n9AK3PhbchJsCbN06p1u+OChTtG3bNnEj3hDu
xICcKCSMRaYnjGSGyrHoN6C8D6Vcg6NKgXtDRzdkqlGsYb7agZv01ouAMU3/G2jy
rVebJ+JFAAAAAElFTkSuQmCC"/>
</picture_list>
</tovar>
<tovar name="Услуга 1 " price="32 "/>
<tovar name="Услуга 2 " price="15 "/>
</price_list>
Источник
Категория:
JSON, XML, TXT, CSV, DBF Как Загрузить файлы с FTP Код 1C v 8.2 УП
Попытка
Соединение = Новый FTPСоединение( FTPСервер, FTPПорт, FTPПользователь, FTPПароль, , Ложь ) ;
Массив = Соединение. НайтиФайлы( FTPКаталогЗагрузки, "*.csv" ) ;
Если Не Массив. Количество( ) = 0 Тогда
Для Каждого Стр Из Массив Цикл
КаталогНаДиске = Новый Файл( КаталогЗагрузкиДанных+ "\" + Стр. Имя) ;
Если НЕ КаталогНаДиске. Существует( ) Тогда
ИмяФайла = КаталогЗагрузкиДанных+ "\" + Стр. Имя;
Соединение. Получить( Стр. ПолноеИмя, ИмяФайла) ;
КонецЕсли ;
КонецЦикла ;
Иначе
Сообщить( "Нет файлов!" ) ;
КонецЕсли ;
Исключение
Сообщить( "Ошибка подключения FTP!!!" ) ;
КонецПопытки ;
Как Выгрузить файлы и папки из каталога на FTP Категория:
Работа с Интернет, Почтой (Mail), FTP Как Выгрузить файлы и папки из каталога на FTP Код 1C v 8.2 УП
Функция ВыгрузитьФайлыИПапкиНаFTP_Рекурсивно(Соединение, НачальныйКаталогВыгрузкиFTP, НачальнаяПапкаВыгрузкиКомп, ТекущаяПапка=Неопределено)
Рез = Истина ;
Если ТекущаяПапка = Неопределено Тогда ТекущаяПапка = НачальнаяПапкаВыгрузкиКомп КонецЕсли ;
МассивФайлов = НайтиФайлы( ТекущаяПапка, "*" ) ;
ТекКаталог = СтрЗаменить( НачальныйКаталогВыгрузкиFTP + СтрЗаменить( СтрЗаменить( ТекущаяПапка, НачальнаяПапкаВыгрузкиКомп, "" ) , "\" , "/" ) , "//" , "/" ) ;
Если Прав( ТекКаталог, 1 ) < > "/" Тогда
ТекКаталог = ТекКаталог + "/" ;
КонецЕсли ;
Для Каждого НайденныйФайл Из МассивФайлов Цикл
Файл = Новый Файл( НайденныйФайл. ПолноеИмя) ;
Если Файл. ЭтоКаталог( ) Тогда
ЕстьТакаяПапка = Соединение. НайтиФайлы( НачальныйКаталогВыгрузкиFTP + СтрЗаменить( СтрЗаменить( НайденныйФайл. Путь, НачальнаяПапкаВыгрузкиКомп + "\" , "" ) , "\" , "/" ) , НайденныйФайл. Имя) . Количество( ) > 0 ;
Если не ЕстьТакаяПапка Тогда
НомерПопытки = 1 ;
Успешно = Ложь ;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение. УстановитьТекущийКаталог( ТекКаталог) ;
Успешно = Истина ;
Исключение
Сообщить( "Попытка №" + НомерПопытки + ", установка каталога " + ТекКаталог + " - " + ОписаниеОшибки( ) ) ;
НомерПопытки = НомерПопытки + 1 ;
КонецПопытки ;
КонецЦикла ;
Если Не Успешно Тогда
Возврат Ложь ;
КонецЕсли ;
НомерПопытки = 1 ;
Успешно = Ложь ;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение. СоздатьКаталог( НайденныйФайл. Имя) ;
Успешно = Истина ;
Исключение
Сообщить( "Попытка №" + НомерПопытки + ", каталог " + НайденныйФайл. Имя + " - " + ОписаниеОшибки( ) ) ;
НомерПопытки = НомерПопытки + 1 ;
КонецПопытки ;
КонецЦикла ;
Если Не Успешно Тогда
Возврат Ложь ;
КонецЕсли ;
КонецЕсли ;
НомерПопытки = 1 ;
Успешно = Ложь ;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение. УстановитьТекущийКаталог( НачальныйКаталогВыгрузкиFTP + СтрЗаменить( СтрЗаменить( НайденныйФайл. ПолноеИмя, НачальнаяПапкаВыгрузкиКомп + "\" , "" ) , "\" , "/" ) + "/" ) ;
Успешно = Истина ;
Исключение
Сообщить( "Попытка №" + НомерПопытки + ", установка каталога " + ТекКаталог + " - " + ОписаниеОшибки( ) ) ;
НомерПопытки = НомерПопытки + 1 ;
КонецПопытки ;
КонецЦикла ;
Если Не Успешно Тогда
Возврат Ложь ;
КонецЕсли ;
ВыгрузитьФайлыИПапкиНаFTP_Рекурсивно( Соединение, НачальныйКаталогВыгрузкиFTP, НачальнаяПапкаВыгрузкиКомп, НайденныйФайл. ПолноеИмя) ;
Если не Рез Тогда
Возврат Ложь ;
КонецЕсли ;
Иначе
НомерПопытки = 1 ;
Успешно = Ложь ;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение. УстановитьТекущийКаталог( ТекКаталог) ;
Успешно = Истина ;
Исключение
Сообщить( "Попытка №" + НомерПопытки + ", установка каталога " + ТекКаталог + " - " + ОписаниеОшибки( ) ) ;
НомерПопытки = НомерПопытки + 1 ;
КонецПопытки ;
КонецЦикла ;
Если Не Успешно Тогда
Возврат Ложь ;
КонецЕсли ;
НомерПопытки = 1 ;
Успешно = Ложь ;
Пока НомерПопытки < 4 и не Успешно Цикл
Попытка
Соединение. Записать( НайденныйФайл. ПолноеИмя, НайденныйФайл. Имя) ;
Успешно = Истина ;
Исключение
Сообщить( "Попытка №" + НомерПопытки + ", файл " + НайденныйФайл. ПолноеИмя + " - " + ОписаниеОшибки( ) ) ;
НомерПопытки = НомерПопытки + 1 ;
КонецПопытки ;
КонецЦикла ;
Если Не Успешно Тогда
Возврат Ложь ;
КонецЕсли ;
#Если Клиент Тогда
Состояние( "Выгрузка файла: " + НайденныйФайл. ПолноеИмя) ;
#КонецЕсли
КонецЕсли ;
КонецЦикла ;
Возврат Рез;
КонецФункции
КаталогиДляПередачиНаFTP = Новый Соответствие;
КаталогиДляПередачиНаFTP. Вставить( СсылкаНаЭлементСправочника) ;
Для Каждого Выборка из КаталогиДляПередачиНаFTP Цикл
ВыборкаДетальныеЗаписи = Выборка. Ключ;
Соединение = Новый FTPСоединение( ВыборкаДетальныеЗаписи. FTPСервер,
ВыборкаДетальныеЗаписи. FTPПорт,
ВыборкаДетальныеЗаписи. FTPПользователь,
ВыборкаДетальныеЗаписи. FTPПароль, , Ложь ) ;
ВыгрузитьФайлыИПапкиНаFTP_Рекурсивно( Соединение, ВыборкаДетальныеЗаписи. FTPКаталогВыгрузки, ВыборкаДетальныеЗаписи. КаталогВыгрузкиДанных) ;
КонецЦикла ;
Как загрузить файлы с FTP Категория:
Работа с Интернет, Почтой (Mail), FTP Как удалить Файл, Каталог? Функция Удаляет указанные файлы.
УдалитьФайлы(<Путь>, <Маска>)
Параметры: <Путь> (обязательный) Тип: Строка. Путь к удаляемым файлам.
<Маска> (необязательный) Тип: Строка. Маска для выбора удаляемых файлов. В строке маски допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.
!!! - Если <Маска> не указана, то удаляются все файлы и каталог <Путь>.
Для удаления одного файла, можно передать его полное имя через первый параметр, либо передать путь к нему через первый параметр, а его короткое имя - через второй.
Удаление файлов производится, если в указанных файлах не установлено свойство "Только чтение". В противном случае возникает сообщение об ошибке.
Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.
Код 1C v 8.х
Попытка
УдалитьФайлы( "C:\temp\Works" ) ;
Исключение
Сообщить( ОписаниеОшибки( ) ) ;
КонецПопытки ;
Код 1C v 8.2 УП
Попытка
УдалитьФайлы( КаталогВыгрузкиДанных, "*.csv" ) ;
Исключение
#Если Клиент Тогда
Сообщить( ОписаниеОшибки( ) ) ;
#КонецЕсли
КонецПопытки ;
В 7-рке для удаления используется
Код 1C v 7.x ФС. УдалитьКаталог( Стр) ;
ФС. УдалитьФайл( Стр) ;
Как удалить каталог с файлами?
Код 1C v 7.x
Функция Рекурсия(Знач Путь,Сп)
Перем А;
ФСО= СоздатьОбъект( "ФС" ) ;
Стр= ФСО. НайтиПервыйФайл( Путь+ "\*.*" ) ;
Пока ПустоеЗначение( Стр) = 0 Цикл
Если ( Стр< > ".." ) и ( Стр< > "." ) Тогда
Представление= "" ;
Для к= 1 По СтрЧислоВхождений( Путь+ "\" + Стр, "\" ) Цикл
Представление= Представление+ "\" ;
КонецЦикла ;
Сп. ДобавитьЗначение( Путь+ "\" + Стр, Представление+ Стр) ;
ФСО. АтрибутыФайла( Путь+ "\" + Стр, , А) ;
Если Сред( А, 4 , 1 ) = "1" Тогда
Рекурсия( Путь+ "\" + Стр, Сп) ;
КонецЕсли ;
КонецЕсли ;
Стр= ФСО. НайтиСледующийФайл( ) ;
КонецЦикла ;
КонецФункции
Процедура Сформировать()
Перем Каталог, А;
Если ФС. ВыбратьКаталог( Каталог, "" ) = 0 Тогда
Возврат ;
КонецЕсли ;
Сп= СоздатьОбъект( "СписокЗначений" ) ;
Рекурсия( Каталог, Сп) ;
Сп. СортироватьПоПредставлению( 0 ) ;
Для к= 1 По Сп. РазмерСписка( ) Цикл
Стр= Сп. ПолучитьЗначение( к) ;
ФС. АтрибутыФайла( Стр, , А) ;
Если Сред( А, 4 , 1 ) = "1" Тогда
ФС. УдалитьКаталог( Стр) ;
Иначе
ФС. УдалитьФайл( Стр) ;
КонецЕсли ;
КонецЦикла ;
ФС. УстТекКаталог( Каталог+ "\..\" ) ;
ФС. УдалитьКаталог( Каталог) ;
КонецПроцедуры
Категория:
Работа с Файлами и Каталогами Загрузка и Просмотр файлов на FTP сервер Код 1C v 8.х
Процедура ЗагрузитьОтмеченные(Кнопка)
Сервер = Новый FTPСоединение( FTPServer) ;
Для Каждого Файл Из ПолеСписка Цикл
Если Файл. Пометка Тогда
Сервер. Получить( Файл. Значение. ПолноеИмя, "с:\temp" + Файл. Значение. ПолноеИмя) ;
Файл. Пометка = Ложь ;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Процедура Просмотреть(Кнопка)
Сервер = Новый FTPСоединение( FTPServer) ;
МассивФайлов = Сервер. НайтиФайлы( "/" , "*.*" ) ;
Для Каждого Файл Из МассивФайлов Цикл
Если Файл. ЭтоФайл( ) Тогда
ПолеСписка. Добавить( Файл, Файл. Имя)
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Код 1C v 8.х ПапкаКонтрагена = "Kontr" ;
Попытка
ИмяFTPСервера = "*******" ;
ПортFTPСоединения = "21" ;
ПользовательFTPСоединения = "****" ;
ПарольFTPСоединения = "*****" ;
ПассивноеFTPСоединение = Ложь ;
Соединение = Новый FTPСоединение( ИмяFTPСервера, ПортFTPСоединения, ПользовательFTPСоединения, ПарольFTPСоединения, , ПассивноеFTPСоединение) ;
Массив = Соединение. НайтиФайлы( "/" + ПапкаКонтрагена+ "/" , "" ) ;
Если Массив. Количество( ) = 0 Тогда
Соединение. СоздатьКаталог( ПапкаКонтрагена) ;
КонецЕсли ;
Соединение. УстановитьТекущийКаталог( ПапкаКонтрагена) ;
Соединение. Записать( ИмяФайлаЗаписи, "file.txt" ) ;
Исключение
Сообщить( "Ошибка записи файла на FTP!!!" ) ;
Возврат "" ;
КонецПопытки ;
Категория:
Работа с Интернет, Почтой (Mail), FTP Обмен файлами с FTP сервером средствами Windows Код 1C v 8.х
Процедура ПередатьПоFTP(ИмяФайла,ПутьФТП=Неопределено) Экспорт
Если ПутьФТП = Неопределено Тогда
ТекПутьФТП = ПараметрыСеанса. FTPПуть;
Иначе
ТекПутьФТП = ПутьФТП;
КонецЕсли ;
Скрипт= Новый ТекстовыйДокумент;
Скрипт. ДобавитьСтроку( "open " + ПараметрыСеанса. FTP) ;
Скрипт. ДобавитьСтроку( "user" ) ;
Скрипт. ДобавитьСтроку( ПараметрыСеанса. FTPЛогин) ;
Скрипт. ДобавитьСтроку( ПараметрыСеанса. FTPПароль) ;
Скрипт. ДобавитьСтроку( "binary" ) ;
Скрипт. ДобавитьСтроку( "cd " + ТекПутьФТП) ;
Скрипт. ДобавитьСтроку( "put " + ПараметрыСеанса. ПутьКФайлуОбраза+ "\" + ИмяФайла) ;
Скрипт. ДобавитьСтроку( "bye" ) ;
Файл = Новый Файл( ПараметрыСеанса. ПутьКФайлуОбраза+ "\" + "ftp.txt" ) ;
Скрипт. Записать( ПараметрыСеанса. ПутьКФайлуОбраза+ "\" + "ftp.txt" , "windows-1251" ) ;
КомандаСистемы( "ftp -n -s:" + ПараметрыСеанса. ПутьКФайлуОбраза+ "\ftp.txt" ) ;
КонецПроцедуры
Процедура ПолучитьПоFTP(ИмяФайла,ПутьФТП=Неопределено) Экспорт
Если ПутьФТП = Неопределено Тогда
ТекПутьФТП = ПараметрыСеанса. FTPПуть;
Иначе
ТекПутьФТП = ПутьФТП;
КонецЕсли ;
Скрипт= Новый ТекстовыйДокумент;
Скрипт. ДобавитьСтроку( "open " + ПараметрыСеанса. FTP) ;
Скрипт. ДобавитьСтроку( "user" ) ;
Скрипт. ДобавитьСтроку( ПараметрыСеанса. FTPЛогин) ;
Скрипт. ДобавитьСтроку( ПараметрыСеанса. FTPПароль) ;
Скрипт. ДобавитьСтроку( "binary" ) ;
Скрипт. ДобавитьСтроку( "cd " + ТекПутьФТП) ;
Скрипт. ДобавитьСтроку( "get" ) ;
Скрипт. ДобавитьСтроку( ИмяФайла) ;
Скрипт. ДобавитьСтроку( ПараметрыСеанса. ПутьКФайлуОбраза+ "\" + ИмяФайла) ;
Скрипт. ДобавитьСтроку( "bye" ) ;
Файл = Новый Файл( ПараметрыСеанса. ПутьКФайлуОбраза+ "\" + "ftp.txt" ) ;
Скрипт. Записать( ПараметрыСеанса. ПутьКФайлуОбраза+ "\" + "ftp.txt" , "windows-1251" ) ;
КомандаСистемы( "ftp -n -s:" + ПараметрыСеанса. ПутьКФайлуОбраза+ "\ftp.txt" ) ;
КонецПроцедуры
Код 1C v 7.x
Функция ОтправитьФайлыЧерезFTP()
Попытка
Шел= СоздатьОбъект( "shell.application" ) ;
ПапкаФТП= Шел. namespace( "ftp://" + СокрЛП( ФТП_Пользователь) + ":" + СокрЛП( ФТП_Пароль) + "@" + СокрЛП( ФТП_УРЛ) + "/" + СокрЛП( ФТП_ПутьИсходящих) ) ;
ПапкаИсточник= Шел. namespace( КаталогИсходящих) ;
ПапкаЗагруженных = Шел. namespace( КаталогЗагруженных) ;
Предупреждение( "Подключение к FTP серверу..." , 1 ) ;
Темы= ПапкаИсточник. items( ) ;
ПапкаЗагруженных. copyhere( Темы) ;
ПапкаФТП. movehere( Темы) ;
Исключение
Предупреждение( "Внимание! Не удалось передать файлы адресату через FTP! Возможно, параметры FTP заданы неверно, либо отсутствует связь." ) ;
Возврат 0 ;
КонецПопытки ;
ФС. УстТекКаталог( КаталогИсходящих) ;
ПопытокПроверки = 3 ;
Для Сч = 1 По ПопытокПроверки Цикл
Если НЕ ( ( СокрЛП( ФС. НайтиПервыйФайл( "*.*" ) ) = "" ) или ( СокрЛП( ФС. НайтиПервыйФайл( "*.*" ) ) = "." ) ) Тогда
Если Сч = ПопытокПроверки Тогда
Предупреждение( "Внимание! Не удалось передать файлы адресату через FTP! Попробуйте совершить обмен позже." ) ;
Возврат 0 ;
КонецЕсли ;
Предупреждение( "Передача файлов...." , 3 ) ;
КонецЕсли ;
КонецЦикла ;
Возврат 1 ;
КонецФункции
Функция ПолучитьФайлыЧерезFTP()
Попытка
Шел= СоздатьОбъект( "shell.application" ) ;
ПапкаФТП= Шел. namespace( "ftp://" + СокрЛП( ФТП_Пользователь) + ":" + СокрЛП( ФТП_Пароль) + "@" + СокрЛП( ФТП_УРЛ) + "/" + СокрЛП( ФТП_ПутьВходящих) ) ;
ПапкаПриемник= Шел. namespace( КаталогВходящих) ;
ПапкаЗагруженных = Шел. namespace( КаталогЗагруженных) ;
Предупреждение( "Подключение к FTP серверу..." , 1 ) ;
Темы= ПапкаФТП. items( ) ;
ПапкаЗагруженных. copyhere( Темы) ;
ПапкаПриемник. movehere( Темы) ;
Исключение
Предупреждение( "Внимание! Не удалось получить файлы через FTP! Возможно, параметры FTP заданы неверно, либо отсутствует связь." ) ;
Возврат 0 ;
КонецПопытки ;
ПопытокПроверки = 3 ;
Для Сч = 1 По ПопытокПроверки Цикл
Если ПапкаФТП. items( ) . count> 0 Тогда
Если Сч = ПопытокПроверки Тогда
Предупреждение( "Внимание! Не удалось получить файлы через FTP! Попробуйте совершить обмен позже." ) ;
Возврат 0 ;
КонецЕсли ;
Предупреждение( "Получение файлов...." , 3 ) ;
КонецЕсли ;
КонецЦикла ;
Возврат 1 ;
КонецФункции
Код 1C v 7.x
ТекстВыгрузки. Записать( КаталогПользователя( ) + ( ИмяПрайса+ ".csv" ) ) ;
ТекстВыгрузки = "" ;
ТекстВыгрузки = СоздатьОбъект( "Текст" ) ;
ТекстВыгрузки. ДобавитьСтроку( "open " + "192.168.0.1" ) ;
ТекстВыгрузки. ДобавитьСтроку( "****" ) ;
ТекстВыгрузки. ДобавитьСтроку( "*****" ) ;
ТекстВыгрузки. ДобавитьСтроку( "put " + КаталогПользователя( ) + ( ИмяПрайса+ ".csv" ) ) ;
ТекстВыгрузки. ДобавитьСтроку( "bye" ) ;
ТекстВыгрузки. Записать( КаталогПользователя( ) + "ftp.txt" ) ;
ТекстВыгрузки = "" ;
КомандаСистемы( "ftp -s:" + КаталогПользователя( ) + "Ftp.txt>> " + ( КаталогПользователя( ) + "report.txt" ) ) ;
ФС. УдалитьФайл( КаталогПользователя( ) + "ftp.txt" ) ;
ТекстВыгрузки = СоздатьОбъект( "Текст" ) ;
ТекстВыгрузки. Открыть( КаталогПользователя( ) + "report.txt" ) ;
КС = ТекстВыгрузки. КоличествоСтрок( ) - 4 ;
Попытка
строкаКомплете = ТекстВыгрузки. ПолучитьСтроку( КС) ;
Если Найти( Нрег( строкаКомплете) , "226 transfer complete" ) = 0
Тогда а= 1 ; а= а/ 0 ;
КонецЕсли ;
тПротокол = ТекущееВремя( ) + " файл данных успешно отправлен на сервер интернет-магазина" + РазделительСтрок+ тПротокол;
Форма. Обновить( ) ;
ТекстВыгрузки = "" ;
ФС. УдалитьФайл( КаталогПользователя( ) + ( ИмяПрайса+ ".csv" ) ) ;
ФС. УдалитьФайл( КаталогПользователя( ) + "report.txt" ) ;
Исключение
тПротокол = ТекущееВремя( ) + " ПРОИЗОШЛА ОШИБКА ВО ВРЕМЯ ЗАГРУЗКИ СФОРМИРОВАННОГО ФАЙЛА НА СЕРВЕР ИНЕТРНЕТ-МАГАЗИНА" + РазделительСтрок+ тПротокол;
тПротокол = ТекущееВремя( ) + ИмяПрайса+ РазделительСтрок+ тПротокол;
Форма. Обновить( ) ;
ТекстВыгрузки. Показать( ) ;
ТекстВыгрузки = "" ;
КонецПопытки ;
Категория:
Работа с Интернет, Почтой (Mail), FTP