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.[Примен.-из Операции Но.]
Старый 08.02.2005, 15:00   #2  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Что-то странное вы задумали. И в чем же оказались неверными отмены Счетов Продажи?
Поля Inventory (Остаток) и Net Change (Оборот) отличаются только наличием у последнего Дата Фильтра, т.е. возможна фильтрация по датам.
Старый 08.02.2005, 15:47   #3  
alextus_imported is offline
alextus_imported
Участник
 
40 / 10 (1) +
Регистрация: 17.09.2004
Ошибка в отмене была связана с сериями номеров, точнее отменялись только первая записть из счета и из накладной. Остальные записи оставались в базе, к ним вроде как что-то привязывалось из других операций. Теперь "размотать" все трудно.
Старый 08.02.2005, 16:00   #4  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
А чем отменяли? Кредит-Нотой?
Старый 09.02.2005, 10:22   #5  
alextus_imported is offline
alextus_imported
Участник
 
40 / 10 (1) +
Регистрация: 17.09.2004
Нет, спецально для этого написанным внедренцами заданием
Старый 09.02.2005, 10:35   #6  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Этого я и боялся...
Ну чтож, тогда ручками перебираете 32 таблицу по проблемным товарам, начиная с отменяющих записей, проверяете флажок Open, поле Remaining Quantity и соответственно примененные входящие/исходящие операции и выявляете несоответствие кол-ва.
Но у меня есть подозрение, что просто ваша "отмена" прошла "неправильной датой", а т.к. вы смотрите еще и поле Оборот, то это может влиять.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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