Добавить комментарий

Изображение пользователя ipanshin.

прецендент обхода 1С API

прецендент обхода 1С API
Дописал сегодня решение и хочу сказать, что получил большое удовольствие. Все работает как часы. Могу предложить свои услуги в разработке прямых запросов к 1С версия 77 базе данных. Да в принципе и 8.1. А также решении задач, требующих групповых операций в рамках сиквела.

Считаю, что заявлен прецендент обхода 1С API разработчиков с целью повышения производительности системы 1С.

Единственно, что я поменял в ядре nexus так это задокументировал 'Документ уже открыт!!!'. Понятно, что последствия могут быть, но мешает.

Еще вариант может быть такой добавить вместо задокументированного
if exists(select * from Detailed where u=@@spid and UDN=@UDN )
and not exists (select * from Detailed where u=@@spid and UDN=@UDN and ValueType=8)
begin raiserror('Документ уже открыт!!!', 11, 11) return 1 end

ALTER procedure [dbo].[PreDetailEx]
@UDN integer,
@ViewMode varchar(32), -- название моды
@IsEdit int -- 1 просмотр, 2 - редактирование delete detailed
AS
declare @iRet int

--if exists(select * from Detailed where u=@@spid and UDN=@UDN )
--begin raiserror('Документ уже открыт!!!', 11, 11) return 1 end

exec @iRet=PreDetail @UDN, @ViewMode, @IsEdit
if @iRet <> 0 return @iRet
select * from ProcParam (nolock) where u=@@spid and UDN=@UDN