Реализация взаимодействия с API дисконтного сервера "Frontol discount unit"













Данная обработка реализует API взаимодействия с дисконтным сервером фирмы АТОЛ версии 2.0.0.

Данная обработка была написана в рамках реализации и отладки обмена между 1С:УТ и дисконтным сервером информацией о движении бонусов и накопительных скидках в сети розничной торговли. Все остальное добавлено "чтобы было, а почему бы и нет" и реализует практически все документированные функции API Frontol Discount Unit.

Обработка не привязана ни к какой конфигурации. Платформа требуется не ниже 8.3.6, т.к. используются встроенный механизм чтения/записи данных в формате JSON.

14 Comments

  1. PlZoo

    Доброго времени суток.

    1) В вашей обработке не нашел пункт для вывода табличной формы, к примеру по вкладке: Карты клиентов. Чтоб можно было в Excel выгрузить. Как можно этот пункт добавить?

    Reply
  2. saiten

    Щелкаете правой кнопкой на любой ячейке таблицы, выбираете пункт «Вывести список», выбираете колонки, которые вам нужны и нажимаете «ОК». Откроется табличный документ, который можно будет сохранить в Ексель.

    Reply
  3. s.matyukin_visma

    Добрый день, скачал вашу обработку! Каким образом выгрузить из 1с список бонусных карт, так чтобы они появились FrontolDiscountUnit

    Reply
  4. s.matyukin_visma

    Версия платформы 1С:Предприятие 8.3 (8.3.9.2033)

    При попытке авторизоваться выдает ошибку {ВнешняяОбработка.РаботаСFrontolDiscountUnit.МодульОбъекта(391)}: 400 Bad request:unexpected character (row: 1, column: 1)

    ВызватьИсключение «»+HTTPОтвет.КодСостояния+» «+HTTPОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);

    Данные авторизации» {

    «id»: «admin»,

    «password»: «b271df19c8b90ffb328332fa8d0f9542»

    }»// Login:admin password — moo

    В чем может быть проблема? Я переделал процедуру ниже из-за ошибке с переменной поток.

    Функция КодироватьСтрокуBase64(Строка) Экспорт
    //поток = новый ПотокВПамяти;
    //ЗаписьТекста = Новый ЗаписьТекста(поток, КодировкаТекста.UTF8);
    //
    //ЗаписьТекста.Записать(Строка);
    //ЗаписьТекста.Закрыть();
    //
    //
    //
    //ТекстБ64 = Base64Строка(поток.ЗакрытьИПолучитьДвоичныеДанные());
    
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
    
    ЗаписьТекста = Новый ЗаписьТекста(ИмяВременногоФайла, КодировкаТекста.UTF8);
    ЗаписьТекста.Записать(Строка);
    ЗаписьТекста.Закрыть();
    
    
    мДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
    
    ТекстБ64 = Base64Строка(мДвоичныеДанные);
    
    
    Возврат СтрЗаменить(ТекстБ64,Символы.ВК+Символы.ПС,»»)
    КонецФункции

    Показать

    Reply
  5. s.matyukin_visma

    Проблема решилась изменением кодировки привожу код ниже:

    ЗаписьТекста = Новый ЗаписьТекста(ИмяВременногоФайла, Кодировка_UTF8_NoBOM());
    ЗаписьТекста.Записать(Строка);
    ЗаписьТекста.Закрыть();
    
    
    мДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
    
    ТекстБ64 = Base64Строка(мДвоичныеДанные);
    
    
    Возврат СтрЗаменить(ТекстБ64,Символы.ВК+Символы.ПС,»»)
    КонецФункции

    Показать

    Функция Кодировка_UTF8_NoBOM()

    Возврат «CESU-8»;

    КонецФункции

    Reply
  6. saiten

    (6) Выгрузка карт не предусмотрена, т.к. обработка не завязана ни на какую конфигурацию и неизвестно, есть ли в вашей конфигурации справочник карт клиента вообще. Функции, необходимые для выгрузки карт в модуле обработки есть, вы можете выгрузить карты, использовав примерно следующий код:

    ДанныеКарты = СтруктураКартаКлиента();
    ДанныеКарты.id = …
    ДанныеКарты.name = …
    //Заполняем нужные данные карты
    
    КартаНаСервере = КартаКлиентаПолучить(Соединение,Токен,ДанныеКарты.id);
    Если КартаНаСервере = Неопределено Тогда
    КартаКлиентаДобавить(Соединение, Токен
    ,ДанныеКарты.id
    ,ДанныеКарты);
    Иначе
    КартаКлиентаИзменить(Соединение, Токен
    ,ДанныеКарты.id
    ,ДанныеКарты);
    КонецЕсли;
    

    Показать

    Reply
  7. saiten

    (8) Странно, у меня нормально работает с кодировкой UTF-8… Версия fdu последняя у вас? И какая ОС, если не секрет?

    Reply
  8. saiten

    (6)Либо вручную добавлять строки в табличное поле обработки и заполнять нужные поля. Все изменения в этой таблице транслируются на сервер fdu.

    Reply
  9. user703392_cdman2005

    Добрый день, у меня пустая форма открывается

    Reply
  10. saiten

    Эта обработка под обычные формы (УТ 10.3). Для управляемого режима надо свою форму рисовать.

    Reply
  11. user703392_cdman2005

    т.е. для нас она бесполезна? мы хотели привязать к ут 11.3

    Reply
  12. saiten

    Вроде того. Чтобы использовать её с 11.3 надо форму управляемую нарисовать.

    Reply
  13. s.matyukin_visma

    (10) Добрый день! Вернулись к задаче работы с fdu. Версия fdu 2.1.6.867,windows server 2008 r2.

    Reply
  14. ranis888

    Ответ = Соединение.Получить(Запрос);

    по причине:

    Ошибка работы с Интернет: Не могу установить соединение

    Reply

Leave a Comment

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