Показать сообщение отдельно
Старый 12.02.2016, 09:35   #4  
abark is offline
abark
Участник
 
14 / 10 (1) +
Регистрация: 26.06.2013
Адрес: Волгоград
Спасибо большое, Владимир.
Используется именно сокращенная форма, без with. Никогда раньше с этим проблем не замечал, и не отказывалось работать.

Посмотрел хранимую процедуру внимательно - ничего там дополнительно не вызывается и модификаций нет.
На всякий случай вот ее код:
X++:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--   
-- exec [dbo].[ExtraFieldsForAxapta]
/* exec [dbo].[ExtraFieldsForAxapta] 
		@Division = 'SS', 
		@Store = 'P16_',
		@Supplier = 'RCAuto_',
		@SubSupplier = '07КАУ00000_ряд01-02__',
		@OrderDate = '30.10.2013',
		@DeliveryDate = NULL, --'25.10.2013',
		@ItemID = NULL
*/
ALTER PROCEDURE [dbo].[ExtraFieldsForAxapta]			-- exec [dbo].[ExtraFieldsForAxapta]
(
	@Division		varchar(2) = NULL,
	@Store			varchar(4) = NULL,
	@Supplier		varchar(7) = NULL,
	@SubSupplier	varchar(21) = NULL,
	@OrderDate		datetime = NULL,
	@DeliveryDate	datetime = NULL,
	@ItemID			varchar(6) = NULL
)
AS
BEGIN
	SET NOCOUNT ON ;
	SET ANSI_WARNINGS OFF ;

	select 	sup.SSTOID, sup.SUBSSTOID, sup.NAME as SupplierDescription,
			it.DIV_ID, it.SITE_ID, it.ITEM_ID, it.SKU_NAME, 
			o.STATE,
			CASE WHEN o.STATE in ('PROPOSED','ISSUED') THEN 1 
				 WHEN o.STATE in ('MANUAL_PROPOSED','MANUAL_ISSUED') THEN 0 ELSE 0 END as Autoorder,
			STOCK = ISNULL(it.STOCK, 0),
			it.STOCKDATE,
			EffPresStock = ISNULL(it.USEDPRESENTATIONSTOCK,0),
			it.DYNAMICPRESENTATIONSTOCK,
			it.PREDEFINEDPRESENTATIONSTOCK,
			it.AVERAGESALES,
			it.CLASSMEAN,
			it.CLASSMEAN / 7.0 as ClassMean_perDay,
			o.OPENORDERSQTY,
			o.EFFSTOCK,
			DATEDIFF(day, o.PLAN_ORD_DATE, d.AVAIL_DATE) as DaysOfCoverage_for_Ax,
			DATEDIFF(day, o.PLAN_ORD_DATE, o.NEXT_AVAIL_DATE) as DaysOfCoverage_for_Ax2,
			d.ACCUMDEMAND,
			d.SAFETYAMOUNT,		
			o.PLAN_ORD_DATE, o.PLAN_DELIV_DATE, o.PLAN_AVAIL_DATE,
			SafetyStock_in_days = ISNULL(d.SAFETYAMOUNT,0) / CASE WHEN (it.CLASSMEAN / 7.0) = 0 THEN 1 ELSE (it.CLASSMEAN / 7.0) END,
			l.LASTUSER,
			it.CLASS_INDEX,
			CASE it.CLASS_INDEX WHEN 0 THEN 'USS1' WHEN 1 THEN 'USS2' WHEN 2 THEN 'SS1' WHEN 3 THEN 'SS2' WHEN 4 THEN 'FS1' WHEN 5 THEN 'FS2' ELSE '' END as CLASS_INDEX_DESC
	from dbo.ORDERS o (nolock)
	inner join SUPPLIER sup (nolock) ON sup.SUPPLIER_ID = o.SUPPLIER
	inner join SKU it (nolock) ON it.SKU_ID = o.SKU_ID
	left join DEMAND d (nolock) ON d.SKU_ID = o.SKU_ID and d.IDX = 1
	inner join ORDER_TO_LIST ol (nolock) ON ol.ORDER_ID = o.ORDER_ID
	inner join ORDERLST l (nolock) ON l.ORDLIST_ID = ol.LIST_ID
	where o.STATE != 'CONFIRMED'
	  and (@Supplier is NULL or sup.SSTOID = @Supplier)
	  and (@SubSupplier is NULL or sup.SUBSSTOID = @SubSupplier)
	  and (@Division is NULL or it.DIV_ID = @Division)
	  and (@Store is NULL or it.SITE_ID = @Store)
	  and (@ItemID is NULL or it.ITEM_ID = @ItemID)
	  and (@OrderDate is NULL or o.PLAN_ORD_DATE = @OrderDate)
	  and (@DeliveryDate is NULL or o.PLAN_DELIV_DATE = @DeliveryDate)
	ORDER BY it.DIV_ID, it.SITE_ID, sup.SSTOID, sup.SUBSSTOID, it.ITEM_ID, o.STATE
END

Попробую обернуть в try catch внутри ХП, и использовать полное написание with (nolock)
__________________
Ax 3.0 SP5 FP2 kr2