Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / demo.1c.ru - API / 8 сообщений из 8, страница 1 из 1
13.05.2020, 16:23
    #39956959
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
Добрый День!

Есть 1С онлайн ( http://trade.demo.1c.ru/trade/ru/).
Может кто в курсе, если ли для такой 1С API?
И может уже есть что-то готовое для на/для C#?
Что нужно:
1) Считать с 1С каталог товаров
2) Записать в 1С заказы

Заранее спасибо за любые подсказки!
...
Рейтинг: 0 / 0
19.05.2020, 19:30
    #39959654
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
Через минуту в гугле находится:

https://infostart.ru/public/387577/
...
Рейтинг: 0 / 0
06.07.2020, 19:44
    #39976806
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
Leonid Kudryavtsev,
К сожалению, это не то.
1С не установлен на одном ПК. Это 1С онлайн : https://trade.demo.1c.ru/trade/ru_RU/]
И у этого 1С онлайн есть свои АПИ. Правда я не могу найти ни где документацию по ним.
Про готовое решение для .NET я уже и мечтаю ...
...
Рейтинг: 0 / 0
06.07.2020, 19:46
    #39976807
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
Ни как не мог ссылку на сайт 1с-онлайн указать ...
https://trade.demo.1c.ru/trade/ru_RU
...
Рейтинг: 0 / 0
08.07.2020, 15:58
    #39977479
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
Нашёл документацию по обмену данными с 1С-Онлайн !!!!!!!!!!!!!!!!
Протокол обмена с сайтом

Ну и столкнулся с проблемой на шаге C. Выгрузка на сайт файлов обмена
Получаю параметры: type=catalog& mode=file& filename=<имя файла>
А вот как получить сам файл?! Система точно передаёт файл XML, т.к. на PHP его получают!!!
Делаю как описано тут Загрузка файла через MVC Web API :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    public async Task<IHttpActionResult> Post()  
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            return BadRequest();
        }
        var provider = new MultipartMemoryStreamProvider();
        ....


Отрабатывает проверка if(!Request.Content.IsMimeMultipartContent()) , ну и return BadRequest();
То есть запрос от НЕ содержит MimeMultipartContent

Может у кого-то есть хоть какие-то идеи ... ?
...
Рейтинг: 0 / 0
08.07.2020, 17:30
    #39977520
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
PHP код, который принимает этот XML-файл:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
if (($_REQUEST['type']=='catalog') and ($_REQUEST['mode']=='file')){
    //загрузка на сайт файла обмена каталога номенклатуры
    $filename = $_REQUEST['filename']; //import0_1.xml
    $ar = explode('/',$filename);
    if(count($ar)>1){
        for($i=0;$i<=(count($ar)-2);$i++){
            $temp = implode("/",array_slice($ar,0,$i+1));
            @mkdir($temp);
        };
    };
    $filename = $_REQUEST['filename']; //import0_1.xml
    $fp = @fopen($filename,"a");
    $postdata = file_get_contents("php://input");
    fputs($fp,$postdata."\r\n");
    fclose($fp);
    Echo "success\n";
}


Может, кто в курсе как перевести это на C#?
особенно вот это интересует:
Код: php
1.
2.
3.
4.
5.
    $filename = $_REQUEST['filename']; //import0_1.xml
    $fp = @fopen($filename,"a");
    $postdata = file_get_contents("php://input");
    fputs($fp,$postdata."\r\n");
    fclose($fp);




============
Весь код выглядит так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
<?php
header('Content-Type: text/html; charset=UTF-8');
If(($_REQUEST['type']=='catalog') and ($_REQUEST['mode']=='checkauth')){
    setcookie('ObmenEx','true',time()+60*60,'/');
    Echo "success\nObmenEx\ntrue"; //успешно/имя_кукиса/значение_кукиса
}elseif (($_REQUEST['type']=='catalog') and ($_REQUEST['mode']=='init')){
    echo "zip=no\nfile_limit=0"; //неархивировать/неограниченн_обьем_файла
}elseif (($_REQUEST['type']=='catalog') and ($_REQUEST['mode']=='file')){
    //загрузка на сайт файла обмена каталога номенклатуры
    $filename = $_REQUEST['filename'];
    $ar = explode('/',$filename);
    if(count($ar)>1){
        for($i=0;$i<=(count($ar)-2);$i++){
            $temp = implode("/",array_slice($ar,0,$i+1));
            @mkdir($temp);
        };
    };
    $filename = $_REQUEST['filename'];
    $fp = @fopen($filename,"a");
    $postdata = file_get_contents("php://input");
    fputs($fp,$postdata."\r\n");
    fclose($fp);
    Echo "success\n";
}elseif (($_REQUEST['type']=='catalog') and ($_REQUEST['mode']=='import')){
    Echo "success\n";
    include('./update.php');//обновляем инфу номенклатуры
}elseif(($_REQUEST['type']=='sale') and ($_REQUEST['mode']=='checkauth')){
    setcookie('ObmenEx','true',time()+60*60,'/');
    Echo "success\nObmenEx\ntrue";
}elseif (($_REQUEST['type']=='sale') and ($_REQUEST['mode']=='init')){
    echo "zip=no\nfile_limit=0";
}elseif (($_REQUEST['type']=='sale') and ($_REQUEST['mode']=='query')){
    //передаем на 1с файл обмена
    //генерируем файл
    include('./offers.php');//обновляем инфу заказов
    //печатаем файл
    @readfile("order.xml");
}elseif (($_REQUEST['type']=='sale') and ($_REQUEST['mode']=='success')){
    //это значит что 1С успешно получила файл обмена
}elseif (($_REQUEST['type']=='sale') and ($_REQUEST['mode']=='file')){
    //загрузка на сайт файла обмена заказами
    $filename = $_REQUEST['filename'];
    $ar = explode('/',$filename);
    if(count($ar)>1){
        for($i=0;$i<=(count($ar)-2);$i++){
            $temp = implode("/",array_slice($ar,0,$i+1));
            @mkdir($temp);
        };
    };
    $filename = $_REQUEST['filename'];
    $fp = @fopen($filename,"a");
    $postdata = file_get_contents("php://input");
    fputs($fp,$postdata."\r\n");
    fclose($fp);
    Echo "success\n";    
}else{
    //это значит какаято ошибка (такого не может быть) либо несовместимость версий обмена
    //отправляем что успешно
    Echo "success\n";
};
?>
...
Рейтинг: 0 / 0
08.07.2020, 19:45
    #39977576
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
Вот этот код получает файл без "MimeMultipartContent":
Код: php
1.
$postdata = file_get_contents("php://input");


Может кто вкурсе как это перевести на C# ASP.NET WebAPI ?
...
Рейтинг: 0 / 0
08.07.2020, 23:07
    #39977642
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
demo.1c.ru - API
Короче разобрался.
Обмен с 1С-Онлайн работает.
Правда, пока только получения каталога в формате CommerceML-2
С Заказами ещё не возился.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / demo.1c.ru - API / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]