|
Как в 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
|
вобчем сайт в лёжке.
попробуй так
|
|||
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/
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |