0
Admin_Net_1C
26.02.19
✎
12:39
|
Добрый день народ.
Вопрос знатокам Frontol 6: при вызове функции
frontol.currentDocument.addPosition("Code", arAddCodePositions[idArr], 0, position.quantity, 0, true);
внутри события afterAddPosition получаю ошибку: "Вызов addPosition в контексте данного события не поддерживается!".
Суть задачи: необходимо программно добавить товар при добавлении в чек кассиром определенного товара.
Пните в нужном направлении плиз.
|
|
1
Admin_Net_1C
26.02.19
✎
14:24
|
Победил с помощью техподдержки АТОЛ )
Если кому интересно, итоговый скрипт ниже:
// функция init() является основной и служит для привязки событий к обработчикам
function init()
{
//установка обработчика для события, срабатывающего после открытия документа
frontol.addEventListener("openDocument", "afterOpenDocument", false);
//установка обработчика для события, срабатывающего перед закрытием документа
frontol.addEventListener("closeDocument", "beforeCloseDocument", true);
}
function afterOpenDocument()
{
if (frontol.currentDocument.type.code == 1)
{
frontol.addEventListener("addPosition", "MyAddPosition", false);
}
}
function contains(arr, elem) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === elem) {
return i;
}
}
return -1;
}
function MyAddPosition(position)
{
//ВНИМАНИЕ! Количество элементов массивов должно совпадать!
var arSearchArtikuls = ["111","333","555"]; //массив АРТИКУЛОВ товаров, при ручном добавлении в чек которых, нужно автоматически добавлять товар (из массива arAddCodePositions)
var arAddCodePositions = [1944, 1948, 1944]; //массив КОДОВ товаров, которые нужно автоматически добавлять в чек при ручном добавлении товара (из массива arSearchArtikuls)
idArr = contains(arSearchArtikuls,position.ware.mark);
if (idArr != -1) {
frontol.currentDocument.addPosition("Code", arAddCodePositions[idArr], 0, position.quantity, 0, true);
}
}
// функция afterCloseDocument() служит для отмены привязки событий к обработчикам
function beforeCloseDocument()
{
//убираем обработчик для события, срабатывающего после добавления позиции
frontol.removeEventListener("addPosition", "afterAddPosition", true);
//убираем обработчик для события, срабатывающего после закрытия документа
frontol.removeEventListener("closeDocument", "beforeCloseDocument", true);
}
|
|