Страница 1 из 1

Запуск алгоритма после изменения статуса

Добавлено: 12 дек 2011, 11:57
sildae
В договоре анализируется заполненность полей DOGOVOR.MINDEBTSAGE, DOGOVOR.MAXDEBTSAGE
Если эти поля =0, то статус не менять.

ф-ция договора curDogovor

Dogovor.setPosition(curDogovor());
if (Dogovor.DMin == 0)
{
if (Dogovor.Dmax == 0)
{
Message ('нужно проставить предоплату или отстрочку платежа');
}
}

Эта конструкция работает,пытаюсь вставить после Message
Dogovor.CNOTE = 0000000000000044h;
Dogovor.rewrite();
(снова статус оформляемый) . Ничего не получается.
Я нигде не описала в наименованиях свойств Dogovor.CNOTE, но там ,вроде ,и негде.

Re: Запуск алгоритма после изменения статуса

Добавлено: 13 дек 2011, 05:48
Алексей
недостаточно изменить ссылку на описание статуса, нужно ещё поменять поле dogovor.status
у о формляемых оно или 0 или 1, на память не помню...

Re: Запуск алгоритма после изменения статуса

Добавлено: 13 дек 2011, 08:03
n0where
Откат выполнения алгоритма является переменная Binding. Если таким образом статус откатить не получится, то пишете в ТП - они должны исправить.
Данный механизм стандартный, работает на процедурах оприходования и изменениях статусов накладных и актов

Код: Выделить всё

Function RunInter(wflag: word; var pt: TRecAcc): boolean;
begin
          pt.Binding := 1; // или 7
end;

Re: Запуск алгоритма после изменения статуса

Добавлено: 13 дек 2011, 11:20
sildae
n0where писал(а):Откат выполнения алгоритма является переменная Binding. Если таким образом статус откатить не получится, то пишете в ТП - они должны исправить.
Данный механизм стандартный, работает на процедурах оприходования и изменениях статусов накладных и актов

Код: Выделить всё

Function RunInter(wflag: word; var pt: TRecAcc): boolean;
begin
          pt.Binding := 1; // или 7
end;
А куда эту конструкцию вставлять?
Function RunInter(wflag: word; var pt: TRecAcc): boolean;
Dogovor.setPosition(curDogovor());
if (Dogovor.DMin == 0 & Dogovor.Dmax == 0)
{
Message ('Нужно проставить предоплату или отстрочку платежа. Статус проставлен не будет');
begin
pt.Binding := 1;
end;
}

У меня вылетает по ошибке на функции. "Предполагается наличие объекта".

Re: Запуск алгоритма после изменения статуса

Добавлено: 13 дек 2011, 11:29
n0where
У вас на наверно JS алгоритм. Там немного другая схема. Но смысл тотже )) там настраивать побольше.

Я дал схему для VIP алгоритма

Re: Запуск алгоритма после изменения статуса

Добавлено: 13 дек 2011, 11:37
sildae
n0where писал(а):У вас на наверно JS алгоритм. Там немного другая схема. Но смысл тотже )) там настраивать побольше.

Я дал схему для VIP алгоритма
А Vip в JS вставить можно?

Re: Запуск алгоритма после изменения статуса

Добавлено: 13 дек 2011, 12:53
Dmitry_Sol
Давайте по порядку.
1. В объекте dogovor в JS нет полей status и cnote.Из этого следует, что стандартными методами JS их изменить нельзя. НО
1) Есть возможность для платформ MS SQL и ORACLE подключить библиотеку работы с прямым SQL. Об этом популярно расписано на официальном форуме .
https://forum.galaktika.ru/viewtopic.ph ... 4228#p4228
2) Есть возможность из JS вызвать любой алгоритм. А алгоритмом может являться ВИП алгоритм. Алгоритм написанный на языке ВИП. Пример такого алгоритма, для чтения любых полей есть на официальном форуме. Если что то будет непонятно, алгоритм писал я, пишите в личку - помогу
3) Есть возможность написать свою пользовательскую библиотеку, вот здесь об этом вкратце упоминается.
http://www.tyumbit.ru/gal_forum/viewtop ... 622#p56622. Но для того чтоб создать свою библиотеку, нужна масса vih файлов. Если мне разрешат их выложить публично, я их выложу в опыт. А пока пишите в личку.

Р.S.При работе с JS нужно помнить несколько вещей: 1) JS регистрозависимый язык, поэтому важно следить за регистром. 2) числа комп типа - надо передавать в 10чном а не 16ричном режиме, тоесть dogovor.CNOTE=0000044h не прошло бы в любом случае. надо писать dogovor.CNOTE=68