CREATE PROCEDURE dbo.%PROC% (@sid VARCHAR(30) = NULL, @s_action_history_id NUMERIC, @contract_id NUMERIC, @in_out INT, @perpose_id NUMERIC, @place_class_id NUMERIC, @object_id NUMERIC, @doc_sum MONEY, @doc_date DATETIME, @cur_id NUMERIC, @bank_acc_id NUMERIC, @contragent_id NUMERIC) AS .BEGIN('N') .CHECK_USER BEGIN TRAN .ASSIGN(@action_history_id, @s_action_history_id) -- Проводки .BACK_PIF_OPERS_BEGIN(@contract_id, @in_out, @perpose_id, @place_class_id) .NAME_VAR(@home_subc_str) .NAME_VAR(@ext_subc_str) .ID_VAR(@in_contr_id) -- Внутренняя аналитика IF (SELECT UPPER(code) FROM t_move_directions WHERE id = @place_class_id) IN ('TS', 'EB', 'TM_E', 'OWN', 'OWN_NEW') BEGIN SELECT @in_contr_id = ( SELECT c.client_id FROM tb_broker2exchange b, tb_contracts c WHERE b.id = @object_id AND b.ext_broker_deal = c.id ) IF @in_contr_id IS NULL .EXIT_MESSAGE('Не задан контрагент по договору с торговой площадкой или внешним брокером') .SUBC_STR_ADD(@home_subc_str, 'PARTNERS', @in_contr_id) END .SUBC_STR_ADD(@home_subc_str, 'BANK_ACCOUNT', @bank_acc_id) -- Внешняя аналитика IF .PURPOSE_CODE(@perpose_id) <> '37' BEGIN .SUBC_STR_ADD(@ext_subc_str, 'PARTNERS', @contragent_id) END .BACK_MONEY_INOUT(@doc_sum, @doc_date, @doc_date, @cur_id, @home_subc_str, @ext_subc_str, NULL, NULL, @cur_id, @cur_id) IF .PURPOSE_CODE(@perpose_id) = '47' BEGIN DECLARE @deb_acc_id NUMERIC, @cred_acc_id NUMERIC SELECT @deb_acc_id = .ACCID_FROM_EFFNO(@bo1_plan_money_id, '76.9') SELECT @cred_acc_id = .ACCID_FROM_EFFNO(@bo1_plan_money_id, '91.1') .OPERATION_SBC(@bo1_owner_id, @bo1_plan_money_id, @doc_date, @deb_acc_id, @cred_acc_id, @doc_sum, @cur_id, @doc_date, 0, 0, @bo1_comm, Y, @operation_id, @id, @action_id, @action_history_id, NULL, NULL, @ext_subc_str, '', @cur_id, @cur_id) END COMMIT TRAN .END