AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.02.2005, 14:11   #1  
alextus_imported is offline
alextus_imported
Участник
 
40 / 10 (1) +
Регистрация: 17.09.2004
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.[Примен.-из Операции Но.]
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:52.