[Артикс (руководство администратора)] All Content FeedConfluence Syndication Feedhttps://docs.artix.suРеализация лекарственных препаратовМиллер Викторияtag:docs.artix.su,2009:page-27531459-22024-03-28T09:40:36Z2019-12-19T03:32:37Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://docs.artix.su/display/~miller.v
">Миллер Виктория</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<div class="panel" style="border-width: 1px;"><div class="panelContent">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1711710217661 {padding: 0px;}
div.rbtoc1711710217661 ul {margin-left: 0px;}
div.rbtoc1711710217661 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1711710217661'>
<ul class='toc-indentation'>
<li><a href='#id-Реализациялекарственныхпрепаратов-Конфигурированиемодуля'>Конфигурирование модуля</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Продажалекарственныхпрепаратов'>Продажа лекарственных препаратов</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациялекарственныхпрепаратов-Добавлениелекарственныхпрепаратов'>Добавление лекарственных препаратов</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Подборлекарственныхпрепаратов'>Подбор лекарственных препаратов</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Разрешенныетипыданныхдлявводакодамаркировки'>Разрешенные типы данных для ввода кода маркировки</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Удалениелекарственныхпрепаратов'>Удаление лекарственных препаратов</a></li>
</ul>
</li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Возвратлекарственныхпрепаратов'>Возврат лекарственных препаратов</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Расфасовкалекарственныхпрепаратов'>Расфасовка лекарственных препаратов</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Заказлекарственныхпрепаратов'>Заказ лекарственных препаратов</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Проверкакодовмаркировкилекарственныхпрепаратов'>Проверка кодов маркировки лекарственных препаратов</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациялекарственныхпрепаратов-Структурасетибезкассовыхсерверов(толькокассы)'>Структура сети без кассовых серверов (только кассы)</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Структурасетискассовымисерверами'>Структура сети с кассовыми серверами</a></li>
</ul>
</li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"'>Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</a></li>
<li><a href='#id-Реализациялекарственныхпрепаратов-Отраслевыереквизиты'>Отраслевые реквизиты</a></li>
</ul>
</div></p>
</div></div><p>ФГИС МДЛП (Информационная система мониторинга движения лекарственных препаратов) создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга движения лекарственных препаратов.</p><p class="wiki-content">Система маркировки лекарственных препаратов охватывает все этапы оборота товара: от производителя до потребителя. На каждом шаге код маркировки проверяется.</p><p class="wiki-content">Для контроля лекарственных препаратов используется двумерный штрих-код Data Matrix, наносимый на поверхность упаковки. Data Matrix содержит в себе сведения о штрих-коде товара и коде идентификации.</p><p class="wiki-content">Лекарственные препараты могут быть проданы в упаковке или же расфасованы.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Регистрация лекарственного препарата реализована для ФР Атол и Атол 5.0.</p></div></div><h1 id="id-Реализациялекарственныхпрепаратов-Конфигурированиемодуля">Конфигурирование модуля</h1><p>Модуль МДЛП активируется параметром <code>mdlp</code> в конфигурационном файле <span><code>/linuxcash/cash/conf/ncash.</code><code>ini.d/mdlp.ini</code> в секции <code>[plugins]</code>.</span></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">mdlp</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>on</li><li>off</li></ul></td><td class="confluenceTd">Активация модуля МДЛП</td><td class="confluenceTd">По умолчанию <code>off</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[plugins]
; Мониторинг движения лекарственных препаратов
;mdlp = off</pre>
</div></div><p>Настройка модуля МДЛП производится в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>.</p><p>Каждой аптечной сети Минздрав или Росздравнадзор присваивает идентификатор субъекта обращения в ИС МДЛП. Идентификатор необходимо указать с помощью параметра <code>sid</code>.</p><p>Маска для проверки кода маркировки лекарственного препарата задается параметром <code>dataMatrixMask</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd"><p>sid</p></td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><p>Идентификатор места деятельности субъекта обращения</p></td><td colspan="1" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">dataMatrixMask</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Маска для проверки Data Matrix лекарственного препарата</td><td class="confluenceTd"><p>По умолчанию <code>01\d{14}21[a-zA-Z0-9]{13}91.{4}92.{44}</code></p></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов
; Идентификатор места деятельности субъекта обращения
; По умолчанию ""
;sid = ""
; Маска для проверки DataMatrix лекарственного препарата
; По умолчанию 01\d{14}21[a-zA-Z0-9]{13}91.{4}92.{44}
;dataMatrixMask=01\d{14}21[a-zA-Z0-9]{13}91.{4}92.{44}</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Код маркировки должен подходить только под одну маску для проверки DataMatrix.</p></div></div><h1 id="id-Реализациялекарственныхпрепаратов-Продажалекарственныхпрепаратов">Продажа лекарственных препаратов</h1><h2 id="id-Реализациялекарственныхпрепаратов-Добавлениелекарственныхпрепаратов">Добавление лекарственных препаратов</h2><p>Для определения лекарственного препарата у товара должен быть установлен признак <code>tmctype = 5</code> (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Barcodes–Штрих-коды">БД <code>Dictionaries</code> таблица <code>Barcodes</code></a>). При добавлении товара требуется считывание кода маркировки товара.</p><p>Добавление в чек товара с кодом маркировки осуществляется несколькими способами:</p><ol><li>Последовательным сканированием штрих-кода товара и кода маркировки:<ul><li>если штрих-код товара соответствует коду маркировки, то товар будет добавлен в чек,</li><li>если штрих-код товара не соответствует коду маркировки, то на экран будет выведена ошибка "Код маркировки не соответствует штрих-коду", товар в чек не будет добавлен.</li></ul></li><li>Сканированием кода маркировки (код маркировки содержит в себе данные штрих-кода, поэтому сканировать штрих-код не требуется).</li><li>Через форму подбора лекарственных препаратов. (см. ниже в разделе "Подбор лекарственных препаратов").</li></ol><p>Добавление лекарственного препарата другими способами (по коду, по наименованию, с помощью горячих клавиш) запрещено.</p><p>Так как код маркировки представляет собой уникальный код, то в товарной позиции может быть не более одной единицы товара. Применение модификатора "Изменение количества" к позиции с упаковкой лекарственного препарата запрещено.</p><p>Добавление в чек обычного товара по коду маркировки лекарственного препарата определяется параметром <code>oldMedicine</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>: </p><ul><li>при значении <code>true</code> товар будет добавлен в чек,</li><li>при значении <code>false</code> при добавлении товара в чек на экран будет выведена ошибка "У товара не указан признак маркированного лекарственного препарата. Обратитесь в службу техподдержки".</li></ul><p>В кассовом ПО Artix существует возможность поиска цены лекарственных препаратов с использованием кода маркировки, для этого необходимо:</p><ol><li>Загрузить цены для лекарственных препаратов в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Prices–Переоценки">БД <code>Dictionaries</code> таблице <code>Prices</code></a> (поля для заполнения: <code>barcode</code> – код маркировки, <code>price</code> – цена товара, <code>packingprice</code> – цена товара для расфасовки; остальные поля заполняются по необходимости).</li><li>Включить настройку <code>useMarkToFindPrice</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code>.</li></ol><p>При добавлении лекарственного препарата в чек поиск цены осуществляется по коду маркировки в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Prices–Переоценки">БД <code>Dictionaries</code> таблице <code>Prices</code></a>:</p><ul><li>если в таблице есть соответствующая запись, то используется цена из поля <code>price</code>. При расфасовке используется значение поля <code>paсkingprice</code>,</li><li>если в таблице нет соответствующей записи, поиск цены осуществляется по умолчанию.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd"><p>oldMedicine</p></td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd"><p>Добавлять маркированный лекарственный препарат в чек как немаркированный, если признак лекарственного препарата не задан и ввод происходит по коду маркировки</p></td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td colspan="1" class="confluenceTd">useMarkToFindPrice</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Использование кода маркировки для поиска цены лекарственного препарата</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов
...
; Добавлять маркированный лекарственный препарат в чек как немаркированный, если признак лекарственного препарата не задан и ввод происходит по коду маркировки
; По умолчанию false
;oldMedicine = false
...
; Использование кода маркировки для поиска цены лекарственного препарата
; По умолчанию false
;useMarkToFindPrice = false</pre>
</div></div><h2 id="id-Реализациялекарственныхпрепаратов-Подборлекарственныхпрепаратов">Подбор лекарственных препаратов</h2><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p><span>Использовать подбор лекарственных препаратов рекомендуется при <a href="https://docs.artix.su/pages/viewpage.action?pageId=27531957">разрешении экрана</a> 1024Х768, при меньших значениях экрана возможны проблемы с отображением.</span></p></div></div><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Учет остатков при подборе лекарственных препаратов (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Medicine–Лекарственныепрепараты">БД <code>Dictionaries</code> таблица <code>Medicine</code></a>) несовместим с настройками <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532526"><code>considerRemainsOfGoods</code> и <code>calculateRemainsOfGoods</code></a>.</p></div></div><p>В кассовом ПО Artix существует возможность добавления лекарственного препарата через форму подбора, для этого необходимо:</p><ol><li><p class="auto-cursor-target">Включить настройку <code>useSelectionMedicationsForm</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp.Pharmacy]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">useSelectionMedicationsForm</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Использовать форму подбора лекарственных препаратов</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp.Pharmacy]
; Использовать форму подбора лекарственных препаратов
; По умолчанию false
useSelectionMedicationsForm = true</pre>
</div></div></li><li><p>В секции <code>[UI.PharmChoiceForm.Items]</code> настроить отображение полей для формы выбора лекарств. Подробнее о настройке можно прочитать в разделе "<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531356">Графический интерфейс</a>".</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[UI.PharmChoiceForm.Items]
; Отображение списка лекарств в форме выбора
;fields = "receipt;;-2;true;1, name;Наименование;-1;true;128, country;Страна;-2;true;132, producer;Производитель;-2;true;132, remain;Остаток;-2;true;130, price;Цена;-2;true;130, series;Серия;-2;true;130, shelflife;Годен до;-2;true;130"</pre>
</div></div></li><li><p class="auto-cursor-target">Заполнить <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Medicine–Лекарственныепрепараты">таблицу <code>Medicine</code> в БД <code>Dictionaries</code></a>.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Лекарственные препараты будут добавлены в чек по цене, указанной в таблице <code>Medicine</code>. Цена упаковки задается в поле <code>price</code>, цена блистера в поле <code>packingprice</code>.</p></div></div></li><li>В контексте открытого документа нажать клавишу с командой <code>COMMAND_SELECTMEDICINE</code>. <span>Подробнее о настройке действия на клавишу можно прочитать в разделе "<a class="external-link" href="http://docs.artix.su/pages/viewpage.action?pageId=10649696" rel="nofollow">Настройка действий</a>".</span></li></ol><p><span>При нажатии клавиши, настроенной на подбор лекарственных препаратов, на экран выводится список товаров. Выбрать нужный товар можно используя клавиши навигации или функцию фильтрации. При использовании фильтра в список товаров попадают записи, начинающиеся с введенной последовательности.</span></p><p><span>Фильтрация работает в двух </span><span> режимах:</span></p><ul><li>по наименованию или цене,</li><li>по МНН (международное непатентованное название).</li></ul><p>Переключение режимов выполняется командой <code>COMMAND_SELECTMEDICINE</code>.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">При переключении на режим поиска по МНН поле ввода блокируется и в списке товаров остаются только товары, в которых есть полный список МНН выделенного товара.</div></div><p>При выборе лекарственных препаратов из списка будет открыт диалог ввода количества. Допустим ввод целого значения (упаковка) и дробного (блистер).</p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="panelContent">
<p>Пусть лекарственный препарат может продаваться как в упаковке (2 блистера по 10 таблеток) за 200 рублей, так и блистерами (по 10 таблеток) за 100 рублей.</p><p>Тогда необходимо:</p><ol><li>В БД <code>Dictionaries</code> таблицу <code>Barcodes</code> указать:<ul><li>в поле <code>cquant</code> = 2.000 (количество блистеров в упаковке).</li></ul></li><li>В БД <code>Dictionaries</code> таблицу <code>Medicine</code> указать:<ul><li>в поле <code>price</code> = 200 (цена за упаковку),</li><li>в поле <code>packingprice</code> = 100 (цена за блистер),</li><li>в поле <code>remainquant</code> = 50 (остаток блистеров).</li></ul></li></ol>
</div></div><p class="auto-cursor-target">После ввода количества лекарственного препарата требуется сканирование кода маркировки.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Если количество товара состоит из целого и дробного значений, например, 1 упаковка и 1 блистер, то в первую очередь необходимо отсканировать код маркировки целой упаковки, затем код маркировки для блистера.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p><span>При сканировании штрих-кода или кода маркировки лекарственного препарата, для которого заполнена таблица <code>Medicine</code> БД <code>Dictionaries</code>, на экран будет выведена форма подбора лекарственных препаратов с товарами, соответствующими введенному штрих-коду.</span></p></div></div><h2 id="id-Реализациялекарственныхпрепаратов-Разрешенныетипыданныхдлявводакодамаркировки">Разрешенные типы данных для ввода кода маркировки</h2><p>В кассовом ПО Artix реализована возможность настройки разрешенных типов данных для ввода кода маркировки, задается параметром <code>permittedInput</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции [<code>Mdlp</code>]:</p><p>При добавлении в чек маркированного товара</p><ul><li>сканированием кода маркировки с типом данных, не указанным в настройке, на экран будет выведена ошибка "Неверный тип ввода данных", </li><li>последовательным сканированием штрих-кода и кода маркировки с типом данных, не указанным в настройке, код маркировки будет проигнорирован.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">permittedInput</td><td class="confluenceTd"><p>целочисленный</p><p>(<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531840">битовая маска</a>)</p></td><td class="confluenceTd"><ul><li>0 – запрет ввода любых данных,</li><li>1 – текстовые данные,</li><li>2 – бинарные данные (если устройство может посылать непечатные символы),</li><li>3 – текстовые и бинарные данные.</li></ul></td><td class="confluenceTd">Разрешенные типы вводимых данных</td><td class="confluenceTd"><div class="content-wrapper"><p>По умолчанию разрешены все типы вводимых данных</p></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
...
; Разрешенные типы вводимых данных
; По умолчанию "" - все типы вводимых данных
;permittedInput =</pre>
</div></div><h2 id="id-Реализациялекарственныхпрепаратов-Удалениелекарственныхпрепаратов">Удаление лекарственных препаратов</h2><p>При сторнировании лекарственных препаратов требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего лекарственные препараты, операция выполняется без считывания кодов маркировки.</p><h1 id="id-Реализациялекарственныхпрепаратов-Возвратлекарственныхпрепаратов">Возврат лекарственных препаратов</h1><p>Возврат лекарственных препаратов в аптечную сеть может быть осуществлен в режиме возврата или возврата по чеку продажи.</p><p>В режиме возврата добавление лекарственного препарата в чек выполняется аналогично добавлению в чек продажи.</p><p>При возврате по чеку продажи позицию для возврата можно выбрать:</p><div><ol><li>Используя клавиши навигации с подтверждением выбора нажатием клавиши "Ввод" и последующим считыванием кода маркировки товара. </li><li>Считав штрих-код товара и код маркировки.</li><li>Считав код маркировки.</li></ol><p>Если при возврате по чеку продажи не используется <a class="external-link" href="http://docs.artix.su/pages/viewpage.action?pageId=14156568" rel="nofollow">форма выбора товаров</a>, то при переходе к формированию чека возврата лекарственные препараты удаляются из чека.</p><p>Выбор лекарственных препаратов в форме выбора товара для возврата не может быть отменен. Сторнирование лекарственных препаратов в этом случае выполняется в режиме формирования чека возврата.</p><p>Вернуть лекарственный препарат, который не был продан невозможно. Возврат лекарственных препаратов по чеку продажи на другой кассе запрещен.</p><h1 id="id-Реализациялекарственныхпрепаратов-Расфасовкалекарственныхпрепаратов">Расфасовка лекарственных препаратов</h1><p>В упаковке лекарственного препарата может быть несколько блистеров, которые можно продать по отдельности друг от друга. Для таких товаров в кассовом ПО Artix существует возможность применения расфасовки. Подробнее о настройке и применении модификатора можно прочитать в разделе "<a href="https://docs.artix.su/pages/viewpage.action?pageId=27532486">Расфасовка товара</a>".</p><p>При продаже расфасованных лекарственных препаратов необходимо отсканировать код маркировки, который нанесен на упаковку товара.</p><p>При продаже/возврате расфасованных лекарственных препаратов осуществляется контроль количества товара. При попытке продать/вернуть большее количество блистеров, чем было в упаковке на экран будет выведена ошибка "Количество товара с кодом маркировки не может превышать количество товара в упаковке".</p><p>Если была осуществлена продажа упаковки лекарственного препарата (без расфасовки), то при попытке вернуть лекарственный препарат частично на экран будет выведена ошибка "Нельзя вернуть позицию с расфасовкой. Товар был продан упаковкой".</p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример продажи расфасованного лекарственного препарата</b></div><div class="panelContent">
<p>В упаковке лекарственного препарата 10 блистеров.</p><p>Первый покупатель приобретает 3 блистера. Кассир добавляет в чек лекарственный препарат с расфасовкой, указывая количество 3. При добавлении товара необходимо сканировать код маркировки с упаковки.</p><p>Второй покупатель приобретает 7 блистеров. Кассир добавляет в чек лекарственный препарат с расфасовкой, указывая количество 7. При добавлении товара необходимо сканировать код маркировки с упаковки.</p><p>Последующая продажа лекарственного препарата с данным кодом маркировки невозможна.</p>
</div></div><h1 id="id-Реализациялекарственныхпрепаратов-Заказлекарственныхпрепаратов">Заказ лекарственных препаратов</h1><p>В кассовом ПО Artix реализована возможность заказа лекарственных препаратов. Для совершения заказа необходимо:</p><ol><li><p class="auto-cursor-target">Настроить подключение к серверу для заказа лекарственных препаратов в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp.Pharmacy.Order]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">url</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><p>Адрес сервера для заказа лекарственных средств</p></td><td class="confluenceTd">По умолчанию <code><span class="nolink"><span class="nolink">http://localhost</span></span></code></td></tr><tr><td colspan="1" class="confluenceTd">timeout</td><td colspan="1" class="confluenceTd">целочисленный</td><td colspan="1" class="confluenceTd">Таймаут запроса к серверу</td><td colspan="1" class="confluenceTd">По умолчанию <code>5</code> секунд<code><br/></code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp.Pharmacy.Order]
; Адрес сервера для заказа лекарственных средств
; Значение по умолчанию http://localhost
;url = "http://localhost"
; Таймаут запроса к серверу (в секундах)
; Значение по умолчанию 5
;timeout = 5</pre>
</div></div></li><li><p>В контексте подбора лекарственных препаратов выбрать нужный товар и нажать клавишу с командой <code>COMMAND_ORDERMEDICINE</code>.</p></li></ol><p>При нажатии клавиши, настроенной на заказ лекарственных препаратов, на экран выводится окно индикатора процесса отправки запроса на сервер:</p><ul><li>если запрос успешно отправлен и получен ответ, то на экран будет выведено сообщение "Заказ на <наименование_лекарственного_препарата> успешно отправлен",</li><li>если при отправке запроса возникла ошибка, то на экран будет выведено соответствующее сообщение.</li></ul></div><h1 id="id-Реализациялекарственныхпрепаратов-Проверкакодовмаркировкилекарственныхпрепаратов">Проверка кодов маркировки лекарственных препаратов</h1><p>Регламент работы по проверке кодов маркировки при продаже/возврате лекарственных препаратов определяется структурой торговой сети. Проверка кодов маркировки предполагает:</p><div><ul><li>проверку на факт продажи/возврата лекарственных препаратов (в БД кассовой программы),</li><li>проверку статуса кода маркировки на кассовом сервере,</li><li>проверку кода маркировки в "белом" списке на сервере (коды маркировки, разрешенные к продаже).</li></ul><p>Проверка кода маркировки в проданной продукции на кассе задается параметром <code>checkLocalUniqueness</code> в конфигурационном файле <code>/linuxcash/cash/conf/</code><code>ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении параметра <code>true</code> осуществляется проверка в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> в таблице <code>Goodsitem</code></a> на возможность продажи/возврата лекарственных препаратов:<br/><ul><li>если код маркировки был продан/возвращен ранее, то при попытке продать/вернуть товар на экран выводится сообщение об ошибке "Код маркировки уже был зарегистрирован ранее", товар в чек не добавляется,</li><li>если код маркировки не был продан/возвращен ранее, то товар добавляется в чек.</li></ul></li><li>при значении параметра <code>false</code> проверка кода маркировки в проданной продукции не осуществляется.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">checkLocalUniqueness</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кода маркировки в проданной продукции на кассе</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов
...
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
;checkLocalUniqueness = true</pre>
</div></div></div><div><h2 id="id-Реализациялекарственныхпрепаратов-Структурасетибезкассовыхсерверов(толькокассы)">Структура сети без кассовых серверов (только кассы)</h2><p>Проверка кодов маркировки в "белом" списке в БД кассовой программы задается параметром <code>enableMarkVerifyLocal</code> в конфигурационном файле <code>/linuxcash/cash/conf/</code><code>ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении параметра <code>true</code> проверка кода маркировки осуществляется в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Excisemarkwhite–"Белый"списокакцизныхмарок">БД <code>Dictionaries</code> в таблице <code>Excisemarkwhite</code></a>:<br/><ul><li>если код маркировки найден в списке, то товар добавляется в чек продажи,</li><li>если код маркировки отсутствует в списке, то на экран выводится сообщение об ошибке "Товар с таким кодом маркировки запрещен к продаже", товар в чек не добавляется.</li></ul></li><li>при значении параметра <code>false</code> проверка кода маркировки в "белом" списке не выполняется.</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Проверка кодов маркировки в "белом" списке на кассе выполняется только при значении параметра <code>enableMarkVerify = false</code> (проверка на кассовом сервере отключена).</p></div></div><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">enableMarkVerifyLocal</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверять коды маркировки на кассе</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов
...
; Проверять коды маркировки на кассе
; По умолчанию false
;enableMarkVerifyLocal = false</pre>
</div></div><h2 id="id-Реализациялекарственныхпрепаратов-Структурасетискассовымисерверами">Структура сети с кассовыми серверами</h2><p>Структура сети с кассовыми серверами позволяет осуществлять контроль:</p></div><div><ul><li>дублирования кодов маркировки (запрет повторной продажи/возврата одной и той же упаковки/блистера),</li><li>разрешенных к продаже кодов маркировки (запрет продажи/возврата товаров, коды маркировки которых не были внесены в "белый" список).</li></ul><p>Настройки подключения к кассовому серверу задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p></div><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd"><p>enableMarkVerify</p></td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кодов маркировки на сервере</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td colspan="1" class="confluenceTd"><p>markVerifyUrl</p></td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Url сервера проверки кодов маркировки</td><td colspan="1" class="confluenceTd"><p>По умолчанию <code>http://localhost:8080</code>.</p><p>Для работы с КС используется следующий url "<code>http://'IP-адрес КС':8080/CSrest/rest/partialmark/</code>"</p></td></tr><tr><td colspan="1" class="confluenceTd"><p>markVerifyTimeout</p></td><td colspan="1" class="confluenceTd">целочисленный</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки в секундах</td><td colspan="1" class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td colspan="1" class="confluenceTd"><p>ignoreMarkVerifyErrors</p></td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Игнорировать ошибки обращения к серверу проверки кодов маркировки</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td colspan="1" class="confluenceTd"><p>uniqueIdPattern</p></td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><p><br/></p></td><td colspan="1" class="confluenceTd"><p>Шаблон для формирования уникального идентификатора операции резервирования</p></td><td colspan="1" class="confluenceTd">По умолчанию "<code>%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])</code>"</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов
...
; Проверка кодов маркировки на сервере
; По умолчанию false
;enableMarkVerify = false
; Url сервера проверки кодов маркировки
; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/partialmark/"
;markVerifyUrl = http://localhost:8080/
; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
;markVerifyTimeout = 30
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
;ignoreMarkVerifyErrors = true
; Шаблон для формирования уникального идентификатора операции резервирования
; По умолчанию %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])
;uniqueIdPattern = %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])</pre>
</div></div><p>Проверка кодов маркировки на сервере задается при помощи параметра <code>enableMarkVerify</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении <code>true</code> осуществляется проверка кода маркировки на сервере,</li><li>при значении <code>false</code> проверка кода маркировки на сервере не осуществляется.</li></ul><p>Для проверки кодов маркировки на сервере торговой сети в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code> необходимо задать параметры подключения к серверу:</p><ul><li><code>markVerifyUrl</code> - URL сервера, где хранятся данные о кодах маркировки,</li><li><code>markVerifyTimeout</code> - таймаут ожидания ответа от сервера при проверке кодов маркировки.</li></ul><p>Настройками программы можно разрешать или запрещать продажу/возврат лекарственных товаров при возникновении ошибок обращения к серверу. Возможность игнорирования возникающих ошибок определяется параметром <code>ignoreMarkVerifyErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении <code>true</code> в случае возникновения ошибок подключения к серверу они игнорируются, продажа/возврат лекарственных товаров осуществляется без проверки кодов маркировки на сервере,</li><li>при значении <code>false</code> в случае возникновения ошибок подключения к серверу продажа товара не может быть выполнена. На экран будет выведена ошибка "Нет связи с сервером. Попробуйте позже".</li></ul><p>Шаблон для формирования уникального идентификатора операции резервирования определяется параметром <code>uniqueIdPattern</code> конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>. Идентификатор записывается <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248353">БД <code>DocumentsAll</code> таблица <code>Partialmark</code></a> в поле <code>reserveId</code> (БД кассового сервера). </p><p>При добавлении лекарственных товаров в чек продажи/возврата на кассовый сервер отправляется REST-запрос на получение <a class="external-link" href="http://192.169.1.199/pages/viewpage.action?pageId=15534280" rel="nofollow">статуса кода маркировки</a>. Статус кода маркировки может принимать следующие значения: </p><ul><li>0 – Марка не зарегистрирована в БД.</li><li>7 – Акцизная марка отсутствует в списке разрешенных к продаже.</li><li>10 – Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан.</li><li>11 – Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено.</li><li>100 – Повторный запрос подтверждения продажи марки.</li><li>101 – Заблокирована продажа/возврат марки в справочнике.</li><li>102 – Превышен лимит продажи товара, который продается частями. Например, продажа блистеров из одной упаковки.</li><li>Любое другое значение – неизвестный статус акцизной марки.</li></ul><p>Дальнейшее поведение программы определяется полученным статусом.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при возврате</th></tr><tr><td class="confluenceTd">Марка не зарегистрирована в БД</td><td class="confluenceTd">Товар с акцизной маркой добавляется в чек и может быть продан</td><td class="confluenceTd"><p>Если товар был продан, то он будет добавлен в чек возврата.</p><p>Если товар не был ранее продан, то на экран выводится сообщение "Товар с таким кодом маркировки не был продан", товар не добавляется в чек и не может быть возвращен</p></td></tr><tr><td class="confluenceTd">Акцизная марка отсутствует в списке разрешенных к продаже</td><td colspan="2" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже"</td></tr><tr><td class="confluenceTd">Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан</td><td colspan="2" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки в белом списке"</td></tr><tr><td class="confluenceTd">Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено</td><td colspan="2" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найдено соответствие акцизной марки и штрих-кода в белом списке"</td></tr><tr><td class="confluenceTd"><p>Повторный запрос подтверждения продажи марки</p></td><td colspan="2" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. По такому запросу уже было подтверждение продажи марки"</td></tr><tr><td class="confluenceTd">Заблокирована продажа/возврат марки в справочнике</td><td colspan="2" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Заблокирована продажа/возврат в справочнике"</td></tr><tr><td class="confluenceTd">Превышен лимит продажи товара, который продается частями. Например, продажа блистеров из одной упаковки</td><td colspan="2" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Превышен лимит продажи"</td></tr><tr><td colspan="1" class="confluenceTd">Неизвестный статус акцизной марки</td><td colspan="2" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере"</td></tr></tbody></table></div><p>После добавления товара в чек продажи/возврата код маркировки ставится в резерв на кассовом сервере.</p><p>Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:</p><ul><li>в режиме онлайн (по REST-запросу) – резервирование кода маркировки,</li><li>в режиме оффлайн (через очередь <a class="external-link" href="http://192.169.1.199/pages/viewpage.action?pageId=12452791" rel="nofollow">Artix-Queue</a>) – снятие с резерва кода маркировки (сторнирование), после закрытия чека перевод в статус "продан", "возвращен".</li></ul><h1 id="id-Реализациялекарственныхпрепаратов-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"">Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</h1><div class="panel" style="border-width: 1px;"><div class="panelContent">
<p>В кассовом ПО Artix реализована обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак" (разрешительный режим).</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Проверка производится только для товаров в чеке продажи.</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Помимо проверки валидности марки осуществляется проверка срока годности товара. Если у срока годности товара указана дата, но не указано время (в часах, минутах и секундах), то данный товар будет запрещен к продаже в полночь того же дня.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Разрешительный режим также поддержан для <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532494">софт-чеков</a> и <a href="https://docs.artix.su/pages/viewpage.action?pageId=53018648">онлайн-чеков</a>:</p><ul><li>проверка кодов маркировки в онлайн-чеках происходит одновременно для нескольких товаров, если код маркировки хотя бы одного товара в онлайн-чеке не прошел проверку в системе цифровой маркировки "Честный знак", то онлайн-чек восстановлен не будет,</li><li>для софт-чеков проверка кода маркировки товара происходит при сканировании маркированной позиции в заказе.</li></ul></div></div>
</div></div><p>Проверка кодов маркировки на сервере системы "Честный знак" задается при помощи параметра <code>enableMarkVerifyCrpt</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере системы "Честный знак",</span></li><li>при значении <code>false</code> <span class="confluence-link">проверка кода маркировки на сервере системы "Честный знак" </span>не осуществляется.</li></ul><p>Возможность игнорировать ошибки обращения к серверу системы "Честный знак" задается при помощи параметра <code>ignoreMarkVerifyCrptConnectionErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении <code>true</code> ошибки обращения к<span class="confluence-link"> серверу системы "Честный знак" игнорируются, продажа может быть выполнена,<br/></span></li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки на сервере <span class="confluence-link">системы "Честный знак"</span> на экран будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.</li></ul><p>Возможность запросить подтверждение добавления товара при провале проверки маркировки задается при помощи параметра <code>markVerifyCrptAskConfirmation</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении <code>true</code> на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши "Ввод"</span> товар будет добавлен в чек, <span>по нажатию клавиши "Отмена"</span> товар не будет добавлен в чек,<br/></span></li><li>при значении <code>false</code> на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">enableMarkVerifyCrpt</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверка кодов маркировки на сервере честного знака</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">markVerifyCrptUrl</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><br/></td><td class="confluenceTd">Url сервера проверки кодов маркировки честного знака</td><td class="confluenceTd"><p>По умолчанию <code>https://cdn.crpt.ru</code></p><p>Можно указать несколько значений через запятую</p></td></tr><tr><td class="confluenceTd">markVerifyCrptTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах</td><td class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td class="confluenceTd">ignoreMarkVerifyCrptConnectionErrors</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Игнорировать ошибки обращения к серверу честного знака</td><td class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td class="confluenceTd">markVerifyCrptAskConfirmation</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Запросить подтверждение добавления товара при провале проверки маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
...
; Проверка кодов маркировки на сервере честного знака
; По умолчанию false
;enableMarkVerifyCrpt = false
; Url сервера проверки кодов маркировки честного знака
; По умолчанию https://cdn.crpt.ru
;markVerifyCrptUrl = https://cdn.crpt.ru
; Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах
; По умолчанию 30
;markVerifyCrptTimeout = 30
; Игнорировать ошибки обращения к серверу честного знака
; По умолчанию true
;ignoreMarkVerifyCrptConnectionErrors = true
; Запросить подтверждение добавления товара при провале проверки маркировки
; По умолчанию false
;markVerifyCrptAskConfirmation = false
...</pre>
</div></div><p class="auto-cursor-target">В кассовом ПО Artix реализована возможность авторизации по токену в системе цифровой маркировки "Честный знак". Данная возможность задается при помощи параметра <code>xapikey</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции [<code>Mdlp</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">xapikey</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Токен для доступа к серверу честного знака</td><td class="confluenceTd"><div class="content-wrapper"><ul><li>При использовании одного токена для нескольких юридических лиц:<br/><code>xapikey = [<отдел1>.<отдел2>:<токен>]<br/></code></li><li>При использовании токена только для одного из юридических лиц, например, только для <code><отдел2></code>:<br/><code>xapikey = [<отдел1>:1],[<отдел2>:<токен>]<br/></code></li><li>При использовании токена для одного юридического лица:<br/><code>xapikey = [-1:<токен>]</code></li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Использование токена вида <code>xapikey = [1:<токен>] </code>недопустимо.</p></div></div></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
...
; Токен для доступа к серверу честного знака
; При использовании нескольких юрлиц задаются токены для отделов:
; xapikey = [<отдел1>:<токен1>],[<отдел2>.<отдел3>:<токен2>]
; При использовании одного юрлица токен задается для отдела -1
; xapikey = [-1:<токен>]
;xapikey =
...</pre>
</div></div><p>После авторизации по токену кассой в системе цифровой маркировки "Честный знак" будет получен список ведомств (CDN-площадок) для осуществления проверки кодов маркировки.</p><p>Ведомство для проверки кодов маркировки выбирается в порядке приоритета в зависимости от времени соединения – самый высокий приоритет имеет ведомство, соединение с которым произошло раньше остальных. Если соединение с первым ведомством было потеряно, то проверка будет осуществляться в ведомстве, которое следует далее по приоритету.</p><p>Настройки получения информации о CDN-площадках осуществляются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/crpt.ini</code> в секции [<code>CRPT</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">getInfoTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения списка CDN-площадок</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr><tr><td class="confluenceTd">healthCheckTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения состояния CDN-площадки</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[CRPT]
; Настройки взаимодействия с ЦРПТ
; Таймаут получения списка CDN-площадок
; по умолчанию 10 секунд
;getInfoTimeout = 10
; Таймаут получения состояния CDN-площадки
; по умолчанию 10 секунд
;healthCheckTimeout = 10</pre>
</div></div><p class="auto-cursor-target">При добавлении маркированных товаров в чек продажи на сервер системы "Честный знак" отправляется REST-запрос на получение статуса кода маркировки.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже по умолчанию</th></tr><tr><td class="confluenceTd">Товар с некорректным кодом маркировки</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки некорректен"</td></tr><tr><td class="confluenceTd">Товар с такой маркой не прошел проверку подлинности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не прошел проверку крипто подписи"</td></tr><tr><td class="confluenceTd">Товар не имеет признака нанесения марки на упаковку</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. У кода маркировки отсутствует признак нанесения на упаковку"</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан или снят с продажи</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не в обороте"</td></tr><tr><td class="confluenceTd">Товар с такой маркой имеет истекший срок годности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки просрочен"</td></tr><tr><td class="confluenceTd">Код маркировки данного товара выведен из оборота</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки выведен из оборота"</td></tr><tr><td class="confluenceTd">Товар с таким кодом маркировки не найден</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не найден"</td></tr><tr><td class="confluenceTd">Товар заблокирован одним из ведомств</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки заблокирован <ведомством>"</td></tr></tbody></table></div><p>В кассовом ПО Artix реализована возможность игнорировать конкретные статусы, получаемые при проверке кода маркировки на сервере системы "Честный знак".</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Функционал доступен только при выключенной настройке <code>markVerifyCrptAskConfirmation</code>.<code><br/></code></div></div><p>Данное поведение задается при помощи параметров, соответствующих полученным статусам, в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции <code>[Mdlp]</code>:</p><ul><li>при значении <code>deny</code> в случае возникновения ошибок <span class="confluence-link">на экран будет выведен </span>диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек,<span class="confluence-link"><br/></span></li><li>при значении <code>ask</code> в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши</span></span> "Продолжить" товар добавляется в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,</li><li>при значении <code>allow</code> статус <span class="confluence-link">игнорируется, товар будет добавлен в чек.</span></li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">ignoreCrptStatusValid</td><td class="confluenceTd">строковый</td><td rowspan="8" class="confluenceTd"><ul><li>deny</li><li>ask</li><li>allow</li></ul></td><td class="confluenceTd">Игнорировать результат проверки валидности кода маркировки</td><td rowspan="8" class="confluenceTd">По умолчанию <code>deny</code></td></tr><tr><td class="confluenceTd">ignoreCrptStatusVerified</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать результат проверки крипто подписи кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusUtilised</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак нанесения кода маркировки на упаковку</td></tr><tr><td class="confluenceTd">ignoreCrptStatusRealizable</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак возможности реализации кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusExpireDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать срок годности</td></tr><tr><td class="confluenceTd">ignoreCrptStatusSold</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать вывод из оборота</td></tr><tr><td class="confluenceTd">ignoreCrptStatusIsBlocked</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать блокировку КМ</td></tr><tr><td class="confluenceTd">ignoreCrptStatusFound</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать не найденный КМ</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
...
; Игнорировать получаемые статусы кода маркировки при проверке на сервере честного знака
; Возможные значения: "deny" - запретить продажу товара, если сервер вернул неверный статус,
; "ask" - запросить подтверждение продажи у кассира,
; "allow" - всегда разрешать продажу товара, независимо от получаемого статуса
; По умолчанию "deny"
; Игнорировать результат проверки валидности КМ
;ignoreCrptStatusValid = deny
; Игнорировать результат проверки крипто подписи КМ
;ignoreCrptStatusVerified = deny
; Игнорировать признак нанесения КМ на упаковку
;ignoreCrptStatusUtilised = deny
; Игнорировать признак возможности реализации КМ
;ignoreCrptStatusRealizable = deny
; Игнорировать срок годности
;ignoreCrptStatusExpireDate = deny
; Игнорировать вывод из оборота
;ignoreCrptStatusSold = deny
; Игнорировать блокировку КМ
;ignoreCrptStatusIsBlocked = deny
; Игнорировать не найденный КМ
;ignoreCrptStatusFound = deny
...</pre>
</div></div><h1 id="id-Реализациялекарственныхпрепаратов-Отраслевыереквизиты">Отраслевые реквизиты</h1><p>Отраслевые реквизиты передаются в ОФД только в чеках продажи.</p><p>Настройки отраслевых реквизитов задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/mdlp.ini</code> в секции [<code>Mdlp</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">foiv</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: идентификатор ФОИВ</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: дата документа основания (дд.мм.гггг)</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentNumber</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: номер документа основания</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Mdlp]
...
; Отраслевой реквизит: идентификатор ФОИВ
;foiv = 030
; Отраслевой реквизит: дата документа основания (дд.мм.гггг)
;documentDate = 21.11.2023
; Отраслевой реквизит: номер документа основания
;documentNumber = 1944
...</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">По результатам проверки в системе цифровой маркировки "Честный знак" формируется отраслевой реквизит вида "<code>UUID=<reqId>&Time=<reqTimestamp></code>", который передается в ОФД в теге 1265.</div></div>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531459">View Online</a>
·
<a href="https://docs.artix.su/pages/diffpagesbyversion.action?pageId=27531459&revisedVersion=2&originalVersion=1">View Changes Online</a>
</div>
</div>Миллер Виктория2019-12-19T03:32:37ZРеализация обувных товаровМиллер Викторияtag:docs.artix.su,2009:page-27531440-42024-03-28T09:39:48Z2019-02-06T08:59:07Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://docs.artix.su/display/~miller.v
">Миллер Виктория</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<div class="panel" style="border-width: 1px;"><div class="panelContent">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1711710217749 {padding: 0px;}
div.rbtoc1711710217749 ul {margin-left: 0px;}
div.rbtoc1711710217749 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1711710217749'>
<ul class='toc-indentation'>
<li><a href='#id-Реализацияобувныхтоваров-Конфигурированиемодуля'>Конфигурирование модуля</a></li>
<li><a href='#id-Реализацияобувныхтоваров-Продажаобувныхтоваров'>Продажа обувных товаров</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализацияобувныхтоваров-Добавлениеобувныхтоваров'>Добавление обувных товаров</a></li>
<li><a href='#id-Реализацияобувныхтоваров-Разрешенныетипыданныхдлявводакодамаркировки'>Разрешенные типы данных для ввода кода маркировки</a></li>
<li><a href='#id-Реализацияобувныхтоваров-Удалениеобувныхтоваров'>Удаление обувных товаров</a></li>
</ul>
</li>
<li><a href='#id-Реализацияобувныхтоваров-Возвратобувныхтоваров'>Возврат обувных товаров</a></li>
<li><a href='#id-Реализацияобувныхтоваров-Проверкакодовмаркировкиобувныхтоваров'>Проверка кодов маркировки обувных товаров</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализацияобувныхтоваров-Структурасетискассовымисерверами'>Структура сети с кассовыми серверами</a></li>
</ul>
</li>
<li><a href='#id-Реализацияобувныхтоваров-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"'>Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</a></li>
<li><a href='#id-Реализацияобувныхтоваров-Отраслевыереквизиты'>Отраслевые реквизиты</a></li>
</ul>
</div></p>
</div></div><p>Информационная система маркировки и мониторинга оборота обувных товаров создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга оборота обувных товаров.</p><p>Система маркировки обувных товаров охватывает все этапы оборота товара: от производителя до потребителя. На каждом шаге код маркировки обувного товара проверяется.</p><p>Для контроля обувных товаров используется двумерный штрих-код Data Matrix, наносимый на потребительскую упаковку, товар или товарный ярлык. Data Matrix содержит в себе сведения о штрих-коде товара и коде идентификации.</p><h1 id="id-Реализацияобувныхтоваров-Конфигурированиемодуля">Конфигурирование модуля</h1><p>Модуль МООТ активируется параметром <code>moot</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code><code>ini.d/moot.ini</code> в секции <code>[plugins]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">moot</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><ul><li>on</li><li>off</li></ul></td><td class="confluenceTd">Активация модуля МООТ</td><td class="confluenceTd">По умолчанию <code>off</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[plugins]
; Мониторинг оборота обувных товаров (обуви)
moot = off</pre>
</div></div><p>Настройка модуля МООТ производится в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>.</p><p>Маска для проверки кода маркировки обувных товаров задается настройкой <code>dataMatrixMask</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">dataMatrixMask</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Маска для проверки DataMatrix обувных товаров</td><td class="confluenceTd"><p>По умолчанию "<code>01\d{14}21.{13}(240[a-zA-Z0-9]{4}|\s+){0,1}91.{4}92.{84,95}</code>"</p></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
; Маска для проверки DataMatrix обуви
; По умолчанию 01\d{14}21.{13}(240[a-zA-Z0-9]{4}|\s+){0,1}91.{4}92.{84,95}
;dataMatrixMask=01\d{14}21.{13}(240[a-zA-Z0-9]{4}|\s+){0,1}91.{4}92.{84,95}</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Код маркировки должен подходить только под одну маску для проверки DataMatrix.</p></div></div><h1 id="id-Реализацияобувныхтоваров-Продажаобувныхтоваров">Пр<span>одажа обувных товаров</span></h1><h2 id="id-Реализацияобувныхтоваров-Добавлениеобувныхтоваров">Добавление обувных товаров</h2><p>Для определения обувного товара у товара должен быть установлен признак <code>op_mode = 65536</code> (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283">БД <code>Dictionaries</code> таблица <code>Tmc</code></a>). При добавлении товара требуется считывание кода маркировки товара.</p><p>Добавление в чек товара с кодом маркировки осуществляется двумя способами:</p><div><ul><li>последовательным сканированием штрих-кода/кода/артикула товара и кода маркировки,</li><li>сканированием кода маркировки (код маркировки содержит в себе данные штрих-кода, поэтому сканировать штрих-код не требуется).</li></ul><p>Так как код маркировки представляет собой уникальный код, то в товарной позиции может быть не более 1 единицы товара. Применение модификатора "Изменение количества" к позиции с обувным товаром запрещено.</p><p>Добавление в чек обувных товаров, как обычных (без ввода кода маркировки), определяется параметром <code>addWithoutScanMark</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>: </p><ul><li>при значении <code>true</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить обувь без маркировки,</li><li>при значении <code>false</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">addWithoutScanMark</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Добавлять обувь в чек без ввода кода маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
...
; Добавлять обувь в чек без ввода кода маркировки
; По умолчанию false
;addWithoutScanMark = false</pre>
</div></div><h2 id="id-Реализацияобувныхтоваров-Разрешенныетипыданныхдлявводакодамаркировки">Разрешенные типы данных для ввода кода маркировки</h2><p>В кассовом ПО Artix реализована возможность настройки разрешенных типов данных для ввода кода маркировки, задается параметром <code>permittedInput</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции [<code>Moot</code>]:</p><p>При добавлении в чек маркированного товара:</p><ul><li>сканированием кода маркировки с типом данных, не указанным в настройке, на экран будет выведена ошибка "Неверный тип ввода данных",</li><li>последовательным сканированием штрих-кода и кода маркировки с типом данных, не указанным в настройке, код маркировки будет проигнорирован. </li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">permittedInput</td><td class="confluenceTd"><p>целочисленный</p><p>(<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531840">битовая маска</a>)</p></td><td class="confluenceTd"><ul><li>0 – запрет ввода любых данных,</li><li>1 – текстовые данные,</li><li>2 – бинарные данные (если устройство может посылать непечатные символы),</li><li>3 – текстовые и бинарные данные.</li></ul></td><td class="confluenceTd">Разрешенные типы вводимых данных</td><td class="confluenceTd"><div class="content-wrapper"><p><span style="color: rgb(23,43,77);">По умолчанию разрешены все типы вводимых данных</span></p></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
...
; Разрешенные типы вводимых данных
; По умолчанию "" - все типы вводимых данных
;permittedInput =</pre>
</div></div><h2 id="id-Реализацияобувныхтоваров-Удалениеобувныхтоваров">Удаление обувных товаров</h2></div><p>При сторнировании обувных товаров требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего обувные товары, операция выполняется без считывания кодов маркировки.</p><h1 id="id-Реализацияобувныхтоваров-Возвратобувныхтоваров">Возврат обувных товаров</h1><p>Способ возврата обувных товаров в торговую сеть определяется наличием кода маркировки, с которым он был продан:</p><ul><li>если код маркировки присутствует, то возврат обуви осуществляется с использованием режимов возврата и возврата по чеку продажи,</li><li>если код маркировки не сохранился, то возврат обуви может быть осуществлен без сканирования кода маркировки в режиме возврата по чеку продажи.</li></ul><p>При возврате по чеку продажи позицию для возврата можно выбрать одним из способов:</p><ul><li>выбрав товар из списка в режиме выбора позиций для возврата и считав код маркировки товара,</li><li>выбрав товар из списка в режиме выбора позиций для возврата и нажав "без маркировки" в диалоге считывания кода маркировки,</li><li>считав код маркировки товара.</li></ul><p>Для возврата обувных товаров по чеку продажи реализована возможность выбора позиции без сканирования кода маркировки, которая определяется параметром <code>addWithoutScanMarkInBackBySale</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>: </p><ul><li>при значении <code>true</code> при выборе товара для возврата на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить обувь без маркировки,</li><li>при значении <code>false</code> при выборе товара для возврата на экран будет выведен диалог сканирования кода маркировки.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">addWithoutScanMarkInBackBySale</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Добавлять обувь в чек возврата по чеку продажи без ввода кода маркировки</td><td class="confluenceTd">По умолчанию <code>true</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
...
; Добавлять обувь в чек возврата по чеку продажи без ввода кода маркировки
; По умолчанию true
;addWithoutScanMarkInBackBySale = true</pre>
</div></div><p>Если при добавлении обувного товара в чек возврата по чеку продажи код маркировки не использовался, то при сторнировании данной позиции не будет требоваться считывание кода маркировки.</p><h1 id="id-Реализацияобувныхтоваров-Проверкакодовмаркировкиобувныхтоваров">Проверка кодов маркировки обувных товаров</h1><p>Регламент работы по проверке кодов маркировки при продаже и возврате по чеку продажи обувных товаров определяется структурой торговой сети. Проверка кодов маркировки предполагает:</p><ul><li>проверку на факт продажи/возврата обувных товаров (<span class="confluence-link">в БД кассовой программы</span>),</li><li>проверку статуса кода маркировки на кассовом сервере,</li><li>проверку кода маркировки в "белом" списке на сервере.</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Проверка статуса кода маркировки и его наличия в списке кодов маркировки, разрешенных к продаже, на кассовом сервере при использовании режима возврата не осуществляется.</div></div><p>Проверка кода маркировки в проданной продукции на кассе задается параметром <code>checkLocalUniqueness</code> в конфигурационном файле <code>/linuxcash/cash/conf/</code><code>ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>:</p><ul><li>при значении параметра <code>true</code> осуществляется проверка в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> в таблице <code>Goodsitem</code></a> на возможность продажи/возврата обувных товаров:<br/><ul><li>если код маркировки был продан/возвращен ранее, то при попытке продать/вернуть товар на экран выводится сообщение об ошибке "Код маркировки уже был зарегистрирован ранее", товар в чек не добавляется,</li><li>если код маркировки не был продан/возвращен ранее, то товар добавляется в чек.</li></ul></li><li>при значении параметра <code>false</code> проверка кода маркировки в проданной продукции не осуществляется.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">checkLocalUniqueness</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кода маркировки в проданной продукции на кассе</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
...
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
;checkLocalUniqueness = true</pre>
</div></div><h2 id="id-Реализацияобувныхтоваров-Структурасетискассовымисерверами">Структура сети с кассовыми серверами</h2><p>Структура сети с кассовыми серверами позволяет осуществлять контроль:</p><ul><li>дублей кодов маркировки (запрет повторной продажи/возврата одного и того же обувного товара),</li><li>разрешенных к продаже кодов маркировки (запрет продажи/возврата товаров, коды маркировки которых не были внесены в "белый" список).</li></ul><p>Настройки подключения к кассовому серверу задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">enableMarkVerify</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кодов маркировки на сервере</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td colspan="1" class="confluenceTd">markVerifyUrl</td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Url сервера проверки кодов маркировки</td><td colspan="1" class="confluenceTd"><p>По умолчанию <code><span class="nolink">http://localhost:8080</span></code>.</p><p>Для работы с КС используется url "<code>http://<host>:<<span style="color: rgb(72,72,72);">port></span>/CSrest/rest/sales/exciseMark/status</code>"</p></td></tr><tr><td colspan="1" class="confluenceTd">markVerifyTimeout</td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки в секундах</td><td colspan="1" class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td colspan="1" class="confluenceTd">ignoreMarkVerifyErrors</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Игнорировать ошибки обращения к серверу проверки кодов маркировки</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td colspan="1" class="confluenceTd">skipCheckExciseMark</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Игнорировать проверку АМ при возврате по чеку (для <a href="https://docs.artix.su/pages/viewpage.action?pageId=53018648">онлайн-чеков</a> при некорректных АМ)</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
; Настройки плагина мониторинга оборота обувных товаров(обуви)
...
; Проверка кодов маркировки на сервере
; По умолчанию false
enableMarkVerify=true
; Url сервера проверки кодов маркировки
; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status"
; По умолчанию http://<host>:<port>
markVerifyUrl=http://<host>:<port>/CSrest/rest/sales/exciseMark/status
; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
markVerifyTimeout=30
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
ignoreMarkVerifyErrors=true
; Игнорировать проверку АМ при возврате по чеку (для онлайн-чеков при некорректных АМ)
; По умолчанию false
;skipCheckExciseMark = false</pre>
</div></div><p>Проверка кодов маркировки на сервере задается при помощи параметра <code>enableMarkVerify</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере,</span></li><li>при значении <code>false</code> <span class="confluence-link">проверка кода маркировки на сервере</span> не выполняется.</li></ul><p>Подключение к серверу задается в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code> параметрами:</p><ul><li><code>markVerifyUrl</code> – URL кассового сервера,</li><li><code>markVerifyTimeout</code> – таймаут ожидания ответа от кассового сервера при проверке кодов маркировки.</li></ul><p>Настройками программы можно разрешать или запрещать продажу/возврат обувных товаров при возникновении ошибок обращения к кассовому серверу. Возможность игнорирования возникающих ошибок определяется параметром <code>ignoreMarkVerifyErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>:</p><ul><li>при значении <code>true</code> ошибки, возвращаемые кассовым сервером, игнорируются,</li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки на кассовом сервере продажа/возврат товара не может быть выполнена.</li></ul><p>При добавлении обувных товаров в чек продажи на кассовый сервер отправляется REST-запрос на получение <a class="external-link" href="http://docs.artix.su/pages/viewpage.action?pageId=15534280" rel="nofollow">статуса кода маркировки</a>. Дальнейшее поведение программы определяется полученным статусом.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже</th></tr><tr><td class="confluenceTd">Марка не зарегистрирована в БД</td><td class="confluenceTd">Товар с акцизной маркой добавляется в чек и может быть продан</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан"</td></tr><tr><td colspan="1" class="confluenceTd">Товар с такой маркой возвращен</td><td colspan="1" class="confluenceTd">Товар добавлен в чек и может быть продан</td></tr><tr><td colspan="1" class="confluenceTd">Марка зарезервирована в чеке продажи</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td></tr><tr><td colspan="1" class="confluenceTd">Марка снята с резерва в чеке продажи</td><td colspan="1" class="confluenceTd">Товар добавляется в чек и может быть продан</td></tr><tr><td colspan="1" class="confluenceTd">Марка зарезервирована в чеке возврата (чеке возврата по чеку продажи)</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td></tr><tr><td colspan="1" class="confluenceTd">Марка снята с резерва в чеке возврата (чеке возврата по чеку продажи)</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан"</td></tr><tr><td colspan="1" class="confluenceTd">Акцизная марка отсутствует в списке разрешенных к продаже</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже"</td></tr><tr><td colspan="1" class="confluenceTd">Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки в белом списке"</td></tr><tr><td colspan="1" class="confluenceTd">Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найдено соответствие акцизной марки и штрих-кода в белом списке"</td></tr><tr><td colspan="1" class="confluenceTd">Неизвестный статус акцизной марки</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере"</td></tr></tbody></table></div><p>После добавления товара в чек продажи/возврата по чеку продажи код маркировки ставится в резерв на кассовом сервере.</p><p>Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:</p><ul><li>в режиме онлайн (по <code>REST</code>-запросу) – резервирование кода маркировки,</li><li>в режиме оффлайн (через очередь <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532219">Artix-Queue</a>) – снятие с резерва кода маркировки (сторнирование), после закрытия чека перевод в статус "продан", "возвращен".</li></ul><h1 id="id-Реализацияобувныхтоваров-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"">Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</h1><div class="panel" style="border-width: 1px;"><div class="panelContent">
<p>В кассовом ПО Artix реализована обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак" (разрешительный режим).</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Проверка производится только для товаров в чеке продажи.</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Помимо проверки валидности марки осуществляется проверка срока годности товара. Если у срока годности товара указана дата, но не указано время (в часах, минутах и секундах), то данный товар будет запрещен к продаже в полночь того же дня.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Разрешительный режим также поддержан для <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532494">софт-чеков</a> и <a href="https://docs.artix.su/pages/viewpage.action?pageId=53018648">онлайн-чеков</a>:</p><ul><li>проверка кодов маркировки в онлайн-чеках происходит одновременно для нескольких товаров, если код маркировки хотя бы одного товара в онлайн-чеке не прошел проверку в системе цифровой маркировки "Честный знак", то онлайн-чек восстановлен не будет,</li><li>для софт-чеков проверка кода маркировки товара происходит при сканировании маркированной позиции в заказе.</li></ul></div></div>
</div></div><p>Проверка кодов маркировки на сервере системы "Честный знак" задается при помощи параметра <code>enableMarkVerifyCrpt</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере системы "Честный знак",</span></li><li>при значении <code>false</code> <span class="confluence-link">проверка кода маркировки на сервере системы "Честный знак" </span>не осуществляется.</li></ul><p>Возможность игнорировать ошибки обращения к серверу системы "Честный знак" задается при помощи параметра <code>ignoreMarkVerifyCrptConnectionErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции <code>[Moot]</code>:</p><ul><li>при значении <code>true</code> ошибки обращения к<span class="confluence-link"> серверу системы "Честный знак" игнорируются, продажа может быть выполнена,<br/></span></li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки на сервере <span class="confluence-link">системы "Честный знак"</span> на экран будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.</li></ul><p>Возможность запросить подтверждение добавления товара при провале проверки маркировки задается при помощи параметра <code>markVerifyCrptAskConfirmation</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/</code><code>moot.ini</code> в секции <code>[Moot]</code>:</p><ul><li>при значении <code>true</code> на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши "Ввод"</span> товар будет добавлен в чек, <span>по нажатию клавиши "Отмена"</span> товар не будет добавлен в чек,<br/></span></li><li>при значении <code>false</code> на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">enableMarkVerifyCrpt</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверка кодов маркировки на сервере честного знака</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">markVerifyCrptUrl</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><br/></td><td class="confluenceTd">Url сервера проверки кодов маркировки честного знака</td><td class="confluenceTd"><p>По умолчанию <code><span class="nolink">https://cdn.crpt.ru</span></code><br/></p><p>Можно указать несколько значений через запятую</p></td></tr><tr><td class="confluenceTd">markVerifyCrptTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах</td><td class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td class="confluenceTd">ignoreMarkVerifyCrptConnectionErrors</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Игнорировать ошибки обращения к серверу честного знака</td><td class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td class="confluenceTd">markVerifyCrptAskConfirmation</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Запросить подтверждение добавления товара при провале проверки маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
...
; Проверка кодов маркировки на сервере честного знака
; По умолчанию false
;enableMarkVerifyCrpt = false
; Url сервера проверки кодов маркировки честного знака
; По умолчанию https://cdn.crpt.ru
;markVerifyCrptUrl = https://cdn.crpt.ru
; Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах
; По умолчанию 30
;markVerifyCrptTimeout = 30
; Игнорировать ошибки обращения к серверу честного знака
; По умолчанию true
;ignoreMarkVerifyCrptConnectionErrors = true
; Запросить подтверждение добавления товара при провале проверки маркировки
; По умолчанию false
;markVerifyCrptAskConfirmation = false
...</pre>
</div></div><p class="auto-cursor-target">В кассовом ПО Artix реализована возможность авторизации по токену в системе цифровой маркировки "Честный знак". Данная возможность задается при помощи параметра <code>xapikey</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции [<code>Moot</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">xapikey</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Токен для доступа к серверу честного знака</td><td class="confluenceTd"><div class="content-wrapper"><ul><li>При использовании одного токена для нескольких юридических лиц:<br/><code>xapikey = [<отдел1>.<отдел2>:<токен>]<br/></code></li><li>При использовании токена только для одного из юридических лиц, например, только для <code><отдел2></code>:<br/><code>xapikey = [<отдел1>:1],[<отдел2>:<токен>]<br/></code></li><li>При использовании токена для одного юридического лица:<br/><code>xapikey = [-1:<токен>]</code></li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Использование токена вида <code>xapikey = [1:<токен>]</code> недопустимо.</p></div></div></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
...
; Токен для доступа к серверу честного знака
; При использовании нескольких юрлиц задаются токены для отделов:
; xapikey = [<отдел1>:<токен1>],[<отдел2>.<отдел3>:<токен2>]
; При использовании одного юрлица токен задается для отдела -1
; xapikey = [-1:<токен>]
;xapikey =
...</pre>
</div></div><p>После авторизации по токену кассой в системе цифровой маркировки "Честный знак" будет получен список ведомств (CDN-площадок) для осуществления проверки кодов маркировки.</p><p>Ведомство для проверки кодов маркировки выбирается в порядке приоритета в зависимости от времени соединения – самый высокий приоритет имеет ведомство, соединение с которым произошло раньше остальных. Если соединение с первым ведомством было потеряно, то проверка будет осуществляться в ведомстве, которое следует далее по приоритету.</p><p>Настройки получения информации о CDN-площадках осуществляются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/crpt.ini</code> в секции [<code>CRPT</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">getInfoTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения списка CDN-площадок</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr><tr><td class="confluenceTd">healthCheckTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения состояния CDN-площадки</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[CRPT]
; Настройки взаимодействия с ЦРПТ
; Таймаут получения списка CDN-площадок
; по умолчанию 10 секунд
;getInfoTimeout = 10
; Таймаут получения состояния CDN-площадки
; по умолчанию 10 секунд
;healthCheckTimeout = 10</pre>
</div></div><p class="auto-cursor-target">При добавлении маркированных товаров в чек продажи на сервер системы "Честный знак" отправляется REST-запрос на получение статуса кода маркировки.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже по умолчанию</th></tr><tr><td class="confluenceTd">Товар с некорректным кодом маркировки</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки некорректен"</td></tr><tr><td class="confluenceTd">Товар с такой маркой не прошел проверку подлинности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не прошел проверку крипто подписи"</td></tr><tr><td class="confluenceTd">Товар не имеет признака нанесения марки на упаковку</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. У кода маркировки отсутствует признак нанесения на упаковку"</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан или снят с продажи</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не в обороте"</td></tr><tr><td class="confluenceTd">Товар с такой маркой имеет истекший срок годности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки просрочен"</td></tr><tr><td class="confluenceTd">Код маркировки данного товара выведен из оборота</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки выведен из оборота"</td></tr><tr><td class="confluenceTd">Товар с таким кодом маркировки не найден</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не найден"</td></tr><tr><td class="confluenceTd">Товар заблокирован одним из ведомств</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки заблокирован <ведомством>"</td></tr></tbody></table></div><p>В кассовом ПО Artix реализована возможность игнорировать конкретные статусы, получаемые при проверке кода маркировки на сервере системы "Честный знак".</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Функционал доступен только при выключенной настройке <code>markVerifyCrptAskConfirmation</code>.<code><br/></code></div></div><p>Данное поведение задается при помощи параметров, соответствующих полученным статусам, в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/</code><code>moot.ini</code> в секции <code>[Moot]</code>:</p><ul><li>при значении <code>deny</code> в случае возникновения ошибок <span class="confluence-link">на экран будет выведен </span>диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек,<span class="confluence-link"><br/></span></li><li>при значении <code>ask</code> в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши</span></span> "Продолжить" товар добавляется в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,</li><li>при значении <code>allow</code> статус <span class="confluence-link">игнорируется, товар будет добавлен в чек.</span></li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">ignoreCrptStatusValid</td><td class="confluenceTd">строковый</td><td rowspan="8" class="confluenceTd"><ul><li>deny</li><li>ask</li><li>allow</li></ul></td><td class="confluenceTd">Игнорировать результат проверки валидности кода маркировки</td><td rowspan="8" class="confluenceTd">По умолчанию <code>deny</code></td></tr><tr><td class="confluenceTd">ignoreCrptStatusVerified</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать результат проверки крипто подписи кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusUtilised</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак нанесения кода маркировки на упаковку</td></tr><tr><td class="confluenceTd">ignoreCrptStatusRealizable</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак возможности реализации кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusExpireDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать срок годности</td></tr><tr><td class="confluenceTd">ignoreCrptStatusSold</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать вывод из оборота</td></tr><tr><td class="confluenceTd">ignoreCrptStatusIsBlocked</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать блокировку КМ</td></tr><tr><td class="confluenceTd">ignoreCrptStatusFound</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать не найденный КМ</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
...
; Игнорировать получаемые статусы кода маркировки при проверке на сервере честного знака
; Возможные значения: "deny" - запретить продажу товара, если сервер вернул неверный статус,
; "ask" - запросить подтверждение продажи у кассира,
; "allow" - всегда разрешать продажу товара, независимо от получаемого статуса
; По умолчанию "deny"
; Игнорировать результат проверки валидности КМ
;ignoreCrptStatusValid = deny
; Игнорировать результат проверки крипто подписи КМ
;ignoreCrptStatusVerified = deny
; Игнорировать признак нанесения КМ на упаковку
;ignoreCrptStatusUtilised = deny
; Игнорировать признак возможности реализации КМ
;ignoreCrptStatusRealizable = deny
; Игнорировать срок годности
;ignoreCrptStatusExpireDate = deny
; Игнорировать вывод из оборота
;ignoreCrptStatusSold = deny
; Игнорировать блокировку КМ
;ignoreCrptStatusIsBlocked = deny
; Игнорировать не найденный КМ
;ignoreCrptStatusFound = deny
...</pre>
</div></div><h1 id="id-Реализацияобувныхтоваров-Отраслевыереквизиты">Отраслевые реквизиты</h1><p>Отраслевые реквизиты передаются в ОФД только в чеках продажи.</p><p>Настройки отраслевых реквизитов задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/moot.ini</code> в секции [<code>Moot</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th scope="col" style="text-align: center;" class="confluenceTh">Наименование</th><th scope="col" style="text-align: center;" class="confluenceTh">Тип данных</th><th scope="col" style="text-align: center;" class="confluenceTh">Описание</th><th scope="col" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">foiv</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: идентификатор ФОИВ</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: дата документа основания (дд.мм.гггг)</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentNumber</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: номер документа основания</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Moot]
...
; Отраслевой реквизит: идентификатор ФОИВ
;foiv = 030
; Отраслевой реквизит: дата документа основания (дд.мм.гггг)
;documentDate = 21.11.2023
; Отраслевой реквизит: номер документа основания
;documentNumber = 1944
...</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">По результатам проверки в системе цифровой маркировки "Честный знак" формируется отраслевой реквизит вида "<code>UUID=<reqId>&Time=<reqTimestamp></code>", который передается в ОФД в теге 1265.</div></div>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531440">View Online</a>
·
<a href="https://docs.artix.su/pages/diffpagesbyversion.action?pageId=27531440&revisedVersion=4&originalVersion=3">View Changes Online</a>
</div>
</div>Миллер Виктория2019-02-06T08:59:07ZРеализация разливного пиваМиллер Викторияtag:docs.artix.su,2009:page-138021092-12024-03-28T09:38:43Z2023-10-17T10:29:37Z<div class="feed"> <p>
Page
<b>added</b> by
<a href=" https://docs.artix.su/display/~miller.v
">Миллер Виктория</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<div class="panel" style="border-width: 1px;"><div class="panelContent">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1711710217860 {padding: 0px;}
div.rbtoc1711710217860 ul {margin-left: 0px;}
div.rbtoc1711710217860 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1711710217860'>
<ul class='toc-indentation'>
<li><a href='#id-Реализацияразливногопива-Конфигурированиемодуля'>Конфигурирование модуля</a></li>
<li><a href='#id-Реализацияразливногопива-Продажаразливногопивабезучетаостатков'>Продажа разливного пива без учета остатков</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализацияразливногопива-Добавлениеразливногопивабезучетаостатков'>Добавление разливного пива без учета остатков</a></li>
<li><a href='#id-Реализацияразливногопива-Разрешенныетипыданныхдлявводакодамаркировки'>Разрешенные типы данных для ввода кода маркировки</a></li>
<li><a href='#id-Реализацияразливногопива-Удалениеразливногопивабезучетаостатков'>Удаление разливного пива без учета остатков</a></li>
</ul>
</li>
<li><a href='#id-Реализацияразливногопива-Продажаразливногопивасучетомостатков'>Продажа разливного пива с учетом остатков</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализацияразливногопива-Установкаинастройкасервисаучетаостатков'>Установка и настройка сервиса учета остатков</a></li>
<li><a href='#id-Реализацияразливногопива-Способыдобавленияостатков'>Способы добавления остатков</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализацияразливногопива-Постановкакеганакран'>Постановка кега на кран</a></li>
<li><a href='#id-Реализацияразливногопива-Загрузкаостатковввидесправочников'>Загрузка остатков в виде справочников</a></li>
</ul>
</li>
<li><a href='#id-Реализацияразливногопива-Удалениеостатков'>Удаление остатков</a></li>
<li><a href='#id-Реализацияразливногопива-Добавлениеразливногопивасучетомостатков'>Добавление разливного пива с учетом остатков</a></li>
<li><a href='#id-Реализацияразливногопива-Удалениеразливногопивасучетомостатков'>Удаление разливного пива с учетом остатков</a></li>
<li><a href='#id-Реализацияразливногопива-Просмотростатковразливногопива'>Просмотр остатков разливного пива</a></li>
</ul>
</li>
<li><a href='#id-Реализацияразливногопива-Возвратразливногопива'>Возврат разливного пива</a></li>
<li><a href='#id-Реализацияразливногопива-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"'>Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</a></li>
<li><a href='#id-Реализацияразливногопива-Отраслевыереквизиты'>Отраслевые реквизиты</a></li>
</ul>
</div></p>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Для продажи маркированного пива в бутылках необходимо использовать <a href="https://docs.artix.su/pages/viewpage.action?pageId=40468542">модуль маркированных товаров</a>.</p></div></div><p>Система мониторинга оборота разливного пива создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга оборота разливного пива.</p><p>Система охватывает все этапы оборота товара: от производителя до потребителя. На каждом шаге код проверяется, а после продажи товар снимается с оборота.</p><p>Для контроля разливного пива используется двумерный штрих-код Data Matrix, наносимый на поверхность кег. Data Matrix содержит в себе сведения о штрих-коде товара и коде идентификации.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Для продажи разливного пива у товара должен быть установлен признак <code>tmctype = 8</code> (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Barcodes–Штрих-коды" rel="nofollow">БД <code>Dictionaries</code> таблица <code>Barcodes</code> </a>) или товар должен входить в каталог с атрибутом <code>11</code> (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248284">БД <code>Dictionaries</code> таблица <code>Catalogattribute</code> </a> поле <code>attribute</code>).</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>В кассовом ПО Artix поддержана возможность продажи разливного пива в тару. О продаже товаров в тару можно прочитать в статье "<a href="https://docs.artix.su/pages/viewpage.action?pageId=27532495">Продажа в тару</a>".</p></div></div><h1 id="id-Реализацияразливногопива-Конфигурированиемодуля">Конфигурирование модуля</h1><p>Модуль активируется параметром <code>draftbeer</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[plugins]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th scope="col" style="text-align: center;" class="confluenceTh">Наименование</th><th scope="col" style="text-align: center;" class="confluenceTh">Тип данных</th><th scope="col" style="text-align: center;" class="confluenceTh">Возможные значения</th><th scope="col" style="text-align: center;" class="confluenceTh">Описание</th><th scope="col" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">draftbeer</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>on</li><li>off</li></ul></td><td class="confluenceTd">Мониторинг оборота разливного пива</td><td class="confluenceTd">По умолчанию <code>off</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[plugins]
; Мониторинг оборота разливного пива
;draftbeer = off</pre>
</div></div><p class="auto-cursor-target">Настройка модуля производится в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции [<code>DraftBeer</code>]:</p><p>Маска для проверки кода маркировки разливного пива задается параметром <code>dataMatrixMask</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th scope="col" style="text-align: center;" class="confluenceTh">Наименование</th><th scope="col" style="text-align: center;" class="confluenceTh">Тип данных</th><th scope="col" style="text-align: center;" class="confluenceTh">Описание</th><th scope="col" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">dataMatrixMask</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Маска для проверки Data Matrix разливного пива</td><td class="confluenceTd"><p>По умолчанию <code>01(?<barcode>[0-9]{14})21.{7}(\x{001d}|\s*)93.{4}(335[0-6]{1}[0-9]{6}){0,1}\s*</code></p></td></tr><tr><td class="confluenceTd">uniqueIdPattern</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Шаблон для формирования уникального идентификатора операции резервирования</td><td class="confluenceTd">По умолчанию <code>%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
; Настройки плагина мониторинга оборота разливного пива
...
; Маска для проверки DataMatrix разливного пива
; По умолчанию 01(?<barcode>[0-9]{14})21.{7}(\x{001d}|\s*)93.{4}(335[0-6]{1}[0-9]{6}){0,1}\s*
;dataMatrixMask=01(?<barcode>[0-9]{14})21.{7}(\x{001d}|\s*)93.{4}(335[0-6]{1}[0-9]{6}){0,1}\s*
; Шаблон для формирования уникального идентификатора операции резервирования
; По умолчанию %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])
;uniqueIdPattern = %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])
</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Код маркировки должен подходить только под одну маску для проверки Data Matrix.</p></div></div><h1 class="auto-cursor-target" id="id-Реализацияразливногопива-Продажаразливногопивабезучетаостатков">Продажа разливного пива без учета остатков</h1><h2 id="id-Реализацияразливногопива-Добавлениеразливногопивабезучетаостатков">Добавление разливного пива без учета остатков</h2><p>Добавление в чек товара с кодом маркировки осуществляется несколькими способами:</p><ul><li>последовательным сканированием штрих-кода товара и кода маркировки или использованием <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532455">горячей клавиши</a> (с назначением товара по коду/штрих-коду) и сканированием кода маркировки:<ul><li>если код/штрих-код товара соответствует коду маркировки, то товар будет добавлен в чек,</li><li>если код/штрих-код товара не соответствует коду маркировки, то на экран будет выведена ошибка "Код маркировки не соответствует штрих-коду", товар в чек не будет добавлен.</li></ul></li><li>сканированием кода маркировки (код маркировки содержит в себе данные кода/штрих-кода, поэтому сканировать код/штрих-код не требуется).</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>При продаже разливного пива без учета остатков разрешено добавление произвольного количества товара с одинаковым кодом маркировки.</p></div></div><p>Добавление в чек разливного пива без ввода кода маркировки определяется параметром <code>addWithoutScanMark</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>true</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить разливное пиво без маркировки,</li><li>при значении <code>false</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th scope="col" style="text-align: center;" class="confluenceTh">Наименование</th><th scope="col" style="text-align: center;" class="confluenceTh">Тип данных</th><th scope="col" style="text-align: center;" class="confluenceTh">Возможные значения</th><th scope="col" style="text-align: center;" class="confluenceTh">Описание</th><th scope="col" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">addWithoutScanMark</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Добавлять разливное пиво в чек без ввода кода маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Добавлять разливное пиво в чек без ввода кода маркировки
; По умолчанию false
;addWithoutScanMark = false</pre>
</div></div><h2 class="auto-cursor-target" id="id-Реализацияразливногопива-Разрешенныетипыданныхдлявводакодамаркировки">Разрешенные типы данных для ввода кода маркировки</h2><p>В кассовом ПО Artix реализована возможность настройки разрешенных типов данных для ввода кода маркировки, задается параметром <code>permittedInput</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><p>При добавлении в чек маркированного товара:</p><ul><li>сканированием кода маркировки с типом данных, не указанным в настройке, на экран будет выведена ошибка "Неверный тип ввода данных",</li><li>последовательным сканированием штрих-кода и кода маркировки с типом данных, не указанным в настройке, код маркировки будет проигнорирован.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th scope="col" style="text-align: center;" class="confluenceTh">Наименование</th><th scope="col" style="text-align: center;" class="confluenceTh">Тип данных</th><th scope="col" style="text-align: center;" class="confluenceTh">Возможные значения</th><th scope="col" style="text-align: center;" class="confluenceTh">Описание</th><th scope="col" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">permittedInput</td><td class="confluenceTd"><p>целочисленный</p><p>(<a href="https://docs.artix.su/pages/viewpage.action?pageId=12456269" rel="nofollow">битовая маска</a>)</p></td><td class="confluenceTd"><ul><li>0 – запрет ввода любых данных,</li><li>1 – текстовые данные,</li><li>2 – бинарные данные (если устройство может посылать непечатные символы),</li><li>3 – текстовые и бинарные данные.</li></ul></td><td class="confluenceTd">Разрешенные типы вводимых данных</td><td class="confluenceTd">По умолчанию разрешены все типы вводимых данных</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Разрешенные типы вводимых данных
; По умолчанию "" - все типы вводимых данных
;permittedInput =</pre>
</div></div><h2 id="id-Реализацияразливногопива-Удалениеразливногопивабезучетаостатков">Удаление разливного пива без учета остатков</h2><p>При сторнировании разливного пива требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего разливное пиво, операция выполняется без считывания кодов маркировки.</p><h1 id="id-Реализацияразливногопива-Продажаразливногопивасучетомостатков">Продажа разливного пива с учетом остатков</h1><h2 id="id-Реализацияразливногопива-Установкаинастройкасервисаучетаостатков">Установка и настройка сервиса учета остатков</h2><p>В кассовом ПО Artix реализована возможность учета остатков разливного пива при помощи сервиса <code>draftbeerservice</code>. Для возможности учета остатков необходимо:</p><ol><li><p class="auto-cursor-target">Установить пакет <code>artix-draftbeerservice</code> командой:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">apt install artix-draftbeerservice</pre>
</div></div><p>После установки сервис запустится автоматически.</p></li><li><p class="auto-cursor-target">Настроить сервис в конфигурационном файле <code>/linuxcash/cash</code>/<code>draftbeerservice/config/draftbeerservice.ini</code> в секции <code>[draftbeerservice]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">port</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Порт HTTP-сервера для обработки REST-запросов</td><td class="confluenceTd">По умолчанию <code>38085</code></td></tr><tr><td class="confluenceTd">remainDraftbeerItemsLifetime</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Срок хранения записей в <a href="https://docs.artix.su/pages/viewpage.action?pageId=138021055">БД <code>Dictionaries</code> таблицу <code>Remaindraftbeer</code></a> с момента подключения (в днях)</td><td class="confluenceTd"><p>По умолчанию <code>0</code> <em>(выключено)</em></p><p>При превышении срока хранения запись удаляется, если для кода маркировки нет остатков</p></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[draftbeerservice]
; Порт HTTP-сервера для обработки REST-запросов
; по умолчанию 38085
;port=38085
; Срок хранения записей в таблице dictionaries.remaindraftbeer с момента подключения.
; При превышении срока хранения запись удаляется, если для кода маркировки нет остатков
; по умолчанию 0 (выключено), указывается в днях
;remainDraftbeerItemsLifetime = 0</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Логирование работы сервиса ведется в файле <code>/linuxcash/logs/current/draftbeerservice.log</code>.</div></div></li><li><p class="auto-cursor-target">Для использования сервиса по учету остатков необходимо задать параметр <code>useRemain</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>true</code> после успешного закрытия документа данные об остатках сохраняются в <a href="https://docs.artix.su/pages/viewpage.action?pageId=138021055">БД <code>Dictionaries</code> таблицу <code>Remaindraftbeer</code></a>,</li><li><p class="auto-cursor-target">при значении <code>false</code> учет остатков не осуществляется.</p></li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd"><div class="content-wrapper"><p>useRemain</p></div></td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Использовать сервис по учету остатков</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Использовать сервис по учету остатков
; По умолчанию false
useRemain = true</pre>
</div></div></li><li><p class="auto-cursor-target">Указать объемы кега, которые могут быть добавлены в чек при постановке на кран, необходимо задать список значений с помощью параметра <code>kegVolume</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">kegVolume</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Предустановленные для выбора объемы кега при постановке на кран</td><td class="confluenceTd">По умолчанию <code>20</code>, <code>30</code>, <code>50</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Предустановленные для выбора объемы кега при постановке на кран
; По умолчанию 20,30,50
;kegVolume = "20,30,50"
</pre>
</div></div></li><li><p class="auto-cursor-target">Для ввода предельной даты реализации при постановке кега на кран необходимо задать параметр <code>requireExpirationDate</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>true</code> будет запрошен ввод предельной даты реализации при постановке кега на кран,</li><li>при значении <code>false</code> ввод предельной даты реализации при постановке кега на кран запрошен не будет.</li></ul><p class="auto-cursor-target">Возможность автоматически подставлять предельную дату реализации задается параметром <code>defaultExpirationDays</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">requireExpirationDate</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Запрашивать предельную дату реализации при постановке кега на кран</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">defaultExpirationDays</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">любое целое число</td><td class="confluenceTd">Автоматически подставлять предельную дату реализации</td><td class="confluenceTd"><p>По умолчанию <code>-1</code> <em> (выключено)</em></p><p>В диалоге ввода предельной даты реализации будет отображаться <em>текущая дата,</em> <em>увеличенная на значение настройки</em> (в днях)</p></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Запрашивать срок годности при постановке кега на кран
; По умолчанию false
;requireExpirationDate = false
; Автоматически подставлять предельную дату реализации
; Используется текущая дата, увеличенная на значение настройки (в днях)
; По умолчанию -1 (выключено)
;defaultExpirationDays = -1</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Предельная дата реализации должна превышать текущую не менее чем на один день, и не более, чем на один год.</p></div></div></li><li><p class="auto-cursor-target">Выполнить стыковку сервиса с кассой.<br/>Для этого необходимо задать параметры <code>markVerifyUrl</code> и <code>markVerifyTimeout</code>.<br/>Возможность игнорировать ошибки обращения к сервису проверки кодов маркировки задается при помощи параметра <code>ignoreMarkVerifyErrors</code>:</p><ul><li>при значении <code>true</code> ошибки обращения к сервису проверки кодов маркировки игнорируются, продажа может быть выполнена,</li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">markVerifyUrl</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><br/></td><td class="confluenceTd">URL сервиса проверки кодов маркировки</td><td class="confluenceTd"><p>По умолчанию <span class="nolink"><code>http://localhost:38085</code>.</span></p><p>Для корректной работы необходимо указать:</p><ul><li>хост – хост кассы, на которой установлен сервис <code>draftbeerservice</code>,</li><li>порт -- порт из настроек сервиса <code>draftbeerservice</code>.</li></ul></td></tr><tr><td class="confluenceTd">markVerifyTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd"><br/></td><td class="confluenceTd">Таймаут обращения к сервису проверки кодов маркировки в секундах</td><td class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td class="confluenceTd">ignoreMarkVerifyErrors</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Игнорировать ошибки обращения к сервису проверки кодов маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
; Настройки плагина мониторинга оборота разливного пива
; Url сервиса проверки кодов маркировки
;markVerifyUrl = http://localhost:38085
; Таймаут обращения к сервису проверки кодов маркировки в секундах
; По умолчанию 30
;markVerifyTimeout = 30
; Игнорировать ошибки обращения к сервису проверки кодов маркировки
; По умолчанию false
;ignoreMarkVerifyErrors = false
</pre>
</div></div></li></ol><h2 id="id-Реализацияразливногопива-Способыдобавленияостатков">Способы добавления остатков</h2><p>Остатки могут быть добавлены следующими способами:</p><ul><li>Постановка кега на кран в кассовом ПО</li><li>Загрузка остатков в виде справочников из внешней системы</li></ul><h3 id="id-Реализацияразливногопива-Постановкакеганакран">Постановка кега на кран</h3><p>Для постановки кега на кран необходимо:</p><ol><li>Создать пункт меню "Постановка кега на кран" с командой <code>COMMAND_CONNECT_TAP</code> в утилите администрирования Yuki. Подробнее о настройке действий и меню можно прочитать в разделе "<a href="https://docs.artix.su/pages/viewpage.action?pageId=10649696" rel="nofollow">Настройка действий</a>".<br/>При выборе пункта меню осуществляется переход в режим постановки кега на кран.</li><li>Добавить товар<ul><li>по штрих-коду с последующим сканированием кода маркировки,</li><li>по коду маркировки.</li></ul></li><li>Выбрать объем кега.</li><li>Ввести предельную дату реализации, если включена настройка <code>requireExpirationDate</code>.</li></ol><p>После успешной проверки позиций формируется документ "Постановка кега на кран". После закрытия документа данные об остатках записываются в <a href="https://docs.artix.su/pages/viewpage.action?pageId=138021055">БД <code>Dictionaries</code> таблицу <code>Remaindraftbeer</code> </a>. Для печати документа постановки кега на кран используется шаблон <code>connecttap.xml</code> из каталога <a href="https://docs.artix.su/pages/viewpage.action?pageId=27531420"> <code>/linuxcash/cash/reports/</code> </a>. </p><h3 id="id-Реализацияразливногопива-Загрузкаостатковввидесправочников">Загрузка остатков в виде справочников</h3><p>Справочники остатков разливного пива могут быть загружены на кассу следующими способами:</p><ul><li>напрямую на кассу – с помощью <a href="https://docs.artix.su/pages/viewpage.action?pageId=138021028">команд AIF</a>,</li><li>с <a href="https://docs.artix.su/pages/viewpage.action?pageId=40469776">кассового сервера</a>.</li></ul><h2 id="id-Реализацияразливногопива-Удалениеостатков">Удаление остатков</h2><p>Для удаления остатков необходимо:</p><ol><li>Создать пункт меню "Отключение кега от крана" с командой <code>COMMAND_DISCONNECT_TAP</code> в утилите администрирования Yuki. Подробнее о настройке действий и меню можно прочитать в разделе "<a href="https://docs.artix.su/pages/viewpage.action?pageId=10649696" rel="nofollow">Настройка действий</a>".<br/>При выборе пункта меню осуществляется переход в режим отключения кега от крана.</li><li>Отсканировать код маркировки товара, остатки которого необходимо удалить.</li></ol><p>После успешной проверки отсканированного кода маркировки формируется документ "Отключение от крана". После закрытия документа данные об остатках удаляются из <a href="https://docs.artix.su/pages/viewpage.action?pageId=138021055">БД <code>Dictionaries</code> таблицы <code>Remaindraftbeer</code></a>. Для печати документа отключения кега от крана используется шаблон <code>disconnecttap.xml</code> из каталога <a href="https://docs.artix.su/pages/viewpage.action?pageId=27531420"> <code>/linuxcash/cash/reports/</code></a>.</p><h2 id="id-Реализацияразливногопива-Добавлениеразливногопивасучетомостатков">Добавление разливного пива с учетом остатков</h2><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>При попытке добавить пиво в чек по коду маркировки будет выведена ошибка: "Добавление пива по коду маркировки запрещено".</p></div></div><p>После добавления товара <em>по штрих-коду</em> или <em><a href="https://docs.artix.su/pages/viewpage.action?pageId=27532455">горячей клавише</a></em> (с назначением товара по коду/штрих-коду) на сервис <code>draftbeerservice</code> отправляется запрос списка доступных кодов маркировки для введенного штрих-кода:</p><ul><li><p class="auto-cursor-target">если код/штрих-код соответствует коду маркировки и остатков пива достаточно для продажи, то товар будет добавлен в чек,</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Если у первого кода маркировки в списке количество меньше, чем требуется для продажи, то в чек добавляются позиции на основе следующих по списку кодов маркировки с тем же штрих-кодом.</p><p>Список упорядочен по дате подключения кега, начиная с самой ранней.</p></div></div></li><li><p>если общее количество пива в подключенных кегах меньше требуемого, то будет выведено сообщение вида: "Подключите новый кег. Доступное количество: <code><количество></code>",</p></li><li>если введенный штрих-код (или код, который соответствует штрих-коду остатков) не был добавлен в остатки ранее, то будет выведено сообщение о неудачной попытке подключения: "Пиво с таким штрих-кодом не подключено".</li></ul><p>В кассовом ПО Artix может быть задана возможность добавления товара <em>по коду</em>, определяется параметром <code>inputByBarcode</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>true:</code><ul><li>если введенный код принадлежит маркированному товару, то на сервис <code>draftbeerservice</code> отправляется запрос со списком штрих-кодов данного товара. В ответе на запрос от сервера будет получен код маркировки с остатками с самой ранней датой подключения. Товар будет добавлен в чек по штрих-коду, полученному из кода маркировки,</li><li>если товар не найден по коду, по полученному штрих-коду или введенный код не принадлежит маркированному товару, то товар не будет добавлен в чек.</li></ul></li><li>при значении <code>false</code> добавление товара по коду запрещено.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th scope="col" class="confluenceTh">Наименование</th><th scope="col" class="confluenceTh">Тип данных</th><th scope="col" class="confluenceTh">Возможные значения</th><th scope="col" class="confluenceTh">Описание</th><th scope="col" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">inputByBarcode</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Добавлять товар по штрих-коду, если введён код разливного пива</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Добавлять товар по штрих-коду, если введён код разливного пива
; По умолчанию false
inputByBarcode = true</pre>
</div></div><p>При успешном добавлении в чек для каждого штрих-кода выполняется запрос на постановку в резерв (<a href="https://docs.artix.su/pages/viewpage.action?pageId=138021056">БД <code>Documents</code> таблица <code>Draftbeeritem</code> </a> поле <code>status</code> = <code>3</code>). При сторнировании пива в чеке, на сервис отправляется запрос с отменой резерва, соответствующая запись удаляется из таблицы.</p><p>При закрытии чека проданные позиции пива отправляются на подтверждение через очередь с типом сообщения <code>partialreservation</code> (БД <code>Documents</code> таблица <code>Draftbeeritem</code> поле <code>status</code> = <code>1</code>).</p><h2 id="id-Реализацияразливногопива-Удалениеразливногопивасучетомостатков">Удаление разливного пива с учетом остатков</h2><p>При сторнировании позиции или всего чека с подключением к сервису по учету остатков операция выполняется без считывания кодов маркировки.</p><h2 id="id-Реализацияразливногопива-Просмотростатковразливногопива">Просмотр остатков разливного пива</h2><p>Для возможности просмотра остатков необходимо создать пункт меню "Просмотр остатков разливного пива" с командой <code>COMMAND_DRAFTBEER_REMAINS</code> в утилите администрирования Yuki. Подробнее о настройке действий и меню можно прочитать в разделе "<a href="https://docs.artix.su/pages/viewpage.action?pageId=10649696" rel="nofollow">Настройка действий</a>".</p><p>При выборе пункта меню на сервис отправляется запрос на получение списка актуальных остатков по подключенным кодам маркировки из <a href="https://docs.artix.su/pages/viewpage.action?pageId=138021055">БД <code>Dictionaries</code> таблицы <code>Remaindraftbeer</code> </a>. Для просмотра подробной информации о каждой записи в списке кодов маркировки необходимо выбрать позицию или сканировать соответствующий код маркировки.</p><p>Если товаров нет на остатке, то при попытке просмотреть информацию об остатках пива будет выведено предупреждение: "Товаров нет на остатке".</p><h1 id="id-Реализацияразливногопива-Возвратразливногопива">Возврат разливного пива</h1><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>При возврате разливного пива остатки не восстанавливаются, возврат осуществляется без обращения на сервис учета остатков <code>draftbeerservice</code>.</p></div></div><p>Возврат разливного пива в торговую сеть может быть осуществлен в режиме возврата или возврата по чеку продажи.</p><p>В режиме возврата добавление разливного пива в чек выполняется аналогично добавлению в чек продажи. В режиме возврата по чеку продажи, независимо от настройки <code>
<a href="#id-Реализацияразливногопива-useRemain">useRemain</a></code>, пиво добавляется в чек с данными из чека продажи без контроля кода маркировки.</p><p>Если при возврате по чеку продажи не используется <a href="https://docs.artix.su/pages/viewpage.action?pageId=14156568" rel="nofollow">форма выбора товаров</a>, то при переходе к формированию чека возврата разливное пиво удаляется из чека.</p><p>Выбор разливного пива в форме выбора товара для возврата не может быть отменен. Сторнирование разливного пива в этом случае выполняется в режиме формирования чека возврата.</p><h1 id="id-Реализацияразливногопива-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"">Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</h1><div class="panel" style="border-width: 1px;"><div class="panelContent">
<p>В кассовом ПО Artix реализована обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак" (разрешительный режим).</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Проверка производится только для товаров в чеке продажи.</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Помимо проверки валидности марки осуществляется проверка срока годности товара. Если у срока годности товара указана дата, но не указано время (в часах, минутах и секундах), то данный товар будет запрещен к продаже в полночь того же дня.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Разрешительный режим также поддержан для <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532494">софт-чеков</a> и <a href="https://docs.artix.su/pages/viewpage.action?pageId=53018648">онлайн-чеков</a>:</p><ul><li>проверка кодов маркировки в онлайн-чеках происходит одновременно для нескольких товаров, если код маркировки хотя бы одного товара в онлайн-чеке не прошел проверку в системе цифровой маркировки "Честный знак", то онлайн-чек восстановлен не будет,</li><li>для софт-чеков проверка кода маркировки товара происходит при сканировании маркированной позиции в заказе.</li></ul></div></div>
</div></div><p><span class="confluence-anchor-link" id="id-Реализацияразливногопива-enableMarkVerifyCrpt"></span>Проверка кодов маркировки на сервере системы "Честный знак" задается при помощи параметра <code>enableMarkVerifyCrpt</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере системы "Честный знак",</span></li><li>при значении <code>false</code> <span class="confluence-link">проверка кода маркировки на сервере системы "Честный знак" </span>не осуществляется.</li></ul><p>Возможность игнорировать ошибки обращения к серверу системы "Честный знак" задается при помощи параметра <code>ignoreMarkVerifyCrptConnectionErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>true</code> ошибки обращения к<span class="confluence-link"> серверу системы "Честный знак" игнорируются, продажа может быть выполнена,<br/></span></li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки на сервере <span class="confluence-link">системы "Честный знак"</span> на экран будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.</li></ul><p>Возможность запросить подтверждение добавления товара при провале проверки маркировки задается при помощи параметра <code>markVerifyCrptAskConfirmation</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer</code> <code>.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>true</code> на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши "Ввод"</span> товар будет добавлен в чек, <span>по нажатию клавиши "Отмена"</span> товар не будет добавлен в чек,<br/></span></li><li>при значении <code>false</code> на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">enableMarkVerifyCrpt</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверка кодов маркировки на сервере честного знака</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">markVerifyCrptUrl</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><br/></td><td class="confluenceTd">Url сервера проверки кодов маркировки честного знака</td><td class="confluenceTd"><p>По умолчанию <code>https://cdn.crpt.ru</code></p><p>Можно указать несколько значений через запятую</p></td></tr><tr><td class="confluenceTd">markVerifyCrptTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах</td><td class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td class="confluenceTd">ignoreMarkVerifyCrptConnectionErrors</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Игнорировать ошибки обращения к серверу честного знака</td><td class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td class="confluenceTd">markVerifyCrptAskConfirmation</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Запросить подтверждение добавления товара при провале проверки маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Проверка кодов маркировки на сервере честного знака
; По умолчанию false
;enableMarkVerifyCrpt = false
; Url сервера проверки кодов маркировки честного знака
; По умолчанию https://cdn.crpt.ru
;markVerifyCrptUrl = https://cdn.crpt.ru
; Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах
; По умолчанию 30
;markVerifyCrptTimeout = 30
; Игнорировать ошибки обращения к серверу честного знака
; По умолчанию true
;ignoreMarkVerifyCrptConnectionErrors = true
; Запросить подтверждение добавления товара при провале проверки маркировки
; По умолчанию false
;markVerifyCrptAskConfirmation = false
...</pre>
</div></div><p class="auto-cursor-target">В кассовом ПО Artix реализована возможность авторизации по токену в системе цифровой маркировки "Честный знак". Данная возможность задается при помощи параметра <code>xapikey</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции [<code>DraftBeer</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">xapikey</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Токен для доступа к серверу честного знака</td><td class="confluenceTd"><div class="content-wrapper"><ul><li>При использовании одного токена для нескольких юридических лиц:<br/><code>xapikey = [<отдел1>.<отдел2>:<токен>]<br/></code></li><li>При использовании токена только для одного из юридических лиц, например, только для <code><отдел2></code>:<br/><code>xapikey = [<отдел1>:1],[<отдел2>:<токен>]<br/></code></li><li>При использовании токена для одного юридического лица:<br/><code>xapikey = [-1:<токен>]</code></li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Использование токена вида <code>xapikey = [1:<токен>]</code> недопустимо, необходимо указать все отделы либо значение <code>-1</code></p></div></div></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Токен для доступа к серверу честного знака
; При использовании нескольких юрлиц задаются токены для отделов:
; xapikey = [<отдел1>:<токен1>],[<отдел2>.<отдел3>:<токен2>]
; При использовании одного юрлица токен задается для отдела -1
; xapikey = [-1:<токен>]
;xapikey =</pre>
</div></div><p>После авторизации по токену кассой в системе цифровой маркировки "Честный знак" будет получен список ведомств (CDN-площадок) для осуществления проверки кодов маркировки.</p><p>Ведомство для проверки кодов маркировки выбирается в порядке приоритета в зависимости от времени соединения – самый высокий приоритет имеет ведомство, соединение с которым произошло раньше остальных. Если соединение с первым ведомством было потеряно, то проверка будет осуществляться в ведомстве, которое следует далее по приоритету.</p><p>Настройки получения информации о CDN-площадках осуществляются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/crpt.ini</code> в секции [<code>CRPT</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">getInfoTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения списка CDN-площадок</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr><tr><td class="confluenceTd">healthCheckTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения состояния CDN-площадки</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[CRPT]
; Настройки взаимодействия с ЦРПТ
; Таймаут получения списка CDN-площадок
; по умолчанию 10 секунд
;getInfoTimeout = 10
; Таймаут получения состояния CDN-площадки
; по умолчанию 10 секунд
;healthCheckTimeout = 10</pre>
</div></div><p class="auto-cursor-target">При добавлении маркированных товаров в чек продажи на сервер системы "Честный знак" отправляется REST-запрос на получение статуса кода маркировки.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже по умолчанию</th></tr><tr><td class="confluenceTd">Товар с некорректным кодом маркировки</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки некорректен"</td></tr><tr><td class="confluenceTd">Товар с такой маркой не прошел проверку подлинности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка <span style="color: rgb(23,43,77);">"Ошибка проверки кода маркировки позиции <...>.<span> </span></span>Код маркировки не прошел проверку крипто подписи"</td></tr><tr><td class="confluenceTd">Товар не имеет признака нанесения марки на упаковку</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка <span style="color: rgb(23,43,77);">"Ошибка проверки кода маркировки позиции <...>.<span> </span></span>У кода маркировки отсутствует признак нанесения на упаковку"</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан или снят с продажи</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка <span style="color: rgb(23,43,77);">"Ошибка проверки кода маркировки позиции <...>.<span> </span></span>Код маркировки не в обороте"</td></tr><tr><td class="confluenceTd">Товар с такой маркой имеет истекший срок годности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка <span style="color: rgb(23,43,77);">"Ошибка проверки кода маркировки позиции <...>.<span> </span></span>Товар с таким кодом маркировки просрочен"</td></tr><tr><td class="confluenceTd">Код маркировки данного товара выведен из оборота</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка <span style="color: rgb(23,43,77);">"Ошибка проверки кода маркировки позиции <...>.<span> </span></span>Код маркировки выведен из оборота"</td></tr><tr><td class="confluenceTd">Товар с таким кодом маркировки не найден</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка <span style="color: rgb(23,43,77);">"Ошибка проверки кода маркировки позиции <...>.<span> </span></span>Код маркировки не найден"</td></tr><tr><td class="confluenceTd">Товар заблокирован одним из ведомств</td><td class="confluenceTd"><span style="color: rgb(23,43,77);">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>.<span> </span></span>Товар с таким кодом маркировки заблокирован <ведомством>"</td></tr></tbody></table></div><p>В кассовом ПО Artix реализована возможность игнорировать конкретные статусы, получаемые при проверке кода маркировки на сервере системы "Честный знак".</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Функционал доступен только при выключенной настройке <code>markVerifyCrptAskConfirmation</code>.<code>
<br/>
</code></div></div><p>Данное поведение задается при помощи параметров, соответствующих полученным статусам, в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer</code> <code>.ini</code> в секции <code>[DraftBeer]</code>:</p><ul><li>при значении <code>deny</code> в случае возникновения ошибок <span class="confluence-link">на экран будет выведен </span>диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек,<span class="confluence-link"> <br/></span></li><li>при значении <code>ask</code> в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши</span> </span> "Продолжить" товар добавляется в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,</li><li>при значении <code>allow</code> статус <span class="confluence-link">игнорируется, товар будет добавлен в чек.</span></li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">ignoreCrptStatusValid</td><td class="confluenceTd">строковый</td><td rowspan="8" class="confluenceTd"><ul><li>deny</li><li>ask</li><li>allow</li></ul></td><td class="confluenceTd">Игнорировать результат проверки валидности кода маркировки</td><td rowspan="8" class="confluenceTd">По умолчанию <code>deny</code></td></tr><tr><td class="confluenceTd">ignoreCrptStatusVerified</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать результат проверки крипто подписи кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusUtilised</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак нанесения кода маркировки на упаковку</td></tr><tr><td class="confluenceTd">ignoreCrptStatusRealizable</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак возможности реализации кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusExpireDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать срок годности</td></tr><tr><td class="confluenceTd">ignoreCrptStatusSold</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать вывод из оборота</td></tr><tr><td class="confluenceTd">ignoreCrptStatusIsBlocked</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать блокировку КМ</td></tr><tr><td class="confluenceTd">ignoreCrptStatusFound</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать не найденный КМ</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Игнорировать получаемые статусы кода маркировки при проверке на сервере честного знака
; Возможные значения: "deny" - запретить продажу товара, если сервер вернул неверный статус,
; "ask" - запросить подтверждение продажи у кассира,
; "allow" - всегда разрешать продажу товара, независимо от получаемого статуса
; По умолчанию "deny"
; Игнорировать результат проверки валидности КМ
;ignoreCrptStatusValid = deny
; Игнорировать результат проверки крипто подписи КМ
;ignoreCrptStatusVerified = deny
; Игнорировать признак нанесения КМ на упаковку
;ignoreCrptStatusUtilised = deny
; Игнорировать признак возможности реализации КМ
;ignoreCrptStatusRealizable = deny
; Игнорировать срок годности
;ignoreCrptStatusExpireDate = deny
; Игнорировать вывод из оборота
;ignoreCrptStatusSold = deny
; Игнорировать блокировку КМ
;ignoreCrptStatusIsBlocked = deny
; Игнорировать не найденный КМ
;ignoreCrptStatusFound = deny
...</pre>
</div></div><h1 class="auto-cursor-target" id="id-Реализацияразливногопива-Отраслевыереквизиты">Отраслевые реквизиты</h1><p>Отраслевые реквизиты передаются в ОФД только в чеках продажи.</p><p class="auto-cursor-target">Настройки отраслевых реквизитов задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/draftbeer.ini</code> в секции <code>[DraftBeer]</code>:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th scope="col" style="text-align: center;" class="confluenceTh">Наименование</th><th scope="col" style="text-align: center;" class="confluenceTh">Тип данных</th><th scope="col" style="text-align: center;" class="confluenceTh">Описание</th><th scope="col" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">foiv</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: идентификатор ФОИВ</td><td class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><p>Отраслевой реквизит: дата документа основания (дд.мм.гггг)</p></td><td class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentNumber</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: номер документа основания</td><td class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">industryAttribute</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: значение отраслевого реквизита</td><td class="confluenceTd">По умолчанию значение не задано</td></tr></tbody></table></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Если заданы все реквизиты, то они будут переданы в ОФД вне зависимости от проверки кодов маркировки в системе цифровой маркировки "Честный знак".</p></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[DraftBeer]
...
; Отраслевой реквизит: идентификатор ФОИВ
;foiv = 030
; Отраслевой реквизит: дата документа основания (дд.мм.гггг)
;documentDate = 21.11.2023
; Отраслевой реквизит: номер документа основания
;documentNumber = 1944
; Отраслевой реквизит: значение отраслевого реквизита
;industryAttribute =
...</pre>
</div></div><p class="auto-cursor-target">Если значение параметра <code>industryAttribute</code> не задано, то поведение определяется настройкой <code>enableMarkVerifyCrpt</code> (см. "<a href="#id-Реализацияразливногопива-enableMarkVerifyCrpt">Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</a>):</p><ul><li class="auto-cursor-target">при значении <code>true</code> реквизит будет заполнен из ответа от сервера, все отраслевые реквизиты будут переданы в ОФД,</li><li class="auto-cursor-target">при значении <code>false</code> отраслевые реквизиты не будут переданы в ОФД.</li></ul>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpage.action?pageId=138021092">View Online</a>
</div>
</div>Миллер Виктория2023-10-17T10:29:37ZРеализация табачной продукцииМиллер Викторияtag:docs.artix.su,2009:page-27531460-42024-03-28T09:38:30Z2018-10-05T04:01:51Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://docs.artix.su/display/~miller.v
">Миллер Виктория</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<div class="panel" style="border-width: 1px;"><div class="panelContent">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1711710218079 {padding: 0px;}
div.rbtoc1711710218079 ul {margin-left: 0px;}
div.rbtoc1711710218079 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1711710218079'>
<ul class='toc-indentation'>
<li><a href='#id-Реализациятабачнойпродукции-Конфигурированиемодуля'>Конфигурирование модуля</a></li>
<li><a href='#id-Реализациятабачнойпродукции-Продажатабачнойпродукции'>Продажа табачной продукции</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациятабачнойпродукции-Добавлениетабачнойпродукции'>Добавление табачной продукции</a></li>
<li><a href='#id-Реализациятабачнойпродукции-ПолучениеМРЦизкодамаркировки'>Получение МРЦ из кода маркировки</a></li>
<li><a href='#id-Реализациятабачнойпродукции-Минимальнаяразрешеннаяцена'>Минимальная разрешенная цена</a></li>
<li><a href='#id-Реализациятабачнойпродукции-Разрешенныетипыданныхдлявводакодамаркировки'>Разрешенные типы данных для ввода кода маркировки</a></li>
<li><a href='#id-Реализациятабачнойпродукции-Удалениетабачнойпродукции'>Удаление табачной продукции</a></li>
</ul>
</li>
<li><a href='#id-Реализациятабачнойпродукции-Возвраттабачнойпродукции'>Возврат табачной продукции</a></li>
<li><a href='#id-Реализациятабачнойпродукции-Проверкакодовмаркировкитабачнойпродукции'>Проверка кодов маркировки табачной продукции</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациятабачнойпродукции-Структурасетибезкассовыхсерверов(толькокассы)'>Структура сети без кассовых серверов (только кассы)</a></li>
<li><a href='#id-Реализациятабачнойпродукции-Структурасетискассовымисерверами'>Структура сети с кассовыми серверами</a></li>
</ul>
</li>
<li><a href='#id-Реализациятабачнойпродукции-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"'>Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</a></li>
<li><a href='#id-Реализациятабачнойпродукции-Отраслевыереквизиты'>Отраслевые реквизиты</a></li>
</ul>
</div></p>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelContent">
<p>Начиная с версии 4.6.145 добавлена возможность возврата табачной продукции по чеку продажи на другой кассе.</p>
</div></div><div class="wiki-content"><p>ИС МОТП (Информационная система маркировки и мониторинга оборота табачной продукции) создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга оборота табачной продукции.</p><p>Система маркировки табачной продукции охватывает все этапы оборота товара: от производителя до потребителя. На каждом шаге код проверяется, а после продажи товар снимается с оборота.</p><p>Для контроля табачной продукции используется двумерный штрих-код Data Matrix, наносимый на поверхность пачек и блоков. Data Matrix содержит в себе сведения о штрих-коде товара, коде идентификации и максимальной розничной цене (МРЦ).</p></div><h1 id="id-Реализациятабачнойпродукции-Конфигурированиемодуля">Конфигурирование модуля</h1><p>Модуль МОТП активируется параметром <code>motp</code> в конфигурационном файле <span><code>/linuxcash/cash/conf/ncash.</code><code>ini.d/motp.ini</code> в секции <code>[plugins]</code>.</span></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">motp</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><ul><li>on</li><li>off</li></ul></td><td class="confluenceTd">Активация модуля МОТП</td><td class="confluenceTd">По умолчанию <code>off</code></td></tr></tbody></table></div><div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[plugins]
; Мониторинг оборота табачной продукции
motp = off</pre>
</div></div><p>Настройка модуля МОТП производится в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>.</p><p>Маска для проверки кода маркировки табачной продукции задается настройкой <code>dataMatrixMask</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">dataMatrixMask</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Маска для проверки Data Matrix табачной продукции</td><td class="confluenceTd"><p>По умолчанию "<code>\d{14}.{15}|01\d{14}21.{7}8005\d{6}93.{4}.*</code>".</p></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
; Настройки плагина мониторинга оборота табачной продукции
; Маска для проверки DataMatrix табачной продукции
; По умолчанию \d{14}.{15}|01\d{14}21.{7}8005\d{6}93.{4}.*
dataMatrixMask=\d{14}.{15}|01\d{14}21.{7}8005\d{6}93.{4}.*</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Код маркировки должен подходить только под одну маску для проверки DataMatrix.</p></div></div><h1 id="id-Реализациятабачнойпродукции-Продажатабачнойпродукции">Продажа табачной продукции </h1><h2 id="id-Реализациятабачнойпродукции-Добавлениетабачнойпродукции">Добавление табачной продукции</h2><p>Для определения табачной продукции у товара должен быть установлен признак <code>op_mode = 32768</code> (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283">БД <code>Dictionaries</code> таблица <code>Tmc</code></a>). При добавлении товара требуется считывание кода маркировки товара.</p><p>Добавление в чек товара с кодом маркировки осуществляется двумя способами:</p><div><ol><li>Последовательным сканированием штрих-кода товара и кода маркировки:<ul><li>если штрих-код товара соответствует коду маркировки, то товар добавится в чек,</li><li>если штрих-код товара не соответствует коду маркировки, то на экран выводится ошибка "Код маркировки не соответствует штрих-коду", товар в чек не добавится.</li></ul></li><li><p class="auto-cursor-target">Сканированием кода маркировки (код маркировки содержит в себе данные штрих-кода, поэтому сканировать штрих-код не требуется).</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Особенности добавления табачной продукции по коду маркировки</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>При добавлении в чек табачной продукции по коду маркировки, в котором присутствуют знаки ";" и "?", кассовое ПО воспринимает ввод данных "через ридер карт", а введенный код маркировки, как карту. На экран будет выведено предупреждение "Карта '<Data_Matrix>' не найдена".</p><p>Для добавления табачной продукции с таким кодом маркировки:</p><ul><li>воспользуйтесь последовательным сканированием штрих-кода товара и кода маркировки,</li><li>в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini</code> в секции <code>[HW.KEYBOARD.FILTER.MSR]</code> измените значение настройки <code>pattern</code> на "<code>(?=.{0,28}$)^.*([;%].*\?).*$</code>". <br/>Перезапустите программу. Отсканируйте код маркировки.</li></ul></div></div></li></ol><p>Добавление табачного товара другими способами (по коду, по наименованию, с помощью горячих клавиш) запрещено.</p><p>Так как код маркировки представляет собой уникальный код, то в товарной позиции может быть не более 1 единицы товара. Применение модификатора к позиции с табачной продукцией запрещено. </p><p>Добавление в чек табачной продукции, как обычного товара (по коду маркировки табачной продукции), определяется параметром <code>oldTobacco</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении <code>true</code> товар будет добавлен в чек. В выгрузке продаж такой товар будет считаться, как обычный, также будет передан код маркировки. В ОФД товар передается, как обычный,</li><li>при значении <code>false</code> при добавлении товара в чек на экран будет выведена ошибка "У товара не указан признак маркированной табачной продукции. Обратитесь в службу техподдержки".</li></ul></div></div><div><div><p>Добавление в чек табачной продукции, как обычного товара (без ввода кода маркировки), определяется параметром <code>addWithoutScanMark</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>: </p><ul><li>при значении <code>true</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить табачную продукцию без маркировки,</li><li>при значении <code>false</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">oldTobacco</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Добавлять маркированный табак в чек как немаркированный, если признак табачной продукции не задан и ввод происходит по акцизной марке</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">addWithoutScanMark</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd"><p>Добавлять табак в чек, как обычный товар (без ввода кода маркировки)</p></td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
; Настройки плагина мониторинга оборота табачной продукции
...
; Добавлять маркированный табак в чек как немаркированный, если признак табачной продукции не задан и ввод происходит по акцизной марке
; По умолчанию false
;oldTobacco = false
; Добавлять табак в чек без ввода кода маркировки
; По умолчанию false
;addWithoutScanMark = false</pre>
</div></div><h2 id="id-Реализациятабачнойпродукции-ПолучениеМРЦизкодамаркировки">Получение МРЦ из кода маркировки</h2><p>Максимальная розничная цена может быть получена из кода маркировки, если у товара установлен признак <code>price_mode = 16</code> (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283">БД <code>Dictionaries</code> таблица <code>Tmc</code></a>).</p><p>Порядок получения цены следующий:</p><ol><li>Если у товара установлен признак "получение <span>цены табачной продукции из кода маркировки" (<code>price_mode = 16</code>), то товар добавляется в чек с ценой заданной в коде маркировки (цена должна совпадать с ценой, указанной на пачке или блоке).</span></li><li>Если получить цену из кода маркировки не удалось или была получена нулевая цена, то будет выведено предупреждение "Акцизная марка содержит некорректную цену. Будет использована цена из товара", - цена товара будет получена по действующим правилам кассового ПО.</li></ol><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="panelContent">
Если у товара помимо признака "получение цены табачной продукции из кода маркировки" (<code>price_mode = 16</code>) установлен признак "получение цены из массива цен" (<code>price_mode = 4</code>) и получить цену из кода маркировки не удалось, то после вывода предупреждения кассиру будет предложено выбрать цену товара из списка.
</div></div><h2 id="id-Реализациятабачнойпродукции-Минимальнаяразрешеннаяцена">Минимальная разрешенная цена</h2><p>В кассовом ПО Artix реализована возможность запрета реализации табачной продукции по стоимости ниже минимальной разрешенной цены. Данное поведение настраивается в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp.MinAllowedPricesByDate]</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[Motp.MinAllowedPricesByDate]
; Список минимальных разрешенных цен пачки сигарет, начиная с указанной даты
; Элемент списка задается в формате цена = дата. Дата указывается в формате ГГГГ-ММ-ДД.
; Например,
; 108.0 = 2021-07-01
; 112.0 = 2021-09-01
; означает, что с 1 июля 2021 года минимальная разрешенная цена 108.0 рублей,
; а с первого сентября 2021 года 112.0 рублей
;108.0 = 2021-07-01</pre>
</div></div><p>Если цена товара, полученная из кода маркировки или из справочника (в зависимости от настроек), ниже минимальной разрешенной цены, то на экран будет выведена ошибка "Цена товара ниже минимальной разрешенной цены. Продажа товара запрещена", товар не будет добавлен в чек. </p><h2 id="id-Реализациятабачнойпродукции-Разрешенныетипыданныхдлявводакодамаркировки">Разрешенные типы данных для ввода кода маркировки</h2><p>В кассовом ПО Artix реализована возможность настройки разрешенных типов данных для ввода кода маркировки, задается параметром <code>permittedInput</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции [<code>Motp</code>]:</p><p>При добавлении в чек маркированного товара:</p><ul><li>сканированием кода маркировки с типом данных, не указанным в настройке, на экран будет выведена ошибка "Неверный тип ввода данных",</li><li>последовательным сканированием штрих-кода и кода маркировки с типом данных, не указанным в настройке, код маркировки будет проигнорирован.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">permittedInput</td><td class="confluenceTd"><p>целочисленный</p><p>(<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531840">битовая маска</a>)</p></td><td class="confluenceTd"><ul><li>0 – запрет ввода любых данных,</li><li>1 – текстовые данные,</li><li>2 – бинарные данные (если устройство может посылать непечатные символы),</li><li>3 – текстовые и бинарные данные.</li></ul></td><td class="confluenceTd">Разрешенные типы вводимых данных</td><td class="confluenceTd"><div class="content-wrapper"><p>По умолчанию разрешены все типы вводимых данных</p></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
...
; Разрешенные типы вводимых данных
; По умолчанию "" - все типы вводимых данных
;permittedInput =</pre>
</div></div><h2 id="id-Реализациятабачнойпродукции-Удалениетабачнойпродукции"><span style="letter-spacing: -0.008em;">Удаление табачной продукции </span></h2><p>При сторнировании табачной продукции требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего акцизные товары, операция выполняется без считывания кодов маркировки.</p><h1 id="id-Реализациятабачнойпродукции-Возвраттабачнойпродукции">Возврат табачной продукции</h1><p>Возврат табачной продукции в торговую сеть может быть осуществлен в режиме возврата или возврата по чеку продажи.</p><p>В режиме возврата добавление табачной продукции в чек выполняется аналогично добавлению в чек продажи.</p><p>При возврате по чеку продажи позицию для возврата можно выбрать:</p><div><ol><li>Используя клавиши навигации с подтверждением выбора нажатием клавиши "Ввод" и последующим считыванием кода маркировки товара. </li><li>Считав штрих-код товара и код маркировки.</li><li>Считав код маркировки.</li></ol><p>Если при возврате по чеку продажи не используется <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532516">форма выбора товаров</a>, то при переходе к формированию чека возврата табачная продукция удаляется из чека.</p><p>Выбор табачной продукции в форме выбора товара для возврата не может быть отменен. Сторнирование табачной продукции в этом случае выполняется в режиме формирования чека возврата.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Возврат табачной продукции по чеку продажи на другой кассе запрещен до версии 4.6.144 включительно.</p></div></div><h1 class="auto-cursor-target" id="id-Реализациятабачнойпродукции-Проверкакодовмаркировкитабачнойпродукции">Проверка кодов маркировки табачной продукции</h1></div></div><p>Регламент работы по проверке кодов маркировки при продаже/возврате табачной продукции определяется структурой торговой сети. Проверка кодов маркировки предполагает:</p><ul><li>проверку на факт продажи/возврата табачной продукции (в БД кассовой программы),</li><li>проверку статуса кода маркировки на кассовом сервере,</li><li>проверку кода маркировки в "белом" списке на сервере (коды маркировки, разрешенные к продаже).</li></ul><p>Проверка кода маркировки в проданной продукции на кассе задается параметром <code>checkLocalUniqueness</code> в конфигурационном файле <code>/linuxcash/cash/conf/</code><code>ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении параметра <code>true</code> осуществляется проверка в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> в таблице <code>Goodsitem</code></a> на возможность продажи/возврата табачной продукции:<br/><ul><li>если код маркировки был продан/возвращен ранее, то при попытке продать/вернуть товар на экран выводится сообщение об ошибке "Код маркировки уже был зарегистрирован ранее", товар в чек не добавляется,</li><li>если код маркировки не был продан/возвращен ранее, то товар добавляется в чек.</li></ul></li><li>при значении параметра <code>false</code> проверка кода маркировки в проданной продукции не осуществляется.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th colspan="1" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">checkLocalUniqueness</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кода маркировки в проданной продукции на кассе</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
; Настройки плагина мониторинга оборота табачной продукции
...
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
;checkLocalUniqueness = true</pre>
</div></div><h2 id="id-Реализациятабачнойпродукции-Структурасетибезкассовыхсерверов(толькокассы)">Структура сети без кассовых серверов (только кассы)</h2><p>Проверка кодов маркировки в "белом" списке в БД кассовой программы задается параметром <code>enableMarkVerifyLocal</code> в конфигурационном файле <code>/linuxcash/cash/conf/</code><code>ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении параметра <code>true</code> проверка кода маркировки осуществляется в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Excisemarkwhite–"Белый"списокакцизныхмарок">БД <code>Dictionaries</code> в таблице <code>Excisemarkwhite</code></a>:<br/><ul><li>если код маркировки найден в списке, то товар добавляется в чек продажи,</li><li>если код маркировки отсутствует в списке, то на экран выводится сообщение об ошибке "Товар с таким кодом маркировки запрещен к продаже", товар в чек не добавляется.</li></ul></li><li>при значении параметра <code>false</code> проверка кода маркировки в "белом" списке не выполняется.</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Проверка кодов маркировки в "белом" списке на кассе выполняется только при значении параметра <code>enableMarkVerify = false</code> (проверка на кассовом сервере отключена).</p></div></div><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">enableMarkVerifyLocal</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверять коды маркировки на кассе</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
; Настройки плагина мониторинга оборота табачной продукции
...
; Проверять коды маркировки на кассе
; По умолчанию false
;enableMarkVerifyLocal = false</pre>
</div></div></div><div><h2 id="id-Реализациятабачнойпродукции-Структурасетискассовымисерверами">Структура сети с кассовыми серверами</h2><p>Структура сети с кассовыми серверами позволяет осуществлять контроль:</p><ul><li>дублей кодов маркировки (запрет повторной продажи/возврата одной и той же пачки/блока),</li><li>разрешенных к продаже кодов маркировки (запрет продажи/возврата товаров, коды маркировки которых не были внесены в "белый" список).</li></ul><p>Настройки подключения к кассовому серверу задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">enableMarkVerify</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кодов маркировки на сервере</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td colspan="1" class="confluenceTd">markVerifyUrl</td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Url сервера проверки кодов маркировки</td><td colspan="1" class="confluenceTd"><p>По умолчанию <span class="nolink"><span class="nolink"><code>http://localhost:8080</code>.</span></span></p><p>Для работы с КС используется url<code> "http://<host>:<span style="color: rgb(72,72,72);"><port></span>/CSrest/rest/sales/exciseMark/status"</code></p></td></tr><tr><td colspan="1" class="confluenceTd">markVerifyTimeout</td><td colspan="1" class="confluenceTd">целочисленный</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки в секундах</td><td colspan="1" class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td colspan="1" class="confluenceTd">ignoreMarkVerifyErrors</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Игнорировать ошибки обращения к серверу проверки кодов маркировки</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td colspan="1" class="confluenceTd"><p>minRetailPriceRatio</p></td><td colspan="1" class="confluenceTd">целочисленный</td><td colspan="1" class="confluenceTd"><p>0 < n < 1</p></td><td colspan="1" class="confluenceTd"><p>Коэффициент для получения минимальной розничной цены из цены табачной продукции</p></td><td colspan="1" class="confluenceTd">По умолчанию не используется</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
; Настройки плагина мониторинга оборота табачной продукции
...
; Проверка кодов маркировки на сервере
; По умолчанию false
enableMarkVerify=false
; Url сервера проверки кодов маркировки
; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status"
; По умолчанию http://localhost:8080
markVerifyUrl=http://localhost:8080
; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
markVerifyTimeout=30
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
ignoreMarkVerifyErrors=true
; Коэффициент для получения минимальной розничной цены из цены табачной продукции
; По умолчанию не используется
;minRetailPriceRatio = 1</pre>
</div></div><p>Проверка кодов маркировки на сервере задается при помощи параметра <code>enableMarkVerify</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере</span>,</li><li>при значении <code>false</code> <span class="confluence-link">проверка кода маркировки на сервере</span> не осуществляется.</li></ul><p>Для проверки кодов маркировки на сервере торговой сети <span class="confluence-link">в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code></span> необходимо задать параметры подключения к серверу:</p><ul><li><code>markVerifyUrl</code> – URL сервера, где хранятся данные о кодах маркировки,</li><li><code>markVerifyTimeout</code> – таймаут ожидания ответа от сервера при проверке кодов маркировки.</li></ul><p>Настройками программы можно разрешать или запрещать продажу/возврат табачной продукции при возникновении ошибок обращения к серверу. Возможность игнорирования возникающих ошибок определяется параметром <code>ignoreMarkVerifyErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении <code>true</code> в случае возникновения ошибок подключения к серверу они игнорируются, продажа/возврат табачной продукции осуществляется без проверки кодов маркировки на сервере,</li><li>при значении <code>false</code> в случае возникновения ошибок подключения к серверу продажа товара не может быть выполнена. На экран кассира выводится сообщение о том, что табачная продукция не может быть проверена.</li></ul><p>При продаже табачной продукции необходима проверка цены товара. Минимальная цена табачной продукции установлена законом и не может быть ниже 75% от <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532488">МРЦ</a>. При установке параметра <code>minRetailPriceRatio</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code> МРЦ будет высчитываться как % от цены товарной позиции.</p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Примеры работы параметра minRetailPriceRatio</b></div><div class="panelContent">
<p>Для параметра <code>minRetailPriceRatio</code> установлено значение 0.75.</p><p><strong>Пример 1:</strong></p><p>У табачной продукции цена – 100 рублей, минимальная розничная цена - 20 рублей. При продаже товара его стоимость не может быть ниже 75 рублей.</p><p><strong>Пример 2:</strong></p><p>У табачной продукции цена – 100 рублей, минимальная розничная цена - 85 рублей. При продаже товара его стоимость не может быть ниже минимальной розничной цены – 85 рублей.</p>
</div></div><p>При добавлении табачной продукции в чек продажи/возврата на кассовый сервер отправляется REST-запрос на получение <a href="https://docs.artix.su/pages/viewpage.action?pageId=15534280">статуса кода маркировки</a>. Статус кода маркировки может принимать следующие значения: </p><ul><li>0 – Марка не зарегистрирована в БД.</li><li>1 – Товар с такой маркой продан.</li><li>2 – Товар с такой маркой возвращен.</li><li>3 – Марка зарезервирована в чеке продажи.</li><li>4 – Марка снята с резерва в чеке продажи.</li><li>5 – Марка зарезервирована в чеке возврата (чеке возврата по чеку продажи).</li><li>6 – Марка снята с резерва в чеке возврата (чеке возврата по чеку продажи).</li><li>7 – Акцизная марка отсутствует в списке разрешенных к продаже. </li><li>9 – Товар отсутствует на остатке.</li><li>10 – Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан.</li><li>11 – Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено.</li><li>12 – Магазин для проверки остатков не найден. </li><li>13 – Штрих-код для проверки остатков не заполнен.</li><li>14 – Код товара для проверки остатков не заполнен.</li><li>15 – Справочник остатков для товара, по которому проверяем остатки, заполнен не корректно.</li><li>Любое другое значение – неизвестный статус акцизной марки.</li></ul><p>Дальнейшее поведение программы определяется полученным статусом.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при возврате</th></tr><tr><td class="confluenceTd">Марка не зарегистрирована в БД</td><td class="confluenceTd">Товар с акцизной маркой добавляется в чек и может быть продан</td><td class="confluenceTd">Так как товар не был ранее продан, то на экран выводится сообщение "Товар с акцизной маркой отсутствует на сервере", товар не добавляется в чек и не может быть возвращен</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с акцизной маркой уже был продан".</td><td class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Товар с такой маркой возвращен</td><td colspan="1" class="confluenceTd">Товар добавлен в чек и может быть продан</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был возвращен"</td></tr><tr><td colspan="1" class="confluenceTd">Марка зарезервирована в чеке продажи</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td></tr><tr><td colspan="1" class="confluenceTd">Марка снята с резерва в чеке продажи</td><td colspan="1" class="confluenceTd">Товар добавляется в чек и может быть продан</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой еще не продан"</td></tr><tr><td colspan="1" class="confluenceTd">Марка зарезервирована в чеке возврата (чеке возврата по чеку продажи)</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td></tr><tr><td colspan="1" class="confluenceTd">Марка снята с резерва в чеке возврата (чеке возврата по чеку продажи)</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Акцизная марка отсутствует в списке разрешенных к продаже</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже"</td><td colspan="1" class="confluenceTd">Статус не проверяется на сервере.</td></tr><tr><td colspan="1" class="confluenceTd">Товар отсутствует на остатке</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Нет на остатке"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки в белом списке"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найдено соответствие акцизной марки и штрих-кода в белом списке"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Магазин для проверки остатков не найден</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найден магазин для проверки остатков"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Штрих-код для проверки остатков не заполнен</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки остатков"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Код товара для проверки остатков не заполнен</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен код товара для проверки остатков"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Справочник остатков для товара, по которому проверяем остатки, заполнен не корректно</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Некорректно заполнен справочник остатков для товара"</td><td colspan="1" class="confluenceTd">Товар добавляется в чек, его можно вернуть</td></tr><tr><td colspan="1" class="confluenceTd">Неизвестный статус акцизной марки</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере"</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере"</td></tr></tbody></table></div><div>После добавления товара в чек продажи/возврата код маркировки ставится в резерв на кассовом сервере.</div><p>Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:</p><ul><li>в режиме онлайн (по <code>REST</code>-запросу) – резервирование кода маркировки,</li><li>в режиме оффлайн (через очередь <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532219">Artix-Queue</a>) – снятие с резерва кода маркировки (сторнирование), после закрытия чека перевод в статус "продан", "возвращен".</li></ul><h1 id="id-Реализациятабачнойпродукции-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"">Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</h1><div class="panel" style="border-width: 1px;"><div class="panelContent">
<p>В кассовом ПО Artix реализована обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак" (разрешительный режим).</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Проверка производится только для товаров в чеке продажи.</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Помимо проверки валидности марки осуществляется проверка срока годности товара. Если у срока годности товара указана дата, но не указано время (в часах, минутах и секундах), то данный товар будет запрещен к продаже в полночь того же дня.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Помимо проверки валидности марки осуществляется проверка срока годности товара.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Разрешительный режим также поддержан для <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532494">софт-чеков</a> и <a href="https://docs.artix.su/pages/viewpage.action?pageId=53018648">онлайн-чеков</a>:</p><ul><li>проверка кодов маркировки в онлайн-чеках происходит одновременно для нескольких товаров, если код маркировки хотя бы одного товара в онлайн-чеке не прошел проверку в системе цифровой маркировки "Честный знак", то онлайн-чек восстановлен не будет,</li><li>для софт-чеков проверка кода маркировки товара происходит при сканировании маркированной позиции в заказе.</li></ul></div></div>
</div></div><p>Проверка кодов маркировки на сервере системы "Честный знак" задается при помощи параметра <code>enableMarkVerifyCrpt</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере системы "Честный знак",</span></li><li>при значении <code>false</code> <span class="confluence-link">проверка кода маркировки на сервере системы "Честный знак" </span>не осуществляется.</li></ul><p>Возможность игнорировать ошибки обращения к серверу системы "Честный знак" задается при помощи параметра <code>ignoreMarkVerifyCrptConnectionErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении <code>true</code> ошибки обращения к<span class="confluence-link"> серверу системы "Честный знак" игнорируются, продажа может быть выполнена,<br/></span></li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки на сервере <span class="confluence-link">системы "Честный знак"</span> на экран будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.</li></ul><p>Возможность запросить подтверждение добавления товара при провале проверки маркировки задается при помощи параметра <code>markVerifyCrptAskConfirmation</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении <code>true</code> на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши "Ввод"</span> товар будет добавлен в чек, <span>по нажатию клавиши "Отмена"</span> товар не будет добавлен в чек,<br/></span></li><li>при значении <code>false</code> на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">enableMarkVerifyCrpt</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверка кодов маркировки на сервере честного знака</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">markVerifyCrptUrl</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><br/></td><td class="confluenceTd">Url сервера проверки кодов маркировки честного знака</td><td class="confluenceTd"><p>По умолчанию <code><span class="nolink">https://cdn.crpt.ru</span></code></p><p>Можно указать несколько значений через запятую</p></td></tr><tr><td class="confluenceTd">markVerifyCrptTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах</td><td class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td class="confluenceTd">ignoreMarkVerifyCrptConnectionErrors</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Игнорировать ошибки обращения к серверу честного знака</td><td class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td class="confluenceTd">markVerifyCrptAskConfirmation</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Запросить подтверждение добавления товара при провале проверки маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
...
; Проверка кодов маркировки на сервере честного знака
; По умолчанию false
;enableMarkVerifyCrpt = false
; Url сервера проверки кодов маркировки честного знака
; По умолчанию https://cdn.crpt.ru
;markVerifyCrptUrl = https://cdn.crpt.ru
; Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах
; По умолчанию 30
;markVerifyCrptTimeout = 30
; Игнорировать ошибки обращения к серверу честного знака
; По умолчанию true
;ignoreMarkVerifyCrptConnectionErrors = true
; Запросить подтверждение добавления товара при провале проверки маркировки
; По умолчанию false
;markVerifyCrptAskConfirmation = false
...</pre>
</div></div><p class="auto-cursor-target">В кассовом ПО Artix реализована возможность авторизации по токену в системе цифровой маркировки "Честный знак". Данная возможность задается при помощи параметра <code>xapikey</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции [<code>Motp</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">xapikey</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Токен для доступа к серверу честного знака</td><td class="confluenceTd"><div class="content-wrapper"><ul><li>При использовании одного токена для нескольких юридических лиц:<br/><code>xapikey = [<отдел1>.<отдел2>:<токен>]<br/></code></li><li>При использовании токена только для одного из юридических лиц, например, только для <code><отдел2></code>:<br/><code>xapikey = [<отдел1>:1],[<отдел2>:<токен>]<br/></code></li><li>При использовании токена для одного юридического лица:<br/><code>xapikey = [-1:<токен>]</code></li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Использование токена вида <code>xapikey = [1:<токен>] </code>недопустимо.</p></div></div></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
...
; Токен для доступа к серверу честного знака
; При использовании нескольких юрлиц задаются токены для отделов:
; xapikey = [<отдел1>:<токен1>],[<отдел2>.<отдел3>:<токен2>]
; При использовании одного юрлица токен задается для отдела -1
; xapikey = [-1:<токен>]
;xapikey =
...</pre>
</div></div><p>После авторизации по токену кассой в системе цифровой маркировки "Честный знак" будет получен список ведомств (CDN-площадок) для осуществления проверки кодов маркировки.</p><p>Ведомство для проверки кодов маркировки выбирается в порядке приоритета в зависимости от времени соединения – самый высокий приоритет имеет ведомство, соединение с которым произошло раньше остальных. Если соединение с первым ведомством было потеряно, то проверка будет осуществляться в ведомстве, которое следует далее по приоритету.</p><p>Настройки получения информации о CDN-площадках осуществляются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/crpt.ini</code> в секции [<code>CRPT</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">getInfoTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения списка CDN-площадок</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr><tr><td class="confluenceTd">healthCheckTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения состояния CDN-площадки</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[CRPT]
; Настройки взаимодействия с ЦРПТ
; Таймаут получения списка CDN-площадок
; по умолчанию 10 секунд
;getInfoTimeout = 10
; Таймаут получения состояния CDN-площадки
; по умолчанию 10 секунд
;healthCheckTimeout = 10</pre>
</div></div><p class="auto-cursor-target">При добавлении маркированных товаров в чек продажи на сервер системы "Честный знак" отправляется REST-запрос на получение статуса кода маркировки.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже по умолчанию</th></tr><tr><td class="confluenceTd">Товар с некорректным кодом маркировки</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки некорректен"</td></tr><tr><td class="confluenceTd">Товар с такой маркой не прошел проверку подлинности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не прошел проверку крипто подписи"</td></tr><tr><td class="confluenceTd">Товар не имеет признака нанесения марки на упаковку</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. У кода маркировки отсутствует признак нанесения на упаковку"</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан или снят с продажи</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не в обороте"</td></tr><tr><td class="confluenceTd">Товар с такой маркой имеет истекший срок годности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки просрочен"</td></tr><tr><td style="text-align: left;" class="confluenceTd">Код маркировки данного товара выведен из оборота</td><td style="text-align: left;" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки выведен из оборота"</td></tr><tr><td style="text-align: left;" class="confluenceTd">Товар с таким кодом маркировки не найден</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не найден"</td></tr><tr><td style="text-align: left;" class="confluenceTd">Товар заблокирован одним из ведомств</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки заблокирован <ведомством>"</td></tr></tbody></table></div><p>В кассовом ПО Artix реализована возможность игнорировать конкретные статусы, получаемые при проверке кода маркировки на сервере системы "Честный знак".</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Функционал доступен только при выключенной настройке <code>markVerifyCrptAskConfirmation</code>.<code><br/></code></div></div><p>Данное поведение задается при помощи параметров, соответствующих полученным статусам, в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции <code>[Motp]</code>:</p><ul><li>при значении <code>deny</code> в случае возникновения ошибок <span class="confluence-link">на экран будет выведен </span>диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек,<span class="confluence-link"><br/></span></li><li>при значении <code>ask</code> в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши</span></span> "Продолжить" товар добавляется в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,</li><li>при значении <code>allow</code> статус <span class="confluence-link">игнорируется, товар будет добавлен в чек.</span></li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">ignoreCrptStatusValid</td><td class="confluenceTd">строковый</td><td rowspan="9" class="confluenceTd"><ul><li>deny</li><li>ask</li><li>allow</li></ul></td><td class="confluenceTd">Игнорировать результат проверки валидности кода маркировки</td><td rowspan="9" class="confluenceTd">По умолчанию <code>deny</code></td></tr><tr><td class="confluenceTd">ignoreCrptStatusVerified</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать результат проверки крипто подписи кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusUtilised</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак нанесения кода маркировки на упаковку</td></tr><tr><td class="confluenceTd">ignoreCrptStatusRealizable</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак возможности реализации кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusExpireDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать срок годности</td></tr><tr><td class="confluenceTd">ignoreCrptStatusSold</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать вывод из оборота</td></tr><tr><td class="confluenceTd">ignoreCrptStatusIsBlocked</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать блокировку КМ</td></tr><tr><td class="confluenceTd">ignoreCrptStatusFound</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать не найденный КМ</td></tr><tr><td class="confluenceTd">ignoreCrptStatusGrayZone</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать "серую зону"</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
...
; Игнорировать получаемые статусы кода маркировки при проверке на сервере честного знака
; Возможные значения: "deny" - запретить продажу товара, если сервер вернул неверный статус,
; "ask" - запросить подтверждение продажи у кассира,
; "allow" - всегда разрешать продажу товара, независимо от получаемого статуса
; По умолчанию "deny"
; Игнорировать результат проверки валидности КМ
;ignoreCrptStatusValid = deny
; Игнорировать результат проверки крипто подписи КМ
;ignoreCrptStatusVerified = deny
; Игнорировать признак нанесения КМ на упаковку
;ignoreCrptStatusUtilised = deny
; Игнорировать признак возможности реализации КМ
;ignoreCrptStatusRealizable = deny
; Игнорировать срок годности
;ignoreCrptStatusExpireDate = deny
; Игнорировать вывод из оборота
;ignoreCrptStatusSold = deny
; Игнорировать блокировку КМ
;ignoreCrptStatusIsBlocked = deny
; Игнорировать не найденный КМ
;ignoreCrptStatusFound = deny
; Игнорировать "серую зону"
;ignoreCrptStatusGrayZone = deny
...</pre>
</div></div><h1 id="id-Реализациятабачнойпродукции-Отраслевыереквизиты">Отраслевые реквизиты</h1><p>Отраслевые реквизиты передаются в ОФД только в чеках продажи.</p><p>Настройки отраслевых реквизитов задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/motp.ini</code> в секции [<code>Motp</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">foiv</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: идентификатор ФОИВ</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: дата документа основания (дд.мм.гггг)</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentNumber</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: номер документа основания</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[Motp]
...
; Отраслевой реквизит: идентификатор ФОИВ
;foiv = 030
; Отраслевой реквизит: дата документа основания (дд.мм.гггг)
;documentDate = 21.11.2023
; Отраслевой реквизит: номер документа основания
;documentNumber = 1944
...</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">По результатам проверки в системе цифровой маркировки "Честный знак" формируется отраслевой реквизит вида "<code>UUID=<reqId>&Time=<reqTimestamp></code>", который передается в ОФД в теге 1265.</div></div></div>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531460">View Online</a>
·
<a href="https://docs.artix.su/pages/diffpagesbyversion.action?pageId=27531460&revisedVersion=4&originalVersion=3">View Changes Online</a>
</div>
</div>Миллер Виктория2018-10-05T04:01:51ZРеализация маркированных товаровМиллер Викторияtag:docs.artix.su,2009:page-40468542-52024-03-28T09:36:03Z2020-10-16T04:14:13Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://docs.artix.su/display/~miller.v
">Миллер Виктория</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<div class="panel" style="border-width: 1px;"><div class="panelContent">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1711710218231 {padding: 0px;}
div.rbtoc1711710218231 ul {margin-left: 0px;}
div.rbtoc1711710218231 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1711710218231'>
<ul class='toc-indentation'>
<li><a href='#id-Реализациямаркированныхтоваров-Конфигурированиемодуля'>Конфигурирование модуля</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Продажамаркированныхтоваров'>Продажа маркированных товаров</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациямаркированныхтоваров-Добавлениемаркированныхтоваров'>Добавление маркированных товаров</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Добавлениевесовыхмаркированныхтоваров'>Добавление весовых маркированных товаров</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациямаркированныхтоваров-Принесоответствииштрих-кодаизкодамаркировкиштрих-кодутовара'>При несоответствии штрих-кода из кода маркировки штрих-коду товара</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Изкаталога'>Из каталога</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Помаске'>По маске</a></li>
</ul>
</li>
<li><a href='#id-Реализациямаркированныхтоваров-Разрешенныетипыданныхдлявводакодамаркировки'>Разрешенные типы данных для ввода кода маркировки</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Удалениемаркированныхтоваров'>Удаление маркированных товаров</a></li>
</ul>
</li>
<li><a href='#id-Реализациямаркированныхтоваров-Возвратмаркированныхтоваров'>Возврат маркированных товаров</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациямаркированныхтоваров-Кодмаркировки,заданныйвручную,длявозврататоваровбезвводакодамаркировки'>Код маркировки, заданный вручную, для возврата товаров без ввода кода маркировки</a></li>
</ul>
</li>
<li><a href='#id-Реализациямаркированныхтоваров-Ограничениядлядобавлениятоварабезсканированиякодамаркировки'>Ограничения для добавления товара без сканирования кода маркировки</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Проверкакодовмаркировкитоваров'>Проверка кодов маркировки товаров</a>
<ul class='toc-indentation'>
<li><a href='#id-Реализациямаркированныхтоваров-Структурасетибезкассовыхсерверов(толькокассы)'>Структура сети без кассовых серверов (только кассы)</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Структурасетискассовымисерверами'>Структура сети с кассовыми серверами</a></li>
</ul>
</li>
<li><a href='#id-Реализациямаркированныхтоваров-Разделениенастроекдляразныхкатегориймаркированныхтоваров'>Разделение настроек для разных категорий маркированных товаров</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"'>Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</a></li>
<li><a href='#id-Реализациямаркированныхтоваров-Отраслевыереквизиты'>Отраслевые реквизиты</a></li>
</ul>
</div></p>
</div></div><p>Информационная система мониторинга оборота товаров создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга оборота различных маркированных товаров.</p><p>Система маркировки товаров охватывает все этапы оборота товара: от производителя до потребителя. На каждом шаге код маркировки товара проверяется.</p><p>Для контроля маркированных товаров используется двумерный штрих-код Data Matrix, наносимый на потребительскую упаковку, товар или товарный ярлык. Data Matrix содержит в себе сведения о штрих-коде товара и коде идентификации.</p><h1 id="id-Реализациямаркированныхтоваров-Конфигурированиемодуля">Конфигурирование модуля</h1><p>Модуль маркированных товаров активируется параметром <code>markedgoods</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[plugins]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">markedgoods</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>on</li><li>off</li></ul></td><td class="confluenceTd">Активация модуля маркированных товаров</td><td class="confluenceTd">По умолчанию <code>off</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[plugins]
; on - модуль включен, off - выключен.
; По умолчанию off
;markedgoods = off</pre>
</div></div><p>Настройка модуля маркированных товаров производится в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>.</p><p>Для каждой категории маркированных товаров в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> может быть создана своя подсекция <code>[MarkedGoods.<имя_подсекции>]</code>. Каждая из подсекций должна содержать маску для проверки Data Matrix, которая задается параметром <code>mask</code>.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Если у подсекции отсутствует маска для проверки Data Matrix или она не уникальна, то настройки подсекции работать не будут.</p><p>Если для разных категорий товаров значение маски совпадает, то для данных категорий товаров рекомендуется использовать одну подсекцию.</p></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">;[MarkedGoods.Milk]
; Маркированное молоко
; Маска для проверки DataMatrix молочной продукции
;mask = "\s*01(?<barcode>[0-9]{14})(21.{13}\s*(17\d{6}|7003\d{10})|21.{6}|21.{8})\s*93.{4}(\s*3103(?<weight>\d{6}))?"
;[MarkedGoods.Camera]
; Маркированные фотокамеры
; Маска для проверки DataMatrix фотокамер
;mask = "01(?<barcode>[0-9]{14})21.{20}\s*91.{4}\s*92.{44}"
;[MarkedGoods.Common]
; Маркированные парфюм, велосипеды, товары легкой промышленности, шины и покрышки и кресла-коляски
; Маска для проверки DataMatrix для парфюма, велосипедов, товаров легкой промышленности, шин и покрышек и кресел-колясок
;mask = "01(?<barcode>[0-9]{14})21.{13}\s*91.{4}\s*92.{44}"
;[MarkedGoods.Water]
; Маркированная вода
; Маска для проверки DataMatrix водной продукции
;mask = "01(?<barcode>[0-9]{14})21.{13}\s*93.{4}\s*"</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Код маркировки должен подходить только под одну маску для проверки DataMatrix.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>В случае последовательного сканирования штрих-кода товара и кода маркировки, содержащий другой штрих-код, необходимо использовать маску без именованного захвата значений "<code>(?<barcode>)</code>", например "<code>01[0-9]{14}21.{13}\s*91.{4}\s*92.{44}</code>".</p><p>Если используется маска без именного захвата значений, то при сканировании кода маркировки (без сканировния штрих-кода) на экран будет выведено предупреждение о том, что товар с таким штрих-кодом не найден.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>В зависимости от типа сканера разделительные символы в коде маркировки могут быть представлены в различных видах: произвольное количество пробелов или '<code>\u001d</code>'.</p><p>Для того чтобы код маркировки, содержащий разделительный символ '<code>\u001d</code>', корректно воспринимался программой, необходимо в маске задать именованный капчуринг <code>remove</code>. Капчурингов <code>remove</code> может быть несколько, при этом после <code>remove</code> всегда должно стоять число, начиная с 1.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример маски для кода маркировки парфюма, который содержит '\u001d' в качестве разделителя</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods.Common]
mask = "01(?<barcode>[0-9]{14})21.{13}(?<remove1>\s*|\\u001d)91.{4}(?<remove2>\s*|\\u001d)92.{44}"</pre>
</div></div></div></div><p>Для каждой подсекции могут быть назначены индивидуальные настройки, подробнее в разделе "Разделение настроек для разных категорий маркированных товаров" (см. ниже).</p><h1 id="id-Реализациямаркированныхтоваров-Продажамаркированныхтоваров">Продажа<span> маркированных товаров</span></h1><p>Для маркированных товаров должен быть установлен признак <code>tmctype = 7</code> (<a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Barcodes–Штрих-коды">БД <code>Dictionaries</code> таблица <code>Barcodes</code> </a>). При добавлении маркированных товаров требуется считывание кода маркировки.</p><p>Добавление в чек товара с кодом маркировки осуществляется двумя способами:</p><ul><li>последовательным сканированием штрих-кода товара и кода маркировки,</li><li>сканированием кода маркировки (код маркировки содержит в себе данные штрих-кода, поэтому сканировать штрих-код не требуется).</li></ul><h2 id="id-Реализациямаркированныхтоваров-Добавлениемаркированныхтоваров">Добавление маркированных товаров</h2><p>Так как код маркировки представляет собой уникальный код, то в товарной позиции может быть не более 1 единицы товара. Применение модификатора "Количества" к позиции с маркированным товаром запрещено.</p><p>Добавление в чек маркированных товаров, как обычных (без ввода кода маркировки), определяется параметром <code>addWithoutScanMark</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении <code>true</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить товар без маркировки,</li><li>при значении <code>false</code> при добавлении товара в чек на экран будет выведен диалог сканирования кода маркировки.</li></ul><p><span style="color: rgb(23,43,77);">Добавление в чек маркированного товара, как обычного товара (по коду маркировки), задаётся параметром <code>allowUnmarked</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</span></p><ul><li>при значении <code>true</code> товар будет добавлен в чек. В выгрузке продаж такой товар будет считаться как обычный, а также будет передан код маркировки. В ОФД товар передается как обычный,</li><li>при значении <code>false</code> при добавлении товара в чек на экран будет выведена ошибка "Товар не маркирован. Обратитесь в службу техподдержки". Товар в чек не добавляется.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">addWithoutScanMark</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Добавлять маркированные товары в чек без ввода кода маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">allowUnmarked</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Разрешить продажу товара по коду маркировки как не маркированного</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Добавлять маркированные товары в чек без ввода кода маркировки
; По умолчанию false
;addWithoutScanMark = false
...
; Разрешить продажу товара по коду маркировки как не маркированного
; По умолчанию false
;allowUnmarked = false</pre>
</div></div><h2 id="id-Реализациямаркированныхтоваров-Добавлениевесовыхмаркированныхтоваров">Добавление весовых маркированных товаров</h2><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Для корректного закрытия чека на ФР Атол с ФФД 1.2 необходимо задать <a href="https://docs.artix.su/pages/viewpage.action?pageId=65012456">соотнесение единиц измерения товара и меры количества предмета расчета</a>.</p></div></div><p>В кассовом ПО Artix реализована возможность изменять количество для весового маркированного товара, регулируется параметром <code>allowChangeQuantity</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении <code>true</code> разрешено изменять количество весового товара. При применении модификатора "Количество" на экран будет выведен диалог ввода количества,</li><li>при значении <code>false</code> запрещено изменять количество весового товара. При применении модификатора "Количество" на экран будет выведена ошибка "Изменение количества для маркированной позиции запрещено".</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">allowChangeQuantity</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Разрешить изменять количество для весового товара</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Разрешить изменять количество для весового товара
; По умолчанию false
;allowChangeQuantity = false</pre>
</div></div><h3 id="id-Реализациямаркированныхтоваров-Принесоответствииштрих-кодаизкодамаркировкиштрих-кодутовара">При несоответствии штрих-кода из кода маркировки штрих-коду товара</h3><p>В кассовом ПО Artix реализована возможность продажи маркированного товара, если штрих-код товара и штрих-код, содержащийся в коде маркировки, не соответствуют друг другу. Данное поведение определяется параметром <code>allowNotMatchingBarcodes</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении <code>true</code> допускается:<ul><li>сканирование штрих-кода товара из БД после сканирования кода маркировки, штрих-код из которого отсутствует в БД. На экран будет выведено сообщение о необходимости сканирования штрих-кода товара,</li><li>сканирование штрих-кода товара из БД с последовательным сканированием кода маркировки, штрих-код в котором не соответствует ранее отсканированному штрих-коду товара.</li></ul></li><li>при значении <code>false</code>:<ul><li>после сканирования кода маркировки, содержащего штрих-код товара, который отсутствует в БД, на экран будет выведено предупреждение "Товар со штрих-кодом '<штрих-код>' не найден",</li><li>после сканирования кода маркировки, штрих-код из которого не соответствует ранее отсканированному штрих-коду товара, на экран будет выведена ошибка "Ошибка считывания кода маркировки, повторите сканирование".</li></ul></li></ul><p>Маска разрешенных для несоответствия штрих-кодов может быть задана параметром <code>notMatchingBarcodesMask</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>.</p><p>В кассовом ПО Artix реализована возможность проверки несоответствия штрих-кода из кода маркировки карточке товара, найденной по штрих-коду. Данное поведение определяется параметром <code>checkBarcodesOneArticle</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении <code>true</code> параметров <code>allowNotMatchingBarcodes</code> и <code>checkBarcodesOneArticle</code> производится дополнительная проверка на принадлежность штрих-кода из кода маркировки карточке товара, найденной по штрих-коду,</li><li>при значении <code>false</code> проверка принадлежности не осуществляется.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">allowNotMatchingBarcodes</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Разрешить несоответствие штрих-кода из кода маркировки штрих-коду товара</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">notMatchingBarcodesMask</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><br/></td><td class="confluenceTd">Маска разрешенных для несоответствия штрих-кодов</td><td class="confluenceTd"><div class="content-wrapper"><p>По умолчанию "<code>[0-9]*</code>".</p><p>Работает в сочетании с настройкой <code>allowNotMatchingBarcodes</code>:</p><div class="confluence-information-macro has-no-icon confluence-information-macro-information"><div class="confluence-information-macro-body"><p><code>allowNotMatchingBarcodes = true</code></p></div></div></div></td></tr><tr><td class="confluenceTd">checkBarcodesOneArticle</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверять несоответствие штрих-кода из кода маркировки карточке товара, найденной по штрих-коду</td><td class="confluenceTd"><div class="content-wrapper"><p>По умолчанию <code>false</code>.</p><p>Работает в сочетании с настройкой <code>allowNotMatchingBarcodes</code>:</p><div class="confluence-information-macro has-no-icon confluence-information-macro-information"><div class="confluence-information-macro-body"><ul><li><code>allowNotMatchingBarcodes = true</code></li><li><code>checkBarcodesOneArticle = true</code></li></ul></div></div></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Разрешить несоответствие штрих-кода из кода маркировки штрих-коду товара.
; Запрашивать штрих-код товара, если штрих-код из кода маркировки не найден в базе данных.
; Отправлять в ФР штрих-код из кода маркировки
; По умолчанию false
;allowNotMatchingBarcodes = false
; Маска разрешенных для несоответствия штрих-кодов при включенной настройке allowNotMatchingBarcodes
; По умолчанию "[0-9]*"
;notMatchingBarcodesMask = "[0-9]*"
; Проверять несоответствие штрих-кода из кода маркировки карточке товара, найденной по штрих-коду
; Работает в сочетании с настройкой allowNotMatchingBarcodes
; По умолчанию false
;checkBarcodesOneArticle = false
</pre>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример с добавлением весового маркированного товара</b></div><div class="panelContent">
<p><code>allowNotMatchingBarcodes = true</code></p><p class="auto-cursor-target">"<code>21???????????=BBBBBBBQQ.QQQX</code>" – <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532556">правило интерпретации</a> штрих-кода из <code>bcode.ini</code></p><p>010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVs – код маркировки, штрих-код из которого отсутствует в БД кассы</p><p class="auto-cursor-target"><strong>2103321055451</strong> – штрих-код маркированного товара из БД с весом <strong>5.545</strong></p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример 1</b></div><div class="panelContent">
<p>При сканировании кода маркировки "010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVs" на экран будет выведено сообщение "Нет соответствий с введенным кодом маркировки. Отсканируйте штрих-код товара".</p><p>Далее сканируем штрих-код маркированного товара с весом "<strong>2103321055451</strong>".</p><p>Маркированный товар будет добавлен в чек с количеством "<strong>5.545</strong>".</p><p>После закрытия чека в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> таблицу <code>Goodsitem</code> </a> будут записаны следующие данные:</p><ul><li>bcode – <strong>2103321</strong>,</li><li>excisemark – 010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVs,</li><li>additionalbarcode – <strong>4607042439200</strong>.</li></ul>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример 2</b></div><div class="panelContent">
<p>Сканируем штрих-код маркированного товара с весом "<strong>2103321055451</strong>".</p><p>Далее сканируем код маркировки "010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVs".</p><p>Маркированный товар будет добавлен в чек.</p><p>После закрытия чека в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> таблицу <code>Goodsitem</code> </a> будут записаны следующие данные:</p><ul><li>bcode – <strong>2103321</strong>,</li><li>excisemark – 010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVs,</li><li>additionalbarcode – <strong>4607042439200</strong>.</li></ul>
</div></div>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример с добавлением штучного маркированного товара</b></div><div class="panelContent">
<p><code>allowNotMatchingBarcodes = true</code></p><p><strong>4607042439162</strong> – штрих-код маркированного товара из БД кассы</p><p>010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVz – код маркировки, штрих-код из которого отсутствует в БД кассы</p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример 1</b></div><div class="panelContent">
<p>При сканировании кода маркировки "010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVz" на экран будет выведено сообщение "Нет соответствий с введенным кодом маркировки. Отсканируйте штрих-код товара".</p><p>Далее сканируем штрих-код маркированного товара "<strong>4607042439162</strong>".</p><p>Маркированный товар будет добавлен в чек.</p><p>После закрытия чека в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> таблицу <code>Goodsitem</code> </a> будут записаны следующие данные:</p><ul><li>bcode – <strong>4607042439162</strong>,</li><li>excisemark – 010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVz,</li><li>additionalbarcode – <strong>4607042439200</strong>.</li></ul>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример 2</b></div><div class="panelContent">
<p>Сканируем штрих-код маркированного товара "<strong>4607042439162</strong>".</p><p>Далее сканируем код маркировки "010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVz".</p><p>Маркированный товар будет добавлен в чек.</p><p>После закрытия чека в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> таблицу <code>Goodsitem</code> </a> будут записаны следующие данные:</p><ul><li>bcode – <strong>4607042439162</strong>,</li><li>excisemark – 010<strong>4607042439200</strong>21nqmQ&IjzWJ+T*93dGVz,</li><li>additionalbarcode – <strong>4607042439200</strong>.</li></ul>
</div></div>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример проверки по маске ШК товара, разрешенного для несоответствия ШК из КМ</b></div><div class="panelContent">
<p><code>allowNotMatchingBarcodes = true</code></p><p><code>notMatchingBarcodesMask = "29\d{11}"</code></p><p><strong>2912345678900</strong> – первый штрих-код маркированного товара</p><p><strong>4607022741898</strong> – второй штрих-код маркированного товара</p><p>010<strong>2912345678900</strong>21QWERTYUIOPASD1720101093RKWP – код маркировки, соответствующий первому штрих-коду товара</p><p>010<strong>4607022741898</strong>21QWERTYUIOPASD1720101093RKWP – код маркировки, соответствующий второму штрих-коду товара</p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример 1</b></div><div class="panelContent">
<p>Сканируем первый штрих-код маркированного товара "<strong>2912345678900</strong>".</p><p>Далее сканируем код маркировки, соответствующий второму штрих-коду товара "010<strong>4607022741898</strong>21QWERTYUIOPASD1720101093RKWP".</p><p>Отсканированный штрих-код проходит по маске. Маркированный товар будет добавлен в чек.</p>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример 2</b></div><div class="panelContent">
<p>Сканируем второй штрих-код маркированного товара "<strong>4607022741898</strong>".</p><p>Далее сканируем код маркировки, соответствующий первому штрих-коду товара "010<strong>2912345678900</strong>21QWERTYUIOPASD1720101093RKWP".</p><p>Отсканированный штрих-код не проходит по маске. Маркированный товар не будет добавлен в чек.</p>
</div></div>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример добавления товара с несоответствием ШК и КМ в пределах карточки товара</b></div><div class="panelContent">
<p><code>allowNotMatchingBarcodes = true</code></p><p><code>checkBarcodesOneArticle = true</code></p><p><strong>4607022741896</strong> – первый штрих-код маркированного товара из карточки товара</p><p><strong>4607022741898</strong> – второй штрих-код маркированного товара из карточки товара</p><p>010<strong>4607022741898</strong>21QWERTYUIOPASD1720101093RKWP – код маркировки, соответствующий второму штрих-коду товара</p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример 1</b></div><div class="panelContent">
<p>Сканируем первый штрих-код маркированного товара "<strong>4607022741896</strong>".</p><p>Далее сканируем код маркировки, соответствующий второму штрих-коду товара "010<strong>4607022741898</strong>21QWERTYUIOPASD1720101093RKWP".</p><p>Маркированный товар будет добавлен в чек.</p>
</div></div>
</div></div><h3 id="id-Реализациямаркированныхтоваров-Изкаталога">Из каталога</h3><p>В кассовом ПО Artix реализована возможность добавления весовых маркированных товаров из каталога. Для этого необходимо:</p><ol><li>В БД кассы для маркированного товара задать:<ul><li>штрих-код маркированного товара, который соответствует штрих-коду из маркировки,</li><li><p class="auto-cursor-target">штрих-код, содержащий вес товара.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Штрих-коды должны относиться к одному товару.</p></div></div></li></ul></li><li>Создать каталог, содержащий перечень маркированных товаров.</li><li>В конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code> для параметра <code>askForBarcodeFromCatalogs</code> задать коды каталогов, которые содержат маркированные товары.</li></ol><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">askForBarcodeFromCatalogs</td><td class="confluenceTd">логический</td><td class="confluenceTd">Запрашивать штрих-код товара, если он входит в каталог из списка и добавляется по коду маркировки</td><td class="confluenceTd">Может указываться через запятую</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Запрашивать штрих-код товара, если он входит в каталог из списка и добавляется по коду маркировки
; Разрешить несоответствие штрих-кода из кода маркировки штрих-коду товара при условии, что оба штрих-кода относятся к одному товару, входящему в каталог из списка
; Отправлять в ФР штрих-код из кода маркировки
; По умолчанию ""
;askForBarcodeFromCatalogs = "" </pre>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример с добавлением весового маркированного товара из каталога</b></div><div class="panelContent">
<p class="auto-cursor-target"><code>askForBarcodeFromCatalogs = 2</code></p><p class="auto-cursor-target">"<code>21???????????=BBBBBBBQQ.QQQX</code>" – <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532556">правило интерпретации</a> штрих-кода из <code>bcode.ini</code></p><p class="auto-cursor-target"><strong>4607042430633</strong> – штрих-код маркированного товара из БД кассы (входит в каталог 2)</p><p class="auto-cursor-target">010<strong>4607042430633</strong>21nqmQ&IjzWJ+T*93dGVz – код маркировки, штрих-код из которого есть в БД кассы</p><p class="auto-cursor-target"><strong>2103321055451</strong> – штрих-код маркированного товара из БД с весом <strong>5.545</strong></p><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример последовательного сканирования кода маркировки и штрих-кода маркированного товара</b></div><div class="panelContent">
<p>При сканировании кода маркировки "010<strong>4607042430633</strong>21nqmQ&IjzWJ+T*93dGVz" на экран будет выведено сообщение "Необходима дополнительная информация. Отсканируйте штрих-код товара".</p><p>Далее сканируем штрих-код маркированного товара с весом "<strong>2103321055451</strong>".</p><p>Маркированный товар будет добавлен в чек с количеством "<strong>5.545</strong>".</p><p>После закрытия чека в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> таблицу <code>Goodsitem</code> </a> будут записаны следующие данные:</p><ul><li>bcode – <strong>2103321</strong>,</li><li>excisemark – 010<strong>4607042430633</strong>21nqmQ&IjzWJ+T*93dGVz,</li><li>additionalbarcode – <strong>4607042430633</strong>.</li></ul>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример последовательного сканирования штрих-кода маркированного товара и кода маркировки</b></div><div class="panelContent">
<p>При сканировании штрих-кода маркированного товара с весом "<strong>2103321055451</strong>" на экран будет выведен диалог сканирования кода маркировки.</p><p>Далее сканируем код маркировки "010<strong>4607042430633</strong>21nqmQ&IjzWJ+T*93dGVz".</p><p>Маркированный товар будет добавлен в чек с количеством "<strong>5.545</strong>".</p><p>После закрытия чека в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> таблицу <code>Goodsitem</code> </a> будут записаны следующие данные:</p><ul><li>bcode – <strong>2103321</strong>,</li><li>excisemark – 010<strong>4607042430633</strong>21nqmQ&IjzWJ+T*93dGVz,</li><li>additionalbarcode – <strong>4607042430633</strong>.</li></ul>
</div></div>
</div></div><h3 id="id-Реализациямаркированныхтоваров-Помаске">По маске</h3><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Реализовано только для молочной продукции.</p></div></div><p>Маркированный товар может содержать в коде маркировки вес товара. Для получения веса из маркировки, при добавлении товара в чек, необходимо в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в нужной подсекции настроить маску с капчурингом <code>weight</code> для параметра <code>mask</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">;[MarkedGoods.Milk]
; Маркированное молоко
; Маска для проверки DataMatrix молочной продукции
;mask = "\s*01(?<barcode>[0-9]{14})(21.{13}\s*(17\d{6}|7003\d{10})|21.{6}|21.{8})\s*93.{4}(\s*3103(?<weight>\d{6}))?"</pre>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример добавления весового товара по коду маркировки</b></div><div class="panelContent">
<p>При сканировании кода маркировки "<span class="markedContent"> <span>010<strong>3041094787443</strong>215Qbag!</span> <span>93Zjqw</span> <span>3103<strong>000353</strong> </span> </span>" в чек будет добавлен товар со штрих-кодом <span class="markedContent"> <span> <strong>3041094787443</strong> и весом <strong>0.353</strong>.</span> </span></p><p>После закрытия чека в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> таблицу <code>Goodsitem</code> </a> будут записаны следующие данные:</p><ul><li>bcode – <span class="markedContent"> <span> <strong>3041094787443</strong> </span> </span>,</li><li>excisemark – <span class="markedContent"> <span>010<strong>3041094787443</strong>215Qbag!</span> <span>93Zjqw</span> <span>3103<strong>000353</strong> </span> </span>.</li></ul>
</div></div><h2 id="id-Реализациямаркированныхтоваров-Разрешенныетипыданныхдлявводакодамаркировки">Разрешенные типы данных для ввода кода маркировки</h2><p>В кассовом ПО Artix реализована возможность настройки разрешенных типов данных для ввода кода маркировки, задается параметром <code>permittedInput</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции [<code>MarkedGoods</code>]:</p><p>При добавлении в чек маркированного товара:</p><ul><li>сканированием кода маркировки с типом данных, не указанным в настройке, на экран будет выведена ошибка "Неверный тип ввода данных",</li><li>последовательным сканированием штрих-кода и кода маркировки с типом данных, не указанным в настройке, код маркировки будет проигнорирован. </li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">permittedInput</td><td class="confluenceTd"><p>целочисленный</p><p>(<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531840">битовая маска</a>)</p></td><td class="confluenceTd"><div class="content-wrapper"><ul><li>0 – запрет ввода любых данных,</li><li>1 – текстовые данные,</li><li>2 – бинарные данные (если устройство может посылать непечатные символы),</li><li>3 – текстовые и бинарные данные.</li></ul><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="panelContent">
<p>Чтобы <strong>разрешить</strong> <em>ввод только текстовых данных со сканера в режиме клавиатурной эмуляции</em>, необходимо установить значение настройки <code>permittedInput=1</code>.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Соответственно, при значении настройки <code>permittedInput=1</code> <em>ввод бинарных данных со сканера, подключенного по com-порту,</em> будет <strong>запрещен</strong>.</div></div><p>Чтобы <strong>разрешить</strong> <em>ввод только бинарных данных со сканера, подключенного по com-порту</em>, необходимо установить значение настройки <code>permittedInput=2</code>.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Соответственно, при значении настройки <code>permittedInput=2</code> <em>ввод текстовых данных со сканера в режиме клавиатурной эмуляции</em> будет <strong>запрещен</strong>.</div></div>
</div></div></div></td><td class="confluenceTd">Разрешенные типы вводимых данных</td><td class="confluenceTd"><div class="content-wrapper"><p>По умолчанию разрешены все типы вводимых данных</p></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Разрешенные типы вводимых данных
; По умолчанию "" - все типы вводимых данных
;permittedInput =</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>При необходимости настройку можно выносить в отдельную подсекцию <code>[MarkedGoods.<имя_подсекции>]</code>, настройка из подсекции будет учитываться только при добавлении маркированного товара в чек сканированием кода маркировки.</p></div></div><h2 id="id-Реализациямаркированныхтоваров-Удалениемаркированныхтоваров">Удаление маркированных товаров</h2><p>При сторнировании маркированных товаров требуется считывание кода маркировки товара. После сканирования кода маркировки из чека удаляется именно та позиция, данные которой были считаны, независимо от того, какая позиция была выделена при операции сторнирования. При сторнировании всего чека, содержащего маркированные товары, операция выполняется без считывания кодов маркировки.</p><h1 id="id-Реализациямаркированныхтоваров-Возвратмаркированныхтоваров">Возврат <span>маркированных товаров</span></h1><p>Возврат маркированных товаров в торговую сеть может быть осуществлен в режиме возврата или возврата по чеку продажи.</p><p>В режиме возврата добавление маркированного товара в чек выполняется аналогично добавлению в чек продажи.</p><p>При возврате по чеку продажи позицию для возврата можно выбрать одним из способов:</p><ul><li>выбрав товар из списка в режиме выбора позиций для возврата и считав код маркировки товара,</li><li>считав код маркировки товара.</li></ul><p>Для возврата маркированных товаров реализована возможность добавления позиции в чек без сканирования кода маркировки, которая определяется параметром <code>addWithoutScanMarkInBackBySale</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении <code>true</code> при добавлении в чек товара для возврата на экран будет выведен диалог сканирования кода маркировки, в котором есть возможность добавить товар без маркировки,</li><li>при значении <code>false</code> при добавлении в чек товара для возврата на экран будет выведен диалог сканирования кода маркировки.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">addWithoutScanMarkInBackBySale</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Добавлять маркированные товары в чек возврата и в чек возврата по чеку продажи без ввода кода маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Добавлять маркированные товары в чек возврата по чеку продажи без ввода кода маркировки
; По умолчанию false
;addWithoutScanMarkInBackBySale = false</pre>
</div></div><p>Если при возврате по чеку продажи не используется <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532516">форма выбора товаров</a>, то при переходе к формированию чека возврата маркированные товары удаляются из чека.</p><p>Выбор маркированных товаров в форме выбора товара для возврата не может быть отменен. Сторнирование маркированных товаров в этом случае выполняется в режиме формирования чека возврата.</p><p>Если при добавлении маркированного товара в чек возврата по чеку продажи код маркировки не использовался, то при сторнировании данной позиции не будет требоваться считывание кода маркировки.</p><h2 id="id-Реализациямаркированныхтоваров-Кодмаркировки,заданныйвручную,длявозврататоваровбезвводакодамаркировки">Код маркировки, заданный вручную, для возврата товаров без ввода кода маркировки</h2><p>В кассовом ПО Artix реализована возможность задавать вручную значение кода маркировки для товаров, добавленных в чек возврата без ввода кода маркировки. Значение кода маркировки регулируется параметром <code>addWithoutScanMarkMarkingCode</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>если значение параметра задано, то при возврате товара данное значение будет сохраняться как код маркировки в формате <code>Base64</code> в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> в таблицу <code>Goodsitem</code> </a> в поле <code>markingcode</code>,</li><li>если значение параметра не задано (по умолчанию), то:<ul><li>при добавлении в чек товара в режиме возврата по чеку продажи в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> в таблицу <code>Goodsitem</code> </a> <span> в поле </span> <code>markingcode</code> будет сохраняться код маркировки, указанный в чеке продажи,</li><li>при добавлении в чек товара в режиме возврата код маркировки в БД сохраняться не будет.</li></ul></li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Если возврат товара был осуществлен с вводом кода маркировки, то независимо от того, что указано в параметре <code>addWithoutScanMarkMarkingCode</code>, в БД будет сохраняться код маркировки, указанный при возврате.</p></div></div><p><br/></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">addWithoutScanMarkMarkingCode</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><ul><li>" " – пустое значение</li><li>значение кода маркировки</li></ul></td><td class="confluenceTd"><p>Код маркировки товаров, добавленных в чек возврата без ввода маркировки, который сохраняется в БД в формате Base64</p></td><td class="confluenceTd">По умолчанию <code>"</code> <code>"</code> <code>–</code> <code>пустое значение</code> </td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Код маркировки, который сохраняется для товаров, добавленных без ввода маркировки
; По умолчанию ""
addWithoutScanMarkMarkingCode = "Пример"</pre>
</div></div><div class="confluence-information-macro has-no-icon confluence-information-macro-information"><div class="confluence-information-macro-body">В <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> в таблицу <code>Goodsitem</code> </a> <span> в поле </span> <code>markingcode</code> в данном случае сохранится значение "0J/RgNC40LzQtdGA" ("Пример" в формате <code>Base64</code>).</div></div><h1 id="id-Реализациямаркированныхтоваров-Ограничениядлядобавлениятоварабезсканированиякодамаркировки">Ограничения для добавления товара без сканирования кода маркировки</h1><p><span class="conf-macro output-inline">В кассовом ПО Artix реализован</span>а возможность установить ограничения для добавления товара без сканирования кода маркировки в зависимости от роли пользователя. Для этого необходимо:</p><ol><li class="auto-cursor-target"><p class="auto-cursor-target">Активировать плагин проверки ограничений в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/restrictions.ini</code> в секции <code>[plugins]</code> с помощью параметра <code>restrictions</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th></tr><tr><td class="confluenceTd">restrictions</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><ul><li>on</li><li>off</li></ul></td><td class="confluenceTd">Активация плагина проверки ограничений</td></tr></tbody></table></div></li><li class="auto-cursor-target"><p class="auto-cursor-target">Указать роли, для которых разрешено добавление маркированного товара без сканирования кода маркировки. Данное поведение регулируется с помощью параметров <code>addWithoutScanMarkRoles</code> и <code>addWithoutScanMarkInBackBySaleRoles</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/restrictions.ini</code> в секции <code>[Restrictions.Card.MarkedGoods]</code>.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">addWithoutScanMarkRoles</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки</td><td rowspan="2" class="confluenceTd"><p>Список задается через запятую.</p><p>По умолчанию ограничения не заданы</p></td></tr><tr><td class="confluenceTd">addWithoutScanMarkInBackBySaleRoles</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><p>Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки при возврате по чеку продажи</p></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">[plugins]
; Плагин проверки ограничений
;restrictions = off
...
;[Restrictions.MarkedGoods]
; Настройка ограничений при работе с маркированными товарами
; Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки
; По умолчанию ""
;addWithoutScanMarkRoles = ""
; Список ролей, которым разрешено добавлять маркированный товар без сканирования маркировки
; при возврате по чеку продажи
; По умолчанию ""
;addWithoutScanMarkInBackBySaleRoles = ""</pre>
</div></div></li></ol><h1 id="id-Реализациямаркированныхтоваров-Проверкакодовмаркировкитоваров">Проверка кодов маркировки товаров</h1><p>Регламент работы по проверке кодов маркировки при продаже и возврате по чеку продажи маркированных товаров определяется структурой торговой сети. Проверка кодов маркировки предполагает:</p><ul><li>проверку на факт продажи/возврата маркированных товаров (<span class="confluence-link">в БД кассовой программы</span>),</li><li>проверку статуса кода маркировки на кассовом сервере,</li><li>проверку кода маркировки в "белом" списке на сервере (коды маркировки, разрешенные к продаже),</li><li>проверку кода маркировки в "белом" списке в БД кассовой программы.</li></ul><p>Проверка кода маркировки в проданной продукции на кассе задается параметром <code>checkLocalUniqueness</code> в конфигурационном файле <code>/linuxcash/cash/conf/</code> <code>ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении параметра <code>true</code> осуществляется проверка в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248344">БД <code>Documents</code> в таблице <code>Goodsitem</code> </a> на возможность продажи/возврата маркированного товара:<br/><ul><li>если код маркировки был продан/возвращен ранее, то при попытке продать/вернуть товар на экран выводится сообщение об ошибке "Код маркировки уже был зарегистрирован ранее", товар в чек не добавляется,</li><li>если код маркировки не был продан/возвращен ранее, то товар добавляется в чек.</li></ul></li><li>при значении параметра <code>false</code> проверка кода маркировки в проданной продукции не осуществляется.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th colspan="1" style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">checkLocalUniqueness</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кода маркировки в проданной продукции на кассе</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
;checkLocalUniqueness = true</pre>
</div></div><h2 id="id-Реализациямаркированныхтоваров-Структурасетибезкассовыхсерверов(толькокассы)">Структура сети без кассовых серверов (только кассы)</h2><p>Проверка кодов маркировки в "белом" списке в БД кассовой программы задается параметром <code>enableMarkVerifyLocal</code> в конфигурационном файле <code>/linuxcash/cash/conf/</code> <code>ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении параметра <code>true</code> проверка кода маркировки осуществляется в <a href="https://docs.artix.su/pages/viewpage.action?pageId=86248283#id-Товары-Excisemarkwhite–"Белый"списокакцизныхмарок">БД <code>Dictionaries</code> в таблице <code>Excisemarkwhite</code> </a>:<br/><ul><li>если код маркировки найден в списке, то товар добавляется в чек продажи,</li><li>если код маркировки отсутствует в списке, то на экран выводится сообщение об ошибке "Товар с таким кодом маркировки запрещен к продаже", товар в чек не добавляется.</li></ul></li><li>при значении параметра <code>false</code> проверка кода маркировки в "белом" списке не выполняется.</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Проверка кодов маркировки в "белом" списке на кассе выполняется только при значении параметра <code>enableMarkVerify = false</code> (проверка на кассовом сервере отключена).</p></div></div><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th class="confluenceTh">Наименование</th><th class="confluenceTh">Тип данных</th><th class="confluenceTh">Возможные значения</th><th class="confluenceTh">Описание</th><th class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd"><p>enableMarkVerifyLocal</p></td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверять коды маркировки на кассе</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Проверять коды маркировки на кассе
; По умолчанию false
;enableMarkVerifyLocal = false</pre>
</div></div><h2 id="id-Реализациямаркированныхтоваров-Структурасетискассовымисерверами">Структура сети с кассовыми серверами</h2><p>Структура сети с кассовыми серверами позволяет осуществлять контроль:</p><ul><li>дублей кодов маркировки (запрет повторной продажи/возврата одного и того же маркированного товара),</li><li>разрешенных к продаже кодов маркировки (запрет продажи/возврата товаров, коды маркировки которых не были внесены в "белый" список).</li></ul><p>Настройки подключения к кассовому серверу задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td colspan="1" class="confluenceTd">enableMarkVerify</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Проверка кодов маркировки на сервере</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td colspan="1" class="confluenceTd">markVerifyUrl</td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Url сервера проверки кодов маркировки</td><td colspan="1" class="confluenceTd"><p>По умолчанию <code>
<span class="nolink">http://localhost:8080</span></code>.</p><p>Для работы с КС используется url "<code>http://<host>:<port>/CSrest/rest/sales/exciseMark/status</code>"</p></td></tr><tr><td colspan="1" class="confluenceTd">markVerifyTimeout</td><td colspan="1" class="confluenceTd">строковый</td><td colspan="1" class="confluenceTd"><br/></td><td colspan="1" class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки в секундах</td><td colspan="1" class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td colspan="1" class="confluenceTd">ignoreMarkVerifyErrors</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Игнорировать ошибки обращения к серверу проверки кодов маркировки</td><td colspan="1" class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td colspan="1" class="confluenceTd">skipCheckExciseMark</td><td colspan="1" class="confluenceTd">логический</td><td colspan="1" class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td colspan="1" class="confluenceTd">Игнорировать проверку АМ при возврате по чеку (для <a href="https://docs.artix.su/pages/viewpage.action?pageId=53018648">онлайн-чеков</a> при некорректных АМ)</td><td colspan="1" class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Проверка кодов маркировки на сервере
; По умолчанию false
;enableMarkVerify=false
; Игнорировать проверку АМ при возврате по чеку (для онлайн-чеков при некорректных АМ)
; По умолчанию false
;skipCheckExciseMark = false
; Url сервера проверки кодов маркировки
; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status"
; По умолчанию http://localhost:8080
;markVerifyUrl=http://localhost:8080
; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
;markVerifyTimeout=30
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
;ignoreMarkVerifyErrors=true</pre>
</div></div><p>Проверка кодов маркировки на сервере задается при помощи параметра <code>enableMarkVerify</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере,</span></li><li>при значении <code>false</code> <span class="confluence-link">проверка кода маркировки на сервере</span> не выполняется.</li></ul><p>Подключение к серверу задается в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code> параметрами:</p><ul><li><code>markVerifyUrl</code> – URL кассового сервера,</li><li><code>markVerifyTimeout</code> – таймаут ожидания ответа от кассового сервера при проверке кодов маркировки.</li></ul><p>Настройками программы можно разрешать или запрещать продажу/возврат маркированных товаров при возникновении ошибок обращения к кассовому серверу. Возможность игнорирования возникающих ошибок определяется параметром <code>ignoreMarkVerifyErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.</code> <code>ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><ul><li>при значении <code>true</code> ошибки, возвращаемые кассовым сервером, игнорируются,</li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки на кассовом сервере продажа/возврат товара не может быть выполнена.</li></ul><div class="panel" style="border-width: 1px;"><div class="panelContent">
<p><strong>Для корректной проверки кодов маркировки на кассовом сервере также необходимо:</strong></p><p><span style="letter-spacing: 0.0px;">В настройках </span> <em style="letter-spacing: 0.0px;">Artix Control Center:</em></p><ol><li>Перейти в меню "Настройки сервера" в раздел "<a href="https://docs.artix.su/pages/viewpage.action?pageId=40469926#id-Настройкисервера-Акцизнаяпродукция">Акцизная продукция</a>".</li><li>В настройке "Проверять список разрешенных к продаже кодов маркировки прочих товаров" установить значение "Проверять по коду маркировки".</li></ol>
</div></div><p>При добавлении маркированных товаров в чек продажи на кассовый сервер отправляется REST-запрос на получение статуса кода маркировки. Дальнейшее поведение программы определяется полученным статусом.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> </colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже</th></tr><tr><td class="confluenceTd">Марка не зарегистрирована в БД</td><td class="confluenceTd">Товар с акцизной маркой добавляется в чек и может быть продан</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан"</td></tr><tr><td colspan="1" class="confluenceTd">Товар с такой маркой возвращен</td><td colspan="1" class="confluenceTd">Товар добавлен в чек и может быть продан</td></tr><tr><td colspan="1" class="confluenceTd">Марка зарезервирована в чеке продажи</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td></tr><tr><td colspan="1" class="confluenceTd">Марка снята с резерва в чеке продажи</td><td colspan="1" class="confluenceTd">Товар добавляется в чек и может быть продан</td></tr><tr><td colspan="1" class="confluenceTd">Марка зарезервирована в чеке возврата (чеке возврата по чеку продажи)</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был зарезервирован"</td></tr><tr><td colspan="1" class="confluenceTd">Марка снята с резерва в чеке возврата (чеке возврата по чеку продажи)</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой уже был продан"</td></tr><tr><td colspan="1" class="confluenceTd">Акцизная марка отсутствует в списке разрешенных к продаже</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже"</td></tr><tr><td colspan="1" class="confluenceTd">Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки в белом списке"</td></tr><tr><td colspan="1" class="confluenceTd">Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найдено соответствие акцизной марки и штрих-кода в белом списке"</td></tr><tr><td colspan="1" class="confluenceTd">Неизвестный статус акцизной марки</td><td colspan="1" class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере"</td></tr></tbody></table></div><p>После добавления товара в чек продажи/возврата по чеку продажи код маркировки ставится в резерв на кассовом сервере.</p><p>Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:</p><ul><li>в режиме онлайн (по REST-запросу) – резервирование кода маркировки,</li><li>в режиме оффлайн (через очередь <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532219">Artix-Queue</a>) – снятие с резерва кода маркировки (сторнирование), после закрытия чека перевод в статус "продан", "возвращен".</li></ul><h1 id="id-Реализациямаркированныхтоваров-Разделениенастроекдляразныхкатегориймаркированныхтоваров">Разделение настроек для разных категорий маркированных товаров</h1><p>При необходимости настройки можно переопределить для каждой категории маркированных товаров. Таким образом для каждой подсекции маркированных товаров указываются свои правила поведения. Возможность выделения параметра в отдельную подсекцию указана в таблице:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование настройки</th><th style="text-align: center;" class="confluenceTh">Статус</th></tr><tr><td class="confluenceTd">markedgoods</td><td rowspan="12" class="confluenceTd">общая</td></tr><tr><td class="confluenceTd">addWithoutScanMark</td></tr><tr><td class="confluenceTd">skipCheckExciseMark</td></tr><tr><td class="confluenceTd">allowNotMatchingBarcodes</td></tr><tr><td class="confluenceTd">askForBarcodeFromCatalogs</td></tr><tr><td class="confluenceTd">allowChangeQuantity</td></tr><tr><td class="confluenceTd">scanMarkInInventory</td></tr><tr><td class="confluenceTd">addWithoutScanMarkInBackBySale</td></tr><tr><td class="confluenceTd">markScanImage</td></tr><tr><td class="confluenceTd">checkBarcodesOneArticle</td></tr><tr><td class="confluenceTd">addWithoutScanMarkMarkingCode</td></tr><tr><td class="confluenceTd">markVerifyCrptUrl</td></tr><tr><td class="confluenceTd">enableMarkVerify</td><td rowspan="17" class="confluenceTd">индивидуальная</td></tr><tr><td class="confluenceTd">markVerifyUrl</td></tr><tr><td class="confluenceTd">markVerifyTimeout</td></tr><tr><td class="confluenceTd">ignoreMarkVerifyErrors</td></tr><tr><td class="confluenceTd">enableMarkVerifyLocal</td></tr><tr><td class="confluenceTd">mask</td></tr><tr><td class="confluenceTd">checkLocalUniqueness</td></tr><tr><td class="confluenceTd">allowUnmarked</td></tr><tr><td class="confluenceTd">ignoreCrptStatusValid</td></tr><tr><td class="confluenceTd">ignoreCrptStatusVerified</td></tr><tr><td class="confluenceTd">ignoreCrptStatusUtilised</td></tr><tr><td class="confluenceTd">ignoreCrptStatusRealizable</td></tr><tr><td class="confluenceTd">ignoreCrptStatusExpireDate</td></tr><tr><td class="confluenceTd">permittedInput</td></tr><tr><td class="confluenceTd">ignoreCrptStatusSold</td></tr><tr><td class="confluenceTd">ignoreCrptStatusIsBlocked</td></tr><tr><td class="confluenceTd">ignoreCrptStatusFound</td></tr></tbody></table></div><p>По умолчанию все настройки размещены в секции <code>[MarkedGoods]</code>. При необходимости все или часть индивидуальных настроек можно вынести в отдельную подсекцию <code>[MarkedGoods.<имя_подсекции>]</code>. Если в подсекции <code>[MarkedGoods.<имя_подсекции>]</code> указана только часть индивидуальных настроек, то для остальных настроек будет использовано значение из секции <code>[MarkedGoods]</code>.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>В подсекции <code>[MarkedGoods.<имя_подсекции>]</code> обязательно должна быть указана маска для проверки Data Matrix.</p></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример разделения настроек</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[plugins]
markedgoods = on
[MarkedGoods]
; Проверка кодов маркировки на сервере
; По умолчанию false
enableMarkVerify = true
; Url сервера проверки кодов маркировки
; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/sales/exciseMark/status"
; По умолчанию http://localhost:8080
markVerifyUrl = http://localhost:8080
; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
markVerifyTimeout = 30
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
ignoreMarkVerifyErrors = true
; Проверять коды маркировки на кассе
; По умолчанию false
enableMarkVerifyLocal = false
; Добавлять маркированные товары в чек без ввода кода маркировки
; По умолчанию false
addWithoutScanMark = false
; Разрешить несоответствие штрих-кода из DataMatrix линейному штрих-коду товара
; По умолчанию false
;allowNotMatchingBarcodes = true
; Разрешить изменять количество для весового товара
; По умолчанию false
;allowChangeQuantity = true
; Сканирование кода маркировки для документа инвентаризации
; По умолчанию false
;scanMarkInInventory = true
;[MarkedGoods.Milk]
;mask = "\s*01(?<barcode>[0-9]{14})(21.{13}\s*(17\d{6}|7003\d{10})|21.{6}|21.{8})\s*93.{4}(\s*3103(?<weight>\d{6}))?"
; Проверка кодов маркировки на сервере
; По умолчанию false
enableMarkVerify = false
; Проверять коды маркировки на кассе
; По умолчанию false
enableMarkVerifyLocal = true
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
checkLocalUniqueness = true
; Запрашивать линейный штрих-код, если товар входит в каталог из списка
; По умолчанию ""
;askForBarcodeFromCatalogs = "1"
;[MarkedGoods.Camera]
;mask = "01(?<barcode>[0-9]{14})21.{20}\s*91.{4}\s*92.{44}"
; Проверка кодов маркировки на сервере
; По умолчанию false
enableMarkVerify = true
; Проверять коды маркировки на кассе
; По умолчанию false
enableMarkVerifyLocal = false
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
checkLocalUniqueness = false
;[MarkedGoods.Common]
;mask = "01(?<barcode>[0-9]{14})21.{13}\s*91.{4}\s*92.{44}"
; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
ignoreMarkVerifyErrors = false
; Проверка кода маркировки в проданной продукции на кассе
; По умолчанию true
checkLocalUniqueness = false
;[MarkedGoods.Water]
;mask = "01(?<barcode>[0-9]{14})21.{13}\s*93.{4}\s*"
</pre>
</div></div><h1 id="id-Реализациямаркированныхтоваров-Проверкакодовмаркировкивсистемецифровоймаркировки"Честныйзнак"">Проверка кодов маркировки в системе цифровой маркировки "Честный знак"</h1><div class="panel" style="border-width: 1px;"><div class="panelContent">
<p>В кассовом ПО Artix реализована обязательная проверка кодов маркировки в системе цифровой маркировки "Честный знак" (разрешительный режим).</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Проверка производится только для товаров в чеке продажи.</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Помимо проверки валидности марки осуществляется проверка срока годности товара. Если у срока годности товара указана дата, но не указано время (в часах, минутах и секундах), то данный товар будет запрещен к продаже в полночь того же дня.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>При проверке кодов маркировки некоторых товаров, ввозимых в Россию из стран таможенного союза, могут возникать ошибки.</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Разрешительный режим также поддержан для <a href="https://docs.artix.su/pages/viewpage.action?pageId=27532494">софт-чеков</a> и <a href="https://docs.artix.su/pages/viewpage.action?pageId=53018648">онлайн-чеков</a>:</p><ul><li>проверка кодов маркировки в онлайн-чеках происходит одновременно для нескольких товаров, если код маркировки хотя бы одного товара в онлайн-чеке не прошел проверку в системе цифровой маркировки "Честный знак", то онлайн-чек восстановлен не будет,</li><li>для софт-чеков проверка кода маркировки товара происходит при сканировании маркированной позиции в заказе.</li></ul></div></div>
</div></div><p>Проверка кодов маркировки на сервере системы "Честный знак" задается при помощи параметра <code>enableMarkVerifyCrpt</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code> и в подсекциях <code>[MarkedGoods.<имя_подсекции>]</code>:</p><ul><li>при значении <code>true</code> осуществляется<span class="confluence-link"> проверка кода маркировки на сервере системы "Честный знак",</span></li><li>при значении <code>false</code> проверка кода маркировки на сервере системы "Честный знак" не осуществляется.</li></ul><p>Возможность игнорировать ошибки обращения к серверу системы "Честный знак" задается при помощи параметра <code>ignoreMarkVerifyCrptConnectionErrors</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code> и в подсекциях <code>[MarkedGoods.<имя_подсекции>]</code>:</p><ul><li>при значении <code>true</code> ошибки обращения к<span class="confluence-link"> серверу системы "Честный знак" игнорируются, продажа может быть выполнена,<br/></span></li><li>при значении <code>false</code> в случае возникновения ошибок при проверке кода маркировки на сервере <span class="confluence-link">системы "Честный знак"</span> на экран будет выведено сообщение "Не удалось выполнить проверку кода маркировки (Ошибка соединения с сервером)", продажа не может быть выполнена.</li></ul><p>Возможность запросить подтверждение добавления товара при провале проверки маркировки задается при помощи параметра <code>markVerifyCrptAskConfirmation</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code> и в подсекциях <code>[MarkedGoods.<имя_подсекции>]</code>:</p><ul><li>при значении <code>true</code> на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши "Ввод"</span> товар будет добавлен в чек, <span>по нажатию клавиши "Отмена"</span> товар не будет добавлен в чек,<br/></span></li><li>при значении <code>false</code> на экран будет выведен диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек.</li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Типа данных</th><th style="text-align: center;" class="confluenceTh">Возможные значения</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">enableMarkVerifyCrpt</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Проверка кодов маркировки на сервере честного знака</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr><tr><td class="confluenceTd">markVerifyCrptUrl</td><td class="confluenceTd">строковый</td><td class="confluenceTd"><br/></td><td class="confluenceTd">Url сервера проверки кодов маркировки честного знака</td><td class="confluenceTd"><p>По умолчанию <code>https://cdn.crpt.ru</code></p><p>Можно указать несколько значений через запятую</p></td></tr><tr><td class="confluenceTd">markVerifyCrptTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd">Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах</td><td class="confluenceTd">По умолчанию <code>30</code></td></tr><tr><td class="confluenceTd">ignoreMarkVerifyCrptConnectionErrors</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Игнорировать ошибки обращения к серверу честного знака</td><td class="confluenceTd">По умолчанию <code>true</code></td></tr><tr><td class="confluenceTd">markVerifyCrptAskConfirmation</td><td class="confluenceTd">логический</td><td class="confluenceTd"><ul><li>true</li><li>false</li></ul></td><td class="confluenceTd">Запросить подтверждение добавления товара при провале проверки маркировки</td><td class="confluenceTd">По умолчанию <code>false</code></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Проверка кодов маркировки на сервере честного знака
; По умолчанию false
;enableMarkVerifyCrpt = false
; Url сервера проверки кодов маркировки честного знака
; По умолчанию https://cdn.crpt.ru
;markVerifyCrptUrl = https://cdn.crpt.ru
; Таймаут обращения к серверу проверки кодов маркировки честного знака в секундах
; По умолчанию 30
;markVerifyCrptTimeout = 30
; Игнорировать ошибки обращения к серверу честного знака
; По умолчанию true
;ignoreMarkVerifyCrptConnectionErrors = true
; Запросить подтверждение добавления товара при провале проверки маркировки
; По умолчанию false
;markVerifyCrptAskConfirmation = false
...</pre>
</div></div><p class="auto-cursor-target">В кассовом ПО Artix реализована возможность авторизации по токену в системе цифровой маркировки "Честный знак". Данная возможность задается при помощи параметра <code>xapikey</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><div class="table-wrap"><table class="relative-table wrapped confluenceTable" style="width: 69.8529%;"><colgroup><col style="width: 9.64344%;"/><col style="width: 8.02269%;"/><col style="width: 25.4457%;"/><col style="width: 56.8071%;"/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">xapikey</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Токен для доступа к серверу честного знака</td><td class="confluenceTd"><div class="content-wrapper"><ul><li>При использовании одного токена для нескольких юридических лиц:<br/><code>xapikey = [<отдел1>.<отдел2>:<токен>]<br/></code></li><li>При использовании токена только для одного из юридических лиц, например, только для <code><отдел2></code>:<br/><code>xapikey = [<отдел1>:1],[<отдел2>:<токен>]<br/></code></li><li>При использовании токена для одного юридического лица:<br/><code>xapikey = [-1:<токен>]</code></li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Использование токена вида <code>xapikey = [1:<токен>]</code> недопустимо.</p></div></div></div></td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Токен для доступа к серверу честного знака
; При использовании нескольких юрлиц задаются токены для отделов:
; xapikey = [<отдел1>:<токен1>],[<отдел2>.<отдел3>:<токен2>]
; При использовании одного юрлица токен задается для отдела -1
; xapikey = [-1:<токен>]
;xapikey =
...</pre>
</div></div><p>После авторизации по токену кассой в системе цифровой маркировки "Честный знак" будет получен список ведомств (CDN-площадок) для осуществления проверки кодов маркировки.</p><p>Ведомство для проверки кодов маркировки выбирается в порядке приоритета в зависимости от времени соединения – самый высокий приоритет имеет ведомство, соединение с которым произошло раньше остальных. Если соединение с первым ведомством было потеряно, то проверка будет осуществляться в ведомстве, которое следует далее по приоритету.</p><p>Настройки получения информации о CDN-площадках осуществляются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/crpt.ini</code> в секции [<code>CRPT</code>]:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">getInfoTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения списка CDN-площадок</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr><tr><td class="confluenceTd">healthCheckTimeout</td><td class="confluenceTd">целочисленный</td><td class="confluenceTd">Таймаут получения состояния CDN-площадки</td><td class="confluenceTd">По умолчанию <code>10</code> секунд</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[CRPT]
; Настройки взаимодействия с ЦРПТ
; Таймаут получения списка CDN-площадок
; по умолчанию 10 секунд
;getInfoTimeout = 10
; Таймаут получения состояния CDN-площадки
; по умолчанию 10 секунд
;healthCheckTimeout = 10</pre>
</div></div><p class="auto-cursor-target">При добавлении маркированных товаров в чек продажи на сервер системы "Честный знак" отправляется REST-запрос на получение статуса кода маркировки.</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Статус кода маркировки</th><th style="text-align: center;" class="confluenceTh">Поведение кассы при продаже по умолчанию</th></tr><tr><td class="confluenceTd">Товар с некорректным кодом маркировки</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки некорректен"</td></tr><tr><td class="confluenceTd">Товар с такой маркой не прошел проверку подлинности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не прошел проверку крипто подписи"</td></tr><tr><td class="confluenceTd">Товар не имеет признака нанесения марки на упаковку</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. У кода маркировки отсутствует признак нанесения на упаковку"</td></tr><tr><td class="confluenceTd">Товар с такой маркой продан или снят с продажи</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не в обороте"</td></tr><tr><td class="confluenceTd">Товар с такой маркой имеет истекший срок годности</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки просрочен"</td></tr><tr><td class="confluenceTd">Код маркировки данного товара выведен из оборота</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки выведен из оборота"</td></tr><tr><td class="confluenceTd">Товар с таким кодом маркировки не найден</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Код маркировки не найден"</td></tr><tr><td class="confluenceTd">Товар заблокирован одним из ведомств</td><td class="confluenceTd">Товар в чек не добавляется, на экран выводится ошибка "Ошибка проверки кода маркировки позиции <...>. Товар с таким кодом маркировки заблокирован <ведомством>"</td></tr></tbody></table></div><p>В кассовом ПО Artix реализована возможность игнорировать конкретные статусы, получаемые при проверке кода маркировки на сервере системы "Честный знак".</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Функционал доступен только при выключенной настройке <code>markVerifyCrptAskConfirmation</code>.<code>
<br/>
</code></div></div><p>Данное поведение задается при помощи параметров, соответствующих полученным статусам, в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code> и в подсекциях <code>[MarkedGoods.<имя_подсекции>]</code>:</p><ul><li>при значении <code>deny</code> в случае возникновения ошибок <span class="confluence-link">на экран будет выведен </span>диалог с сообщением об ошибке, после закрытия диалога товар не будет добавлен в чек,<span class="confluence-link"> <br/></span></li><li>при значении <code>ask</code> в случае возникновения ошибок на экран будет выведен диалог с сообщением об ошибке:<span class="confluence-link"> <span>по нажатию клавиши</span> </span> "Продолжить" товар добавляется в чек, по нажатию клавиши "Отмена" товар не будет добавлен в чек,</li><li>при значении <code>allow</code> статус <span class="confluence-link">игнорируется, товар будет добавлен в чек.</span></li></ul><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/></colgroup><tbody><tr><th scope="col" style="text-align: center;" class="confluenceTh">Наименование</th><th scope="col" style="text-align: center;" class="confluenceTh">Типа данных</th><th scope="col" style="text-align: center;" class="confluenceTh">Возможные значения</th><th scope="col" style="text-align: center;" class="confluenceTh">Описание</th><th scope="col" style="text-align: center;" class="confluenceTh">Примечание</th></tr><tr><td class="confluenceTd">ignoreCrptStatusValid</td><td class="confluenceTd">строковый</td><td rowspan="8" class="confluenceTd"><ul><li>deny</li><li>ask</li><li>allow</li></ul></td><td class="confluenceTd">Игнорировать результат проверки валидности кода маркировки</td><td rowspan="8" class="confluenceTd">По умолчанию <code>deny</code></td></tr><tr><td class="confluenceTd">ignoreCrptStatusVerified</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать результат проверки крипто подписи кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusUtilised</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак нанесения кода маркировки на упаковку</td></tr><tr><td class="confluenceTd">ignoreCrptStatusRealizable</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать признак возможности реализации кода маркировки</td></tr><tr><td class="confluenceTd">ignoreCrptStatusExpireDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать срок годности</td></tr><tr><td class="confluenceTd">ignoreCrptStatusSold</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать вывод из оборота</td></tr><tr><td class="confluenceTd">ignoreCrptStatusIsBlocked</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать блокировку КМ</td></tr><tr><td class="confluenceTd">ignoreCrptStatusFound</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Игнорировать не найденный КМ</td></tr></tbody></table></div><p><br/></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Игнорировать получаемые статусы кода маркировки при проверке на сервере честного знака
; Возможные значения: "deny" - запретить продажу товара, если сервер вернул неверный статус,
; "ask" - запросить подтверждение продажи у кассира,
; "allow" - всегда разрешать продажу товара, независимо от получаемого статуса
; По умолчанию "deny"
; Игнорировать результат проверки валидности КМ
;ignoreCrptStatusValid = deny
; Игнорировать результат проверки крипто подписи КМ
;ignoreCrptStatusVerified = deny
; Игнорировать признак нанесения КМ на упаковку
;ignoreCrptStatusUtilised = deny
; Игнорировать признак возможности реализации КМ
;ignoreCrptStatusRealizable = deny
; Игнорировать срок годности
;ignoreCrptStatusExpireDate = deny
; Игнорировать вывод из оборота
;ignoreCrptStatusSold = deny
; Игнорировать блокировку КМ
;ignoreCrptStatusIsBlocked = deny
; Игнорировать не найденный КМ
;ignoreCrptStatusFound = deny
...</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Чтобы добавить проверку кодов маркировки на сервере системы "Честный знак" для заданной категории маркированных товаров, необходимо скопировать данные настройки в подсекцию <code>[MarkedGoods.<имя_подсекции>]</code> в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> и отредактировать их. Если в подсекции <code>[MarkedGoods.<имя_подсекции>]</code> не указаны настройки для проверки кодов на сервере системы "Честный знак", то для нее будут использованы значения настроек из секции <code>[MarkedGoods]</code>.</div></div><h1 id="id-Реализациямаркированныхтоваров-Отраслевыереквизиты">Отраслевые реквизиты</h1><p>Отраслевые реквизиты передаются в ОФД только в чеках продажи.</p><p>Настройки отраслевых реквизитов задаются в конфигурационном файле <code>/linuxcash/cash/conf/ncash.ini.d/markedgoods.ini</code> в секции <code>[MarkedGoods]</code>:</p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th style="text-align: center;" class="confluenceTh">Наименование</th><th style="text-align: center;" class="confluenceTh">Тип данных</th><th style="text-align: center;" class="confluenceTh">Описание</th><th style="text-align: center;" class="confluenceTh">Примечания</th></tr><tr><td class="confluenceTd">foiv</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: идентификатор ФОИВ</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentDate</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: дата документа основания (дд.мм.гггг)</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr><tr><td class="confluenceTd">documentNumber</td><td class="confluenceTd">строковый</td><td class="confluenceTd">Отраслевой реквизит: номер документа основания</td><td style="text-align: left;" class="confluenceTd">По умолчанию значение не задано</td></tr></tbody></table></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример настройки</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Confluence" data-theme="Confluence">[MarkedGoods]
...
; Отраслевой реквизит: идентификатор ФОИВ
;foiv = 030
; Отраслевой реквизит: дата документа основания (дд.мм.гггг)
;documentDate = 21.11.2023
; Отраслевой реквизит: номер документа основания
;documentNumber = 1944
...</pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>По результатам проверки в системе цифровой маркировки "Честный знак" формируется отраслевой реквизит вида "<code>UUID=<reqId>&Time=<reqTimestamp></code>", который передается в ОФД в теге 1265.</p></div></div>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpage.action?pageId=40468542">View Online</a>
·
<a href="https://docs.artix.su/pages/diffpagesbyversion.action?pageId=40468542&revisedVersion=5&originalVersion=4">View Changes Online</a>
</div>
</div>Миллер Виктория2020-10-16T04:14:13ZФункции для работы с клиентом и картойГринштейн Семенtag:docs.artix.su,2009:page-27531336-12024-03-28T03:34:01Z2014-11-07T09:26:36Z<div class="feed"> <p>
Page
<b>added</b> by
<a href=" https://docs.artix.su/display/~grinshtejn.s
">Гринштейн Семен</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<div class="panel" style="border-width: 1px;"><div class="panelContent">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1711710218299 {padding: 0px;}
div.rbtoc1711710218299 ul {margin-left: 0px;}
div.rbtoc1711710218299 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1711710218299'>
<ul class='toc-indentation'>
<li><a href='#id-Функциидляработысклиентомикартой-age–Проверкавозрастаклиента'>age – Проверка возраста клиента</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-hasClientOptions–Наличиеопцииуклиента'>hasClientOptions – Наличие опции у клиента</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-birthdayDate–Вденьрождения'>birthdayDate – В день рождения</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-birthdayDateIn–Деньрождениявинтервале'>birthdayDateIn – День рождения в интервале</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-specialDate–Впамятнуюдату'>specialDate – В памятную дату</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-specialDateIn–Памятнаядатавинтервале'>specialDateIn – Памятная дата в интервале</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-noCardInCheck–Отсутствиекартывчеке'>noCardInCheck – Отсутствие карты в чеке</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-isVerificated–Признакверификациикарты'>isVerificated – Признак верификации карты</a></li>
<li><a href='#id-Функциидляработысклиентомикартой-hasVerificationTypes–Наличиеспособовверификации'>hasVerificationTypes – Наличие способов верификации</a></li>
</ul>
</div></p>
</div></div><p>Системы лояльности торгового предприятия чаще всего направлены на определенную группу людей, объединенных некоторыми характеристиками. Скидки и бонусы в этом случае предоставляются для определенной категории покупателей. Функции для работы с клиентом и картой позволяют персонифицировать скидки, организуя акции направленного действия.</p><h1 class="line891" id="id-Функциидляработысклиентомикартой-age–Проверкавозрастаклиента"><strong>age </strong>– Проверка возраста клиента</h1><p class="line891"><code>age()</code> -- функция возвращает количество полных лет, если указана дата рождения клиента, <code>0</code> – если дата не указана.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.age() >= 63
Скидка сработает, если возраст клиента больше или равен 63 (пенсионер).</pre>
</div></div><h1 class="line891" id="id-Функциидляработысклиентомикартой-hasClientOptions–Наличиеопцииуклиента"><strong>hasClientOptions</strong> – Наличие опции у клиента</h1><p class="line891"><code>hasClientOptions([options])</code> – функция сработает, если клиенту назначена указанная опция.</p><p class="line891">Параметры функции:</p><ul><li class="line891"><code>options</code> – опция клиента.</li></ul><p class="line891">Опция клиента – это признак клиента, который задается при добавлении клиента в базу, например, блондинка, студент и т. д.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Применение функции возможно только при наличии в чеке карты клиента.</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.hasClientOptions([u"блондинка"])
Скидка сработает, если клиент имеет опцию "блондинка". </pre>
</div></div><p class="line891"><br/></p><div><h1 class="line891" id="id-Функциидляработысклиентомикартой-birthdayDate–Вденьрождения"><strong>birthdayDate</strong> – В день рождения</h1><p class="line891"><code>birthdayDate(firstDay,lastDay)</code> – функция сработает, если день рождения клиента входит в заданный интервал.</p><p class="line891">Параметры функции:</p><ul><li class="line891"><code>firstDay</code> – количество дней до дня рождения;</li><li class="line891"><code>lastDay</code> – количество дней после дня рождения.</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Применение функции возможно только при наличии в чеке карты клиента.</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.birthdayDate(2,3)
Скидка будет действовать, если чек открыт в день рождения клиента, либо 2 дня до и 3 дня после дня рождения. </pre>
</div></div><h1 id="id-Функциидляработысклиентомикартой-birthdayDateIn–Деньрождениявинтервале"><strong style="line-height: 1.4285715;">birthdayDateIn</strong> – День рождения в интервале</h1><p class="line891"><code>birthdayDateIn(beginDate, endDate)</code> – функция сработает, если день рождения клиента входит в указанный диапазон дат.</p><p class="line891">Параметры функции:</p><ul><li class="line891"><code>beginDate</code> – начальная дата интервала;</li><li class="line891"><code>endDate</code> – конечная дата интервала.</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Применение функции возможно только при наличии в чеке карты клиента.</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.birthdayDateIn("2014-1-1","2014-1-31")
Скидка действует, если день рождения клиента в январе. Время открытия чека не проверяется. </pre>
</div></div><h1 id="id-Функциидляработысклиентомикартой-specialDate–Впамятнуюдату"><strong style="line-height: 1.4285715;">specialDate</strong> – В памятную дату</h1><p class="line891"><code>specialDate(firstDay, lastDay, datename)</code> – функция сработает, если чек открыт в памятную дату клиента или в заданный диапазон дней до/после нее. Специальная дата задается для каждого клиента индивидуально.</p><p class="line891">Параметры функции:</p><ul><li class="line891"><code>firstDay</code> – количество дней до даты;</li><li class="line891"><code>lastDay</code> – количество дней после даты;</li><li class="line891"><code>datename</code> – название специальной даты. </li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Применение функции возможно только при наличии в чеке карты клиента.</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.specialDate(1,1,u"specialdate1")
Скидка для клиента действует, если чек открыт в "специальную дату 1" и 1 день до и после нее.</pre>
</div></div><h1 id="id-Функциидляработысклиентомикартой-specialDateIn–Памятнаядатавинтервале"><strong style="line-height: 1.4285715;">specialDateIn</strong> – Памятная дата в интервале</h1><p class="line891"><code>specialDateIn(beginDate, endDate, <code>datename)</code></code> – функция сработает, если специальная дата клиента входит в указанный диапазон дат.</p><p class="line891">Параметры функции:</p><ul><li class="line891"><code>beginDate</code> – начальная дата интервала;</li><li class="line891"><code>endDate</code> – конечная дата интервала;</li><li class="line891"><code>datename</code> – название специальной даты.</li></ul><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Применение функции возможно только при наличии в чеке карты клиента.</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.specialDateIn("2014-3-1","2014-3-31",u"specialdate1")
Скидка с таким условием сработает если клиент имеет специальную дату №1 в марте.</pre>
</div></div><h1 id="id-Функциидляработысклиентомикартой-noCardInCheck–Отсутствиекартывчеке"><strong>noCardInCheck</strong> – Отсутствие карты в чеке</h1><p class="line891"><code>noCardInCheck()</code> – функция сработает, если в чеке нет ни одной карты.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.noCardInCheck()
Скидка будет действовать, если в чеке нет ни одной карты.</pre>
</div></div><h1 id="id-Функциидляработысклиентомикартой-isVerificated–Признакверификациикарты"><strong>isVerificated</strong> – Признак верификации карты</h1><p><code>isVerificated()</code> – функция сработает в том случае, если карта прошла верификацию.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.isVerificated()
Скидка будет действовать, если карта, добавленная в чек, прошла верификацию.</pre>
</div></div><h1 id="id-Функциидляработысклиентомикартой-hasVerificationTypes–Наличиеспособовверификации"><strong>hasVerificationTypes</strong> – Наличие способов верификации</h1><p><code>hasVerificationTypes(["type"])</code> – функция сработает в том случае, если у группы карт, к которой принадлежит введенная карта, имеются все перечисленные в параметре <a class="external-link" href="http://docs.artix.su/pages/viewpage.action?pageId=12460606#id-%D0%9A%D0%B0%D1%80%D1%82%D1%8B%D0%B8%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D1%8B-%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B%D0%B2%D0%B5%D1%80%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%BA%D0%B0%D1%80%D1%82" rel="nofollow">способы верификации</a>.</p><p>Параметры функции:</p><ul><li><code>type</code> – способ верификации.</li></ul><p>Если параметр <code>type</code> не задан, то функция проверит наличие каких-либо способов верификации группы карт:</p><ul><li>при наличии способов – функция сработает;</li><li>при отсутствии способов – функция не сработает.</li></ul><p>При работе функции атрибут верификации не учитывается.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">cf.hasVerificationTypes(["SMS", "AUTO"])
Функция будет действовать, если для группы, к которой принадлежит карта, заданы способы верификации SMS и AUTO.</pre>
</div></div><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Пример поведения функции</b></div><div class="panelContent">
<p>Задана акция оплаты бонусами с условиями:</p><ol><li>Разрешено оплачивать бонусами 10% от суммы чека</li><li>Задано условие cf.hasVerificationTypes(["SMS", "AUTO"])</li></ol><p><strong>Пример 1</strong></p><p>При формировании чека в него добавлена карта. В группе карт указан способ верификации "SMS".</p><p>Функция проверяет способы верификации. Так как в группе карт указан только 1 из способов верификации, то при переходе в подытог сумма бонусов для оплаты рассчитана не будет. При попытке оплатить бонусами на экран кассира будет выведено сообщение "Невозможно потратить баллы".</p><p><strong>Пример 2</strong></p><p><span>При формировании чека в него добавлена карта. В группе карт указан способ верификации "SMS" и "AUTO".</span></p><p><span>Функция проверяет способы верификации. Так как в группе карт указаны оба способа верификации, то при переходе в подытог рассчитывается сумма бонусов для оплаты. Далее оплата баллами производится по алгоритму <a href="https://docs.artix.su/pages/viewpage.action?pageId=27531231">верификации карты при оплате</a>.</span></p>
</div></div></div>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531336">View Online</a>
</div>
</div>Гринштейн Семен2014-11-07T09:26:36ZРасчетные функции для работы с клиентом и картойГринштейн Семенtag:docs.artix.su,2009:page-27531330-12024-03-28T03:19:36Z2014-12-04T12:29:41Z<div class="feed"> <p>
Page
<b>added</b> by
<a href=" https://docs.artix.su/display/~grinshtejn.s
">Гринштейн Семен</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<h1 id="id-Расчетныефункциидляработысклиентомикартой-getMultiplicator–значениемультипликаторакарты"><strong>getMultiplicator</strong> – значение мультипликатора карты</h1><ul><li><code>getMultiplicator(defaultValue)</code> – функция используется в расчетной ставке, где <code>defaultValue</code> – значение мультипликатора по умолчанию. Для расчетной ставки будет взято значение, соответствующее примененной карте. </li></ul><p class="line891">Мультипликатор – это параметр, который устанавливается для карты, для использования в расчетных скидках. Мультипликатор для каждой карты можно установить индивидуально, поэтому и расчет скидки может быть индивидуален для каждого пользователя. </p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">rf.getMultiplicator(1.00)*3
Если установить такую расчетную ставку, то скидка будет равна 3*<значение_мультипликатора_примененной_карты></pre>
</div></div><h1 class="line891" id="id-Расчетныефункциидляработысклиентомикартой-age–значениевозрастаклиента"><strong>age </strong>– значение возраста клиента</h1><p class="line891"><code>age()</code> -- функция возвращает количество полных лет, если указана дата рождения клиента, <code>0</code> – если дата не указана. Используется для вычисления расчетной ставки в зависимости от возраста клиента.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Пример</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">rf.age() / 2
Если клиенту 30 лет и задана процентная расчетная ставка, то скидка будет равна 15%. </pre>
</div></div><h1 class="line891" id="id-Расчетныефункциидляработысклиентомикартой-"><strong><br/></strong></h1>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpage.action?pageId=27531330">View Online</a>
</div>
</div>Гринштейн Семен2014-12-04T12:29:41ZИнтернационализация сообщений кассы > ru.msgКовальчук Олегtag:docs.artix.su,2009:attachment-72384749-262024-03-27T12:49:24Z2024-03-27T12:49:24Z<div class="feed"> <p>File
<b>edited</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-unknown" title="File">File</span> <a href="https://docs.artix.su/download/attachments/72384745/ru.msg?version=26&modificationDate=1711543764878&api=v2">ru.msg</a> <span class="smalltext">(238 kB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=72384745">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T12:49:24ZРелизы > 253.pngКовальчук Олегtag:docs.artix.su,2009:attachment-151028808-12024-03-27T12:49:24Z2024-03-27T03:28:16Z<div class="feed"> <p>File
<b>attached</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-image" title="PNG File">PNG File</span> <a href="https://docs.artix.su/download/attachments/96633328/253.png?version=1&modificationDate=1711543764066&api=v2">253.png</a> <span class="smalltext">(1.05 MB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=96633328">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T03:28:16ZУстановка Artix (Ubuntu 22.04) > 7 - Установка Artix (Ubuntu 22.04). Выбор способа разметки диска.pngКовальчук Олегtag:docs.artix.su,2009:attachment-151028807-12024-03-27T12:49:23Z2024-03-27T03:49:11Z<div class="feed"> <p>File
<b>attached</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-image" title="PNG File">PNG File</span> <a href="https://docs.artix.su/download/attachments/138019111/7%20-%20%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20Artix%20%28Ubuntu%2022.04%29.%20%D0%92%D1%8B%D0%B1%D0%BE%D1%80%20%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B0%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8%20%D0%B4%D0%B8%D1%81%D0%BA%D0%B0.png?version=1&modificationDate=1711543763839&api=v2">7 - Установка Artix (Ubuntu 22.04). Выбор способа разметки диска.png</a> <span class="smalltext">(9 kB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=138019111">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T03:49:11ZУстановка Artix (Ubuntu 22.04) > 7 - Установка Artix (Ubuntu 22.04). Выбор способа разметки диска (использовать весь диск).pngКовальчук Олегtag:docs.artix.su,2009:attachment-151028806-12024-03-27T12:49:23Z2024-03-27T04:10:07Z<div class="feed"> <p>File
<b>attached</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-image" title="PNG File">PNG File</span> <a href="https://docs.artix.su/download/attachments/138019111/7%20-%20%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20Artix%20%28Ubuntu%2022.04%29.%20%D0%92%D1%8B%D0%B1%D0%BE%D1%80%20%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B0%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8%20%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%20%28%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B2%D0%B5%D1%81%D1%8C%20%D0%B4%D0%B8%D1%81%D0%BA%29.png?version=1&modificationDate=1711543763789&api=v2">7 - Установка Artix (Ubuntu 22.04). Выбор способа разметки диска (использовать весь диск).png</a> <span class="smalltext">(9 kB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=138019111">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T04:10:07ZУстановка Artix (Ubuntu 22.04) > 7 - Установка Artix (Ubuntu 22.04). Выбор способа разметки диска (вручную).pngКовальчук Олегtag:docs.artix.su,2009:attachment-151028805-12024-03-27T12:49:23Z2024-03-27T04:11:16Z<div class="feed"> <p>File
<b>attached</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-image" title="PNG File">PNG File</span> <a href="https://docs.artix.su/download/attachments/138019111/7%20-%20%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20Artix%20%28Ubuntu%2022.04%29.%20%D0%92%D1%8B%D0%B1%D0%BE%D1%80%20%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B0%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8%20%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%20%28%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E%29.png?version=1&modificationDate=1711543763699&api=v2">7 - Установка Artix (Ubuntu 22.04). Выбор способа разметки диска (вручную).png</a> <span class="smalltext">(9 kB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=138019111">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T04:11:16ZУстановка Artix (Ubuntu 22.04) > 7 - Установка Artix (Ubuntu 22.04). Настройка. Диск создан автоматически.pngКовальчук Олегtag:docs.artix.su,2009:attachment-151028804-12024-03-27T12:49:23Z2024-03-27T04:20:09Z<div class="feed"> <p>File
<b>attached</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-image" title="PNG File">PNG File</span> <a href="https://docs.artix.su/download/attachments/138019111/7%20-%20%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20Artix%20%28Ubuntu%2022.04%29.%20%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%94%D0%B8%D1%81%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%20%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8.png?version=1&modificationDate=1711543763646&api=v2">7 - Установка Artix (Ubuntu 22.04). Настройка. Диск создан автоматически.png</a> <span class="smalltext">(15 kB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=138019111">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T04:20:09ZУстановка Artix (Ubuntu 22.04) > 7 - Установка Artix (Ubuntu 22.04). Настройка. Необходимо осуществить разметку диска вручную.pngКовальчук Олегtag:docs.artix.su,2009:attachment-151028803-12024-03-27T12:49:23Z2024-03-27T04:33:08Z<div class="feed"> <p>File
<b>attached</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-image" title="PNG File">PNG File</span> <a href="https://docs.artix.su/download/attachments/138019111/7%20-%20%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20Artix%20%28Ubuntu%2022.04%29.%20%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%9D%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE%20%D0%BE%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B8%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D1%83%20%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%20%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E.png?version=1&modificationDate=1711543763599&api=v2">7 - Установка Artix (Ubuntu 22.04). Настройка. Необходимо осуществить разметку диска вручную.png</a> <span class="smalltext">(10 kB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=138019111">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T04:33:08ZУстановка Artix (Ubuntu 22.04) > 7 - Установка Artix (Ubuntu 22.04). Разметка диска вручную.pngКовальчук Олегtag:docs.artix.su,2009:attachment-151028802-12024-03-27T12:49:23Z2024-03-27T05:03:34Z<div class="feed"> <p>File
<b>attached</b> by
<a href=" https://docs.artix.su/display/~kov
">Ковальчук Олег</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p>
<span class="aui-icon content-type-attachment-image" title="PNG File">PNG File</span> <a href="https://docs.artix.su/download/attachments/138019111/7%20-%20%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20Artix%20%28Ubuntu%2022.04%29.%20%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B0%20%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%20%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E.png?version=1&modificationDate=1711543763531&api=v2">7 - Установка Artix (Ubuntu 22.04). Разметка диска вручную.png</a> <span class="smalltext">(10 kB)</span>
<br/>
</p>
</div>
<div style="padding: 10px 0;">
<a href="https://docs.artix.su/pages/viewpageattachments.action?pageId=138019111">View Attachments</a>
</div>
</div>Ковальчук Олег2024-03-27T05:03:34Z