Получение объекта документ неопределенного вида
Для это используем хранимую функцию
Текст = "create FUNCTION sp_tohex(@val int, @len1 int) RETURNS varchar(9)
|AS
|begin
|declare @v int;
|declare @tval varchar(9);
|set @v = @val;
|set @tval = '';
|
|while (@v > 0)
|begin
| set @tval = SUBSTRING('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',1+@v%36,1)+@tval;
| set @v = @v/36;
|end;
|
|if @tval='' set @tval='0';
|
|while (len(@tval) < @len1)
|begin
|set @tval = ' '+@tval;
|end;
|RETURN(@tval);
|end
|";
RecordSet.Открыть(Текст);
Которая будет преобразовывать вид документа из числа в строку
Пример
Текст = "
|SELECT
| dbo.sp_tohex(Жур.IDDocDef, 4) + Жур.IDDoc [Док $Документ]
|FROM
| _1SJourn Жур
|";
Получение Документа из Регистра
1) Если в регистре стоит галочка "Быстрая обработка движений" или
есть отбор движений по какому-нибудь измерению или реквизиту, то
в таблице движений регистра есть поле "IDDocDef"
Текст = "
|SELECT
| dbo.sp_tohex(Рег.IDDocDef, 4) + Рег.IDDoc [Док $Документ]
|FROM
| $Регистр.Партии Рег
|";
2) В остальных случаях
Текст = "
|SELECT
| dbo.sp_tohex(Жур.IDDocDef, 4) + Рег.IDDoc [Док $Документ]
|FROM
| $Регистр.Партии Рег
|LEFT JOIN _1SJourn Жур ON Жур.IDDoc = Рег.IDDoc
|";