Клиентский алгоритм удаления в расчетной подчиненной таблице
Алгоритм служит для обработки события удаления в расчетной подчиненной таблице журнала. Ссылка на алгоритм задается в менеджере настроек отображения.
Параметры алгоритма:
ВЫЧИСЛИТЬ(ПЕРЕМ ОПЕР_КОНТЕКСТ: контекст; СТРОКА: вариант; ПЕРЕМ <ТИП>: оп; ЦЕЛОЕ: строка; ПЕРЕМ СТРОКА: рез) // … КОНЕЦ
- контекст - входной параметр. Имя журнала + имя режима настроек.
 - вариант - входной параметр. Имя варианта подчиненной таблицы в менеджере настроек отображения.
 - оп - входной параметр. Операция, к которой относится расчетная таблица. Вместо идентификатора <ТИП> задается: для типовых операций - имя типа операции, одного из родительских типов или ОПЕРАЦИЯ, для ручных операций - ОПЕРАЦИЯ.
 - стр - входной параметр. Номер удаляемой строки в подчиненной таблице.
 - рез - выходной параметр. Результат выполнения алгоритма.
 
Алгоритм может возвращать три строковых значения результата: OK, CANCEL и CONTINUE.
- OK - событие удаления обработано алгоритмом, дальнейшей обработки не происходит. В этом случае алгоритм сам должен отвечать за удаление строки в таблице.
 - CONTINUE - управление обработкой события передается платформе. В алгоритме можно указать определенные условия, и в соответствии с ними платформа должна удалить строку.
 - CANCEL - алгоритм отменяет событие удаления, операция не будет сохранена в базу данных.
 
Примечание В платформе не предусмотрено стандартного механизма обработки событий в расчетной таблице, поэтому "CONTINUE" для нее эквивалентно "OK".
Пример
Пример иллюстрирует использование алгоритма удаления строки в расчетной подчиненной таблице. В ходе работы алгоритма пользователь видит предупреждение перед непосредственным удалением строки.
В настройке отображения в узле "Удаление" для расчетной подчиненной таблицы задается ссылка на алгоритм удаления.
ВЫЧИСЛИТЬ(ПЕРЕМ ОПЕР_КОНТЕКСТ: контекст; // вход
          СТРОКА: вариант;               // вход   
          ПЕРЕМ ОПЕРАЦИЯ: оп;            // вход
          ЦЕЛОЕ: строка;                 // вход
          ПЕРЕМ СТРОКА: рез)             // выход
  // OK - CANCEL - CONTINUE
  ЕСЛИ ВОПРОС("Вы действительно хотите строку?", НЕТ, "Удаление в расчетной таблице") ТО
    ^^оп.таб_признаки["товары"].ячейки[строка,"код"]
    ^^оп.таб_признаки["товары"].ячейки[строка,"количество"]
    ^^оп.таб_признаки["товары"].ячейки[строка,"цена"]
    рез =  "OK"
  ИНАЧЕ
    рез = "CANCEL"
  КОНЕЦ_ЕСЛИ
КОНЕЦ