Формирование и отправка данных в SPOT 2D для 1С: 7.7

Для тех, кто еще не написал сам — не претендующая на профессионализм обработка, но вполне рабочая. Будет неплохим примером с некоторыми подсказками…

Несправедливо так! Для платформы 8.2 есть две публикации, а для 7.7 — ни одной ! Так вот: Данная обработка, сделанная на быструю руку, может стать неплохой подсказкой для тех, кто собирается все это реализовать у себя. В данной обработке учтены особенности учета в моей фирме, поэтому обязательно выдаст ошибки, если попытаться просто запускать в среде 1С: Торговля 7.7 для Украины.

Описания форматов файлов и вообще о чем речь идет можно найти на страницах аналогичных обработок для 8.2:

//infostart.ru/public/439115/

//infostart.ru/public/452606/

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

8 Comments

  1. rougudz

    Передача в SPOT2D идет через post запросы. сдесь сие реализовано? я никак не могу дать с ними толку. ответ от сервера приходит что мол: 200 т.е. все ОК. а они утверждают что ничего к ним не приходило…. не сталкивались?

    Reply
  2. Khaled

    Нет, я передачу реализовал с помощью внешнего bat-файла, который запускается обработкой по окончания формирования файлов выгрузок:

    В процедуре Сформировать: (И еще один момент: Возможно параметр __did оставлен без внимание, аон должен содержать «код дистрибьютора в SPOT 2D»)

    === Начало ===
    // Процедуры формирования файлов выгрузок
    .
    .
    .
    Если ФлагОтладки = 0 Тогда
    КомандаСистемы(«SendAllWithSSL.bat»); // Команда запуска передачи файлов
    КонецЕсли;
    === Конец ===
    
    Содержание файла SendAllWithSSL.bat // изменено слегка
    === Начало ===
    @Echo off
    FOR %%I IN (Send*.*) DO call SendFileWithSSL.bat %%~dI %%~pI %%~nI protocol.log
    === Конец ===
    
    Содержание файла SendFileWithSSL.bat // изменено слегка
    === Начало ===
    @Echo off
    set Path2cvs=%1%2
    set FileType=%3
    set LogFile=%4
    echo Date %date%  Time %time% >> protocol.log
    echo. Send %Path2cvs%%FileType%.cvs …  >> %LogFile%
    curlssl.exe -v -F «ufile=@%Path2cvs%%FileType%.csv;type=text/plain;filename=%FileType%» -F «__login=ْْْْXXXXXXXX» -F «__password=XXXXXXXX» -F «__did=XXXXXXXX» http://XXXXXXXX.spot2d.com/dinfo/auto-upload.phtml  >> %LogFile%
    === Конец ===

    Показать

    Все сделано по их инструкции. запустилось с пол-пинка, и сейчас работает в автоматическом режиме.

    Reply
  3. rougudz

    (3) спасибо. но интересует имеено POST запрос. нелюблю бантики.

    Reply
  4. rougudz
    Reply
  5. Khaled

    (5) rougudz, Весьма иньтересно, брольшое спасибо, НО: имеются непонятные моменты.

    1 — Первое, что бросается в глаза — строка, проверяющая не превышен ли интервал времени ответа:

    Если Http.waitForResponse(1) = 0 Тогда //превышено время ожидания ответа =1s

    На языке 1С, строка в таком виде вызовет кучу ошибок.

    2 — Функция СпС — что именно делает ??

    Reply
  6. rougudz

    (6) сорри по спс это я для своего удобства делаю всегда

    кнвертит все что угодно в строку и обрезает пробелы, лень писать СокрЛП(строка(чтото))

    пишу спс(чтото)

    Функция СпС(что) Экспорт
    Возврат СокрЛП(Строка(что))
    КонецФункции //СпС()
    

    по поводу Если Http.waitForResponse(1) = 0 Тогда

    все нормально работает.

    Http это не объект 1с, а MSXML2.ServerXMLHTTP.х.0

    Reply
  7. Khaled

    (7) rougudz, Я хотел сказать, что строка:

    Если Http.waitForResponse(1) = 0 Тогда //превышено время ожидания ответа =1s

    в таком виде, как тут изображена не выполнится в среде 1с.

    Reply
  8. rougudz

    (8)чегойто не то с копипастом видимо

    косяки со вставкой кода…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *