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

23.04.20

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
API загрузка чеков с 1-OFD.RU (Розница 2.2)
.epf 20,90Kb
8
8
2 SM
Скачать Купить за 2 150 руб.
API загрузка чеков с 1-OFD.RU (Розница 2.3)
.epf 20,89Kb
53
53
2 SM
Скачать Купить за 2 150 руб.

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

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

 

 

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

 

 

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

 

 

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

 

 

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

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

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

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

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

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

См. также

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

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

8970 руб.

15.12.2015    168621    795    364    

394

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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    787871    4749    9507    

2816

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 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    93573    119    40    

210

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

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

35000 руб.

14.10.2022    8696    15    14    

11

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

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

5000 руб.

18.03.2019    111784    29    114    

181

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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    329519    1898    3031    

1013
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 запросе.
23. user613240_sid2304 16.07.24 12:50 Сейчас в теме
Добрый день, На форме вижу поле Статус ККТ онлайн, но ни в первой ни во второй обработке это поле не заполняется. Нет ссылок. Уточните как оно у вас по какому параметру в ОФД заполняется?
24. user613240_sid2304 17.07.24 09:42 Сейчас в теме
На скриншоте оно выводится, судя по коду -нет
Оставьте свое сообщение