Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 11:57  Создание расширений по редактированию кассовых документов. |
|
Полезность: Нет оценки
|
Столкнулся с ситуацией - пытаюсь создать расширение по редактированию кассового документа.
Основная цель - добавить проверку.
Без расширения все работает.
После создания расширения даже без добавления проверки все начинает глючить.
Последний раз редактировалось: mmm_kazan (Вт Апр 17, 2018 08:08), всего редактировалось 1 раз |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 16, 2018 12:03   |
|
Полезность: Нет оценки
|
Файл *.doc - не лучший выбор (безопасность). |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 12:59   |
|
Полезность: Нет оценки
|
Volod пишет: | Файл *.doc - не лучший выбор (безопасность). |
Здравствуйте.
Честно сказать выбрал самое простое.
Порекомендуйте? |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 13:00   |
|
Полезность: Нет оценки
|
Вот здесь проверка срабатывает.
Контроль корректности реквизитов документа.
--debug_pipe('!!!ЗАПУСК CHECK_REQS');
if [sum] is null and [SUM_PO] is null and [SUM_NT] is null then
pragma error( 'Необходимо указать сумму документа');
end if; |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 16, 2018 14:25   |
|
Полезность: Нет оценки
|
Картинку в формате jpg.
Не понятно, что срабатывает, что не срабатывает.
Где текст Проверки? |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 14:37   |
|
Полезность: Нет оценки
|
Текст проверки ЦФТ - его никто не менял.
Файл с ошибкой прилагаю.
Вопрос в том, что эта ошибка не выскакивает, если расширения нет.
В расширении вообще нет ничего.
Текст проверки я выдернул - там как раз эта шибка срабатывает.
Последний раз редактировалось: mmm_kazan (Вт Апр 17, 2018 08:07), всего редактировалось 1 раз |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 16, 2018 14:55   |
|
Полезность: Нет оценки
|
Кнопка Подробно наверное многое-бы объяснила... |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 15:11   |
|
Полезность: Нет оценки
|
Volod пишет: | Кнопка Подробно наверное многое-бы объяснила... |
Не вопрос
Последний раз редактировалось: mmm_kazan (Вт Апр 17, 2018 08:07), всего редактировалось 1 раз |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Пн Апр 16, 2018 15:19   |
|
Полезность: 1
|
В операции EDIT_KASSA в проверке есть вызов хука ::[HOOK].[MD_EK_VALIDATE]. Может проще его использовать? |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 15:57   |
|
Полезность: Нет оценки
|
Blackmore64 пишет: | В операции EDIT_KASSA в проверке есть вызов хука ::[HOOK].[MD_EK_VALIDATE]. Может проще его использовать? |
А пример сможете предоставить?
Мне что-то вроде этого нужно в проверку засунуть.
if P#CL_DT_1.[2].[CLIENT_V]%class='CL_PRIV' then
for
(select c (c.[doc].[date_end] :c_d)
in [CL_PRIV], ([CERTIfIC_TYPE] : s)
where s%id(true) = c.[doc].[type]
and c%id = id_cl_forDOC
and trim(s.KOD)='21'
)
loop
if c.[c_d] <= sysdate and c.[c_d] is not null then
stdio.put_line_buf(chr(13)||chr(13)||'У клиента по дебету просрочен паспорт');
end if;
exit;
end loop;
if P#CL_KT_1.[2].[CLIENT_V]%class='CL_PRIV' then
id_cl_forDOC := P#CL_KT_1.[2].[CLIENT_V];
for
(select c (c.[doc].[date_end] :c_d)
in [CL_PRIV], ([CERTIfIC_TYPE] : s)
where s%id(true) = c.[doc].[type]
and c%id = id_cl_forDOC
and trim(s.KOD)='21'
)
loop
if c.[c_d] <= sysdate and c.[c_d] is not null then
stdio.put_line_buf(chr(13)||chr(13)||'Внимание. У клиента по кредиту просрочен паспорт');
end if;
exit;
end loop;
end if;
stdio.put_line_buf(Str_CL_Dop);
for
(select dl (dl : c_dl)
in ::[DENY_LIST]
where
dl%state = 'ACTIVE' and
dl.[MEMBER].[INN] is not null and
((dl.[MEMBER].[INN] = this.[KL_DT].[1].[1].[INN] and this.[KL_DT].[0] = 1) or
(dl.[MEMBER].[INN] = this.[KL_DT].[2].[INN] and this.[KL_DT].[0] = 2))
)
loop
stdio.put_line_buf(chr(13)||chr(13)||'Внимание. Плательщик находится в списке "Реестр отказов. Случаи отказа в выполнении операции, отказа от заключения договора счета, расторжения договора счета"');
exit;
end loop;
for
(select dl (dl : c_dl)
in ::[DENY_LIST]
where
dl%state = 'ACTIVE' and
dl.[MEMBER].[INN] is not null and
((dl.[MEMBER].[INN] = this.[KL_KT].[1].[1].[INN] and this.[KL_DT].[0] = 1) or
(dl.[MEMBER].[INN] = this.[KL_KT].[2].[INN] and this.[KL_DT].[0] = 2))
)
loop
stdio.put_line_buf(chr(13)||chr(13)||'Внимание. Получатель находится в списке "Реестр отказов. Случаи отказа в выполнении операции, отказа от заключения договора счета, расторжения договора счета"');
exit;
end loop;
end if; |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 16, 2018 16:16   |
|
Полезность: Нет оценки
|
Персональные данные хоть вымышленные? |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 16:21   |
|
Полезность: Нет оценки
|
Volod пишет: | Персональные данные хоть вымышленные? |
В тестовой базе было что-то.
Обычно там или старое, или нереальное.
Хотя я не знаю. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 16, 2018 16:35   |
|
Полезность: Нет оценки
|
Найдите Z$HOOK_BANK_MD_EK_VALIDATE и в Тело пишите свои проверки. |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пн Апр 16, 2018 16:44   |
|
Полезность: Нет оценки
|
Volod пишет: | Найдите Z$HOOK_BANK_MD_EK_VALIDATE и в Тело пишите свои проверки. |
Стардатным интерфейсом я не могу изменять ведь.
Не находится эта строка. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 16, 2018 16:50   |
|
Полезность: Нет оценки
|
тип HOOK_BANK |
|
 |
|