Имя: Пароль:
IT
 
Ошибка скрипта Frontol 6
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);
}