Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Kozyrev Участник - экстремал
Вступление в Клуб: 03.09.2007
|
Вт Авг 19, 2008 09:23  Проблема с автоматическим созданием платежек |
|
Полезность: Нет оценки
|
Первая операция, которая читает данные из файлика и формирует переменные для операции ::[MAIN_DOCUM].NEW#DOC, потом записывает их значения в справочник.
Вторая операция читает данные из этого справочника и вызывает саму функцию ::[MAIN_DOCUM].NEW#DOC.
Проблема в следующем:
При вызове второй операции под пользователем IBS платежное поручение создается корректно.
При вызове второй операции под некоторым пользователем, в платежку попадает неверное название плательщика (клиента банка).
Как я понимаю, дело в доступе... Доступ к каким объектам необходимо предоставить пользователю?
Последний раз редактировалось: Kozyrev (Вт Авг 19, 2008 12:17), всего редактировалось 1 раз |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Авг 19, 2008 12:05   |
|
Полезность: Нет оценки
|
Не очень понятно. Наверно, доступ к клиентам или счетам?
Можно привести текст операций? |
|
 |
Kozyrev Участник - экстремал
Вступление в Клуб: 03.09.2007
|
Вт Авг 19, 2008 12:16   |
|
Полезность: Нет оценки
|
Как выяснилось, дело не в доступе....
При вызове функции ::[MAIN_DOCUM].NEW#DOC из моей операции, в платежку попадают реквизиты того клиента, платежку которого вводил операционист вручную чуть ранее. То есть не очищаются какие-то переменные...
Подскажите, что нужно делать при вызове одной операции из другой, чтобы исключить попадание в платежку "старых" значений реквизитов? |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Авг 19, 2008 12:27   |
|
Полезность: Нет оценки
|
Скорее всего, это отрабатывает хук ::[HOOK].[VARS].ref_hook.[MD_NEW#DOC]. Посмотрите в нем следующие строки, может быть это оно:
Код: | P#CL_DT_2.[PART] := ::[MAIN_DOCUM].[SBRF_LIB].get_part(null, stdlib.UserId);
P#CL_KT_2.[PART] := ::[MAIN_DOCUM].[SBRF_LIB].get_part(null, stdlib.UserId);
|
Операция NEW#DOC вызывается через call? |
|
 |
Kozyrev Участник - экстремал
Вступление в Клуб: 03.09.2007
|
Вт Авг 19, 2008 13:39   |
|
Полезность: Нет оценки
|
Операцию вызываю так
Код: |
v_ttt:=::[MAIN_DOCUM].NEW#DOC( ... );
|
То есть нужно переопредели свой хук...
А что нужно в нем поменять? Интересны причины появления глюка.
Реквизиты отправителя, если он является клиентом банка, это переменная P#CL_DT_1...
P.S. Кстати, поточный ввод в некоторых случаях тоже вставляет не те реквизиты. В ЦФТ зафиксировали несоотвествие и обещали поправить. |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Авг 19, 2008 13:45   |
|
Полезность: Нет оценки
|
Kozyrev пишет: | Операцию вызываю так
Код: |
v_ttt:=::[MAIN_DOCUM].NEW#DOC( ... );
|
|
Т.е. документ просто создается? Я то думал, что вызывается форма операции "Новый безналичный документ". Для программного создания документа лучше пользоваться NEW#AUTO или бизнес-операции. |
|
 |
Kozyrev Участник - экстремал
Вступление в Клуб: 03.09.2007
|
Вт Авг 19, 2008 14:07   |
|
Полезность: Нет оценки
|
Документ создается программно.
Если перед вызовом операции пользователь перезаходит в Навигатор, то платежка создается верно.
Может перед вызовом функции в операции нужно что-то очищать? |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Авг 19, 2008 14:43   |
|
Полезность: 2
|
Попробуйте вместо [MAIN_DOCUM]::[NEW#DOC] использовать [MAIN_DOCUM]::[NEW#AUTO] |
|
 |
Kozyrev Участник - экстремал
Вступление в Клуб: 03.09.2007
|
Вт Авг 19, 2008 15:41   |
|
Полезность: Нет оценки
|
А еще варианты есть?
P.S. Не факт что глюк пропадет... Неизвестна причина... |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Ср Авг 20, 2008 06:35   |
|
Полезность: Нет оценки
|
Возможно, при использовании NEW#DOC используется сохранение/восстановление каких-либо параметров из контекста пользователя. Обзор дистрибутивных функций показал, что для программного создания документов везде используется NEW#AUTO.
Чего и вам советую. |
|
 |
Kozyrev Участник - экстремал
Вступление в Клуб: 03.09.2007
|
Чт Авг 21, 2008 17:28   |
|
Полезность: Нет оценки
|
Цитата: | Для программного создания документа лучше пользоваться NEW#AUTO... |
dnk_dz, помогло, спасибо! |
|
 |
|