1С 8. Разрешительный режим на кассах. Честный знак. Онлайн проверка с 01.04.2024. Офлайн проверка ЛМ ЧЗ с 01.03.2025 (обычные и управляемые формы) плюс собственный сервис онлайн и офлайн проверки ЛМ ЧЗ

05.02.25

Интеграция - ККМ

Реализован механизм взаимодействия 1С 8 с Честным знаком Онлайн проверки и Офлайн проверки ЛМ ЧЗ. (обычные и управляемые формы) плюс реализовал собственный сервис онлайн и офлайн проверки ЛМЧЗ с целью минимизации внедряемого кода основной программы.

Скачать файл

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

Наименование По подписке [?] Купить один файл
ОнлайнПроверкаМарокЧерезЦРПТ_РР_001.cf
.cf 4,31Mb ver:001
1
1 Скачать (3 SM) Купить за 2 450 руб.

Для 1С 7.7: //infostart.ru/1c/tools/2077143/

Согласно документации, находящейся по ссылке:
https://честныйзнак.рф/business/projects/retail/checkout/regulations/ описал методику работы. Учел временные блокировки серверов (по умолчанию на 15 мин.), то, что запросы доступных площадок нужно делать раз в шесть часов, то, что может быть аварийный режим в самом ЦРПТ,...... , все эти ситуации работают в автоматическом режиме:

Функция ВыполнитьОнлайнПроверкуЦРПТ(ВходныеПараметры,ВыходныеПараметры,ПовторЗапроса=0) Экспорт	
	Рез	= Истина;      
	
	Если ПолучитьКонстанту("ОнлайнПроверкаМарокЧерезЦРПТ") И Не ПолучитьКонстанту("АварийнаяБлокировкаОнлайнПроверокМарокЧерезЦРПТ") Тогда						
		//Если ПроверитьТипМаркируемойПродукцииДляОнлайнПроверкиВЦРПТ(ВходныеПараметры.ТекНом)=1 Тогда    //Здесь проверяем, а нужно ли вообще делать проверку данного тимпа продукции									
			Если Не ЗначениеЗаполнено(ВходныеПараметры.Токен) Тогда       			
				ВыходныеПараметры.ОписаниеРезультата = "Ошибка! Не заполнен Токен в Константах для онлайн проверки ЦРПТ!";
				Рез	= Ложь;
			Иначе   
				РезПроверки	= ОбновитьДанныеПлощадокЦРПТ(ВходныеПараметры);			
				ТекущийСерверОнлайнПроверкиЦРПТ					= РезПроверки.Получить("ТекущийСерверОнлайнПроверкиЦРПТ");
				КоличествоДоступныхСерверовОнлайнПроверкиЦРПТ	= РезПроверки.Получить("КоличествоДоступныхСерверовОнлайнПроверкиЦРПТ");
				КодОтвета	= РезПроверки.Получить("КодОтвета");					
				ТекстОшибки	= РезПроверки.Получить("ТекстОшибки");				
				Если КодОтвета=203 Тогда
					//Включили аварийный режим!
				ИначеЕсли КодОтвета=401 Тогда					
					ВыходныеПараметры.ОписаниеРезультата = ТекстОшибки;
					Рез	= Ложь;
				ИначеЕсли Не ЗначениеЗаполнено(ТекущийСерверОнлайнПроверкиЦРПТ) Тогда
					ВыходныеПараметры.ОписаниеРезультата = "Ошибка! Нет доступных серверов для онлайн проверки в ЦРПТ!";										
					ВыходныеПараметры.ПроверитьОфлайн	 = Истина;
					Рез	= Ложь;
				Иначе               
					ВходныеПараметры.Вставить("ТекущийСерверОнлайнПроверкиЦРПТ",ТекущийСерверОнлайнПроверкиЦРПТ);
					РезПроверки = ВыполнитьОнлайнКонтрольМаркиВЦРПТ(ВходныеПараметры);				
					ТекстОшибки	= РезПроверки.Получить("ТекстОшибки");					
					Если ЗначениеЗаполнено(ТекстОшибки) Тогда          
						Рез	= Ложь;
						КодОтвета	= РезПроверки.Получить("КодОтвета");
						ВыходныеПараметры.ОписаниеРезультата = ТекстОшибки;						
						Если (КодОтвета<>200) Тогда
							Если (КодОтвета=203) или ((КодОтвета=5000) и (ПовторЗапроса=1)) Тогда //203 - Включена Аварийная ситуация!   5000 - просто можно пробивать далее без проверки!
								Если (КодОтвета=203) Тогда
									УстановитьСнятьАварийнуюБлокировкуОнлайнПроверкиЦРПТ(ТекущаяДата());
								КонецЕсли;	
								Рез	= Истина;
								ВыходныеПараметры.ОписаниеРезультата = "";
								ЗаписатьЛогОшибкиОнлайнПроверкиЦРПТ(ВходныеПараметры.ТекНом,ВходныеПараметры.текКМ,ТекстОшибки,КодОтвета);
							Иначе   								
								Если (КодОтвета=429) или (КодОтвета>=500) Тогда     															
									Если ПовторЗапроса	= 0 Тогда
										ПовторЗапроса	= 1;
									Иначе                    
										ПовторЗапроса	= 0;										
									КонецЕсли;																							
								Иначе
									ПовторЗапроса	= 0;									
								КонецЕсли;								
								Если ПовторЗапроса	= 0 и  КоличествоДоступныхСерверовОнлайнПроверкиЦРПТ>1 Тогда //Последний оставшийся сервер блокировать не будем, смысла особого не вижу!								
									УстановитьБлокировкуСервераОнлайнПроверкиЦРПТ(ТекущаяДата(),ТекущийСерверОнлайнПроверкиЦРПТ);     									
								КонецЕсли;									
Функция ВыполнитьОнлайнКонтрольМаркиВЦРПТ(ВходныеПараметры)
	Токен			= ВходныеПараметры.Токен;
	Марка			= ВходныеПараметры.текКМ;
	НомерФН			= ВходныеПараметры.НомерФН;
	ИНН				= ВходныеПараметры.ИНН;
	ТестовыйКонтур	= ВходныеПараметры.ТестовыйКонтур;    //С первого апреля 2024г. Тестовый контур работать не будет!!!   //АдресТестовый  = "markirovka.sandbox.crptech.ru";
	ТекущийСерверОнлайнПроверкиЦРПТ	= ВходныеПараметры.ТекущийСерверОнлайнПроверкиЦРПТ;
	
	Рез = Новый Соответствие();
	Рез.Вставить("ИдЗапроса","");
	Рез.Вставить("ВременнаяМетка","");
	Рез.Вставить("ТекстОшибки","");	
	Рез.Вставить("ВремяЗапроса",0);	
	Рез.Вставить("КодОтвета",0);
	
	Марка = JSONСтрока(СокрЛП(Марка));   	
	Марка = СтрЗаменить(Марка, "(Код29)", "\u001d");
	Марка = СтрЗаменить(Марка, Символ(29), "\u001d");
	Если ЗначениеЗаполнено(ТекущийСерверОнлайнПроверкиЦРПТ) Тогда		
		ДанныеУРЛ = РазобратьСерверПортИзСтроки(СокрЛП(ТекущийСерверОнлайнПроверкиЦРПТ));		
		АдресРесурса  = ДанныеУРЛ.Адрес;
		ПортРесурса   = ДанныеУРЛ.Порт;		
		Если ПортРесурса = 0 Тогда
			ПортРесурса = 443;
		КонецЕсли;			
		ИспШифрование = ДанныеУРЛ.Шифрование;				
	Иначе	
		Рез.Вставить("ТекстОшибки", "Ошибка! Не выбран сервер онлайн проверки ЦРПТ!");
		Возврат Рез;       
	КонецЕсли;   		
	Если ПустаяСтрока(ИНН)=0 Тогда
		ЧастьЗапросаИНН = ",""inn"":"""+СокрЛП(ИНН)+"""";
	Иначе
		ЧастьЗапросаИНН = "";
	КонецЕсли;  	
	Если ПустаяСтрока(НомерФН)=0 Тогда
		ЧастьЗапросаФН  = ",""fiscalDriveNumber"":"""+СокрЛП(НомерФН)+"""";
	Иначе
		ЧастьЗапросаФН  = "";
	КонецЕсли;		
	ТелоЗапросаJSON = "{""codes"":["""+Марка+"""]"+ЧастьЗапросаИНН+ЧастьЗапросаФН+"}"; 	
	
	ТаймаутОжидания	= ПолучитьКонстанту("ТаймаутОжиданияОтветаОтЦРПТ");
	Если ТаймаутОжидания=0 Тогда
		ТаймаутОжидания	= 2;
	КонецЕсли;
	Если ПолучитьКонстанту("СпособЗапросаВЦРПТ")=0 Тогда
		//Запрос средствами 1С --->		
		Заголовки = Новый Соответствие();
		Заголовки.Вставить("X-API-KEY",Токен);
		Заголовки.Вставить("Accept-Charset","utf-8");
		Заголовки.Вставить("Content-Type","application/json; charset=utf-8");  	
		HTTPЗапрос = Новый HTTPЗапрос("api/v4/true-api/codes/check",Заголовки);

 

Реализован механизм офлайн проверки КИ через ЛМ ЧЗ (Локальный модуль «Честный ЗНАК»), который начинает действовать с 01.03.2025г. Также через 1С можно произвести первоначальную инициализацию ЛМ ЧЗ, произвести проверку статуса ЛМЧЗ и дату последнего обновления БД.

Функция ОфлайнПроверкаКИ_ЛМЧЗ(ВходныеПараметры)
	АдресРесурса	= ВходныеПараметры.АдресРесурса;
	ПортРесурса		= ВходныеПараметры.ПортРесурса;
	ЛогинПароль		= ВходныеПараметры.ЛогинПароль;	
	НомерФН			= ВходныеПараметры.НомерФН;
	КИ				= ВходныеПараметры.КИ;
	Если АдресРесурса="" Тогда
		АдресРесурса	= "127.0.0.1";
	КонецЕсли;
	Если ПортРесурса=0 Тогда
		ПортРесурса	= 5995;
	КонецЕсли;	
	Если ЛогинПароль="" Тогда
		ЛогинПароль	= "admin:admin";
	КонецЕсли;
	ЛогинПароль		= "Basic "+Base64_Закодировать(ЛогинПароль);	
	
	Рез = Новый Соответствие();
	Рез.Вставить("ИдЗапроса","");
	Рез.Вставить("ВременнаяМетка","");
	Рез.Вставить("ТекстОшибки","");	
	Рез.Вставить("ВремяЗапроса",0);	
	Рез.Вставить("КодОтвета",0);
	   	
	ТаймаутОжидания	= ПолучитьКонстанту("ТаймаутОжиданияОтветаОтЦРПТ");
	Если ТаймаутОжидания=0 Тогда
		ТаймаутОжидания	= 2;
	КонецЕсли;
	
	Если ПолучитьКонстанту("СпособЗапросаВЦРПТ")=0 Тогда
		//Запрос средствами 1С --->
		Заголовки = Новый Соответствие();
		Заголовки.Вставить("Accept-Charset","utf-8");		
		Заголовки.Вставить("Content-Type","application/json; charset=utf-8");  	
		Заголовки.Вставить("Authorization",ЛогинПароль);		
		Заголовки.Вставить("X-ClientId",НомерФН);	
		HTTPЗапрос = Новый HTTPЗапрос("api/v1/cis/check?cis="+КИ,Заголовки);		   	
		Попытка					
			Соединение = Новый HTTPСоединение(АдресРесурса,ПортРесурса,,,,ТаймаутОжидани

 

Если произвести публикацию (достаточно только HTTP сервисы), то данную конфигурацию можно использовать как собственный сервис онлайн и офлайн проверки. Таким образом можно минимизировать изменение программного кода основной базы. Внутри конфигурации находиться обработка "ОнлайнПроверкаЧерезСобственныйСервис", которую можно сохранить как внешнюю и использовать в других программах 1С.

 

Во всех вариантах, в качестве ответа получаем готовый результат UUID для передачи на кассу Тега: 1265 (при положительном результате))))) ):

UUID=638f669e-7e8e-85a9-3453-2c429d001150&Time=1731658318006

 

В качестве примера все написанные запросы реализованы двумя вариантами: стандартными средствами 1С и через Curl.exe

Весь код программы выведен в отдельную подсистему.

Код полностью открыт. 

Тестировалось все на платформе: 8.3.17. (но думаю, проблем не будет, если даже опуститься до 8.2 и до 8.1 без управляемых форм) Конфигурация: любая!!!

Данный механизм можно взять как готовую основу для внедрения в свою программу. Логика работы с ЦРПТ реализована (согласно документации), думаю, почти вся.  Как минимум можно сэкономить немало времени на внедрении.

 

Марки нужно вводить с экранированным символом GS в виде:  "(Код29)"

Пример: ...........DEh8o1(Код29)918039(Код29)92nONJn6nwAm................

 

Обратите внимание: представленный механизм не производит проверку правильности вводимой марки и КИ!!!! Прежде чем задать вопрос, проверьте, что вводимая марка и КИ правильные.

См. также

Обмен с ГосИС Бюджетный учет Регламентированный учет и отчетность Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление холдингом Химическая промышленность Государственные, бюджетные структуры Электротехника и микроэлектроника Машиностроение и приборостроение Металлургическая промышленность Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Раздельный учет гособоронзаказа в 1С: Отчеты по исполнению госконтрактов, расчетно-калькуляционные материалы и контроль операций для исполнения в срок в 1С: Бухгалтерия 3.0 и Управление Холдингом 3.2. Простая настройка и полное соответствие законодательству. Профессиональный консалтинг и регулярные обновления продукта.

44000 руб.

28.08.2020    354893    2366    135    

1054

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

2917

Бюджетный учет Обмен с ГосИС Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Доработка конфигурации 1С:Бухгалтерия предприятия, редакция 3.0. реализована в виде расширения. Предназначена для ведения раздельного учета и автоматизации заполнения отчетности исполнения контрактов ГОЗ в конфигурациях 1С БП КОРП, ПРОФ, Базовая, БИТ.ФИНАНС.

55200 руб.

16.08.2019    93213    246    87    

143

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

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

828 руб.

15.12.2015    171872    851    368    

404

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

1055

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

Интеграция для работы 1С с ГИИС ДМДК. Государственная интегрированная информационная система в сфере контроля за оборотом драгоценных металлов, драгоценных камней и изделий из них на всех этапах этого оборота.

65000 руб.

12.04.2022    17048    142    30    

30

Бюджетный учет Обмен с ГосИС Бухгалтер Пользователь Бухгалтерский учет 1С:Управление производственным предприятием Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Для 1С: УПП 1.3 предлагаем Вашему вниманию подсистему "Раздельный учет результатов финансово-хозяйственной деятельности организаций, выполняющих государственный оборонный заказ (раздельный учет ГОЗ)". Ключевые возможности подсистемы: - Автоматическое заполнение регламентированного отчета «Исполнение контрактов ГОЗ»; - Расшифровка показателей отчета об исполнении контрактов ГОЗ с детализацией до документов; - Контроль хозяйственных операций на соответствие требованиям Постановления Правительства № 47; - Автоматизированный ввод начальных данных по контрактам, заключенным ранее даты начала использования подсистемы.

90000 руб.

25.09.2020    31367    42    10    

41

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    1957    2    0    

9
Оставьте свое сообщение