Ответить на тему  [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3  След.
Не сходятся остатки 
Автор Сообщение
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Пт, 17 фев 2006, 19:00
Сообщение 
В Движенеие товаров,услуг и денег, действительно данная сумма присутствует два раза. Один раз с нормальным полем - Партнер, другой раз с пустым. Теперь вопрос - как удалить одно вхождение?

[off]Добавлено [Пт, 17 Фев 2006, 18:04]:[/off]

1. мы используем 1 р/с
2. нет

[off]Добавлено [Пт, 17 Фев 2006, 18:10]:[/off]

А что значит в "Оперативном учете"?
Можете разяснить, пожалуйста.


Профиль
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Пт, 17 фев 2006, 19:34
Сообщение 
Цитата:
Один раз с нормальным полем - Партнер, другой раз с пустым

Там где партнер пустой - колонка Документ- заполнена?
Если да и значение то же где и не пустой, то перефиксируйте документ.
Бухгалтерский учет - это работа в режиме "Бухгалтерия", за исключением "Основных средств", если они у Вас есть. Все остальное - это Оперативный учет.
Фиксация идет отдельно в Оперативном учете(напр. в режиме Финансы-Банк) и отдельно в Бухгалтерском учете - Бухгалтерия - Документы для обработки в бухгалтерии


Профиль
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Пн, 20 фев 2006, 18:08
Сообщение 
Значит расфиксировал я этот документ в Финансы->Банк, потом зафиксировал, но ошибка не исчезла.
Обе записи ссылаются на "Приход на расчетный счет №0008".
Может это поможет, но не только эти две записи ссылаются на данный документ, а еще много других.
Что делать?


Профиль
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Вт, 21 фев 2006, 11:01
Сообщение 
Просьба уточнить
- сколько записей в отчете Движение товаров, денег, услуг относяться к документу - Приход на расчетный счет №0008? Во всех ли них партнер - пустой?
- одинаковы ли все другие реквизиты за исключением ошибочного партнера в счетах? Чем достопримечателен данный партнер - может он реализатор, банк, служащий или что-то другое?
- есть ли еще другие документы(платежи), которые несколько раз повторяются в отчете Движение товаров, денег, услуг


Профиль
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Вт, 21 фев 2006, 15:32
Сообщение 
1. 26 записей. Нет, только у одной записи партнер пустой.
2. Партнер в 25 записях одинаковый. просто предприниматель.
3. нет


Профиль
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Вт, 21 фев 2006, 17:19
Сообщение 
Цитата:
1. 26 записей.

Очевидно это все-таки разные платежи - то есть они все должны присутствовать отдельными платежами в режиме Финансы-Банк
Иначе у Вас бы сумма не сходилась на сумму всех этих платежей.
Конечно очень подозрительно - 26 платежей с одинаковым номером :? . Очевидно по какой-то причине сбился автонумератор или кто-то сознательно вручную менял номер.

Проблема очевидно только в 1 записи, где партнер пустой.

[off]Добавлено [Вт, 21 Фев 2006, 16:29]:[/off]

Цитата:
Случались ситуации зависания. но уже давно, больше 2 месяцев не было.

Проблема возникла, очевидно после сбоя, описанного
http://forum.ab.biz.ua/viewtopic.php?p=3109&highlight=#3109
Скорее всего "провисли" проводки по документу, а сам документ был удален, а затем заново набран. Программа должна была откатить удаление документа но по причине данного сбоя не смогла это сделать.
Теперь, очевидно, прийдеться писать утилиту по удалению записи :(


Профиль
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Ср, 22 фев 2006, 15:33
Сообщение 
Vitaliy писал(а):
Цитата:
Проблема возникла, очевидно после сбоя, описанного
http://forum.ab.biz.ua/viewtopic.php?p=3109&highlight=#3109
Скорее всего "провисли" проводки по документу, а сам документ был удален, а затем заново набран. Программа должна была откатить удаление документа но по причине данного сбоя не смогла это сделать.
Теперь, очевидно, прийдеться писать утилиту по удалению записи :(

Да, вероятно эти события связаны между собой. А что мне делать?
:prayer:
Написать такую утилиту я бы смог, если бы знал структуру базы данных. Но, к сожалению, я не знаю.


Профиль
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Ср, 22 фев 2006, 15:56
Сообщение 
Цитата:
Да, вероятно эти события связаны между собой. А что мне делать?

Прямо сейчас Вы можете воспользоваться режимом - Ввод остатков по банку и кассе и доввести разницу днем, в который произошел сбой.
После этого Вы уже сможете проверять остатки в другие дни на их правильность

Цитата:
Написать такую утилиту я бы смог, если бы знал структуру базы данных. Но, к сожалению, я не знаю.

Вопрос пока открыт, необходимо подумать.


Профиль
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Ср, 22 фев 2006, 16:08
Сообщение 
Если утилита, о которой вы говорите все-таки будет где можно будет ее скачать и как узнать есть она уже или нет?

P.S. Спасибо всем, кто помогал разобраться с проблемой. Особенно Vitaliy и Дима.


Профиль
Профи

Зарегистрирован: Чт, 18 мар 2004, 13:09
Сообщения: 341
Написано: Ср, 22 фев 2006, 18:39
Сообщение 
Евгений, структуру базы вы знаете - это ваша база знаний. Для того чтобы удалить повисшие проводки необходимо выполнить один небольшой запрос. Здесь составить его можно в условных обозначениях, а вы подставите в него свои ID понятий и сможете увидеть те записи, которые повисли. И соответственно выполнить на них удаление... возможно тем же запросом или другим. Скорее всего будет одна единственная запись из аккумулятора остатки по банку и её можно удалить руками или другим запросом. Итак SQL рулез :)

Пусть таблицы банковского аккумулятора называются условными именами:
[ОстаткиПоБанку1] - измерения
[ОстаткиПоБанку2] - значения
[ОстаткиПоБанку3] - атрибуты
[ОстаткиПоБанку4] - дополнительная таблица для оптимизации

Пусть таблицы с документами имеют условные имена:
[ПриходНаРасчСчет1] - шапка
[ПриходНаРасчСчет2] - таблица
[ПлатежСРасчСчета1] - шапка
[ПлатежСРасчСчета2] - таблица

Теперь немного описания. Я привёл структуру в которую преобразуется аккумулятор. Это 4 таблицы каждая из которых хранит информацию о движении в этом аккумуляторе. Если в отчете появилася ошибка, то скорее всего в аккумуляторе существует запись которая ссылается на несуществующий документ или несколько документов. Если речь идёт о том что не виден партнёр, то скорее всего тот ID документа который указан в таблице №1 (измерения) указывает на пустоту, а отчет когда выполнил DoGetLinks не смог по данному потерянному документу достать партнера. Следовательно задача сводится к тому чтобы в таблице №1 (измерения аккумулятора ОстаткиПоБанку) необходимо найти такие записи которые ссылаются на несуществующие в таблицах с документами записи.

Например это можно сделать так (я не проверял, это теория):

SELECT [ОстаткиПоБанку1] .* FROM [ОстаткиПоБанку1]
WHERE [ОстаткиПоБанку1].DOCID NOT IN (SELECT RECID FROM [ПриходНаРасчСчет1])

SELECT [ОстаткиПоБанку1] .* FROM [ОстаткиПоБанку1]
WHERE [ОстаткиПоБанку1].DOCID NOT IN (SELECT RECID FROM [ПлатежСРасчСчета1])

В результате одного из запросов мы получим запись в таблице измерений аккумулятора которая будет хранить в себе RECID, по этому RECID можно удалить привязанные записи в 3-х других таблицах. Они ссылаются на неё одним из полей... а может и у них есть DOCID... точно не помню... Короче говоря эта строка должна показать ошибку в таблице измерений. А имея ошибку можно смело чистить. КОнечно предварительно надо сделать резервную копию и на рабочей базе таких экспериментов лучше не делать :). Про это я думаю не надо дополнительно говорить. Удачи. Было бы неплохо получить результат этого моего запроса, конечно преобразованного вами к нормальному виду. На места названий понятий надо подставить реальные ID понятий их можно увидеть в базе знаний на главных вкладках для понятий.


Профиль
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Ср, 22 фев 2006, 18:55
Сообщение 
Цитата:
Если утилита, о которой вы говорите все-таки будет где можно будет ее скачать и как узнать есть она уже или нет?

Готовой нет :(.


Профиль
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Чт, 23 фев 2006, 12:42
Сообщение 
AB-Dnepr,
Это кое что обьясняет, но не до конца. Как к примеру узнать [ОстаткиПоБанку1]? В базе данных просто куча таблиц, и все они называются ACCUM_xxxxxxxxx - это, я так понимаю таблицы аккумуляторов. Номер нужной таблицы, я так понимаю, написан в базе данных при открытии данного понятия. Если да, тогда все ясно.
P.S. Спасибо, большое.


Профиль
Профи

Зарегистрирован: Чт, 18 мар 2004, 13:09
Сообщения: 341
Написано: Чт, 23 фев 2006, 17:13
Сообщение 
Да :)


Профиль
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Чт, 23 фев 2006, 19:56
Сообщение 
Цитата:
Пусть таблицы банковского аккумулятора называются условными именами:
[ОстаткиПоБанку1] - измерения
[ОстаткиПоБанку2] - значения
[ОстаткиПоБанку3] - атрибуты
[ОстаткиПоБанку4] - дополнительная таблица для оптимизации

Немного неверно.
[ОстаткиПоБанку1] - измерения
[ОстаткиПоБанку2] - месячные остатки
[ОстаткиПоБанку3] - движения
[ОстаткиПоБанку4] - дополнительная таблица для оптимизации

Надо учитывать, что скорее всего, надо будет изменить не только движения(удалить запись), но и откорретировать на сумму движения месячные остатки(записи с датами после даты ошибочного движения)


Профиль
Гуру
Аватара пользователя

Зарегистрирован: Ср, 18 авг 2004, 18:54
Сообщения: 1701
Откуда: Тячівський р-н, Сонячне Закарпаттячко
Написано: Чт, 23 фев 2006, 21:35
Сообщение 
Когда-то видел в 3,0 прикольную обработку для этих целей
Она так и называлась - востановление регистров.
Суть
1. Все документы розфиксируються
2. акумуляторы обнуляються
3. все документы фиксируються

Таким образом востанавливались обьекты аналогичные акумуляторам в Офис3.0
Такую же обработку видел в какой-то из конфигураций для четверки.
Правда для акумулятора товары на складах.

[off]Добавлено [Чт, 23 Фев 2006, 20:45]:[/off]

Даже нашел ее случайно
Обработки-Утилиты-Диалог Утилиты
Особенно интересно смотреть в сторону кнопки "накладные прихода"

_________________
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте" (c) ...
Этот пост выражает мнение партнера АБ-Системы, и является совокупностью идей, мыслей, предложений пользователей АБ-Офиса.


Профиль WWW
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Чт, 23 фев 2006, 22:32
Сообщение 
Цитата:
Суть
1. Все документы розфиксируються
2. акумуляторы обнуляються
3. все документы фиксируються

К сожалению в АБ Офис 4.0. для обнуления аккумуляторов есть только
RemoveDoc, но он требует документ(которого в данной ситуации очевидно нет).
Как альтернативный вариант реализации утилиты.
- расфиксировать документы(в автоматическом режиме)
- почистить аккумуляторы(только ни в коем случае не чистить аккумулятор Партии товаров)
- зафиксировать документы(в автоматическом режиме)
Да и еще проблема с красными галочками в бухгалтерии в результате данной операции :(
P.S. Данная ситуация должна быть достаточно редка. Возник сбой при удалении(фиксации/расфиксации) и кроме того не смог произвестись откат стандартными средствами ядра АБ Офис 4.0.


Профиль
Гуру
Аватара пользователя

Зарегистрирован: Ср, 18 авг 2004, 18:54
Сообщения: 1701
Откуда: Тячівський р-н, Сонячне Закарпаттячко
Написано: Пт, 24 фев 2006, 19:56
Сообщение 
Исполни скрипт
Код:
drop table #tmp
SELECT /*a.[RECID],*/ v.CODE, t.[date], t.doctype, t.docid, t.f5,
     (d1.f3)as D1Delta, (d2.f4-t.f5)as D2Delta,
     (d3.f4-t.f5)as D3Delta, (d4.f4-t.f5)as D4Delta,
     (d5.f2-t.f5)as D5Delta

into #tmp
FROM
Accum_G006278EA48955040 a
left join
Dictionaries_F5785D3FD9D7E140 v
on
v.RECID=a.F1_MID
left join
Accum_T006278EA48955040 T
on
A.RECID=T.LinkID

left join documents_DOCH000CC9FC82504B40 d1 --РасходИзКассы
on
(t.doctype=d1.rectype)and(t.docid=d1.recid)

left join documents_DOCH00384815BCB14B40 d2 --ПриходВКассу
on
(t.doctype=d2.rectype)and(t.docid=d2.recid)

left join documents_DOCT00B3A69556376240  d3--ВводОстатковПоБанкуИКассе
on
(t.doctype=d3.rectype)and(t.docid=d3.linkid)and (d3.f1=1)
left join documents_DOCH00CC20CD0CA05E40  d4--ТрансферСРасчСчета
on
(t.doctype=d4.rectype)and(t.docid=d4.recid)
left join documents_DOCH0096199C0ABC5D40  d5--ТрансферНаРасчСчет
on
(t.doctype=d5.rectype)and(t.docid=d5.recid)

select * from #tmp
where
(d1delta is null)
and
(d2delta is null)
and
(d3delta is null)
and
(d4delta is null)
and
(d5delta is null)

Результат в студию
Это будет документ который есть в акамуляторе но отсутсвует среди кассовых документов.

_________________
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте" (c) ...
Этот пост выражает мнение партнера АБ-Системы, и является совокупностью идей, мыслей, предложений пользователей АБ-Офиса.


Профиль WWW
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Пн, 27 фев 2006, 16:25
Сообщение 
Server: Msg 3701, Level 11, State 5, Line 1
Cannot drop the table '#tmp', because it does not exist in the system catalog.

(2447 row(s) affected)


(0 row(s) affected)

Дополнительно определить таблицу #tmp или как?


Профиль
Профи

Зарегистрирован: Чт, 18 мар 2004, 13:09
Сообщения: 341
Написано: Пн, 27 фев 2006, 18:57
Сообщение 
SELECT /*a.[RECID],*/ v.CODE, t.[date], t.doctype, t.docid, t.f5,
(d1.f3)as D1Delta, (d2.f4-t.f5)as D2Delta,
(d3.f4-t.f5)as D3Delta, (d4.f4-t.f5)as D4Delta,
(d5.f2-t.f5)as D5Delta

into #tmp

должен был её создать. Вероятнее всего активная база стояла не та что надо. Проверь какая база в момент выполнения скрипта была активной. Выпадающий список сверху над скриптом в Query Analizer.


Профиль
Гуру
Аватара пользователя

Зарегистрирован: Ср, 18 авг 2004, 18:54
Сообщения: 1701
Откуда: Тячівський р-н, Сонячне Закарпаттячко
Написано: Пн, 27 фев 2006, 23:48
Сообщение 
Cannot drop the table '#tmp', - выводит при первом запуске, в следствии отсутсвии таблицы. не есть критично.
2447 row(s) affected - 2447 документов по кассе обратотано
0 row(s) affected - все документы присутствующие в акумуляторе существуют в базе.
Все доки розфиксировать, очистить акумуляторы и зафиксировать доки, это должно исправить эту ошибку.

_________________
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте" (c) ...
Этот пост выражает мнение партнера АБ-Системы, и является совокупностью идей, мыслей, предложений пользователей АБ-Офиса.


Профиль WWW
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Вт, 28 фев 2006, 0:18
Сообщение 
Цитата:
Все доки розфиксировать, очистить акумуляторы и зафиксировать доки, это должно исправить эту ошибку.

В скрипте пропущены документы
- Приход на расчетный счет
- Платеж с расчетного счета(а именно в нем ошибка)


Профиль
Гуру
Аватара пользователя

Зарегистрирован: Ср, 18 авг 2004, 18:54
Сообщения: 1701
Откуда: Тячівський р-н, Сонячне Закарпаттячко
Написано: Вт, 28 фев 2006, 0:35
Сообщение 
Vitaliy, не пропущены. Этот скрипт для "Остатков по кассе". :( Не заметил что ошибка в банковском документе.
Для остатков по банку будет другой скрипт.

_________________
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте" (c) ...
Этот пост выражает мнение партнера АБ-Системы, и является совокупностью идей, мыслей, предложений пользователей АБ-Офиса.


Профиль WWW
Гуру

Зарегистрирован: Чт, 18 мар 2004, 11:49
Сообщения: 1148
Откуда: Львов
Написано: Вт, 28 фев 2006, 10:15
Сообщение 
Цитата:
Vitaliy, не пропущены.

Угу, невнимательно прочитал :(


Профиль
Гуру
Аватара пользователя

Зарегистрирован: Ср, 18 авг 2004, 18:54
Сообщения: 1701
Откуда: Тячівський р-н, Сонячне Закарпаттячко
Написано: Вт, 28 фев 2006, 11:01
Сообщение 
Ну вопрос же был в начала что
Не сходятся остатки по банку/кассе
Поэтому надо было оба акумулятора проверить.
А так же добавить элемент в меню - "удалить не существующие документы", так же как и в журналах.
Скрипт для остатков по банку
Код:
drop table #tmp
SELECT  s.name ,v.CODE, t.[date], t.doctype, t.docid, t.f6,
     (d1.f4-t.f6)as D1Delta, (d2.f2-t.f6)as D2Delta,
     (d3.f4-t.f6)as D3Delta, (d4.f4-t.f6)as D4Delta,
     (d5.f2-t.f6)as D5Delta

into #tmp
FROM
Accum_G0072152B13855040 a
left join
Dictionaries_F5785D3FD9D7E140 v
on
v.RECID=a.F5_MID
left join
Dictionaries_7472FF194DD7E140 s
on
s.RECID=a.F1_MID

left join
Accum_T0072152B13855040 T
on
A.RECID=T.LinkID

left join documents_DOCH009CC2159FA24B40 d1 --РасходСРасчСчета
on
(t.doctype=d1.rectype)and(t.docid=d1.recid)

left join documents_DOCH0010DC91EAA44A40 d2 --ПриходНаРасчСчет
on
(t.doctype=d2.rectype)and(t.docid=d2.recid)

left join documents_DOCT00B3A69556376240  d3--ВводОстатковПоБанкуИКассе
on
(t.doctype=d3.rectype)and(t.docid=d3.linkid)and (d3.f1=0)
left join documents_DOCH00CC20CD0CA05E40  d4--ТрансферСРасчСчета
on
(t.doctype=d4.rectype)and(t.docid=d4.recid)
left join documents_DOCH0096199C0ABC5D40  d5--ТрансферНаРасчСчет
on
(t.doctype=d5.rectype)and(t.docid=d5.recid)




select * from #tmp
where
(d1delta is null)
and
(d2delta is null)
and
(d3delta is null)
and
(d4delta is null)
and
(d5delta is null)

выводе теже

_________________
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте" (c) ...
Этот пост выражает мнение партнера АБ-Системы, и является совокупностью идей, мыслей, предложений пользователей АБ-Офиса.


Профиль WWW
Бывалый

Зарегистрирован: Вт, 13 сен 2005, 15:01
Сообщения: 113
Написано: Вт, 28 фев 2006, 17:31
Сообщение 
AB-Dnepr писал(а):
SELECT /*a.[RECID],*/ v.CODE, t.[date], t.doctype, t.docid, t.f5,
(d1.f3)as D1Delta, (d2.f4-t.f5)as D2Delta,
(d3.f4-t.f5)as D3Delta, (d4.f4-t.f5)as D4Delta,
(d5.f2-t.f5)as D5Delta

into #tmp

должен был её создать. Вероятнее всего активная база стояла не та что надо. Проверь какая база в момент выполнения скрипта была активной. Выпадающий список сверху над скриптом в Query Analizer.

Там была выбрана нужная база.

[off]Добавлено [Вт, 28 Фев 2006, 16:35]:[/off]

Дима,
Вот результат второго скрипта - выдает именно тот документ, что глючит:

Server: Msg 3701, Level 11, State 5, Line 1
Cannot drop the table '#tmp', because it does not exist in the system catalog.

(3428 row(s) affected)


(1 row(s) affected)

А вот и сам документ:

260041934 ГРН 2006-01-19 18:00:47.000 0010DC91EAA44A40 60BB2E5F7753A140 544.82 NULL NULL NULL NULL NULL


Профиль
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware.
Русская поддержка phpBB