Настройка и пример работы локального модуля Честный знак для 1С 7.7

04.03.25

Интеграция - Обмен с ГосИС

Первоначальная настройка и пример работы Локального модуля Честный знак (обязателен для разрешительного режима при розничных продажах, при отсутствии связи с серверами ЧЗ).

Скачать файл

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

Наименование По подписке [?] Купить один файл
Настройка и пример работы Локального модуля Честный знак 1с 7.7
.ert 202,00Kb
17
17 Скачать (1 SM) Купить за 1 850 руб.

Разрешительный режим в системе «Честный ЗНАК» — это предварительная проверка кода маркированного товара для автоматической выдачи разрешения или запрета на продажу. 

Суть режима в том, что касса автоматически отправляет код маркировки в «Честный знак», как только продавец отсканирует этот код. Если касса получает положительный ответ от «Честного знака», то добавляет товар в чек. Если «Честный знак» сообщает об ошибке, касса не добавит товар в чек, значит, продать его не получится.

Запрос отправляется через специальные CDN-площадки Честного знака и если они недоступны, тогда должен включаться оффлайн-режим через специальный Локальный модуль Честного знака.

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

С 01 марта 2025 года в модуле реализована проверка на запрещенные марки, так называемый "черный список", с 01.09.2025 обещают сделать "белый список".  

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

Для работы с обработкой необходимо:

  1. Скачать дистрибутив локального модуля. Можно отсюда: https://честныйзнак.рф/local-module/ и установить его. Нужно придумать и запомнить логин и пароль для обращения к модулю.
  2. Запустить обработку и заполнить поля: логин и пароль локального модуля (вводили при установке).

 

 

Идентификационный токен, который нужно взять в личном кабинете ЧЗ

 

 

 

 

  1. Установить галочки напротив необходимых товарных групп и нажать кнопку «Инициализировать»

 

 

Модуль будет инициализирован, в него загрузятся указанные товарные группы и токен. После этого модуль будет готов к работе.

  1. Затем можно будет выполнить проверку марки. Это поле сделано для проверки механизма работы модуля. Код из обработки по проверке можно будет вставить в свою конфигурацию.

 

 

Обработка предназначена для 1С:Предприятия 7.7. Не зависит от конфигурации.

Тестировалась на конфигурации 1С: 7.7 Торговля и склад 9.2.984.  

Локальный модуль Честного знака 7.7 оффлайн-режим

См. также

Оптовая торговля Розничная торговля ККМ ЭДО и ОФД Обмен с ГосИС Системный администратор Программист Оперативный учет 7.7 Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

Поддерживаются новые ставки НДС 5% и 7% для УСН при продаже через ККТ. Подключение фискального регистратора к 1С 7.7 в режиме онлайн-кассы в соответствии с 54-ФЗ. Поддержка актуальных версий драйверов ККТ: ДТО 10 и ДТО 8 для Атол, 4.15, 5.16 для Штрих-М. Поддержка розничной продажи маркированной продукции (алкоголь, табак, обувь, лекарства, шины, одежда, белье, парфюмерия, молочная продукция, вода и пр.). Поддержка онлайн и офлайн (через Локальный Модуль ЧЗ) проверки маркировки в разрешительном режиме (РР).

2000 руб.

28.03.2017    496698    4536    3526    

2505

Оптовая торговля Обмен с ГосИС Программист Бухгалтер Платформа 1С v7.7 1C77 Сельское хозяйство и рыболовство Оптовая торговля, дистрибуция, логистика Пищевая промышленность Бухгалтерский учет Платные (руб)

В обработке реализован полный цикл работы с ГИС Меркурий из 1С на платфоме 7.70.027 (поддерживается конфигурация "Торговля и Склад") через Ветис.API: реализованы процедуры обмена с подсистемами заявок и справочников Ветис.API в формате 2.0.

5040 руб.

03.07.2018    38351    79    29    

62

Обмен с ГосИС Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Управление торговлей 10 Россия Абонемент ($m)

Уже с 01.04.2024 вводится так называемый "разрешительный" режим продажи маркированной продукции в розницу. Это значит, что перед продажей нужно запрашивать у сервиса ЦРПТ разрешение на реализацию каждой марки. Здесь кратко опишу, как это делается, и приложу примеры для 1С 8 и 7.7.

1 стартмани

15.03.2024    18443    195    kirlog    123    

31

Обмен с ГосИС Программист Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Ювелирная промышленность и торговля Россия Бухгалтерский учет Абонемент ($m)

Интеграция 1С 7.7 с ГИИС ДМДК (маркировка ювелирных изделий и драгоценных камней). Данная публикация является попыткой выяснения спроса на полноценную интеграцию конфигураций на базе платформы 1С 7.7 с ГИИС ДМДК (https://dmdk.ru/). На текущий момент реализована печать ценников-бирок, содержащие УИН продукции в формате ШК Datamatrix. Имеются планы разработки решения для учета розничных продаж через УТМ (Универсальный Транспортный Модуль) из 1С 7.7.

1 стартмани

01.03.2022    6415    1    victuan    2    

17

Обмен с ГосИС Программист Платформа 1С v7.7 1C77 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Абонемент ($m)

Конец 2021 и начало 2022 года принесло много увлекательной работы в связи с переходом на ГИИС ДМДК. Все движения драгоценных металлов и камней должны отражаться в ГИИС. Для этого есть два пути: ручной ввод или интеграция существующей учетной системы с ГИИС. Ручной ввод не подходит тем организациям, которые имеют большое количество движений, а интеграция слишком дорога для небольших магазинчиков. Но самое неприятное в том, что в настоящий момент для интеграции требуется обезличенная ЭЦП, а выдавать ее никто не может или не имеет права. Это и привело меня к разработке продукта, который бы позволил автоматизировать часть работы с помощью эмуляции действий пользователя в личном кабинете.

1 стартмани

04.02.2022    5587    0    aldan    0    

3

ККМ Обмен с ГосИС Бухгалтер Пользователь Оперативный учет 7.7 1С:Торговля и склад 7.7 Розничная и сетевая торговля (FMCG) Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка для загрузки базы кодов цен в ККТ "Меркурий" с помощью программы-конфигуратора MercConfig из базы Торговля и склад 9.2 1С: Предприятие 7.7.

1 стартмани

25.01.2021    9044    1    aleksandr_leiman    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. basil_m 6 28.01.25 09:47 Сейчас в теме
Добрый день, а как другие группы туда добавляются? Не вижу например молочку, воду.
2. basil_m 6 28.01.25 10:03 Сейчас в теме
(1) нашел, таблица 52, список поддерживаемых групп. Интересно, но там молочки и воды вообще нет
3. kadet 66 29.01.25 13:53 Сейчас в теме
В процедуру При открытии можно добавить всё, что нужно. Там список значений, а правильное наименование групп можно взять из руководства True-API.
4. Tarlich 118 29.01.25 19:07 Сейчас в теме
а если у меня на одном компе 2 организации ?
5. kadet 66 29.01.25 19:35 Сейчас в теме
(4) Это выдержка из метод. рекомендаций:
"ЛМ ЧЗ устанавливается на торговую точку в единственном экземпляре вне зависимости от
числа касс, каждый экземпляр ЛМ ЧЗ имеет свой уникальный идентификационный номер
(для каждого ИНН должен быть установлен отдельный экземпляр ЛМ ЧЗ)"
6. Tarlich 118 29.01.25 20:41 Сейчас в теме
(5) Если у меня база риб я же смогу в каждой точке установить указав одинаковый токен ? Для работы ЛМ нужен сертификат ? а если у меня на очке 1 ПК одна база и в ней 2 Организации?
7. kadet 66 30.01.25 08:00 Сейчас в теме
(6) По поводу РИБ не подскажу. Для работы ЛМ нужен только логин и пароль те, которые указывали при установке ЛМ. "для каждого ИНН должен быть установлен отдельный экземпляр ЛМ ЧЗ". Как это реализовать на 1 ПК думаю, что лучше задать вопрос в ЧЗ.
8. basil_m 6 30.01.25 17:10 Сейчас в теме
Добрый день. Скачал. При открытии:
Функция не обнаружена (JSONСтрока)
Процедура не обнаружена (СообщитьПо)
9. kadet 66 31.01.25 09:56 Сейчас в теме
16. vSAD 09.02.25 15:28 Сейчас в теме
10. basil_m 6 31.01.25 12:54 Сейчас в теме
Добавил в группы молочку с водой, установил модуль, инициализировал, проверил марку, вроде как всё работает.
Но такой вопрос: а как же получить идентификатор запроса, который в чеке нужно передавать?
11. basil_m 6 31.01.25 13:18 Сейчас в теме
Разобрался. Получить параметр "reqId".
12. kadet 66 31.01.25 16:41 Сейчас в теме
13. basil_m 6 31.01.25 17:49 Сейчас в теме
14. basil_m 6 05.02.25 12:37 Сейчас в теме
Подскажите, а что должно показываться по кнопке Статистика? Что-то у меня ничего не происходит
15. kadet 66 05.02.25 19:28 Сейчас в теме
(14) Там служебная информация по модулю "yenisei". Там мало, что понятно. Чтобы это увидеть нужно в модуле обработки установить флОтладка = 1. Или закомментить в процедуре СообщитьПо условие про эту переменную.
17. akrub 10.02.25 09:12 Сейчас в теме
Подскажите , а где вы взяли описание метода «Настроить список товарных групп» и для какой цели он нужен ?

просто в описании применения ЛМ 20.02.2024 RU.17221426.37140-34 31 01 в листе регистрации изменений содержится вот такая информация
"- Удалены разделы 4.1.2 и 4.2.2 с описанием метода «Настроить список товарных групп». Поддержка данного метода сохраниться, в дальнейшем данный метод будет удален из ЛМ ЧЗ"

или вы просто адаптировали код под 7.7 из типовых решений 1с ?
18. kadet 66 10.02.25 13:31 Сейчас в теме
(17) Когда я делал обработку на сайте было размещено ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ "Локальный модуль "Честный знак" Руководство системного программиста. В нем описано порядок инициализации и настройки ЛМ. Сейчас это руководство с сайта убрали. Видимо, и товарные группы настраивать в будущем не нужно будет. Просто нужно закомментить строку с этим модулем и вопрос будет решен. Спасибо за подсказку.
19. basil_m 6 14.02.25 19:46 Сейчас в теме
(18) Получается сейчас товарные группы при инициализации не имеют смысла? ЛМ инициализируется по всем группам?
20. kadet 66 17.02.25 09:03 Сейчас в теме
(19) Не подскажу. 12.02 обновили метод. указания. В них нет ничего про инициализацию по всем группам.
21. dmitry8200 28.02.25 10:40 Сейчас в теме
Здравствуйте, подскажите если код марки содержит символы Character Set 82 то по рекомендации ЧЗ требуется цитата "При передаче данного параметра, так как в составе КИ могут содержаться символы Character Set 82, параметр необходимо кодировать в соответствии с RFC 1738"
как это сделать? При использовании данной обработки к сожалению это не предусмотрено.
Если предавать марку например 01048657365749062155esJWe то все нормально, если 0104607166151292215AqJT%sSBxM<v то ошибки из-за символов.
22. kadet 66 28.02.25 13:44 Сейчас в теме
(21) Всегда думал, что это оно:

Функция JSONСтрока(Знач Стр) 
    Стр=СтрЗаменить(Стр,"\","\\");
    Стр=СтрЗаменить(Стр,Симв(10),"\n");
    Стр=СтрЗаменить(Стр,Симв(13),"\r");
    Стр=СтрЗаменить(Стр,СимволТабуляции,"\t");
    Стр=СтрЗаменить(Стр,"/","\/");
    Стр=СтрЗаменить(Стр,"""","\""");
	Стр=СтрЗаменить(Стр,"(29)","\u001d");
	Стр=СтрЗаменить(Стр,Симв(29),"\u001d");
    Возврат Стр
КонецФункции
Показать


Ошибался?
23. basil_m 6 28.02.25 14:57 Сейчас в теме
(22) проверил побольше марок, да, некоторые нормально, некоторые нет, видимо что-то недоэкранировано
24. dmitry8200 28.02.25 15:39 Сейчас в теме
Подскажите решение для таких символов. Как правильно их экранировать?
25. basil_m 6 28.02.25 16:06 Сейчас в теме
(24) читаю, вроде, что надо в этой функции экранировано, но на некоторых марках возвращается ошибка "Не удалось проверить марку. Код ответа: 400"
26. kadet 66 28.02.25 18:33 Сейчас в теме
(24) У меня что-то не попадаются такие коды. Но попробуйте вот в эту функцию обернуть КИЗ:
Функция URLEncode( value_ )

table = "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%1­3%14" +
"%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%2­8" +
"%29%2A%2B%2C%2D%2E%2F%30%31%32%33%34%35%36%37%38%39%3A%3B%3­C" +
"%3D%3E%3F%40%41%42%43%44%45%46%47%48%49%4A%4B%4C%4D%4E%4F%5­0" +
"%51%52%53%54%55%56%57%58%59%5A%5B%5C%5D%5E%5F%60%61%62%63%6­4" +
"%65%66%67%68%69%6A%6B%6C%6D%6E%6F%70%71%72%73%74%75%76%77%7­8" +
"%79%7A%7B%7C%7D%7E%7F%80%81%82%83%84%85%86%87%88%89%8A%8B%8­C" +
"%8D%8E%8F%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F%A­0" +
"%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF%B0%B1%B2%B3%B­4" +
"%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF%C0%C1%C2%C3%C4%C5%C6%C7%C­8" +
"%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%D­C" +
"%DD%DE%DF%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F­0" +
"%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF";

result = "";

value = сокрлп(value_);

length = СтрДлина( value );

Для i = 1 По length Цикл
symbol = Сред( value, i, 1 );
//code = КодСимвола( symbol );
code = КодСимволаASCII( symbol );
nextSymbol = symbol;

Если code=29 Тогда // разделитель блоков в марке - пропускаем
nextSymbol = "";
иначеЕсли не ( ((code>=48)и(code<=57 )) // цифры
или ((code>=65)и(code<=90 )) // латиница врег
или ((code>=97)и(code<=122)) ) // латиница нрег
Тогда
nextSymbol = Сред( table, code*3 + 1, 3 );
КонецЕсли;

result = result + nextSymbol;

КонецЦикла;

Возврат result;
КонецФункции
27. basil_m 6 28.02.25 20:00 Сейчас в теме
У вас в коде экранирование стоит для запроса POST. А проверка марки реализована GET. Для GET надо экранировать в соответствие с этими рекомендациями
Прикрепленные файлы:
Rekomenduemyy_algoritm_ekranirovaniya_spetsial_nyh_simvolov_v_kode_identifikatsii.pdf
28. x13RUS064 03.03.25 18:34 Сейчас в теме
Куда писать это экрианирование? в 1с? или сканер настраивать? таже ошибка 400
29. kadet 66 03.03.25 21:09 Сейчас в теме
(28) В модуль обработки, но оно там уже есть. Нужно только подправить под GET запрос. Пока руки не доходят.
30. kadet 66 04.03.25 19:51 Сейчас в теме
Обновил обработку. Добавил в неё функцию экранирования. Можно не качать заново, а в модуле заменить функцию:

Функция JSONСтрока(Знач Стр)  
	
	//API с использованием GET запросов
	Стр=СтрЗаменить(Стр,"!","%21");
	Стр=СтрЗаменить(Стр,"\","%5C");
	Стр=СтрЗаменить(Стр,Симв(34),"%22");
	Стр=СтрЗаменить(Стр,"%","%25");
	Стр=СтрЗаменить(Стр,"&","%26");
	Стр=СтрЗаменить(Стр,"`","%27");
	Стр=СтрЗаменить(Стр,"*","%2A");
	Стр=СтрЗаменить(Стр,"+","%2B");                                
	Стр=СтрЗаменить(Стр,"-","%2D");
	Стр=СтрЗаменить(Стр,".","%2E");
	Стр=СтрЗаменить(Стр,"/","%2F");
	Стр=СтрЗаменить(Стр,"_","%5F"); 
	Стр=СтрЗаменить(Стр,",","%2C");
	Стр=СтрЗаменить(Стр,":","%3A");                                
	Стр=СтрЗаменить(Стр,";","%3B");
	Стр=СтрЗаменить(Стр,"=","%3D");
	Стр=СтрЗаменить(Стр,"<","%3C");
	Стр=СтрЗаменить(Стр,">","%3E"); 
	Стр=СтрЗаменить(Стр,"?","%3F");
	Стр=СтрЗаменить(Стр,"(","%28");
	Стр=СтрЗаменить(Стр,")","%29");
	
	//API с использованием POST запросов
	
    Стр=СтрЗаменить(Стр,"\","\\");
    Стр=СтрЗаменить(Стр,Симв(10),"\n");
    Стр=СтрЗаменить(Стр,Симв(13),"\r");
    Стр=СтрЗаменить(Стр,СимволТабуляции,"\t");
    Стр=СтрЗаменить(Стр,"/","\/");
    Стр=СтрЗаменить(Стр,"""","\""");
	Стр=СтрЗаменить(Стр,"(29)","\u001d");
	Стр=СтрЗаменить(Стр,Симв(29),"\u001d");
    Возврат Стр  
	
КонецФункции
Показать


и строку 388 заменить строку на:

Метод = "/api/v1/cis/outCheck?cis=" + JSONСтрока(СокрЛП(Марка));


Коды из (21) отработали корректно.
rolin555; basil_m; +2 Ответить
31. dmitry8200 04.03.25 21:18 Сейчас в теме
(30) Спасибо. Будем пробовать.
32. basil_m 6 10.03.25 10:20 Сейчас в теме
Для информации. На метод outChek при проверке Оффлайн надо перейти до 1 сентября 2025 и там добавить еще в тег 1265 два параметра из ответа: Inst и Ver
Прикрепленные файлы:
rolin555; +1 Ответить
Оставьте свое сообщение