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

23.04.20

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
API загрузка чеков с 1-OFD.RU (Розница 2.2)
.epf 20,90Kb ver:1.0
8
8 Скачать (2 SM) Купить за 2 150 руб.
API загрузка чеков с 1-OFD.RU (Розница 2.3)
.epf 20,89Kb ver:1.0
56
56 Скачать (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С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

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

6000 руб.

27.02.2017    808701    5128    9736    

2923

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

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    172087    855    368    

404

Бюджетный учет ЭДО и ОФД Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Расширение для автоматизации процесса подписания электронных документов в мобильном приложении "Госключ" с видом подписи УКЭП/УНЭП, которое подходит для электронного подписания бухгалтерских документов, список которых утвержден в приказе Минфина №61н «Об утверждении унифицированных форм электронных документов бухгалтерского учета…»

500000 руб.

06.11.2024    4228    1    0    

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 или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

5880 руб.

25.05.2015    340208    2041    3112    

1058

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

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.

60000 руб.

19.12.2022    12892    36    25    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 Сейчас в теме
На скриншоте оно выводится, судя по коду -нет
25. user613240_sid2304 24.07.24 16:03 Сейчас в теме
Тип транзакции на скрине выводится, а в коде нет обработчика заполнения этой колонки...
Оставьте свое сообщение