Текущее время: Сб, июл 26 2025, 04:25

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Ср, июл 04 2012, 07:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 04 2007, 07:33
Сообщения: 169
Откуда: Almaty
Пол: Мужской
Добрый день!
Необходимо определить, есть ли в ИТ0860 Санкции/правонарушения запись на расчетный период, и в случае наличия там записи, не формировать определенные выплаты сотрудникам.
Пытались реализовать по коду мероприятия, и обращаться в правиле через MASSN к этому коду, но такой вариант Клиента не устроил.
Теперь думаем создать функцию, наподобие P0009, для считывания записей из ИТ0860. Создали функцию _0860, параметром вывода ввели некоторый объект ZT. В Include PCBURZRU0 написали след. код - возвращать в объект ZT значение TRUE, если запись в ИТ0860 есть.

FORM FU_0860.
zt = 'F'.
PROVIDE * FROM p0860 BETWEEN p0860-begda AND p0860-endda.
zt = 'T'.
endprovide.
endform.

Как обратиться к этому объекту? Насколько понял, у функции _0860 в схеме (PE01) в Параметре 1 должно стоять некоторое правило, например, ZFBN, где должно быть прописано условие, что если TRUE, то выплату не начислять, и наоборот. Правильна ли эта логика? Либо в самой форме FORM FU_0860 следует это как-то прописать? МОжет, есть какие примеры подобных функций? Или записывать TRUE или 1 в некоторый созданный вид оплаты и потом уже по этому в/о проверять? ПОдскажите, пожалуйста, функцию создаем впервые. Спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Ср, июл 04 2012, 08:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 23 2005, 12:50
Сообщения: 942
Пол: Мужской
Проще сделать сразу операцию возвращающую дерево решения, смотрите как пример операцию subrc или r51p1.

_________________
Нет таких денег, за которые кто-то будет работать лучше, чем энтузиасты бесплатно. Пол Грэм.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Ср, июл 04 2012, 08:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 04 2007, 07:33
Сообщения: 169
Откуда: Almaty
Пол: Мужской
почитал про SUBRC, но не понял, как в ней можно проверить ИТ0860? В Исходном коде к этой вновь созданной операции по аналогии SUBRC прописать свою проверку и вставить в правило?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860  Тема решена
СообщениеДобавлено: Ср, июл 04 2012, 11:02 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1398
Если хотите принимать какое-то решение на основе Ит0860, то нужно создавать не функцию, а операцию. Операцию затем использовать в правиле.
В операции должны быть следующие строчки

vargt = ... " определить значение для принятия решения
PERFORM fillvargt. " перенести значение в поле принятия решения.

Код будет выглядеть примерно так

FORM FU_0860.
vargt = 'N'.
" Сначала данные в p0860 нужно зачитать
" ФМ HR_READ_INFOTYPE или макрос rp-read-infotype
...
" теперь проверка, внимание на периоды
PROVIDE * FROM p0860 BETWEEN aper-begda AND aper-endda.
vargt = 'Y'.
exit.
endprovide.

PERFORM fillvargt.

endform.

Операция должна быть объявлена как операция принятия решения, символ D, длина 1 (см. SUBRC в параметром ?)

Затем эту операцию можно использовать в правиле, которая вставлена в какую-нибудь функцию.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание новой функции по з/п для проверки ИТ 0860
СообщениеДобавлено: Пн, июл 16 2012, 07:09 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 04 2007, 07:33
Сообщения: 169
Откуда: Almaty
Пол: Мужской
Спасибо, операцию создали и вставили в рабочую функцию, все получилось.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB