Anatol Asked:2020-02-10 13:59:09 +0000 UTC2020-02-10 13:59:09 +0000 UTC 2020-02-10 13:59:09 +0000 UTC 如何以编程方式设置“文档已打开供其他用户编辑”的标志?1C 贸易管理 11.3 772 知道客户订单有这样的flag,但是不知道是怎么实现的。有必要按照供应商的订单实施此类旗帜的软件翘起。提示在什么方向挖掘。 1с 2 个回答 Voted Mikhail Sibirev 2020-02-17T19:30:51Z2020-02-17T19:30:51Z 首先想到的是进行信息登记,在打开订单时,在其中输入一个条目 - 哪个文档被打开以及由谁打开。打开订单时,检查此寄存器中是否存在条目。关闭窗体时,删除相应的记录。唯一的问题是程序不正确终止,并且条目保留在寄存器中。 第二个选项是分析注册日志。 Best Answer Petro Bazeliuk 2020-07-03T02:43:26Z2020-07-03T02:43:26Z 因此,我将从很远的地方开始,问题的作者所描述的称为对象锁和“1C:Enterprise 8”平台。 对象锁旨在防止其他会话或此会话更改特定对象的数据,直到此 1C:Enterprise 语言对象释放锁。无法升级对象锁。 1C:Enterprise 8 系统支持的对象锁类型: » 数据,排除竞争执行的可能性是正确的。简单来说,如果一个用户打开了一个文档表单,那么其他用户更改这个对象就会被锁定,但是服务器会话可以更改这个对象的数据。 乐观锁定假定在更新数据库中的记录期间,我们将是唯一更改它的人。在大多数情况下,情况就是这样(乐观是有道理的)。但在此之前,您需要确保该记录自读取以来没有发生变化。简单来说,当对一个对象进行修改时,需要检查数据库中的DataVersion字段,如果版本不同,就会产生错误。 您可以以编程方式使用Lock(),但此锁只会在服务器调用持续(过程正在运行)时保持,并且只会防止用户会话,但对象可以在并发会话中由服务器代码修改! 为了获得更准确的推荐,我需要有关业务流程的更多信息。
首先想到的是进行信息登记,在打开订单时,在其中输入一个条目 - 哪个文档被打开以及由谁打开。打开订单时,检查此寄存器中是否存在条目。关闭窗体时,删除相应的记录。唯一的问题是程序不正确终止,并且条目保留在寄存器中。
第二个选项是分析注册日志。
因此,我将从很远的地方开始,问题的作者所描述的称为对象锁和“1C:Enterprise 8”平台。
对象锁旨在防止其他会话或此会话更改特定对象的数据,直到此 1C:Enterprise 语言对象释放锁。无法升级对象锁。
1C:Enterprise 8 系统支持的对象锁类型: » 数据,排除竞争执行的可能性是正确的。简单来说,如果一个用户打开了一个文档表单,那么其他用户更改这个对象就会被锁定,但是服务器会话可以更改这个对象的数据。
乐观锁定假定在更新数据库中的记录期间,我们将是唯一更改它的人。在大多数情况下,情况就是这样(乐观是有道理的)。但在此之前,您需要确保该记录自读取以来没有发生变化。简单来说,当对一个对象进行修改时,需要检查数据库中的DataVersion字段,如果版本不同,就会产生错误。
您可以以编程方式使用Lock(),但此锁只会在服务器调用持续(过程正在运行)时保持,并且只会防止用户会话,但对象可以在并发会话中由服务器代码修改!
为了获得更准确的推荐,我需要有关业务流程的更多信息。