При пересчете итогов (по просьбе бухгалтерии) почему то поменялась точка актуальности на дату пересчета и поменялись остатки товаров. После переноса точки на нужную дату ничего не изменилось. Копия есть, но за 1 апреля, они кучу документов навводили. Можно ли каким то образом из копии восстановить остатки по товарам и регистрам?
По теме из базы знаний
- Проведение документов, восстановление последовательностей, установка дат последовательностей, установка дат расчета итогов и пересчет итогов (1.7.3.1) (НЕ МОНОПОЛЬНО)
- Пересчет итогов
- Пересчет итогов автоматический (по расписанию)
- Удаление записей регистров и пересчет итогов в условиях нехватки места на диске
- Нестандартное решение пересчета итогов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ссылку не нашел, вот код:
USE Base_1c
Go
CRE ATE TABLE ##ID
(IDDOC char(9) primary key clustered)
Go
INS ERT INTO ##ID
SEL ECT DISTINCT IDDOC
FR OM _1SJOURN
WHERE (DATE_TIME_IDDOC < '20130101')
Go
BEGIN TRANSACTION
DECLARE Mycur cursor for
SEL ECT sysobjects.name,syscolumns.name
FR OM syscolumns INNER JOIN
sysobjects ON syscolumns.id = sysobjects.id
WH ERE (syscolumns.name = N'iddoc') OR
(syscolumns.name = N'docid')
OPEN MyCur
DECLARE @TableName varchar(20)
DECLARE @ColName varchar(20)
FETCH NEXT FROM MyCur INTO @TableName, @ColName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC ('Delete from '+@TableName+' with (tablock) wh ere '+@ColName+' IN (Sele ct IDDOC FR OM ##ID)')
FETCH NEXT FR OM MyCur INTO @TableName, @ColName
END
CLOSE MyCur
DEALLOCATE MyCur
COMMIT TRANSACTION
DR OP TABLE ##ID
USE Base_1c
Go
CRE ATE TABLE ##ID
(IDDOC char(9) primary key clustered)
Go
INS ERT INTO ##ID
SEL ECT DISTINCT IDDOC
FR OM _1SJOURN
WHERE (DATE_TIME_IDDOC < '20130101')
Go
BEGIN TRANSACTION
DECLARE Mycur cursor for
SEL ECT sysobjects.name,syscolumns.name
FR OM syscolumns INNER JOIN
sysobjects ON syscolumns.id = sysobjects.id
WH ERE (syscolumns.name = N'iddoc') OR
(syscolumns.name = N'docid')
OPEN MyCur
DECLARE @TableName varchar(20)
DECLARE @ColName varchar(20)
FETCH NEXT FROM MyCur INTO @TableName, @ColName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC ('Delete from '+@TableName+' with (tablock) wh ere '+@ColName+' IN (Sele ct IDDOC FR OM ##ID)')
FETCH NEXT FR OM MyCur INTO @TableName, @ColName
END
CLOSE MyCur
DEALLOCATE MyCur
COMMIT TRANSACTION
DR OP TABLE ##ID
"Ничего не получилось..." - комп молча обиделся? Или все-таки что-то сообщил?
P.S. ИМХО, правильный путь - выгрузка базы в DBF, ее лечение (возможно, даже с правкой DBF сторонними утилитами) и загрузка назад в SQL. А если что-то делать тупо, то и результат будет тупым.
P.S. ИМХО, правильный путь - выгрузка базы в DBF, ее лечение (возможно, даже с правкой DBF сторонними утилитами) и загрузка назад в SQL. А если что-то делать тупо, то и результат будет тупым.
(19) Ёпрст, Оборотно-сальдовая в порядке. Пересчет был запущен потому что оборотка кривая была, после пересчета все ок, но полетели остатки по всем товарам, что-то задвоилось, что-то пропало. Самое интересное что когда смотришь движение товара, то по приходу и расходу все совпадает а в итоге вылезают какие то минусы.
И ?
Этот кусок всего лишь удаляет все записи во всех табличках, где есть ссылка на документы с датой меньше чем 1 января 13 года.
Это никак не свёртка.
И вообще, так делать не верно.. летит вся периодика установленная документами, особенно по ОС, например.
Этот кусок всего лишь удаляет все записи во всех табличках, где есть ссылка на документы с датой меньше чем 1 января 13 года.
Это никак не свёртка.
И вообще, так делать не верно.. летит вся периодика установленная документами, особенно по ОС, например.
Там еще продолжение
use F
DELETE FR OM RA15730
WHERE IDDOC NOT IN (SEL ECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15743
WHERE IDDOC NOT IN (SEL ECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15787
WH ERE IDDOC NOT IN (SEL ECT IDDOC FROM _1sjourn (nolock))
DELETE FROM RA15795
WH ERE IDDOC NOT IN (SEL ECT IDDOC FROM _1sjourn (nolock))
DELETE FROM RA15809
WH ERE IDDOC NOT IN (SEL ECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15823
WH ERE IDDOC NOT IN (SELECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15868
WH ERE IDDOC NOT IN (SELECT IDDOC FR OM _1sjourn (nolock))
use F
DELETE FR OM RA15730
WHERE IDDOC NOT IN (SEL ECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15743
WHERE IDDOC NOT IN (SEL ECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15787
WH ERE IDDOC NOT IN (SEL ECT IDDOC FROM _1sjourn (nolock))
DELETE FROM RA15795
WH ERE IDDOC NOT IN (SEL ECT IDDOC FROM _1sjourn (nolock))
DELETE FROM RA15809
WH ERE IDDOC NOT IN (SEL ECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15823
WH ERE IDDOC NOT IN (SELECT IDDOC FR OM _1sjourn (nolock))
DELETE FR OM RA15868
WH ERE IDDOC NOT IN (SELECT IDDOC FR OM _1sjourn (nolock))
+ И один хрен не видно, как ВЫ переносили останки по счетам/регистрам со старого периода (движения и документы по которым вы удалили) в новый период.
И что еще не верно, в проводках не iddoc, а DOCID .. т.е проводки выше кодом вы не прибили..
И что еще не верно, в проводках не iddoc, а DOCID .. т.е проводки выше кодом вы не прибили..
Тогда всё равно не ясно, чтов ваш отчет по товарам смотрит - оборотку по 41 или свои самописные регистры.
Если второе - разбирайтесь тогда с регистрами оперативного учета, а не с проводками. Там уже нужно знать, где ТА, как пересчитывались итоги и тд и т.п.
ЗЫ: Для скуля, их можно пересчитать обработкой, не монопольно, если что.
Если второе - разбирайтесь тогда с регистрами оперативного учета, а не с проводками. Там уже нужно знать, где ТА, как пересчитывались итоги и тд и т.п.
ЗЫ: Для скуля, их можно пересчитать обработкой, не монопольно, если что.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот