Для тех у кого были проблемы с удалением заголовка документа, а движения остались.
1. ОБЯЗАТЕЛЬНО сделайте резерв.
2. Зайдите в меню Опции : SQL менеджер и выполните след. код:
SELECT
tm.doc_type_id,
tm.doc_id,
dt.name AS doc_name,
tm.mdate,
tm.tovar_id,
tn.kod,
tn.name AS tovar_name,
dv.nu,
dv.date_dok
FROM
tovar_move tm
LEFT JOIN view_alldocs dv ON (tm.doc_type_id = dv.doc_type AND tm.doc_id = dv.num),
tovar_name tn,
doc_types dt
WHERE
tm.tovar_id = tn.num AND
tm.doc_type_id = dt.num AND
dv.nu IS NULL
Не прерывайте приложение оно не зависает оно работает, бывает и пол часа, а бывает и сутки, если большая база. Обязательно дождитесь результата, не снимайте задачу. Если результат будет пустым т.е. все строки пустые у Вас все нормально и продолжать не надо. Если вывело товары и название документов продолжайте, список сохраните, он вам понадобиться чтобы потом быстрее найти заголовки документов.
3. В меню Опции : SQL менеджер запустите след. код:
Не прерывайте программу, патч может работать долго, обязательно дождитесь.
EXECUTE BLOCK
AS
DECLARE VARIABLE doc_type_id INTEGER;
DECLARE VARIABLE doc_id INTEGER;
DECLARE VARIABLE mdate DATE;
DECLARE VARIABLE from_firma_id INTEGER;
DECLARE VARIABLE from_firma_rah_id INTEGER;
DECLARE VARIABLE to_firma_id INTEGER;
DECLARE VARIABLE to_firma_rah_id INTEGER;
DECLARE VARIABLE from_sklad_id INTEGER;
DECLARE VARIABLE to_sklad_id INTEGER;
DECLARE VARIABLE from_firma VARCHAR(300);
DECLARE VARIABLE to_firma VARCHAR(300);
BEGIN
FOR
SELECT
tm.doc_type_id,
tm.doc_id,
tm.mdate,
tm.from_firma_id,
tm.from_firma_rah_id,
tm.to_firma_id,
tm.to_firma_rah_id,
-1,
-1,
fc.fio AS from_firma,
tc.fio AS to_firma
FROM
tovar_move tm
LEFT JOIN view_alldocs dv ON (((tm.doc_type_id = dv.doc_type) OR (tm.doc_type_id = -10 AND dv.doc_type = 0)) AND tm.doc_id = dv.num)
LEFT JOIN client fc ON (tm.from_firma_id = fc.num)
LEFT JOIN client tc ON (tm.to_firma_id = tc.num),
doc_types dt
WHERE
tm.doc_type_id = dt.num AND
dv.nu IS NULL
GROUP BY
1,2,3,4,5,6,7,8,9,10,11
INTO
:doc_type_id,
:doc_id,
:mdate,
:from_firma_id,
:from_firma_rah_id,
:to_firma_id,
:to_firma_rah_id,
:from_sklad_id,
:to_sklad_id,
:from_firma,
:to_firma
DO
BEGIN
IF (:doc_type_id = -10) THEN
BEGIN
INSERT INTO schet
(num, nu, date_dok, firma_id, afirm_rah_id, client_id, client_rah_id, client, sklad_id, doc_user_id, is_rezerv)
VALUES
(:doc_id,'00000',:mdate,:from_firma_id,:from_firma_rah_id,:to_firma_id,:to_firma_rah_id,:to_firma,:to_sklad_id,1,1);
END
ELSE
IF (:doc_type_id = 1) THEN
BEGIN
INSERT INTO vnakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, client_id, client_rah_id, client, sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:from_firma_id,:from_firma_rah_id,:to_firma_id,:to_firma_rah_id,:to_firma,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 18) THEN
BEGIN
INSERT INTO vzpnakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, client_id, client_rah_id, client, sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:from_firma_id,:from_firma_rah_id,:to_firma_id,:to_firma_rah_id,:to_firma,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 6) THEN
BEGIN
INSERT INTO actvr
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, client_id, client_rah_id, client, sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:from_firma_id,:from_firma_rah_id,:to_firma_id,:to_firma_rah_id,:to_firma,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 11) THEN
BEGIN
INSERT INTO snakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:from_firma_id,:from_firma_rah_id,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 8) THEN
BEGIN
INSERT INTO pnakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, client_id, client_rah_id, client, sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:to_firma_id,:to_firma_rah_id,:from_firma_id,:from_firma_rah_id,:from_firma,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 12) THEN
BEGIN
INSERT INTO vznakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, client_id, client_rah_id, client, sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:to_firma_id,:to_firma_rah_id,:from_firma_id,:from_firma_rah_id,:from_firma,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 9) THEN
BEGIN
INSERT INTO znakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:to_firma_id,:to_firma_rah_id,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 10) THEN
BEGIN
INSERT INTO mnakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, sklad_id,to_sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:from_firma_id,:from_firma_rah_id,:from_sklad_id,:to_sklad_id,1);
END
ELSE
IF (:doc_type_id = 20) THEN
BEGIN
INSERT INTO vyrnakl
(num, nu, date_dok, is_move, firma_id, afirm_rah_id, sklad_id,to_sklad_id, doc_user_id)
VALUES
(:doc_id,'00000',:mdate,1,:from_firma_id,:from_firma_rah_id,:from_sklad_id,:to_sklad_id,1);
END
END
END
6. Перезайдите в программу и найдите документы (список которых высвечивался в п.2). Их будет легко найти т.к. у всех созданных новых документов будет номер 00000 (пять нулей). Можете их просмотреть либо распечатать, суммы по документу будут нулевые т.к. заголовок документа был восстановлен частично. Их не исправить редактированием и сохранением, их надо удалить и набрать повторно. Если просто будете удалять ОБЯЗАТЕЛЬНО зайдите в меню Опции : Параметры : Система и нажмите "Пересчет остатков товаров".
7. Если что-то пойдет не так вы всегда можете восстановить базу сделанную в п.1
Все вопросы на поддержку.