Navision 2.60
После неверной отмены 2-х счетов продажи. Неверно отображаются значение в полях "Оборот" и "СкладОстаток" таблицы "Товар". По утверждениям кладовщиков данные поля должны быть равны. Различие есть только у товаров входивших в отмененные документы. Повторные учет и отмена документов дела не решает. Не привязаных операций вроде как нет:
Возможно ли как то запросами проверить правильно ли значение поля "СкладОстаток" и "Кол-во" например, на основе учтенных операций или "Товар Книги Применения"
Вот, что я проверял:
--1) наличие ссылок на несуществующие операции
declare @no int, @ileno int, @iato int, @iafrom int, @qty decimal(38, 20),
@post_date datetime, @message varchar(140)
declare ia cursor for
select [Операция Но.], [Товар Книга Операция Но.],
[Примен.-к Операции Но.], [Примен.-из Операции Но.],
[Кол-во], [Дата Учета]
from [FIRMA$Товар Книга Применения]
where [Примен.-из Операции Но.] <> 0
and [Кол-во] < 0
and [Дата Учета] >= '20041001'
open ia
fetch next from ia into @no, @ileno, @iato, @iafrom, @qty, @post_date
while @@fetch_status = 0
begin
if exists (select 1
from [FIRMA$Товар Книга Операций]
where [Операция Но.] = @ileno) and
exists (select 1
from [FIRMA$Товар Книга Операций]
where [Операция Но.] = @iato) and
exists (select 1
from [FIRMA$Товар Книга Операций]
where [Операция Но.] = @iafrom)
begin
if @iato = @iafrom
begin
select @message =
cast(@no as char(10)) + ' ' + cast(@ileno as char(10)) + ' ' +
cast(@iato as char(10)) + ' ' + cast(@iafrom as char(10)) + ' ' +
/*cast(round(@qty, 1) as varchar(20) ) + */' ' + convert(char(10), @post_date,4)
print @message
end
end
else
begin
select @message =
cast(@no as char(10)) + ' ' + cast(@ileno as char(10)) + ' ' +
cast(@iato as char(10)) + ' ' + cast(@iafrom as char(10)) + ' ' +
/*cast(round(@qty, 1) as varchar(20) ) + */' ' + convert(char(10), @post_date,4)
print @message
end
fetch next from ia into @no, @ileno, @iato, @iafrom, @qty, @post_date
end
close ia
deallocate ia
-- 2) по "Товар Книге Применения" соответствие полей
select a.*,a.[Кол-во] - b.iapQty diff,b.* from
(
select [Операция Но.], [Документ Но.], [Дата Учета], [Товар Но.],[Кол-во], [Остаток Кол-во]
from [FIRMA$Товар Книга Операций]
where Положительна = 0
and [Дата Учета] >= '20050101'
and [Кол-во] <> 0
and [Товар Но.] = 'П-М-000501') a,
(
select [Примен.-из Операции Но.], sum([Кол-во]) iapQty
from [FIRMA$Товар Книга Применения]
--where [Дата Учета] >= '20050101'
group by [Примен.-из Операции Но.]
having sum([Кол-во]) <> 0) b
where a.[Операция Но.] = b.[Примен.-из Операции Но.]
|