IPB

Здравствуйте, гость ( Вход | Регистрация )

> Frontol 4: прекращение поддержки. Восстановление лицензий

С 1 июля 2017 прекращена поддержка программного продукта Frontol 4
С 9 ноября 2019 прекращена поддержка программного продукта Frontol 5
пруф

С 3 августа 2017 восстановление лицензий производится ТОЛЬКО через СервисДеск
Просьба обращаться к партнерам компании для оформления заявок в СД

5 страниц V  < 1 2 3 4 5 >  
Добавить ответ в эту темуОткрыть тему
Примеры создания сценариев с помощью языка Java Script
Волгоград.Инфосо...
сообщение 13.9.2016, 14:10
Сообщение #41


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



Цитата(АТОЛ: Царюков Роман @ 13.9.2016, 13:08) *
для каких версий фронтол 5 будет работать данный сценарий?


Уважаемые разработчики, расширьте пожалуйста класс Frontol свойством currentVersion и currentVariant (вариант поставки Frontol), тогда в скриптах можно будет проверять контекст исполнения и не напороть ошибок из за отличий в версиях.


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
АТОЛ: Царюков Ро...
сообщение 13.9.2016, 15:06
Сообщение #42


Тех.поддержка
********

Группа: Администраторы
Сообщений: 58 057
Регистрация: 25.9.2008
Из: Москва
Пользователь №: 14 717



Цитата(Волгоград.Инфософт @ 13.9.2016, 14:10) *
Уважаемые разработчики, расширьте пожалуйста класс Frontol свойством currentVersion и currentVariant (вариант поставки Frontol), тогда в скриптах можно будет проверять контекст исполнения и не напороть ошибок из за отличий в версиях.

пока разработчики будут расширять этот функционал - дергайте инфу напрямую из БД


--------------------
ответы на 90% вопросов находятся в ДОКУМЕНТАЦИИ
еще 9% ответов ТУТ
P.S.: уважайте труд наших писателей - читайте мануалы
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 15.9.2016, 12:16
Сообщение #43


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



Функция GetPathDBFrontol5(cPathVariant) - получение пути к БД FronTol5
(это доработанная версия функции из сообщения http://forum.atol.ru/index.php?s=&show...t&p=212558)

функция GetPathDBFrontol5(cPathVariant) корректно работает для FronTol5 до и после версии 5.9.0

Описание:
Функция GetPathDBFrontol5(cPathVariant) - путь к базе данных Frontol5
возвращает строку, содержащую путь к БД Frontol или пустую строку, в случае ошибки
аргумент функции cPathVariant - строковой литерал со значением:
"OnlyPath" - по умолчанию - функция возвращает только путь к БД (E:\BASE\POSBASE\FT_5_TRADE\)
"HostAndPath" - функция возвращает хост и путь к БД (localhost:E:\BASE\POSBASE\FT_5_TRADE\)

Пример использования:
по умолчанию
Код
cPath = GetPathDBFrontol5(); // возвращает: E:\BASE\POSBASE\FT_5_TRADE\

с аргументом "OnlyPath"
Код
cPath = GetPathDBFrontol5("OnlyPath"); // возвращает: E:\BASE\POSBASE\FT_5_TRADE\

с аргументом "HostAndPath"
Код
cPath = GetPathDBFrontol5("HostAndPath"); // возвращает: localhost:E:\BASE\POSBASE\FT_5_TRADE\


Прикрепленный файл  GetPathDBFrontol5.txt ( 2.48 килобайт ) Кол-во скачиваний: 57


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 20.9.2016, 11:55
Сообщение #44


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



коллеги, оформил полезные функции для Frontol 5 в виде репозитория на GitHub:
https://github.com/infosoft-v/frontol5lib

для каждой функции написана краткая инструкция:
https://github.com/infosoft-v/frontol5lib/wiki

планирую, по мере появления универсальных функций в проектах, пополнять библиотеку.

Коллеги, с удовольствием добавлю ваши полезные универсальные функции для Frontol 5 в библиотеку. Автора и ссылку на источник укажу обязательно.


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
POUL
сообщение 20.9.2016, 12:44
Сообщение #45


Магистр слова
********

Группа: Партнеры
Сообщений: 14 888
Регистрация: 17.2.2007
Из: Москва
Пользователь №: 10 778



если не сложно, выложите пожалуйста в виде программнго кода, а не в виде ссылок


--------------------
FireBird Service Manager
Пишу скрипты за еду. Интегрирую в программы лояльности.
ООО "B2C"

Если долго вглядываться в докуметацию, она начнет давать ответы на вопросы
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 20.9.2016, 14:26
Сообщение #46


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



коллеги, позволю себе опубликовать тут краткую инструкцию по использованию GitHub и в частности получение текста функций из библиотеки

  1. по ссылке https://github.com/infosoft-v/frontol5lib можно попасть в библиотеку функций, где можно получить текст нужной функции или ознакомиться с документацией по использованию функций
    Прикрепленный файл  2016_09_20_13_40_47_infosoft_v_frontol5lib_______________________________________________FronTol_5___Yandex.png ( 69.48 килобайт ) Кол-во скачиваний: 175
  2. щелкнув на название функции, например getEAN13.js, можно перейти к тексту этой функции. Текст можно скопировать и использовать в своих проектах
    Прикрепленный файл  2016_09_20_13_54_00_frontol5lib_getEAN13.js_at_master___infosoft_v_frontol5lib___Yandex.png ( 59.27 килобайт ) Кол-во скачиваний: 87
  3. щелкнув на слове Wiki можно перейти к описанию функций и примерам использования
    Прикрепленный файл  2016_09_20_14_21_05_Home___infosoft_v_frontol5lib_Wiki___Yandex.png ( 47.14 килобайт ) Кол-во скачиваний: 83


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
zenik
сообщение 20.9.2016, 15:56
Сообщение #47


Магистр слова
********

Группа: Пользователи
Сообщений: 4 629
Регистрация: 30.10.2007
Пользователь №: 12 033



Цитата(Волгоград.Инфософт @ 20.9.2016, 14:26) *
можно попасть в библиотеку функций, где можно получить текст нужной функции или ознакомиться с документацией по использованию функций

Годнота... Я тоже подумал, что будет "качать". А так супер, жаль что функция пока маловато smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 21.9.2016, 16:07
Сообщение #48


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



добавлена функция формирования строки жирным шрифтом для ККМ

функция getBoldString(cString) - получить строку, которую ККМ выведет жирным (bold) шрифтом

параметры:
cString - строка. Строка текста, которую необходимо преобразовать в в строку, которую ККМ выведет жирным шрифтом

Пример использования: cBoldString = getBoldString("ПРОДАЖА"); // возвращается строка преобразованная в шрифт bold "\tП\tР\tО\tД\tА\tЖ\tА"

эта и другие полезные функции на GitHub https://github.com/infosoft-v/frontol5lib


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Евдокимов Сергей
сообщение 26.10.2016, 13:01
Сообщение #49


Начинающий
*

Группа: Пользователи
Сообщений: 72
Регистрация: 10.3.2015
Из: г. Екатеринбург
Пользователь №: 116 312



Сценарий для 4 Фронтола. Он делает запрограммированную скидку в момент, когда продавец выбрал вид оплаты "Банковская карта"
Так же для этого сценарий нужно задать горячую клавишу на f5, которая будет запускать FuncAct этого сценария.

Код
var paymentCode = 2; // Код вида оплаты
var keyMacros = "{F5}"; //Клавиша для запуска макроса

function BeforeAct(AO, RO, E, O, CO) {
    if (E == 6) {
        if (O.Code == paymentCode) {
            runMacros(AO, RO, O);
            AO.Cancel();
        }
    }
}

function AfterAct(AO, RO, E, O, CO) {}

//Сценарий для макроса
function FuncAct(AO, RO, CO) {
    receiptSum = 0;
    for (RO.Pos.Index = 1; RO.Pos.Index <= RO.Pos.Count; RO.Pos.Index++) {
        if (RO.Pos.Storno == 0) {
            //Расчет скидки
            RO.Pos.SetPrice(RO.Pos.Ware.Price - (RO.Pos.Ware.Price / 1.13 * 0.01));
            receiptSum = receiptSum + RO.Pos.SummWD;
        }
    }
    //Добавляем оплату
    RO.AddPayment(paymentCode, receiptSum);

}

function NoAction(AO, RO, POS, CO) {}

//Нажатие кнопки
function runMacros(AO, RO, O) {
    var WShell = new ActiveXObject("WScript.Shell");
    WShell.SendKeys(keyMacros);
}


--------------------
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 20.11.2016, 13:42
Сообщение #50


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



пополнил библиотеку полезных функций для FronTol5 двумя модулями:
Код
propertyBMPfile(cFullPathFile) - доступ к различным свойствам BMP файла
userVar - обёртка, для более удобной работы с пользовательскими переменными


библиотека доступна по адресу библиотека полезных функций на GitHub


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Калашников Алекс...
сообщение 23.11.2016, 12:19
Сообщение #51


Прохожий


Группа: Новички
Сообщений: 17
Регистрация: 14.8.2015
Пользователь №: 119 185



Функция, которая возвращает строку подключения к базе данных. Удобно использовать при прямых SQL-запросах к базе. Функция незаменима, если кассы подключены к базе по схеме online - одна база на несколько рабочих мест. Читает файл frontol.ini, парсит его и находит путь к базе данных, на основе чего строит правильную строку подключения.
Дополнительно приведён код функции trim() - удаление концевых пробелов - используется как вспомогательная для getDBConnectionString().

Код
/**
* Функция возвращает строку подключения к базе данных. Путь к базе данных читает из файла Frontol.ini, в котором хранятся все штатные настройки Фронтол.
*
*/
function getDBConnectionString() {

    var result = '';

    var CONST_FILEOPEN_FOR_READING = 1;
    var CONST_FILEOPEN_UTF = -1;
    
    // Получаем путь к файлу Frontol.ini.
    var FSO = new ActiveXObject("Scripting.FileSystemObject");
    var path = FSO.GetAbsolutePathName("")+"\\Frontol.ini";    


    var FSO = new ActiveXObject("Scripting.FileSystemObject");
    var File = FSO.GetFile(FSO.GetAbsolutePathName("")+"\\Frontol.ini");
    var TextStream = File.OpenAsTextStream(CONST_FILEOPEN_FOR_READING, CONST_FILEOPEN_UTF);     // Открываем файл только для чтения, в кодировке UTF.

    var curLine = "";
    var mParam = "";
    var pathToDatabase = "";
    while (!TextStream.AtEndOfStream) {

        curLine = TextStream.ReadLine();
        curLine=trim(curLine);  // Удалем концевые пробелы, чтобы не обрабатывать пустые строки.

        if (curLine.length > 0) {
            mParam = curLine.split('=');
            if (mParam.length == 2                      // Если исходную строку удалось разбить по знаку '=' на две подстроки, значит перед нами обычная строка с параметрами.
                && mParam[0].length > 0                 // и строка не начинается со знака '='
                && mParam[0].toLowerCase() == 'path'    // имя параметра может быть написано любыми буквами.
                && mParam[1].length > 0) {              // Если значение параметра не пустое
                    
                    pathToDatabase = trim(mParam[1]);   // удаляем возможные пробелы у параметра, если запись сделана в виде path = localhost:D:\baseAtol\ , то есть имеются пробелы вначале самого параметра.
                    break;
            }

        }
    }
    TextStream.Close();  

    if (pathToDatabase.length > 0) {
        // Формируем строку подключения        
        result = "DRIVER=Firebird/InterBase(r) driver; DBNAME="+pathToDatabase+"MAIN.GDB;UID=ЛОГИН;PWD=ПАРОЛЬ;CHARSET=WIN1251;";

    } else {
        frontol.actions.showError("Ошибка. Невозможно прочитать параметры подключения к базе (код 2). Обратитесь в техническую поддержку.");
        return false;
    }

    return result;
}

/**
* Удаляет концевые пробелы в строке
* @param  {string, any type}   str входная строка
* @return {string}             строка с удалёнными начальными и конечными пробелами (если входной параметр был строкой), пустая строка если входной параметр не был строковым.
*/
function trim(str) {
    if (typeof(str) == "string") {
        return str.replace(/^\s*/,'').replace(/\s*$/,'');       // удаляем начальные, а затем концевые пробелы.
    } else {
        return "";
    }
    
}
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 23.11.2016, 18:36
Сообщение #52


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



Цитата(Калашников Алексей @ 23.11.2016, 13:19) *
Функция, которая возвращает строку подключения к базе данных.

Алексей, разрешите я добавлю вашу функцию в свою библиотеку полезных функций? Авторство, конечно, будет указано.


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Калашников Алекс...
сообщение 2.12.2016, 9:47
Сообщение #53


Прохожий


Группа: Новички
Сообщений: 17
Регистрация: 14.8.2015
Пользователь №: 119 185



В предыдущем варианте функция неверно определяла путь к файлу Frontol.ini на некоторых кассах, победить пока не удалось. Поэтому рекомендуется использовать этот вариант: путь прописан просто константой.
В коде ниже глобальная переменная PATH_TO_FRONTOL_INI_FILE хранит путь к файлу Frontol.ini. Примеры инициализации:

(для Фронтол 5.3)
var PATH_TO_FRONTOL_INI_FILE = "C:\\Program Files\\ATOL\\Frontol5\\BIN\\Frontol.ini"; // Путь к файлу Frontol.ini

(для Фронтол 5.11, Win PosReady 2009)
var PATH_TO_FRONTOL_INI_FILE = "C:\\Documents and Settings\\All Users\\Application Data\\ATOL\\Frontol5\\Settings\\Frontol.ini"; // Путь к файлу Frontol.ini


Цитата
/**
* Функция возвращает строку подключения к базе данных. Путь к базе данных читает из файла Frontol.ini, в котором хранятся все штатные настройки Фронтол.
*
*/
function getDBConnectionString() {

var result = '';

// ... Определяем константы - режим чтения и кодировка, в которой будет открываться файл Frontol.ini
var CONST_FILEOPEN_FOR_READING = 1; // только для чтения
var CONST_FILEOPEN_UTF = -1; // в кодировке UTF

var FSO = new ActiveXObject("Scripting.FileSystemObject");
var File = FSO.GetFile(PATH_TO_FRONTOL_INI_FILE);
var TextStream = File.OpenAsTextStream(CONST_FILEOPEN_FOR_READING, CONST_FILEOPEN_UTF); // Открываем файл только для чтения, в кодировке UTF.

var curLine = "";
var mParam = "";
var pathToDatabase = "";
while (!TextStream.AtEndOfStream) {

curLine = TextStream.ReadLine();
curLine=trim(curLine); // удалем концевые пробелы, чтобы не обрабатывать пустые строки.

if (curLine.length > 0) {
mParam = curLine.split('=');
if (mParam.length == 2 // Если исходную строку удалось разбить по знаку '=' на две подстроки, значит перед нами обычная строка с параметрами.
&& mParam[0].length > 0 // и строка не начинается со знака '='
&& mParam[0].toLowerCase() == 'path' // имя параметра может быть написано любыми буквами.
&& mParam[1].length > 0) { // Если значение параметра не пустое

pathToDatabase = trim(mParam[1]); // удаляем возможные пробелы у параметра, если запись сделана в виде path = localhost:D:\atol\ , то есть имеются пробелы вначале самого параметра.
break;
}
}
}
TextStream.Close();

if (pathToDatabase.length > 0) {
// Формируем строку подключения
result = "DRIVER=Firebird/InterBase® driver; DBNAME="+pathToDatabase+"MAIN.GDB;UID=SYSDBA;PWD=masterkey;CHARSET=WIN1251;";

} else {
frontol.actions.showError("Ошибка. Невозможно прочитать параметры подключения к базе (код 21). Обратитесь в техническую поддержку.");
return false;
}

return result;
}

/**
* Удаляет концевые пробелы в строке
* @param {string, any type} str входная строка
* @return {string} строка с удалёнными начальными и конечными пробелами (если входной параметр был строкой), пустая строка если входной параметр не был строковым.
*/
function trim(str) {
if (typeof(str) == "string") {
return str.replace(/^\s*/,'').replace(/\s*$/,''); // удаляем начальные, а затем концевые пробелы.
} else {
return "";
}
}


Владимир, можете добавить в свою библиотеку.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 2.12.2016, 10:15
Сообщение #54


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



Цитата(Калашников Алексей @ 2.12.2016, 11:47) *
В предыдущем варианте функция неверно определяла путь к файлу Frontol.ini на некоторых кассах, победить пока не удалось. Поэтому рекомендуется использовать этот вариант: путь прописан просто константой.
В коде ниже глобальная переменная PATH_TO_FRONTOL_INI_FILE хранит путь к файлу Frontol.ini. Примеры инициализации:

(для Фронтол 5.3)
var PATH_TO_FRONTOL_INI_FILE = "C:\\Program Files\\ATOL\\Frontol5\\BIN\\Frontol.ini"; // Путь к файлу Frontol.ini

(для Фронтол 5.11, Win PosReady 2009)
var PATH_TO_FRONTOL_INI_FILE = "C:\\Documents and Settings\\All Users\\Application Data\\ATOL\\Frontol5\\Settings\\Frontol.ini"; // Путь к файлу Frontol.ini

Владимир, можете добавить в свою библиотеку.

Алексей, в библиотеке https://github.com/infosoft-v/frontol5lib есть функция GetPathDBFrontol5, которая корректно возвращает путь к БД Frontol и для Frontol до версии 5.10 и после этой версии.

Функцию добавлю. Спасибо.

ps. Я Евгений.


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Калашников Алекс...
сообщение 2.12.2016, 15:46
Сообщение #55


Прохожий


Группа: Новички
Сообщений: 17
Регистрация: 14.8.2015
Пользователь №: 119 185



Цитата(Волгоград.Инфософт @ 2.12.2016, 10:15) *
Алексей, в библиотеке https://github.com/infosoft-v/frontol5lib есть функция GetPathDBFrontol5, которая корректно возвращает путь к БД Frontol и для Frontol до версии 5.10 и после этой версии.

Функцию добавлю. Спасибо.

ps. Я Евгений.

Отправить ЛС я Вам не могу, придётся писать здесь...

В функции из репозитория GetPathDBFrontol5 используется метод oFileSystem.GetAbsolutePathName("") чтобы получить папку установки фронтол в ProgramFiles. Именно эта функция в моём коде не работала на некоторых кассах. Вместо пути к "ProgramFiles" возвращала путь к "Document and settings". Она не всегда возвращает путь к папке с установкой Фронтол. И ваш метод точно также не будет корректно работать на некоторых POS-ах, если выполнение кода дойдёт до функции GetAbsolutePathName().

Цитата(Калашников Алексей @ 2.12.2016, 15:36) *
Отправить ЛС я Вам не могу, придётся писать здесь...

В функции из репозитория GetPathDBFrontol5 используется метод oFileSystem.GetAbsolutePathName("") чтобы получить папку установки фронтол в ProgramFiles. Именно эта функция в моём коде не работала на некоторых кассах. Вместо пути к "ProgramFiles" возвращала путь к "Document and settings". Она не всегда возвращает путь к папке с установкой Фронтол. И ваш метод точно также не будет корректно работать на некоторых POS-ах, если выполнение кода дойдёт до функции GetAbsolutePathName().

Также функция GetPathDBFrontol5 не учитывает пути вида
"C:\\Documents and Settings\\All Users\\Application Data\\ATOL\\Frontol5\\Settings\\Frontol.ini"
А именно здесь хранится файл Frontol.ini на WinPosReady 2009 для Фронтол 5.11.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Калашников Алекс...
сообщение 2.12.2016, 15:58
Сообщение #56


Прохожий


Группа: Новички
Сообщений: 17
Регистрация: 14.8.2015
Пользователь №: 119 185



Пока не придумал ничего лучше, чем пробовать перебором.

Код
// Возвращает путь к папке, в которой хранятся файлы с параметрами в текущей версии Фронтол.
// По сути, ищет файл Frontol.ini в папках, в которых разные версии могут хранить этот файл, и
// возвращает путь к папке, в которой файл найден.
function getPathToIniFiles() {

    var PATH_TO_INI_FILES_NEW_VERSION = "C:\\Documents and Settings\\All Users\\Application Data\\ATOL\\Frontol5\\Settings";    // Путь к папке с файлом Frontol.ini в версиях 5.9 и выше.
    var PATH_TO_INI_FILES_OLD_VERSION = "C:\\Program Files\\ATOL\\Frontol5\\BIN";   // Путь к папке, в которой распологался Frontol.ini версии Фронтол 5.3
    var PATH_TO_INI_FILES_NEW_VERSION_WIN7 = "C:\\ProgramData\\ATOL\\Frontol5\\Settings"    // Папка с *.ini файлами на Windows 7 для версий старше Фронтол 5.9

    var fso = new ActiveXObject("Scripting.FileSystemObject");    
    if ( fso.FileExists(PATH_TO_INI_FILES_NEW_VERSION + "\\Frontol.ini") ) {

        return PATH_TO_INI_FILES_NEW_VERSION;

    } else if ( fso.FileExists(PATH_TO_INI_FILES_OLD_VERSION + "\\Frontol.ini") ) {

        return PATH_TO_INI_FILES_OLD_VERSION;

    } else if ( fso.FileExists(PATH_TO_INI_FILES_NEW_VERSION_WIN7 + "\\Frontol.ini") ) {

        return PATH_TO_INI_FILES_NEW_VERSION_WIN7;

    } else {

        frontol.actions.showError("Ошибка (код 23). Невозможно найти файл с настройками. Обратитесь в техподдержку.");
    }    
}
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Волгоград.Инфосо...
сообщение 2.12.2016, 16:34
Сообщение #57


Участник
**

Группа: Партнеры
Сообщений: 150
Регистрация: 8.4.2005
Из: Волгоград
Пользователь №: 347



Цитата(Калашников Алексей @ 2.12.2016, 17:58) *
Пока не придумал ничего лучше, чем пробовать перебором.


Понятно, нужно подумать. Вы правы, в самом деле нужно тестировать не только на Win7, как сделал я, но и на WinXP.


--------------------
Информационный Софт - автоматизация предприятий
разрабатываем и внедряем
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
zenik
сообщение 28.12.2016, 15:01
Сообщение #58


Магистр слова
********

Группа: Пользователи
Сообщений: 4 629
Регистрация: 30.10.2007
Пользователь №: 12 033



Брошу свои 5 копеек. Итак, как мы выяснили, ЕГАИС не очень хорошо относится к продаже 2-х одинаковых марок, а еще хуже он отнесется к моменту: продажа -> возврат -> продажа. Но то что запрещено только словами - никогда не мешает кассиру. Итак - скрипт запрещающий в чек возврата регистрировать акцизную продукцию:
Код
function init()
{

  frontol.addEventListener("addPosition", "BeforeAddPosition", true);

}

function BeforeAddPosition(position) {

  if (frontol.currentDocument.type.code == 2)
    if (position.ware.hasAlcoStamp == 1)
      frontol.actions.showError("Возврат акцизной алкогольной продукции на кассе ЗАПРЕЩЕН!");
  
}

Все просто и банально.
з.ы. FRONTOL 5.x
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
николай1974
сообщение 18.1.2017, 13:49
Сообщение #59


Прохожий


Группа: Пользователи
Сообщений: 23
Регистрация: 24.4.2012
Пользователь №: 56 423



Контроль акцизок при продаже алкоголя - из учетной программы формируется файл, содержащий акцизные марки на остатке.
При добавлении позиции идет проверка наличия акцизки в файле.
В данном случае работает для документа Продажа, position.ware.type == 1 у нас - это алкоголь.

CODE
frontol.addEventListener("addPosition", "BeforeAddPosition", true);

function BeforeAddPosition(position)
{
doc = frontol.currentDocument;

if (frontol.currentDocument.type.code == 1)
{
if (position.ware.type == 1) {
flag = true;
desc = Open_Text_File('Путь к файлу');
MyResult1 = desc.split(";");
stamp = position.alcoStamp;

for (var index in MyResult1)
{
if (stamp == MyResult1[index])
{flag = false;}
}

if (flag)
{
frontol.actions.showError("Продажа товара запрещена! Отутствует акцизная марка на остатке !");
}
}
}

function Open_Text_File(file_path)
{
var t_file, data_file;
var FSO = new ActiveXObject("Scripting.FileSystemObject")
t_file=FSO.OpenTextFile(file_path, 1, false);
data_file = t_file.ReadAll();
t_file.Close();
return data_file;
}
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Lis_Domino
сообщение 10.3.2017, 15:48
Сообщение #60


Завсегдатай
***

Группа: Пользователи
Сообщений: 284
Регистрация: 14.9.2010
Пользователь №: 22 355



Николай а для 4-го Фронтола можете написать такую проверку?
Спасибо
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

5 страниц V  < 1 2 3 4 5 >
Добавить ответ в эту темуОткрыть тему
10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 27.11.2022, 8:12
 Яндекс цитирования  Rambler's Top100