Получение данных с 1-OFD.RU через API

23.04.20

Учетные задачи - Кассовые операции

Обработка создает Отчет о розничных продажах, получая чеки напрямую из "Первое ОФД".

Скачать исходный код

Наименование Файл Версия Размер
API загрузка чеков с 1-OFD.RU (Розница 2.2)
.epf 20,90Kb
7
.epf 1.0 20,90Kb 7 Скачать
API загрузка чеков с 1-OFD.RU (Розница 2.3)
.epf 20,89Kb
48
.epf 1.0 20,89Kb 48 Скачать

Для того, чтобы создать Отчеты о розничных подажах, необходимо:

1. Указать Логин и Пароль для входа в личный кабинет 1-ОФД:

 

 

2. В случае, если вам необходимо, чтобы обработка сама создавала номенклатуру, если её нет в базе, то необходимо заполнить указанные ниже на картинке параметры (поиск номенклатуры осуществляется по наименованию):

 

 

3. Затем нажмите кнопку "1. Подключиться" и кнопку "2. Список ККТ". После этого таблица заполнится списком ваших касс. Необходимо будет выбрать нужные и перейти на следующую вкладку. (см. скрин)

 

 

4. Следующим действием, нужно выбрать период, за который вы хотите получить чеки и сформировать Отчет о розничных продажах. Для того чтобы отразились транзакции за выбранный период, нажмите кнопку "3. Транзакции". Если все верно отобразилось, то можете нажимать кнопку "Создать Отчет о розничных продажах". (см. скрин)

 

 

5. После того как нажмете кнопку, вам откроются формы Отчетов о розничных продажах, в количестве, соответствующем количеству дней в указанном выше периоде. В форме будет достаточно указать нужную кассу и провести документ.

Обработка была создана по ТЗ от заказчика, решил опубликовать, может кому пригодится.

Тестирование проводилось на релизах Розницы: 2.3.3.12 и 2.2.9.20.

Не претендую на идеальный код, но вполне работает.

Если есть пожелания и предложения, пишите в комментариях.

1-OFD.ru API офд OFD Обмен Розница

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    91160    111    40    

199

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    768828    4696    9504    

2794

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    166686    704    362    

391

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211579    630    526    

446

54-ФЗ и Разрешительный режим. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима.

5400 руб.

25.05.2015    319460    1854    3014    

998

Интеграция 1С со СберМаркетом для 1С:Розница 2.3/3.0, УНФ 3.0, УТ 11.4/11.5, КА 2.4/2.5

Розничная торговля Маркетплейсы Платформа 1С v8.3 1С:Розница 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Модуль для интеграции 1С с сервисом СберМаркет. Предназначен для обмена данными из торговых точек розничных сетей из баз данных 1С в базы данных СберМаркет, для отображения информации по товарам, остаткам, ценам, заказам и статусам заказов. Позволяет оперативно начать работать с сервисом СберМаркет, существенно повысить продажи и лояльность клиентов.

25000 руб.

14.10.2022    7775    6    12    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bessav 16 19.05.20 13:28 Сейчас в теме
Спасибо за обработку, долго я мучаюсь с 1-ОФД, не мог получить список касс, а оказалось, что просто Cookie не добавлял к запросу.
Хочу уточнить, 3600 к дате добавляете т.к. у Вас часовой пояс +1 по Гринвичу?
Вот например:
FromDate = Строка(ПериодТранзакций.ДатаНачала - дата(1970,1,1,1,0,0) + 3600);
2. keln 73 20.05.20 13:50 Сейчас в теме
(1)
FromDate = Строка(ПериодТранзакций.ДатаНачала - дата(1970,1,1,1,0,0) + 3600);

Это я нашел на просторах интернета, для корректного перевода даты в нужный формат даты для api.
3. slitov 7 20.05.20 17:39 Сейчас в теме
Я никак не могу закончить обработку, т.к. уперся в смену организаций, данные по ккм получаю, но только по одной организации, при попытки сменить, получаю ошибку 403, Вы случаем не пробовали изменять организации?
Из их swagger-а
PUT /api/user/organisations/{id} Переключение текущей организации пользователя

МассивОрганизаций = ФормированиеГетЗапроса1ОФД("/api/user/organisations");
ИДОрг = МассивОрганизаций[1].id;

Сервер = "org.1-ofd.ru";
Соединение = Новый HTTPСоединение(Сервер,,,,,,Новый ЗащищенноеСоединениеOpenSSL());

ЗаголовокHTTP = Новый Соответствие;
ЗаголовокHTTP.Вставить("Cookie", Cookie);

Запрос  = Новый HTTPЗапрос("/api/user/organisations/"+ИДОрг, ЗаголовокHTTP);
Ответ = Соединение.Записать(Запрос);
Показать
4. keln 73 22.05.20 20:15 Сейчас в теме
(3) Добрый день. Не пробовал, но было бы интересно проверить.
16. combita 08.09.20 13:44 Сейчас в теме
(3)Всем хорошего дня. Удалось ли кому-то добиться смены организации через /api/user/organisations/{id} ?
пришлите, пожалуйста, код запроса. Там по swagger PUT id и orgid и надо передать X-XSRF-TOKEN
5. uchenik 26.06.20 22:29 Сейчас в теме
Добрый день.
Никак не получалось получается получить список точек из org.1-ofd.ru, хотя авторизация проходит и токен получаю. В authToken получаю после успешной авторизации параметр PLAY_SESSION. Пробовал уже все варианты, ну никак, код ответа 401. Не подскажете?

 authToken =  ПрочитатьJSON(ЧтениеJSON, Ложь).authToken;
		 
		 Заголовки = Новый Соответствие;
		 Заголовки.Вставить("Cookie", authToken);
		 Запрос = Новый HTTPЗапрос("/api/kkms/retail-places",Заголовки);
		 Ответ = Соединение.Получить(Запрос);
		 
		 Заголовки = Новый Соответствие;
		 Заголовки.Вставить("X-XSRF-TOKEN", authToken);
		 Запрос = Новый HTTPЗапрос("/api/kkms/retail-places",Заголовки);
		 Ответ = Соединение.Получить(Запрос);
		 
		 Заголовки = Новый Соответствие;
		 Заголовки.Вставить("authToken", authToken);
		 Запрос = Новый HTTPЗапрос("/api/kkms/retail-places",Заголовки);
		 Ответ = Соединение.Получить(Запрос);
		 
		 Заголовки = Новый Соответствие;
		 Заголовки.Вставить("PLAY_SESSION", authToken);
		 Запрос = Новый HTTPЗапрос("/api/kkms/retail-places",Заголовки);
		 Ответ = Соединение.Получить(Запрос);
Показать
6. user1234025 27.06.20 03:04 Сейчас в теме
(5) Привет. Тоже пишу эту загрузку
В описании API пишут
Все запросы должны посылаться вместе с Cookie PLAY_SESSION, кроме вызова метода POST /api/user/login.
Во всех POST-запросах заголовок X-XSRF-TOKEN должен иметь значение, равное значению Cookie PLAY_SESSION.


Поэтому делаем так:
Cookie = "PLAY_SESSION="+ДанныеJSON.authToken;
Заголовки = Новый Соответствие;
Заголовки.Вставить("Cookie", Cookie);
Заголовки.Вставить("X-XSRF-TOKEN", ДанныеJSON.authToken);
7. uchenik 27.06.20 13:52 Сейчас в теме
(6)
Cookie = "PLAY_SESSION="+ДанныеJSON.authToken;
Заголовки = Новый Соответствие;
Заголовки.Вставить("Cookie", Cookie);
Заголовки.Вставить("X-XSRF-TOKEN", ДанныеJSON.authToken);


Нет слов, одни эмоции!!! Ну вот как бы догадаться до этого из строчек такого описания))))
Огромное, Большое спасибо дружище.
8. user1234025 28.06.20 04:46 Сейчас в теме
(7) А получилось интервал задать?
Делаю так
Cookie = "PLAY_SESSION="+authToken;
СтрокаТелоЗапроса = "fromDate="+ПолучитьUnixTS(ПериодЗагрузки.ДатаНачала)+"&toDate="+ПолучитьUnixTS(ПериодЗагрузки.ДатаОкончания);

Заголовки = Новый Соответствие;
Заголовки.Вставить("Cookie", Cookie);
Заголовки.Вставить("X-XSRF-TOKEN", authToken);
Запрос = Новый HTTPЗапрос("/api/kkms/"+ККТ.id+"/transactions"+"?"+СтрокаТелоЗапроса,Заголовки);

получаю пустой ответ, хотя данные есть
9. Mellentin 30.06.20 12:13 Сейчас в теме
(8) Такое ощущение, что фильтры не работают. Пробую через Postman отправить запрос за определенный интервал (время в UNIX-timestamp, проверил несколько раз) - и ничего не приходит. Отборы по transactionsTypes и др. тоже не работают. ЧЯДНТ никак не пойму :(
10. Mellentin 30.06.20 13:37 Сейчас в теме
(8) Нашел в инете от 2018 инфу: там в конце Unix TS даты ставили милисекунды:

$StartDate = $StartDate."000";


Я добавил три нуля к своим датам в запросе и тогда уже мне пришел ответ с документами за заданный период)

Неинформативно, однако. Хотя эта API и разрабатывалась для более глубокой интеграции, скорее всего, чем простое получение документов с сервера.
11. user1234025 30.06.20 17:21 Сейчас в теме
(10) да. я тоже дошел до этого опытным путем. Хотя в описании API для времени указано точность до секунд или милисекунд
12. uchenik 01.07.20 22:36 Сейчас в теме
А у меня не срабатывает отбор по закрытию смены. В ответе все операции.
Ресурс = Ресурс+"&transactionType=CLOSE_SHIFT";
13. uchenik 02.07.20 14:05 Сейчас в теме
Разобрался.

В файле "API баз. описание _v15.docx", предоставленном техподдержкой указан параметр transactionsTypes, а на https://org.1-ofd.ru/swagger/index.html указан transactionTypes. С ним сработало.
14. Arder 26.07.20 18:39 Сейчас в теме
Здрваствуйте. А можно договориться о такой же обработке для Бухгалтерия 3?
15. пользователь 12.08.20 15:23
Сообщение было скрыто модератором.
...
17. user1511114 23.12.20 19:18 Сейчас в теме
Присоединяюсь к предыдущему вопросу. У нас 1С:Бухгалтерия 8 КОРП (USB) . Тупо скачал вариант для Розница 2.3, попытался подцепить - не вышло. Не хотите доработать да установки в Бухгалтерии (условия обсудим)? Или просто я не ту версию скачал?
18. user1511114 23.12.20 19:55 Сейчас в теме
(17) уточняю: Бухгалтерия КОРП 3.0.84.46
19. пользователь 24.12.20 18:55
Сообщение было скрыто модератором.
...
20. пользователь 24.12.20 19:35
Сообщение было скрыто модератором.
...
21. user598688 06.07.21 13:24 Сейчас в теме

   СерверЗапроса = "org.1-ofd.ru";
   Соединение = Новый HTTPСоединение(СерверЗапроса,,,,,,Новый ЗащищенноеСоединениеOpenSSL(), );

   
   
   Запрос = Новый HTTPЗапрос("/api/user/login");
   Запрос.Заголовки.Вставить("Content-Type", "application/json");
 
   Запрос.Заголовки.Вставить("login", "lll");
   Запрос.Заголовки.Вставить("name", "string");
   Запрос.Заголовки.Вставить("password", "ppp");

   Результат = Соединение.ОтправитьДляОбработки(Запрос);
   Сообщить(Результат.КодСостояния);

Показать


в ответ получаю код 400, логин, пароль верный в чем м.б проблема?
22. keln 73 09.07.21 11:33 Сейчас в теме
(21)
SSL = Новый ЗащищенноеСоединениеOpenSSL();
	Соединение = Новый HTTPСоединение("org.1-ofd.ru",,,,,,SSL);	
	
	ЗаголовокHTTP = Новый Соответствие;
	ЗаголовокHTTP.Вставить("Content-Type", "application/json");
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.ПроверятьСтруктуру = Ложь;
	
	ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON;
	ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
	
	ЗаписьJSON.ЗаписатьНачалоОбъекта();
	
	ЗаписьJSON.ЗаписатьИмяСвойства("login");
	ЗаписьJSON.ЗаписатьЗначение(СокрЛП(Объект.Логин));
	
	ЗаписьJSON.ЗаписатьИмяСвойства("name");
	ЗаписьJSON.ЗаписатьЗначение(СокрЛП(Объект.Логин));
	
	ЗаписьJSON.ЗаписатьИмяСвойства("password");
	ЗаписьJSON.ЗаписатьЗначение(СокрЛП(Объект.Пароль));
	
	ЗаписьJSON.ЗаписатьКонецОбъекта();                   
	JSON_Запрос = ЗаписьJSON.Закрыть();	
	
	HTTPЗапрос = Новый HTTPЗапрос("/api/user/login",ЗаголовокHTTP);
	HTTPЗапрос.УстановитьТелоИзСтроки(JSON_Запрос);    
	
	Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Показать

У меня так.
Логин и пароль не нужно в заголовок засовывать.
Они идут в JSON запросе.
Оставьте свое сообщение