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