<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Арсений Жарков</title><generator>teletype.in</generator><description><![CDATA[1C programmer and scuba diver. Retail automation. From Krasnoyarsk, Siberia.]]></description><image><url>https://img3.teletype.in/files/2d/b3/2db38dca-29cb-4847-851b-45bc8d9c6a5b.png</url><title>Арсений Жарков</title><link>https://teletype.au124.ru/</link></image><link>https://teletype.au124.ru/?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=arseniizharkov</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/arseniizharkov?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/arseniizharkov?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 10 May 2026 06:29:02 GMT</pubDate><lastBuildDate>Sun, 10 May 2026 06:29:02 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.au124.ru/EyXtXclgUJE</guid><link>https://teletype.au124.ru/EyXtXclgUJE?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=arseniizharkov</link><comments>https://teletype.au124.ru/EyXtXclgUJE?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=arseniizharkov#comments</comments><dc:creator>arseniizharkov</dc:creator><title>Несколько мыслей про внедрение ТС Пиот (в виде модуля ЕСМ от ЕСП)</title><pubDate>Mon, 16 Feb 2026 05:31:18 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/93/d2/93d2744a-88c2-44a0-a5ac-e77a39f6384a.png"></media:content><category>tspiot</category><description><![CDATA[<img src="https://img1.teletype.in/files/85/1c/851c299f-375d-4771-b8f5-638d3b57646d.png"></img>Первое (и для меня сейчас важное) - можно ли в одном магазине (или одной сети) использовать один есм на несколько кассовых программ (не фискальных регистраторов).]]></description><content:encoded><![CDATA[
  <p id="7PBs">Первое (и для меня сейчас важное) - можно ли в одном магазине (или одной сети) использовать один есм на несколько кассовых программ (не фискальных регистраторов). </p>
  <p id="1OaB">Я пишу это при условии использования пиот-а (есм) с фронтолом. Другое кассовое ПО я не применяю.</p>
  <p id="g21r">Ответ на вопрос сразу  - да, можно. Покупаем одну лицензию на есм, ставим ее в магазине на одну из касс, открываем на ней порт 51401, в настройках модуля ставим режим удаленного подключения. </p>
  <figure id="XmoC" class="m_original">
    <img src="https://img2.teletype.in/files/d8/7b/d87b6798-e05e-4dd8-b8a2-0afe4c270b7d.png" width="554" />
    <figcaption>настройка есм</figcaption>
  </figure>
  <p id="ZoKL">Схема будет получатся примерно такая:</p>
  <figure id="v7Y7" class="m_original">
    <img src="https://img1.teletype.in/files/85/1c/851c299f-375d-4771-b8f5-638d3b57646d.png" width="3858" />
    <figcaption>общая схема подключения</figcaption>
  </figure>
  <p id="jEC2">Fmu-api - это моя реализация api фму от Атола. В этом месте вполне может быть и их продукт.</p>
  <p id="dekf">Fptr - фискальный регистратор.</p>
  <p id="H8bR">LM - локальный модуль</p>
  <p id="OqsG">TrueSign - честный знак.</p>
  <p id="epAr">Настройка адреса есм производится в настройке подключения ККТ (для этого версия фронтола должны быть от 6.28.0 и выше):</p>
  <figure id="HGgd" class="m_original">
    <img src="https://img1.teletype.in/files/88/f8/88f8aafb-2f56-4e51-9b26-5715400f1196.png" width="554" />
    <figcaption>настройка ккт во фронтоле</figcaption>
  </figure>
  <p id="MW10">В этом случае запросы между фронтолом и честным знаком (через фму и есм) будут выглядеть так:</p>
  <figure id="vC15" class="m_original">
    <img src="https://img4.teletype.in/files/72/c4/72c4e855-55ef-4aa5-a4a7-7bd9172b394c.png" width="8191" />
    <figcaption>в схеме запроса не учтен локальный модуль</figcaption>
  </figure>
  <p id="8Hsm">Какие риски? Только если пропадет из сети на POS1. В этом случае не получится проверить марку.<br />fmuapi, в этом случае, обратится к локальному модулю напрямую.  Атоловский фму же, на текущий момент (16.02.2026), этого не умеет, но как я думаю в ближайшем релизе его этому трюку тоже научат.</p>
  <p id="3QII">Юридически могут быть проблемы? Вообще нет обязанности ставить ТС Пиот именно на ту кассу по которой в итоге будет пробит чек. Нам важна только проверка через защищенный канал связи - вот именно для него мы и ставим ТС Пиот. Возможно дальше будут закручивать гайки, но пока такого требования нет, можно использовать такую схему.</p>
  <p id="LRJ7">Остается понять насколько много касс могут одновременно подключаться к одной есм. Возможно бутылочным горлышком будет именно этот момент.</p>
  <p id="vfxS"><u>И да остается проблема с несколькими ФР на одном рабочем месте - служба через которую работает фр не может оперативно переключатся между ними...</u></p>
  <p id="mZRQ">Надеюсь мы с этим сможем справится, если не патчами от ЕСП, то как то еще...</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.au124.ru/fCS9SOhdDQK</guid><link>https://teletype.au124.ru/fCS9SOhdDQK?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=arseniizharkov</link><comments>https://teletype.au124.ru/fCS9SOhdDQK?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=arseniizharkov#comments</comments><dc:creator>arseniizharkov</dc:creator><title>Использование скриптов драйвера ККТ Атол в xPos</title><pubDate>Thu, 01 Jan 2026 14:55:33 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/2d/58/2d58b053-378e-422b-9098-1900a4903457.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/ff/45/ff453ac2-6109-4e32-b615-0b790d4110d9.png"></img>Для начала - лично я не рекомендую использовать xPos в проде.]]></description><content:encoded><![CDATA[
  <p id="mc1c">Для начала - лично я не рекомендую использовать xPos в проде.</p>
  <p id="SUT1">Тем более сейчас в одной лицензии и Frontol 6 и это недоразумение.</p>
  <p id="DXul">Но если у вас linux, то возможности перейти на F6 нет.</p>
  <p id="ld8t">Начнем. </p>
  <p id="yyJd">xPos с ККТ общается командами. В отличии от F6, который в драйвер шлет json-задание. Именно это не дает нам &quot;в лоб&quot; использовать скрипты драйвера.</p>
  <p id="tZgR">Но! xPos поддерживает подключение через 1С БПО. А оно, в свою очередь, работает уже через json задания!</p>
  <p id="PyXR">Значит можно пользоваться!!!</p>
  <p id="agnL">Для этого:</p>
  <p id="0W0b">1. Подключаем ККТ через 1с БПО:</p>
  <figure id="uQsx" class="m_original">
    <img src="https://img4.teletype.in/files/ff/45/ff453ac2-6109-4e32-b615-0b790d4110d9.png" width="1280" />
  </figure>
  <p id="EmQr">2. Настраиваем переменную среды, в которой указываем каталог со скриптами (путь приведен для примера может быть любым - хоть папка яндекс диска):</p>
  <figure id="SuZB" class="m_original">
    <img src="https://img3.teletype.in/files/eb/9e/eb9ead23-682f-4a86-b567-cb5009e162be.png" width="1204" />
    <figcaption>имя переменной строго DTO10_SCRIPTS_PATH</figcaption>
  </figure>
  <p id="y897">3. Немного модифицируем скрипт (например для продаж json_sell):</p>
  <pre id="pZ4k" data-lang="javascript">const receipt = require(&#x27;fptr10_base_receipt&#x27;);
const validator = require(&#x27;fptr10_validators&#x27;);

function validateTask(task) {
    return receipt.validate(task);
}

function execute(task) {

    var targetDay = new Date(&#x27;2026-01-01&#x27;); // &lt;= yyyy-MM-dd
    var nowDay = new Date();

    if (nowDay &gt; targetDay) {
        task = changeVat(task)
    }

    return receiptResult = receipt.executeReceipt(task);
}

function changeVat(task) {
    for (var i = 0; i &lt; task.items.length; i++) {
        var item = task.items[i];

        if (item.type !== &quot;position&quot;)
            continue;

        if (validator.isMissing(item.tax))
            continue;

        if (item.tax.type === &quot;vat20&quot;) {
            item.tax.type = &quot;vat22&quot;;
            delete item.tax.sum;
        }

        if (item.tax.type === &quot;vat120&quot;) {
            item.tax.type = &quot;vat122&quot;;
            delete item.tax.sum;
        };
    }

    return task;
}</pre>
  <p id="nsWw">Все:</p>
  <figure id="tbaZ" class="m_original">
    <img src="https://img4.teletype.in/files/fe/48/fe489d39-4925-486a-b987-a0a020f70a80.png" width="720" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.au124.ru/cKdyQ5iapfj</guid><link>https://teletype.au124.ru/cKdyQ5iapfj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=arseniizharkov</link><comments>https://teletype.au124.ru/cKdyQ5iapfj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=arseniizharkov#comments</comments><dc:creator>arseniizharkov</dc:creator><title>Новый год, новый НДС, СНО</title><pubDate>Tue, 23 Dec 2025 04:57:35 GMT</pubDate><description><![CDATA[<img src="https://img2.teletype.in/files/10/3e/103e017a-2d83-4526-89d0-589a638aacb2.png"></img>Для кого это?]]></description><content:encoded><![CDATA[
  <p id="DClk">Для кого это?</p>
  <p id="QaaD">Первые - для тех кто не хочет обновлять фронтол на версию поддерживающую новые ставки НДС (22/122).</p>
  <p id="qAHh">Вторые - для тех кто в ночь с 31 на 1 хочет встретить с оливье и игристым, а не с кассой и учетной системой.</p>
  <p id="Ikur">Третьи - кто не уверен, что в праздники хочет поймать какую то непонятную ошибку в, потенциально, сыром релизе Фронтола (на момент публикации это 28.0).</p>
  <p id="PtsV">Вводные данные:</p>
  <p id="lLT3">0. То что написано ниже - актуально для фискальных регистраторов Атол, работающих на 10 драйвере!!!!</p>
  <p id="0fMd"></p>
  <p id="yY25">- Прошиваем кассу на 5.17.0</p>
  <p id="BnbF">- Устанавливаем драйвер ККМ с поддержкой ставки НДС 22-122% (это 10.10.8.0 или 10.10.8.20)</p>
  <p id="0BhK">- Дальше нам нужно сделать небольшой скрипт для драйвера ККТ (даже 2 - для продажи и для возврата). Сами скрипты драйвера находятся в папке c:\Program files(x86)\Atol\Frontol6\bin\json_scripts</p>
  <figure id="RXdV" class="m_original" data-caption-align="center">
    <img src="https://img2.teletype.in/files/10/3e/103e017a-2d83-4526-89d0-589a638aacb2.png" width="753" />
    <figcaption>так папка выглядит по умолчанию</figcaption>
  </figure>
  <p id="Otd0">- теперь сделаем простой скрипт для драйвера с подменой ставки НДС 20 на ставку НДС 22. Для этого вэ той папке создаем файл json_sell:</p>
  <pre id="xM1Y" data-lang="javascript">const receipt = require(&#x27;fptr10_base_receipt&#x27;);
const validator = require(&#x27;fptr10_validators&#x27;);

function validateTask(task) {
    return receipt.validate(task);
}

function execute(task) {

    var targetDay = new Date(&#x27;2026-01-01&#x27;); // &lt;= yyyy-MM-dd
    var nowDay = new Date();

    if (nowDay &gt; targetDay) {
        task = changeVat(task)
    }

    return receiptResult = receipt.executeReceipt(task);
}

function changeVat(task) {
    for (var i = 0; i &lt; task.items.length; i++) {
        var item = task.items[i];

        if (item.type !== &quot;position&quot;)
            continue;

        if (validator.isMissing(item.tax))
            continue;

        if (item.tax.type === &quot;vat20&quot;)
            item.tax.type = &quot;vat22&quot;;

        if (item.tax.type === &quot;vat120&quot;)
            item.tax.type = &quot;vat122&quot;;
    }

    return task;
}</pre>
  <p id="uQcm">- абсолютно аналогичный код будет у чека возврата прихода - json_sellReturn.</p>
  <p id="075I">Таким образом два файла дадут вам автоматический переход на 22% НДС.</p>
  <p id="KN68">Так же можно автоматически менять СНО (предварительно только нужно зарегистрировать кассу на нужную СНО).</p>
  <p id="6Pnt">Добавим в скрипт переход на другу СНО с 1 января:</p>
  <pre id="ts3f" data-lang="javascript">const receipt = require(&quot;fptr10_base_receipt&quot;);
const validator = require(&quot;fptr10_validators&quot;);

function validateTask(task) {
    return receipt.validate(task);
}

function execute(task) {

    var targetDay = new Date(&quot;2026-01-01&quot;); // &lt;= yyyy-MM-dd
    var nowDay = new Date();

    if (nowDay &gt; targetDay) {
        task = changeVat(task);
        task = changeTaxStation(task);
    }

    return receiptResult = receipt.executeReceipt(task);
}

function changeVat(task) {
    for (var i = 0; i &lt; task.items.length; i++) {
        var item = task.items[i];

        if (item.type !== &quot;position&quot;)
            continue;

        if (validator.isMissing(item.tax))
            continue;

        if (item.tax.type === &quot;vat20&quot;)
            item.tax.type = &quot;vat22&quot;;

        if (item.tax.type === &quot;vat120&quot;)
            item.tax.type = &quot;vat122&quot;;
    }

    return task;
}

function changeTaxStation(task) {
    var targetTaxStation = &quot;usnIncomeOutcome&quot;; // osn usnIncome usnIncomeOutcome esn patent 

    if (validator.isMissing(task.taxationType))
        return;

    task.taxationType = targetTaxStation;

    return task;
}</pre>
  <p id="iGq3"></p>
  <p id="UV1H">В общем - ничего сложного. И будет работать со всеми версиям фронтола (в том числе и &quot;дотарифными&quot;).</p>

]]></content:encoded></item></channel></rss>