修改凭证提示“定义的应用程序或对象错误”,错误代码3639(E37H)原创
金蝶云社区-云逸天下
云逸天下
6人赞赏了该文章 746次浏览 未经作者许可,禁止转载编辑于2023年10月16日 17:56:52
给客户新建账套并完成系统设置和初始化数据后,录入基础资料和凭证都正常,但在修改凭证时会弹出提示“定义的应用程序或对象错误”,导致凭证不能修改,点击“高级”,错误代码3639(E37H),Source:Microsoft OLE DB Provider for SQL Server,Detail:对象名‘t_MgBudVchHook’无效,如下图:

image.png

经登录企业管理器检查,发现相应的账套数据库中没有表‘t_MgBudVchHook’,通过借鉴其他正常账套的表,依次新建空表即可。
具体语句如下:

第1个SQL语句:


/****** Object:  Table [dbo].[t_MgAcct]    Script Date: 10/16/2023 13:12:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t_MgAcct](
[FMgAcctID] [int] NOT NULL,
[FNumber] nvarchar NOT NULL,
[FName] nvarchar NOT NULL,
[FLevel] [smallint] NOT NULL,
[FTradeID] [int] NOT NULL,
[FStandAcctID] [int] NOT NULL,
[FDetail] [bit] NOT NULL,
[FParentID] [int] NOT NULL,
[FRootID] [int] NOT NULL,
[FMgGroupID] [int] NOT NULL,
[FSubGroupID] [int] NOT NULL,
[FAcctGroupID] [int] NOT NULL,
[FDC] [int] NOT NULL,
[FHelperCode] nvarchar NULL,
[FCurrencyID] [int] NOT NULL,
[FDetailID] [int] NOT NULL,
[FQtyPrice] [bit] NOT NULL,
[FUnitGroupID] [int] NOT NULL,
[FMeasureUnitID] [int] NOT NULL,
[FBudPrice] [money] NOT NULL,
[FContact] [bit] NOT NULL,
[FDelete] [smallint] NOT NULL,
[FIsCashFlow] [bit] NOT NULL,
[FMgGrpAcctID] [int] NOT NULL,
[FCalc] [smallint] NOT NULL,
[FFlexBud] [tinyint] NOT NULL,
[FFormula] nvarchar NULL,
[FPay] [decimal](18, 4) NOT NULL,
[FCash] [decimal](18, 4) NOT NULL,
[FAdjust] [decimal](18, 4) NOT NULL,
[FPriceMode] [int] NOT NULL,
[FExplation] nvarchar NULL,
[FIsGroup] [bit] NOT NULL,
[FIsQuota] [bit] NOT NULL,
[FQuota] [money] NOT NULL,
[FAproBeginMoney] [smallint] NOT NULL,
[FAproEndMoney] [smallint] NOT NULL,
[FAproDebitMoney] [smallint] NOT NULL,
[FAproCreditMoney] [smallint] NOT NULL,
[FAproCash] [smallint] NOT NULL,
[FAproPay] [smallint] NOT NULL,
[FAproProfit] [smallint] NOT NULL,
[FNotAdd] [bit] NOT NULL,
[FNotModi] [bit] NOT NULL,
[FNotDel] [bit] NOT NULL,
[FMGCenterID] [int] NOT NULL,
[FOldDetailID] [int] NOT NULL,
CONSTRAINT [PK_t_MgAcct] PRIMARY KEY CLUSTERED
(
[FMgAcctID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT ((-1)) FOR [FMgAcctID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FTradeID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FStandAcctID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FParentID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FRootID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FSubGroupID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (1) FOR [FCurrencyID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FDetailID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FQtyPrice]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FUnitGroupID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FMeasureUnitID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FBudPrice]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FContact]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FDelete]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FIsCashFlow]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FMgGrpAcctID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FCalc]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FFlexBud]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (1) FOR [FPay]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (1) FOR [FCash]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (1) FOR [FAdjust]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FPriceMode]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FIsGroup]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FIsQuota]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FQuota]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FAproBeginMoney]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FAproEndMoney]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FAproDebitMoney]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FAproCreditMoney]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FAproCash]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FAproPay]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FAproProfit]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FNotAdd]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (1) FOR [FNotModi]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (1) FOR [FNotDel]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FMGCenterID]
GO
ALTER TABLE [dbo].[t_MgAcct] ADD  DEFAULT (0) FOR [FOldDetailID]

GO


第2个SQL语句:


/****** Object:  Table [dbo].[t_MgBill]    Script Date: 10/16/2023 12:45:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t_MgBill](
[FBillID] [int] NOT NULL,
[FBillType] [int] NOT NULL,
[FSerial] nvarchar NOT NULL,
[FMgAcctID] [int] NOT NULL,
[FProjectID] [int] NOT NULL,
[FItemID] [int] NOT NULL,
[FCyID] [int] NOT NULL,
[FExchangeRate] [decimal](28, 10) NOT NULL,
[FDepID] [int] NOT NULL,
[FEmpID] [int] NOT NULL,
[FBillDate] [datetime] NOT NULL,
[FLoanDate] [datetime] NULL,
[FExpectDate] [datetime] NULL,
[FPurpose] nvarchar NULL,
[FBudPrice] [money] NULL,
[FBudNum] [decimal](28, 10) NULL,
[FBudMoney] [money] NULL,
[FAppPrice] [money] NULL,
[FAppNum] [decimal](28, 10) NULL,
[FAppMoney] [money] NULL,
[FConPrice] [money] NULL,
[FConNum] [decimal](28, 10) NULL,
[FConMoney] [money] NULL,
[FFacPrice] [money] NULL,
[FFacNum] [decimal](28, 10) NULL,
[FFacMoney] [money] NULL,
[FDetailID] [int] NOT NULL,
[FDetailID2] [int] NOT NULL,
[FExp] nvarchar NULL,
[FSettleType] nvarchar NOT NULL,
[FAproverLevel] [smallint] NOT NULL,
[FDispose] [bit] NOT NULL,
[FRemainUse] [tinyint] NOT NULL,
[FPreparerID] [smallint] NOT NULL,
[FCheckerID] [smallint] NOT NULL,
[FAuditerID] [smallint] NOT NULL,
[FAproverID] [smallint] NOT NULL,
[FCashierID] [smallint] NOT NULL,
CONSTRAINT [PK_t_MgBill] PRIMARY KEY CLUSTERED
(
[FBillID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MgBill]  WITH CHECK ADD  CONSTRAINT [FK_t_MgBill_FBillType] FOREIGN KEY([FBillType])
REFERENCES [dbo].[t_MgBillType] ([FBillType])
GO
ALTER TABLE [dbo].[t_MgBill] CHECK CONSTRAINT [FK_t_MgBill_FBillType]
GO
ALTER TABLE [dbo].[t_MgBill]  WITH CHECK ADD  CONSTRAINT [FK_t_MgBill_FMGAcctID] FOREIGN KEY([FMgAcctID])
REFERENCES [dbo].[t_MgAcct] ([FMgAcctID])
GO
ALTER TABLE [dbo].[t_MgBill] CHECK CONSTRAINT [FK_t_MgBill_FMGAcctID]
GO
ALTER TABLE [dbo].[t_MgBill]  WITH CHECK ADD  CONSTRAINT [FK_t_MgMultiCheckOption_FBillType] FOREIGN KEY([FBillType])
REFERENCES [dbo].[t_MgBillType] ([FBillType])
GO
ALTER TABLE [dbo].[t_MgBill] CHECK CONSTRAINT [FK_t_MgMultiCheckOption_FBillType]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ((-1)) FOR [FBillID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FProjectID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FItemID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (1) FOR [FCyID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (1) FOR [FExchangeRate]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FDepID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FEmpID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FDetailID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FDetailID2]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ('现金') FOR [FSettleType]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ((-1)) FOR [FAproverLevel]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FDispose]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT (0) FOR [FRemainUse]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ((-1)) FOR [FPreparerID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ((-1)) FOR [FCheckerID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ((-1)) FOR [FAuditerID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ((-1)) FOR [FAproverID]
GO
ALTER TABLE [dbo].[t_MgBill] ADD  DEFAULT ((-1)) FOR [FCashierID]

GO


第3个SQL语句:

/****** Object:  Table [dbo].[t_MgBillType]    Script Date: 10/16/2023 13:14:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t_MgBillType](
[FBillType] [int] NOT NULL,
[FBillName] nvarchar NOT NULL,
[FBillName_CHT] nvarchar NOT NULL,
[FBillName_EN] nvarchar NOT NULL,
[FExp] nvarchar NOT NULL,
[FObjectType] [smallint] NOT NULL,
[FObjectID] [int] NOT NULL,
[FMustInput] [bit] NOT NULL,
[FEnableSuperAprove] [bit] NOT NULL,
CONSTRAINT [PK_t_MgBillType] PRIMARY KEY CLUSTERED
(
[FBillType] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
CONSTRAINT [uk_t_MgBillType_FBillName] UNIQUE NONCLUSTERED
(
[FBillName] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MgBillType] ADD  DEFAULT ((-1)) FOR [FBillType]
GO
ALTER TABLE [dbo].[t_MgBillType] ADD  DEFAULT ('') FOR [FBillName_CHT]
GO
ALTER TABLE [dbo].[t_MgBillType] ADD  DEFAULT ('') FOR [FBillName_EN]
GO
ALTER TABLE [dbo].[t_MgBillType] ADD  DEFAULT ('') FOR [FExp]
GO
ALTER TABLE [dbo].[t_MgBillType] ADD  DEFAULT (0) FOR [FMustInput]
GO
ALTER TABLE [dbo].[t_MgBillType] ADD  DEFAULT (0) FOR [FEnableSuperAprove]

GO


第4个SQL语句:

/****** Object:  Table [dbo].[t_MgBudVchHook]    Script Date: 10/16/2023 13:15:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t_MgBudVchHook](
[FHookID] [int] NOT NULL,
[FVoucherID] [int] NOT NULL,
[FEntryID] [int] NOT NULL,
[FAcctID] [int] NOT NULL,
[FDetailID] [int] NOT NULL,
[FDC] [int] NOT NULL,
[FCyID] [int] NOT NULL,
[FExchangeRate] [decimal](28, 10) NOT NULL,
[FBillID] [int] NOT NULL,
[FLogDate] [datetime] NOT NULL,
[FVchMoney] [money] NOT NULL,
[FPreparerID] [smallint] NOT NULL,
CONSTRAINT [PK_t_MgBudVchHook] PRIMARY KEY CLUSTERED
(
[FHookID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MgBudVchHook]  WITH CHECK ADD  CONSTRAINT [FK_t_MgBudVchHook_FBillID] FOREIGN KEY([FBillID])
REFERENCES [dbo].[t_MgBill] ([FBillID])
GO
ALTER TABLE [dbo].[t_MgBudVchHook] CHECK CONSTRAINT [FK_t_MgBudVchHook_FBillID]
GO
ALTER TABLE [dbo].[t_MgBudVchHook] ADD  DEFAULT ((-1)) FOR [FHookID]
GO
ALTER TABLE [dbo].[t_MgBudVchHook] ADD  DEFAULT (0) FOR [FDetailID]
GO
执行完成上述4个语句后,凭证修改正常。

***本文档到此结束***

赞 6