powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / demo.1c.ru - API
8 сообщений из 8, страница 1 из 1
demo.1c.ru - API
    #39956959
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый День!

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

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

https://infostart.ru/public/387577/
...
Рейтинг: 0 / 0
demo.1c.ru - API
    #39976806
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
К сожалению, это не то.
1С не установлен на одном ПК. Это 1С онлайн : https://trade.demo.1c.ru/trade/ru_RU/]
И у этого 1С онлайн есть свои АПИ. Правда я не могу найти ни где документацию по ним.
Про готовое решение для .NET я уже и мечтаю ...
...
Рейтинг: 0 / 0
demo.1c.ru - API
    #39976807
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни как не мог ссылку на сайт 1с-онлайн указать ...
https://trade.demo.1c.ru/trade/ru_RU
...
Рейтинг: 0 / 0
demo.1c.ru - API
    #39977479
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл документацию по обмену данными с 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
demo.1c.ru - API
    #39977520
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
demo.1c.ru - API
    #39977576
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот этот код получает файл без "MimeMultipartContent":
Код: php
1.
$postdata = file_get_contents("php://input");


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


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