Справка Инфо-Бухгалтер 10

Клиентский алгоритм добавления в таблице проводок

Алгоритм служит для обработки события добавления в таблице операций журнала. Ссылка на алгоритм задается в менеджере настроек отображения.

Параметры алгоритма:

ВЫЧИСЛИТЬ (ПЕРЕМ ОПЕР_КОНТЕКСТ: контекст;  СТРОКА: вариант; ПЕРЕМ <ТИП>: оп; ПЕРЕМ СТРОКА: рез)
// …
КОНЕЦ

Алгоритм может возвращать три строковых значения результата: OK, CANCEL и CONTINUE.

Пример

Пример иллюстрирует использование алгоритма добавления проводки для операции. В ходе работы алгоритма происходит вызов диалогового окна для выбора следующих параметров: типа проводки - приход или расход, кода контрагента и суммы проводки.

В настройке отображения в узле "Добавление" для таблицы проводок задается алгоритм добавления проводки.

Показатьподробное объявление типов для диалогового окна

ТИП ДобПров(ДИАЛОГ)
[
  ТЕКСТ: Текст4 = [ 
    левый = 25,
    верхний = 60,
    ширина = 305,
    высота = 20,
    текст = "контрагент_получатель=Intex" ];

  ТЕКСТ: Текст3 = [ 
    левый = 25,
    верхний = 125,
    ширина = 50,
    высота = 20,
    текст = "Сумма:" ];

  ТЕКСТ: Текст2 = [ 
    левый = 25,
    верхний = 90,
    ширина = 130,
    высота = 20,
    текст = "контрагент_отправитель" ];

  ТЕКСТ: Текст1 = [ 
    левый = 25,
    верхний = 30,
    высота = 20,
    ширина = 80,
    текст = "Вид операции:" ];

  ЧИСЛО: ширина = 431;
  ЧИСЛО: высота = 192;
  ЧИСЛО: верхний = 157;
  ЧИСЛО: левый = 186;
  КНОПКА: кн_Отмена = [ левый = 330,
    верхний = 150,
    высота = 25,
    ширина = 80,
    табиндекс = 5,
    текст = "Отмена",
    нажатие = наж_отмена ];

  КНОПКА: кн_Ок = [ левый = 245,
    верхний = 150,
    высота = 25,
    ширина = 80,
    табиндекс = 4,
    текст = "Ок",
    нажатие = наж_ок ];

  ВВОД_ЧИСЛА: Ввод_числа1 = [ 
    левый = 110,
    верхний = 125,
    ширина = 85,
    высота = 20,
    табиндекс = 3 ];

  ВВОД_КОДА: Ввод_кода1 = [ 
    левый = 185,
    верхний = 90,
    ширина = 205,
    высота = 20,
    табиндекс = 2 ];

  КОМБОСПИСОК: Комбосписок1 = [ 
    левый = 110,
    верхний = 30,
    высота = 21,
    ширина = 215,
    табиндекс = 1,
    текст = "1",
    выбор = 1,
    изменение = ВыбралиВариант ,
    элементы = ("Приход товаров", "Расход товаров" ) ];

  ФУНКЦИЯ ВыбралиВариант( ПЕРЕМ КОМБОСПИСОК: список )
    ВЫБОР(СТР(список.выбор))
      #"1":
        Текст2.текст = "контрагент_отправитель"
        Текст4.текст = "контрагент_получатель=Intex"
      #"2":
        Текст4.текст = "контрагент_отправитель=Intex"
        Текст2.текст = "контрагент_получатель"
    КОНЕЦ_ВЫБОРА
    ОБНОВИТЬ
  КОНЕЦ_ФУНКЦИИ

  ФУНКЦИЯ наж_ок(ПЕРЕМ КНОПКА: кнопка)
    ЗАКРЫТЬ("OK")
  КОНЕЦ_ФУНКЦИИ

  ФУНКЦИЯ наж_отмена(ПЕРЕМ КНОПКА: кнопка)
    ЗАКРЫТЬ("")
  КОНЕЦ_ФУНКЦИИ
]

КОНСТ Орг = "ОРГАНИЗАЦИЯ/СПР/Intex";
КОНСТ ЕдИзм = "ВАЛ/USD";

ВЫЧИСЛИТЬ (ПЕРЕМ ОПЕР_КОНТЕКСТ: контекст;
           СТРОКА: вариант;
           ПЕРЕМ ОПЕРАЦИЯ: оп;
           ПЕРЕМ СТРОКА: рез)

  ПЕРЕМ ДобПров: длг
  длг.заголовок = "Добавление проводки в операцию типа 'Учет товаров'"
  ПЕРЕМ ПРОВОДКА: пров
  ЕСЛИ длг.ПОКАЗАТЬ_МОДАЛЬНЫЙ = "OK" ТО
    ПЕРЕМ элемент = СТР(длг.Комбосписок1.выбор)
    ВЫБОР(элемент)
      #"1":
        пров.дебет.код = Орг
        пров.кредит.код = длг.Ввод_кода1.текст
        пров.единицы.код = ЕдИзм
        пров.количество = длг.Ввод_числа1.значение
        оп.проводки[#оп.проводки+1] = пров
        рез = "OK"
      #"2":
        пров.дебет.код = длг.Ввод_кода1.текст
        пров.кредит.код = Орг
        пров.единицы.код = ЕдИзм
        пров.количество = длг.Ввод_числа1.значение
        оп.проводки[#оп.проводки+1] = пров
        рез = "OK"
    КОНЕЦ_ВЫБОРА
  ИНАЧЕ
    рез = "CANCEL"
  КОНЕЦ_ЕСЛИ
КОНЕЦ

См. также: