Имя: Пароль:
1C
 
Как в 1С отследить, что скрипт php выполнился? УТ 10.3
,
0 Kremiln
 
08.09.14
13:39
Пишу обмен с сайтом. Гружу заказы с сайта: сначала запускается из 1С файл php, который с сайта формирует файл заказов на ftp, а потом забираю файл с ftp в 1С. Сейчас возникла проблема - как отследить, что скрипт php отработал успешно, и можно забирать файлы с фтп? Спасибо!
1 Wobland
 
08.09.14
13:42
как вариант - делать файл-флаг
2 vde69
 
08.09.14
13:42
не пользоватся FTP...

а пользоватся транзакционными системами, для примера могу дать http://infostart.ru/public/16687/
3 Kremiln
 
08.09.14
13:49
Сначала сделал через объект формы ПолеHTMLДокумента и его событие "ДокументСформирован" - работает. Но когда начал создавать регламентное задание - оказался с тупике, т.к. там идет работа на сервере. может как-то чз объект HTTPСоединение это можно сделать?
4 _fvadim
 
08.09.14
14:00
(3) в js делал через асинхронный XMLHttpRequest. можно-ли прикрутить в 1с - я хз.
5 Kremiln
 
08.09.14
14:04
(4) тоже хз
6 Kremiln
 
08.09.14
14:05
Вроде как подходит:
ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>)

но не нравится, что запускается браузер((
7 _fvadim
 
08.09.14
14:06
(6) твой путь - (1)
8 zulu_mix
 
08.09.14
14:25
(7) нафига еще один файл создавать если можно в качестве флага использовать сам файл выгрузки?
9 _fvadim
 
08.09.14
14:25
(8) а если он ещё не целиком выгрузился?
10 zulu_mix
 
08.09.14
14:27
(9) а на кой ляд его сразу на фтп валять? записать в темп, после успешной выгрузки скопировать на фтп
11 Wobland
 
08.09.14
14:31
(10) я тут цфшку заливал на фтп. минут 20 потратил
12 zulu_mix
 
08.09.14
14:32
(11) так тс то по факту не на фтп будет лить а в соседнюю папку. причем не копировать а переносить. а это доли секунды
13 _fvadim
 
08.09.14
14:32
(10) крайне нубское предложение
14 zulu_mix
 
08.09.14
14:34
(13) мдя? а че тогда 1с при загрузке из дт-шника не сразу в папку базы гадит а через темпак?
15 _fvadim
 
08.09.14
14:37
(14) а при чём тут 1с? 1с сама по себе. а тут взаимодействие трёх разных программ, и не принципиально на одной они машине или общаются по сетке.
16 Dmitry1c
 
08.09.14
14:38
>>сначала запускается из 1С файл php

чтоооо
17 vde69
 
08.09.14
14:39
(10) это уменьшит вероятность, но причину не уберет...

автору могу посоветовать паковать в архив с паролем, тогда полученый файл будет иметь контроль, что он весь загрузился правильно или обрезался...

а вообще для регулярных обменов FTP не предназначен, он заточен на паралельную раздачу и редкое обновление...

Для обмена следует использовать другие протоколы.
18 Kremiln
 
08.09.14
14:40
(16) а что не так?
19 _fvadim
 
08.09.14
14:41
(16) ну явно же речь об обращении к скрипту на сайт.
с другой стороны php может быть установлен рядом с 1с и выполнять скрипты через командную строку.
20 Kremiln
 
08.09.14
14:44
В обработке есть одна кнопка "Загрузить заказы". Но в ней идет два процесса 1."сайт"-"фтп" и 2."фтп"-"1С". Вот вопрос в какой момент запускать второй процесс? Т.к. запускаю скрипт и мне надо ждать - когда же отработает первый этап. В этом вся и беда((
21 Kremiln
 
08.09.14
14:45
конечно можно разделить эти два процесса..
22 План счетов
 
08.09.14
14:46
(3) Сделай не регл. заданием а через планировщик виндовс с запуском vbs скрипта, с кодом:

Set v81 =  CreateObject("V82.Application")
res = v81.Connect("Srvr = ИМЯ_СЕРВЕРА;Ref = БАЗА_ДАННЫХ;Usr=ИМЯ_ПОЛЬЗОВАТЕЛЯ;Pwd=ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ")
set obr = V81.ExternalDataProcessors.Create("ПУТЬ_К_ОБРАБОТКЕ\ОБРАБОТКА.epf")
              
obr.Run()  ' Запуск экспортной процедуры
23 _fvadim
 
08.09.14
14:46
(20) вся беда в нежелании читать СП, насколько я понимаю HTTPСоединение удовлетворяет условиям задачи.
24 Kremiln
 
08.09.14
14:49
(22) надо обдумать
25 Kremiln
 
08.09.14
14:52
пробовал HTTPСоединение метод "ОтправитьДляОбработки", но он что-то не отрабатывает. Вот код:
Функция УстановитьСоединение()
    
     СерверИсточник = "melopt.hm0.ru";
    Попытка
        HTTP = Новый HTTPСоединение(СерверИсточник,,,, ); //
        Возврат Истина;
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    
КонецФункции

Процедура КоманднаяПанель1СкриптХТТП(Кнопка)
    
    СоединениеУстановлено = УстановитьСоединение();
    Если СоединениеУстановлено Тогда
        //Адрес = "http://melopt.hm0.ru/wsi-magento/wsi-magento-import.php";;
        Адрес = "/wsi-magento/wsi-magento-import.php";
        ИмяВходящегоФайла = "C:\111\adr_1.php";
        //ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
        ИмяФайлаОтвета = "C:\111\adr_2.txt";
        Попытка
            HTTP.ОтправитьДляОбработки(ИмяВходящегоФайла, Адрес, ИмяФайлаОтвета);
            
        Исключение
            Сообщить("Ошибка получения данных: " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
    
КонецПроцедуры
26 _fvadim
 
08.09.14
14:55
(25) мдеее. хостинг надёжный? я щас батничек накатаю на бесконечный запуск http://melopt.hm0.ru/wsi-magento/wsi-magento-import.php :)
27 Kremiln
 
08.09.14
14:56
(26) прошу не шалить))
28 _fvadim
 
08.09.14
15:06
(27) сам что-ли положил? я тут для тебя код написал - проверить не могу.
29 _fvadim
 
08.09.14
15:35
вобчем сайт в лёжке.
попробуй так

HTTP = Новый HTTPСоединение("melopt.hm0.ru");
HTTP.Получить("wsi-magento/wsi-magento-import.php", "c:\111.html");
[\1C]
30 Gepard
 
08.09.14
15:38
(0) почему скрипт сразу не возвращает то, что нужно, зачем дополнительное звено в виде FTP?
31 Kremiln
 
09.09.14
08:35
(29) попробовал HTTP.Получить("wsi-magento/wsi-magento-import.php", "c:\111.html");  - возвращает в файл c:\111.html текст скрипта, но не запускает его((
32 _fvadim
 
09.09.14
10:21
(31) странно, такая фигня только с этим скриптом, остальные выполняет.
33 _fvadim
 
09.09.14
10:22
wsi-magento-import-csv.php отрабатывает
34 Kremiln
 
10.09.14
07:12
Как оказалось, ссылку на скрипт, которую мне дали разработчики сайта - не совсем скрипт, а html-страница которая запускает настоящий скрипт. Поэтому не отрабатывала команда Получить.
Большое спасибо _fvadim за наводку!))
35 _fvadim
 
10.09.14
09:47
(34) не за что. передай разработчикам, пусть закроют на чтение содержимого melopt.hm0.ru/wsi-magento/
Основная теорема систематики: Новые системы плодят новые проблемы.