Атол руководство для программиста

АТОЛ КАССА: СПРАВОЧНАЯ ИНФОРМАЦИЯ — УСТАНОВКА — НАСТРОЙКА

АТОЛ КАССА

Кассовое оборудование АТОЛ

АТОЛ — справочная информация, настройка, ПО и драйверы

АТОЛ — Протокол работы ККТ

АТОЛ — Протокол работы ККТ (Руководство программиста)

АТОЛ — Протокол работы ККТ 3.1.pdf

Размер: 8.3 MB, дата: 21 Июл. 2023


Страницы

  • Драйверы АТОЛ ККТ — версия 10
  • Коды ошибок онлайн-касс АТОЛ
  • Коды ошибок терминалов Сбербанка
  • Шаблоны чеков для ККМ АТОЛ на платформе 5.0
  • Редактор таблиц ККТ
  • Honeywell HSM USB Serial Driver
  • Frontol — справка по комбинациям клавиш
  • Honeywell EZConfig-Scanning
  • АТОЛ USB-COM драйвер
  • Драйверы АТОЛ ККТ — версия 8

Загрузки


  • Honeywell HSM USB Serial Driver 3.5.35

  • Редактор таблиц 3.0.2.1978

  • Редактор таблиц ККТ 2.0.0

  • ATOL USB COM Driver 1.26.0 2017 05 18

  • FNArchiveReader 2.0.4

  • Honeywell EZConfig Scanning 3.5.13

Найти:

POS-терминалы

АТОЛ Optima V5 / V6


АТОЛ Jazz 15 Lite


АТОЛ Jazz 15


АТОЛ Jazz 15 Pro


АТОЛ Jazz 16

Онлайн-кассы

АТОЛ 1Ф


АТОЛ 11Ф


АТОЛ 15Ф


АТОЛ 20Ф


АТОЛ FPrint-22ПТК


АТОЛ 22 v 2Ф


АТОЛ 25Ф


АТОЛ 27Ф


АТОЛ 30Ф


АТОЛ 30Ф+


АТОЛ 50Ф


АТОЛ 52Ф


АТОЛ 55Ф


АТОЛ 60Ф


АТОЛ 77Ф


АТОЛ 90Ф


АТОЛ 91Ф


АТОЛ 92Ф


АТОЛ SIGMA 7Ф


АТОЛ SIGMA 8Ф


АТОЛ SIGMA 10 (150Ф)


АТОЛ СТБ 5 (ПТ-5Ф)

Клавиатуры

Posiflex KB-4000/4000U


Posiflex KB-6600/6600U


Posiflex KB-6800/6800U


АТОЛ KB-50-U


АТОЛ KB-60-KU


АТОЛ KB-76-KU

Сканеры штрихкода

АТОЛ D2


АТОЛ Impulse 12


АТОЛ Impulse 12 BT


АТОЛ SB 1101


АТОЛ SB 1101 Plus


АТОЛ SB 1103


АТОЛ SB 2101 / SB 2101 Plus


АТОЛ SB 2103 / SB 2103 Plus


АТОЛ SB 2105 / SB 2105 Plus


АТОЛ SB 2107


АТОЛ SB 2108 / SB 2108 Plus


АТОЛ SB 2109 BT


АТОЛ SB 2201


АТОЛ SB 3000


Honeywell Fusion 3780


Honeywell (Metrologic) MS9520


Honeywell Voyager 1200g


Honeywell Voyager 1250g


Honeywell Voyager 1450g


Honeywell Voyager 1450g2DHR


Honeywell Voyager 1452g


Honeywell Voyager XP 1470g


Honeywell Xenon XP 1950g


Honeywell Xenon XP 1952g


Honeywell — Youjie HF600


Honeywell — Youjie ZL2200

Драйверы ККТ

Драйверы ККТ 6


Драйверы ККТ 8


Драйверы ККТ 9


Драйверы ККТ 10


— История версий

Frontol

Frontol 4


Frontol 5


Frontol 6


— История версий

Frontol xPOS

Frontol xPOS


— История версий


Frontol xPOS 3


— История версий

Утилиты и драйверы

Honeywell EZConfig-Scanning


Honeywell HSM USB Serial Driver


Honeywell Metroset 2


Редактор таблиц ККТ


Ethernet over USB (EoU)


Firebird ODBC драйвер


АТОЛ USB-COM драйвер


Редактор шаблонов чеков


Чтение документов из ФН


Чтение архива док-ов из ФН


Выгрузка архива ФН (FNarc)


ДТО Интегратор


Тест драйвера ККТ


Драйверы PIN-Pad POS терминалов для эквайринга


ПО для POS терминалов Сбера


IBExpert

Справочные материалы

Frontol — справка по комбинациям клавиш


Коды ошибок онлайн-касс АТОЛ


Коды ошибок фискальных накопителей (ФН)


Коды ошибок терминалов Сбербанка


История версий прошивок, БУ и МК онлайн-касс АТОЛ


АТОЛ Онлайн


АТОЛ — Работа ККТ с ФФД 1.2


Теги формата фискальных данных (ФФД)


АТОЛ — Протокол работы ККТ


ATOL Pay — Подключение СБП


Настройки операторов фискальных данных (ОФД)


Редактор таблиц ККТ — Инструкция по работе


Интеграция с API Атол СБП

Ресурс не является представителем компании  АТОЛ (atol.ru) и не предлагает никаких товаров или услуг

atol-kassa 2023 : info@atol-kassa.ru

Главная страница » Документация для драйверов АТОЛ

Документация для драйверов АТОЛ

Документация драйверов АТОЛ для торгового оборудования

Документация для драйвера версии 10.х

УТИЛИТА ДЛЯ СОЗДАНИЯ БАЗЫ ТОВАРОВ И НАСТРОЙКИ КАСС АТОЛ 90Ф/91Ф/92Ф

Редактор таблиц 3.0.2.1978.zip

Размер: 18.2 MB, дата: 09 Май. 2022

Для АТОЛ 90Ф с прошивкой ниже 10-7942

Редактор таблиц ККТ 2.0.0.zip

Размер: 8.1 MB, дата: 09 Май. 2022

Для АТОЛ 90Ф с прошивкой 10-7942 и выше и АТОЛ 91Ф/92Ф с прошивкой 10-хххх

Редактор таблиц ККТ 2.1.0.zip

Размер: 8.6 MB, дата: 09 Май. 2022

Для АТОЛ 91Ф/92Ф с прошивкой 12-8445

Редактор таблиц ККТ 2.1.2.zip

Размер: 8.7 MB, дата: 09 Май. 2022

Для АТОЛ 91Ф/92Ф с прошивкой 12-8549 и выше

Редактор таблиц ККТ 3.0.1.zip

Размер: 6.4 MB, дата: 09 Май. 2022

Для АТОЛ 91Ф/92Ф на платформе 5.0, требуется драйвер ККТ 10.8.0.0 и выше (х86)

Редактор таблиц ККТ 3.0.2 (x86).zip

Размер: 9.0 MB, дата: 09 Май. 2022

Редактор таблиц ККТ 3.0.2 (x64).zip

Размер: 11.0 MB, дата: 09 Май. 2022

Для АТОЛ 91Ф/92Ф на платформе 5.0

Редактор таблиц ККТ 3.0.4 (x86).zip

Размер: 6.5 MB, дата: 09 Май. 2022

Редактор таблиц ККТ 3.0.4 (x64).zip

Размер: 7.9 MB, дата: 09 Май. 2022

Для АТОЛ 91Ф/92Ф на платформе 5.0, с прошивкой 5.8.9 и выше

Редактор таблиц ККТ 3.0.5 (x86).zip

Размер: 6.4 MB, дата: 28 Фев. 2023

Редактор таблиц ККТ 3.0.5 (x64).zip

Размер: 7.8 MB, дата: 28 Фев. 2023

Для АТОЛ 91Ф/92Ф на платформе 5.0, с прошивкой 5.8.101 и выше

 Для работы утилиты нужен драйвер ККТ: Скачать

Продолжаем серию статей о том, как создавать базу товаров на кассах разных моделей. Напомним, зачем это нужно — с 1 февраля все ИП обязаны указывать в чеке реквизиты проданных товаров или оказанных услуг, их количество, цену и итоговую стоимость.

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

В этой статье разберемся, как создавать товарную базу на кассах:

  • Атол 90;
  • Атол 91;
  • Меркурий (185, 115).

Cоздание товарной базы в кассе АТОЛ 90

Компания АТОЛ уже не выпускает эту модель — она технически устарела и с каждым годом требует все больше доработок под новые требования законодательства. Поэтому мы рекомендуем по возможности заменить ее на более современную кассу, например Атол 91. Если вы оказываете несколько услуг или продаете небольшой перечень немаркированных товаров (10-20 позиций), с заменой еще можно подождать полгода-год. Но при бо́льшем количестве позиций в номенклатуре лучше сразу задуматься о покупке новой ККТ.

Согласно инструкции есть 2 способа «забить» товары в АТОЛ 90: сделать это на самой кассе или подключить ее к компьютеру. Но на практике ручной ввод не подходит для создания даже небольшой базы на 10-15 товаров.

Причина в маленьком неинформативном дисплее на 2 строки и клавиатуре, на которой нет обозначений букв. Чтобы ввести название, придется пользоваться таблицей символов, приведенной ниже. Поэтому редактировать цены на уже сохраненные товары без подключения к компьютеру еще возможно, но создавать их «с нуля» — сложный и трудоемкий процесс.

 

Программирование товарной номенклатуры Атол 90

Более простой способ — подключить АТОЛ 90 к компьютеру через кабель и создать базу товаров в специальной программе.

  1. Узнайте версию прошивки кассы.
  2. Зайдите на сайт Атол в раздел «Центр загрузок», откройте папку «Атол 90», скачайте «Руководство по эксплуатации», архив «Драйвер ККТ» и «Программирование таблиц» соответствующей версии.
  3. Установите драйвер, а затем в ту же папку установите ПО для программирования таблиц. Порядок установки описан в Руководстве по эксплуатации, раздел «Установка драйверов для работы через USB-порт».
  4. В архиве «Программирование таблиц» запустите файл KKT_TableEditor.exe. Откроется окно редактора таблиц.

Далее согласно инструкции настройте связь с ККТ и считайте таблицы из ККТ. Затем откройте вкладку «Товары», заполните поля в соответствии с параметрами товаров и запишите сведения в ККТ.

 

Важно! Перед началом работы проверьте заряд аккумулятора кассы. Важно, чтобы его хватало более чем на 10 минут — именно столько может занять процесс сохранения базы.

Экспорт товаров в АТОЛ 90 из файла

Базу товаров можно загрузить одним файлом в формате csv. Таблица должна содержать следующие столбцы:

Для загрузки нажмите кнопку «Импорт» в разделе «Действия», выберите файл и откройте его. Загрузка займет некоторое время. После ее завершения в таблице товары появятся новые данные — ячейки с ними будут выделены зеленым цветом. Такой метод позволяет легко восстановить товарную базу после ремонта ККТ или перенести ее с одной кассы на другую.

Создание товарной базы в АТОЛ 91 и 92

Эти кассы с виду похожи на кнопочные «автономки», но внутри у них более современная начинка. Поэтому создать товарную базу можно как на кассе, так и в личном кабинете, и второй способ займет меньше времени.

Полезные видео на официальном канале Атол:

Как подключить кассу к личному кабинету
Редактирование стоимости и номенклатуры товара через меню кассы

Как добавить товары в личном кабинете АТОЛ

Зайдите в личный кабинет lk.atol.ru и добавьте кассу, если это не сделано ранее. Для создания новой базы товаров зайдите в раздел «Каталог». Товары можно поштучно добавить вручную или загрузить одним файлом.
Для добавления товара поштучно откройте вкладку «Новая товарная позиция» и заполните поля:

  • наименование товара – от 1 до 128 символов;
  • цена в рублях;
  • ставка НДС;
  • изменение цены — может ли кассир менять цену или удалять товар.

Важно: в поле «код» автоматически указывается порядковый номер товара в базе, и изменить его нельзя.

В появившейся форме должны быть заполнены графы, как и в случае использования Редактора таблиц. Затем нужно кликнуть на «Загрузить в ньюджер».

Для загрузки большого количества товаров удобнее использовать таблицу Excel:

  1. Скачайте в личном кабинете шаблон Excel и инструкцию по его заполнению.
  2. Заполните поля шаблона, сохраните файл и загрузите его, нажав «Загрузка товаров из файла».
  3. После добавления каталога в личный кабинет отправьте товары на кассу, нажав «Загрузка каталога в ньюджер».

Важно! Любые операции с номенклатурой, в том числе редактирование и загрузка, доступны только после закрытия смены!

Как создать товарную базу в кассах Меркурий 185 и 115

Вносить данные в кассу этого производителя или редактировать их можно как на самой кассе, так и через специальное ПО на компьютере.

Как запрограммировать товар или услугу на кассе:

  1. В режиме «программирование баз» нажмите клавишу ИТ и введите пароль (по умолчанию 22) и еще раз ИТ.
  2. Нажмите «00», выберите режим «Добавить запись», нажмите ИТ.
  3. На экране появится текст «Новая запись». Введите код, нажмите ИТ.
  4. Последовательно введите код товара, название, штрих-код, тип (товар или услуга), тип единиц измерения (штучный или нет), цену, налог, отдел и блок.
  5. Нажмите «3», чтобы сохранить данные.

Загрузка базы товаров файлом в кассу Меркурий

Для создания и программирования базы товаров на кассах Меркурий производитель предлагает использовать Менеджер баз товаров «MercBase» (инструкцию скачайте по ссылке).

Важно! Перед началом работы также потребуется установить службу INECRMAN и драйвер USB (ссылка на скачивание также есть на сайте производителя).

Товары можно заводить в базу поштучно, заполняя карточки в программе, или загрузить одним файлом в формате CSV. Также программа позволяет массово редактировать уже сохраненные товары, например менять ставку НДС.

Так выглядит главное окно программы:

1. Главное меню.
2. Панель инструментов.
3. Выпадающий список выбора ККТ.
4. Выпадающий список выбора коммуникационного порта.
5. Версия текущей (активной) базы товаров.
6. Таблица товаров.
7. Поле фильтра по коду, штриховому коду и наименованию товара.
8. Панель статуса.
9. Статус COM-порта сканера ШК.

Добавление товаров поштучно

Кликните правой кнопкой по любому месту в программе, чтобы вызвать контекстное меню или нажмите соответствующую клавишу на панели инструментов. Выберите «Добавить товар» и последовательно заполните все поля в карточке, а затем сохраните ее.

 

Загрузка товаров в кассу Меркурий из файла

Перед загрузкой проверьте соответствие столбцов таблицы и программы. Для этого зайдите в Настройки — Импорт из файла — Формат CSV — Список полей. Здесь вы можете добавлять или удалять поля таблицы или менять их последовательность так, чтобы она совпадала с порядком столбцов в файле для загрузки.


После подготовки файла выберите Файл → Импорт базы товаров. Если в процессе импорта будут обнаружены некорректные данные (например, текст в поле цены), в зависимости от указанных пользователем настроек строка будет пропущена или добавлена с заменой некорректных данных на значения по умолчанию.

Важно! Если на момент импорта в базе уже есть товары, перед стартом программа уточнит, стоит ли очистить базу товаров перед началом. В случае положительного ответа все существующие в базе будут удалены.

Get help on Codementor

atol4j

atol4j — клиентская библиотека для контрольной кассовой техники (ККТ) АТОЛ,
написанная на Java. Она позволяет управлять кассовым аппаратом АТОЛ из программы
на языке Java.

atol4j реализует Протокол ККТ 3.1 как описано в Руководстве
программиста (версия 3.1 от 18.04.2019). Этот документ можно найти в файловом
архиве Центра загрузки
АТОЛ (Контрольно кассовая техника -> Протокол работы ККМ 3.1 - Руководство программиста).

Основное назначение этой библиотеки — прикладное программное обеспечение для
автоматизации коммерческой деятельности. Поддержка сервисных команд протокола не
входила в приоритеты проекта. atol4j может быть использована при разработке
сервисных утилит для обслуживания и настройки контрольной кассовой техники,
однако это потребует имплементировать команды, которые не используются при
повседневной эксплуатации в прикладном ПО.

Возможности

  • Кроссплатформенная библиотека без нативных модулей
  • Подключение к устройству по USB и COM портам, WiFi или Ethernet (Bluetooth в планах)
  • Удобный документированный API позволяет исследовать возможности и ограничения
    протокола по ходу написания программы
  • Позволяет организовать управление устройством объединяя команды в цепочки
  • Команды исполняются асинхронно
  • Расширяемость: можно реализовать отсутствующие команды вне библиотеки
  • Позволяет отправить устройсту произвольные данные

Установка

Maven

Добавьте зависимость в pom.xml проекта:

<dependency>
    <groupId>com.github.kurbatov</groupId>
    <artifactId>atol4j</artifactId>
    <version>0.1.0</version>
</dependency>

Использование

Взаимодействие с ККТ состоит из трёх основных этапов:

  • подключение
  • отправка команд и обработка результатов их выполнения
  • отключение

На этапе подключения происходит инициализация канала передачи данных и проверка
готовности ККТ выполнять команды. Если другое приложение или другой поток
текущего приложения подключен к устройству, то при попытке подключения
произойдёт ошибка.

После подключения происходит запрос идентификационных данных и текущего
состояния ККТ. Устройство будет приведено в режим выбора, если текущий режим
работы отличается.

Отключение — важный этап взаимодействия с ККТ. Устройство способно обслуживать
единственное активное подключение. Если отключение не произойдёт, то следующая
попытка подключения к ККТ завершится ошибкой.

Cинхронный сценарий

Рассмотрим пример синхронного подключения и отключения:

    // определяем порт для подключения к устройству
    String port = ... ;// может выглядеть как "COM3" или "/dev/ttyUSB0" в зависимости от ОС
    // создаём объект, представляющий ККТ, с указанием канала передачи данных и пароля
    CashRegister device = new CashRegister(new SerialTransport(port), new byte[]{0, 0});
    try {
        device.connect(); // подключаемся к устройству
        // далее происходит взаимодействие с устройством
        Result result = device.command()
            ... // здесь формируется список команд для ККТ
            .execute() // отправляем список команд на выполнение
            .get(); // и дожидаемся результата выполнения команд
        ... // обработка результата выполнения команд
    } catch (InterruptedException | ExecutionException | RuntimeException e) {
        // обрабатываем ошибки подключения и выполнения команд
        LOGGER.warn("Ошибка при попытке выполнения команды.", e);
    } finally {
        device.disconnect(); // отключаемся от устройства
    }

В этом примере device — объект с монопольным доступом к физическому устройству.
Он организует работу с физическим устройством без риска смешивания команд
из разных участков бизнес-логики приложения при конкурентном выполнении.

Асинхронный сценарий

    // определяем порт для подключения к устройству
    String port = ... ;// может выглядеть как "COM3" или "/dev/ttyUSB0" в зависимости от ОС
    // создаём объект, представляющий ККТ, с указанием канала передачи данных и пароля
    CashRegister device = new CashRegister(new SerialTransport(port), new byte[]{0, 0});
    try {
        device.connect(); // подключаемся к устройству
        // далее происходит взаимодействие с устройством
        device.command()
            ... // здесь формируется список команд для ККТ
            .execute() // отправляем список команд на выполнение
            .whenComplete((r, e) -> ...) // регистрируем обработчик результата
            .whenComplete((r, e) -> device.disconnect()); // регистрируем отключение от устройства по завершении
    } catch (RuntimeException e) { // обрабатываем ошибки подключения
        LOGGER.warn("Ошибка при попытке подключения.", e);
    }

При асинхронном выполнении команд поток выполнения не приостанавливает
выполнение последующих инструкций в ожидании ответа ККТ. Результат будет
последовательно передан в обработчики, зарегистрированные при помощи метода
whenComplete. Последний из них совершает отключение от устройства вне
зависимости от результатов выполнения.

Построение цепочки команд

Метод device.command() создаёт новую цепочку команд. atol4j делает
допущение, что исходное состояние ККТ — режим выбора.

Отправка цепочки команд устройству осуществляется вызовом метода execute().
Этот метод не блокирует текущий поток исполнения. Он возвращает экземпляр
CompletableFuture, который может быть использован для блокирования потока до
момента получения результата или регистрации асинхронного обработчика результата.

Построитель цепочки команд предлагает так называемый fluent API, который
позволяет исследовать возможности API во время написания исходного кода и
предотвращает возможность построения некорректной последовательности команд.
Например, команды режима регистрации можно добавить в цепочку только после
команды перехода в этот режим.

Пример — закрытие смены (печать отчёта с гашением):

    device.command() // создаём новую цепочку команд
        .report((byte) 0x29) // добавляем переход в режим отчётов с указанием пароля доступа для режима
        .closeShiftWithReport() // добавляем закрытие смены
        .execute(); // отправляем команды на выполнение

Пример — формирование чека прихода (при продаже товара):

    // создаём цепочку команд, добавляем команды перехода в режим регистрации и
    // открытия чека прихода, а затем сохраняем ссылку на цепочку в переменной
    RegistrationCommandBuilder cb = device.command()
            .registration((byte) 0x29)
            .openBillIncome();
    for (Bill.Entry entry : receipt.getEntries()) { // для каждой записи в доменной модели чека
        // добавляем команду регистрации позиции в цепочку и сохраняем ссылку на
        // новую цепочку команд в той же переменной
        cb = cb.registerItem(entry.getProductName(), entry.getPrice() * 100, entry.getCount() * 1000);
        // умножение цены и количества на различные коэффициенты связано с
        // различием единиц измерения в доменной модели и команде регистрации позиции
    }
    if (cashless) { // если безналичный расчёт
        cb = cb.closeBillCashless(0); // добавляем команду закрытия чека с безналичным рассчётом (0 - внесение всей суммы)
    } else { // иначе - наличный рассчёт
        cb = cb.closeBillCash(0); // добавляем команду закрытия чека с наличным рассчётом (0 - внесение всей суммы)
    }
    Result r = cb.resetMode() // добавляем команду возврата в режим выбора
            .execute() // отправляем цепочку команд на выполнение
            .get(); // ожидаем результат от ККТ

Выполнение запросов

Запрос — это команда устройству сообщить данные о его состоянии. Запросы
выполняются вне цепочек команд по одному. Построить запрос можно при помощи
метода device.request(). Запрос будет отправлен на исполнение немедленно, а
результат доступен через объект CompletableFuture.

Пример:

    device.request() // создаём построитель запросов
        .deviceState() // выполняем запрос состояния устройства
        .whenComplete((r, err) -> ...); // регистрируем обработчик ответа с данными о состоянии устройства

Выполнение отдельных команд

При необходимости, можно выполнить любую команду отдельно, без построения
цепочки команд. Для этого нужно создать объект команды и передать его методу
execute целевого устройства.

    Command beep = new BeepCommand(200, 100); // создаём команду воспроизведения звука с заданной частотой и длительностью
    device.execute(beep); // исполняем команду на выбранном устройстве

В случае выполнения отдельных команд без построения цепочек, API не обеспечивает
автоматический переход в необходимый режим. Это нужно учитывать при попытке
выполнения команд, которые требуют определённый режим устройства и выполнять
команды перехода в нужный режим и выхода из него.

Развитие библиотеки

Помощь в развитии библиотеки всегда приветствуется. Если вы нашли ошибку или
отсутствие функции, пожалуйста, создайте запрос
с описанием.

Если вы хотите предложить улучшение, пожалуйста, сделайте следующее:

  1. Сделайте fork этого репозитория
  2. Склонируйте свой fork на локальный компьютер (git clone https://github.com/<your_username>/atol4j.git)
  3. Создайте feature branch (git checkout -b my-new-feature)
  4. Внесите необходимые изменения в код
  5. Примените ваши изменения(git commit -am 'Описание изменений')
  6. Отправьте изменения на сервер (git push origin my-new-feature)
  7. Создайте Pull Request

Изменения должны быть документированы. Язык документации этого проекта — русский.

Предлагаемые изменения могут быть отклонены в случае их несоответствия
функциональному назначению библиотеки, стилю, правилам именования и
форматирования существующего кода проекта.

Предлагаемые изменения могут быть дополнены перед включением в код проекта для
более полного соответствия назначению, стилю, правилам именования и
форматирования существующего кода.

Изменения принимаются в качестве добровольного безвозмездного пожертвования.

Лицензирование

Использование библиотеки допускается на условиях лицензии GNU GPLv3.

Если условия лицензии GNU GPLv3 не могут быть соблюдены, использование
библиотеки должно быть лицензировано на условиях коммерческого лицензионного
соглашения с автором.

Текст лицензии GNU GPLv3 находится в файле LICENSE. Перевод текста лицензии GNU
GPLv3 на русский язык находится в файле LICENSE_RU.

Понравилась статья? Поделить с друзьями:
  • Энрофлон инструкция по применению для птиц индюков
  • Бруснивер инструкция по применению отзывы при простатите
  • Как собрать диван дельфин инструкция по сборке
  • Руководство по монтажу светопрозрачных конструкций
  • Ковинан для собак инструкция по применению цена отзывы