04.07.2011, 12:28 | #1 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12
раз(а) в 12 сообщениях
Обратиться по нику Цитата выделенного |
Пост дополняется по мере поступления новой информации.
(1-99) Ошибки, влияющие на процесс конвертации. Критические ошибки. Исправлять обязательно. Наличие ошибок этой группы приведёт к аварийному завершению конвертации. Код:
1. ИП с одинаковым номером select distinct IP1.NUM_IP as NUMBER from IP IP1, IP IP2 where (IP1.NUM_IP = IP2.NUM_IP) and (IP1.PK <> IP2.PK) Код:
2. ИД, ссылающиеся на одинаковые ИП. select ip1.num_in as NUMBER from ID IP1 where (select count(1) from ID ID1 where ID1.fk = IP1.fk and ID1.pk <> IP1.pk) > 0 Код:
3. Задублированный USCODE в таблице S_USERS select distinct s1.uscode as NUMBER from s_users s1, s_users s2 where s1.uscode = s2.uscode and s1.pk <> s2.pk Код:
4. В таблицах отключен первичный ключ select IP1.rdb$relation_name as NUMBER from rdb$relation_constraints IP1 join rdb$indices i on i.rdb$index_name = IP1.rdb$index_name where IP1.rdb$constraint_type = 'PRIMARY KEY' and i.rdb$index_inactive <> 0 Код:
update rdb$indices set rdb$indices.rdb$index_inactive=0 where (rdb$indices.rdb$index_name in (select rdb$index_name from rdb$relation_constraints where rdb$constraint_type = 'PRIMARY KEY')) and (rdb$indices.rdb$index_inactive<>0) Код:
5. В таблицах отсутствует первичный ключ select distinct ip1.rdb$relation_name as NUMBER from rdb$relation_fields ip1 left join rdb$relation_constraints rc on ip1.rdb$relation_name = rc.rdb$relation_name and rc.rdb$constraint_type = 'PRIMARY KEY' where rc.rdb$constraint_name is null and ip1.rdb$relation_name not starting with 'RDB$' and ip1.rdb$relation_name not starting with 'R$' and ip1.rdb$relation_name not starting with 'MON$' and ip1.rdb$relation_name not starting with 'RPL$' Решение, для кажлой такой таблицы запрос: Код:
update RDB$RELATION_FIELDS set RDB$NULL_FLAG = 1 where (RDB$FIELD_NAME = 'PK') and (RDB$RELATION_NAME = '{0}') alter table {0} add constraint pk_{0} primary key (pk) на сим покамест закончим. (101-199) Ошибки, влияющие на сходимость статистики. Важные ошибки. Исправлять обязательно. Ошибки этой группы влияют на сходимость статистической отчётности. ИМХО, если они были - то статотчётность и так бы не сошлась - при чем тут конвертация? Код:
101. ИП окончено, но не указан пункт статьи окончания select IP1.NUM_IP as NUMBER from IP IP1 where (IP1.SSD is null)and(IP1.SSV is null)and(IP1.DATE_IP_OUT is not null) and (IP1.NUM_PP is null) Код:
102. Для сумм "Исполнительского сбора" установлен вид назначения платежа в IP_IN_SUM (Ошибка в кировском учете: исп.сбор списывается как основной долг) select distinct IP1.NUM_IP as NUMBER from IP IP1 join IP_IN_SUM on IP1.PK = IP_IN_SUM.FK where IP_IN_SUM.VID_SUM = 'исполнительский сбор' and IP_IN_SUM.FK_VID_PLAT is not null and IP_IN_SUM.ISERROR is null and IP_IN_SUM.RETURNFLAG = 0 Код:
103. У атомарного ИП заполнен номер сводного, но нет ссылки на само сводное ИП select ip1.num_ip as NUMBER from ip ip1 where nullif(trim(ip1.svod_num), '') is not null and ip1.pk_svod is null приходит в голову Код:
update ip set ip.pk_svod=(select pk from ip where num_ip={0}) where svod_num={0} {0}=select ip1.svod_num as NUMBER from ip ip1 where nullif(trim(ip1.svod_num), '') is not null and ip1.pk_svod is null Код:
104. Сумма взыскания в основном экземпляре отлична от суммы солидарного ИП select distinct IP1.NUM_IP as NUMBER from IP IP1 join IP IPS on IP1.PK = IPS.PK_SVOD and IPS.MAIN_D = 1 where coalesce(IP1.SUM_, 0) <> coalesce(IPS.SUM_, 0) исправляем ошибки 207,208,201,202 - спасибо Sirius34 рекомендуемый порядок исправления: деактивация всех триггеров, 207, 208, 201, 202, активация всех триггеров NB! если юзвери сами ручками меняли в карточке ИП ФИО/наименование должника или взыскателя, то есть очень большая вероятность, что эти изменения накроются большим медным тазом, но это единственный, скажем так, "побочный эффект" данных коррекций ПЕРЕД ИСПОЛЬЗОВАНИЕМ ПРОВЕРИТЬ СОСТОЯНИЕ ТАБЛИЦЫ entity!!! Код:
select distinct IP1.num_in, IP1.name_d, e.e_name, e.pk from ID IP1 join counterparts c on ip1.pk = c.fk_id and c.c_kind = 1 left join entity e on c.fk_entity = e.pk where upper(coalesce(IP1.name_d, '')) <> upper(coalesce(e.e_name, '')) Код:
select distinct IP1.num_in, IP1.name_v, e.e_name from ID IP1 join counterparts c on ip1.pk = c.fk_id and c.c_kind = 0 left join entity e on c.fk_entity = e.pk where upper(coalesce(IP1.name_v, '')) <> upper(coalesce(e.e_name, '')) 201. Должник в ИП отличен от должника в ИД Код:
update ip set ip.name_d = (select id.name_d from id where ip.pk_id = id.pk) where ip.name_d <> (select id.name_d from id where ip.pk_id = id.pk) Код:
update ip set ip.name_v = (select id.name_v from id where ip.pk_id = id.pk) where ip.name_v <> (select id.name_v from id where ip.pk_id = id.pk) Код:
CREATE OR ALTER PROCEDURE dolzh as declare variable numin varchar(50); declare variable named varchar(500); declare variable ename varchar(200); begin for select distinct IP1.num_in, IP1.name_d, e.e_name from ID IP1 join counterparts c on ip1.pk = c.fk_id and c.c_kind = 1 left join entity e on c.fk_entity = e.pk where upper(coalesce(IP1.name_d, '')) <> upper(coalesce(e.e_name, '')) into :numin, :named, :ename do begin update id set id.name_d = :ename where id.num_in = :numin; end end; execute procedure dolzh; drop procedure dolzh; commit; Код:
CREATE OR ALTER PROCEDURE vzysk as declare variable numin varchar(50); declare variable namev varchar(500); declare variable ename varchar(200); begin for select distinct IP1.num_in, IP1.name_v, e.e_name from ID IP1 join counterparts c on ip1.pk = c.fk_id and c.c_kind = 0 left join entity e on c.fk_entity = e.pk where upper(coalesce(IP1.name_v, '')) <> upper(coalesce(e.e_name, '')) into :numin, :namev, :ename do begin update id set id.name_v = :ename where id.num_in = :numin; end end; execute procedure vzysk; drop procedure vzysk; commit; Кстати, ПК СП toolbox позволяет проверять базы на ошибки и автоматически править ошибки №4 и 5. З.Ы. Прицепил чекстат от кировцев (в архиве) З.Ы.Ы. Тулбокс более кошерно правит 207-208. Перед исправлением рекомендуется РУЧКАМИ удалить из справочника дубликаты (например ООО "РЖД" и ООО "Российские Железные Дороги" - и т.п.), проверить правильность написания наименований из справочника. Сама система при запуске исправления предложит сопоставить висяки (т.е. производства в которых нулёвые ссылки на контрагентов). После - магия |
В Минюст Цитата Спасибо |
04.07.2011, 15:28 | #2 |
Модератор ФССП
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548
раз(а) в 528 сообщениях
Обратиться по нику Цитата выделенного |
разделил тему в виду важности вопроса...
__________________
Yo Way Yo, Home Va-Ray, Yo Ay-Rah, Jerhume Brunnen-G |
В Минюст Цитата Спасибо |
05.07.2011, 20:03 | #3 |
Пользователь
Регистрация: 05.07.2011
Адрес: Россия / Ульяновская обл. / Новоульяновск
Сообщений: 2
Благодарности: 0
Поблагодарили 0
раз(а) в 0 сообщениях
Обратиться по нику Цитата выделенного |
интересно наименее затратное по времени исправление ошибок, начиная с 200й, связанных с несовпадением наименования должника/взыскателя в исполнительном производстве, исполнительном документе и справочнике контрагентов.
есть мнение, что если принудительно sql-командами заменить данные в колонке e_name таблицы entity на данные из name_d таблицы id, то может быть счастье. правда, не могу сделать рабочий скрипт для этого |
В Минюст Цитата Спасибо |
06.07.2011, 00:42 | #4 |
Пользователь
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76
раз(а) в 76 сообщениях
Обратиться по нику Цитата выделенного |
исправляем ошибки (рекомендуемый порядок исправления: деактивация всех триггеров, 207, 208, 201, 202, активация всех триггеров)
201. Должник в ИП отличен от должника в ИД Код:
update ip set ip.name_d = (select id.name_d from id where ip.pk_id = id.pk) where ip.name_d <> (select id.name_d from id where ip.pk_id = id.pk) Код:
update ip set ip.name_v = (select id.name_v from id where ip.pk_id = id.pk) where ip.name_v <> (select id.name_v from id where ip.pk_id = id.pk) Код:
CREATE OR ALTER PROCEDURE dolzh as declare variable numin varchar(50); declare variable named varchar(500); declare variable ename varchar(200); begin for select distinct IP1.num_in, IP1.name_d, e.e_name from ID IP1 join counterparts c on ip1.pk = c.fk_id and c.c_kind = 1 left join entity e on c.fk_entity = e.pk where upper(coalesce(IP1.name_d, '')) <> upper(coalesce(e.e_name, '')) into :numin, :named, :ename do begin update id set id.name_d = :ename where id.num_in = :numin; end end; execute procedure dolzh; drop procedure dolzh; commit; Код:
CREATE OR ALTER PROCEDURE vzysk as declare variable numin varchar(50); declare variable namev varchar(500); declare variable ename varchar(200); begin for select distinct IP1.num_in, IP1.name_v, e.e_name from ID IP1 join counterparts c on ip1.pk = c.fk_id and c.c_kind = 0 left join entity e on c.fk_entity = e.pk where upper(coalesce(IP1.name_v, '')) <> upper(coalesce(e.e_name, '')) into :numin, :namev, :ename do begin update id set id.name_v = :ename where id.num_in = :numin; end end; execute procedure vzysk; drop procedure vzysk; commit; |
В Минюст Цитата Спасибо |
06.07.2011, 10:26 | #5 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12
раз(а) в 12 сообщениях
Обратиться по нику Цитата выделенного |
|
В Минюст Цитата Спасибо |
06.07.2011, 13:18 | #6 | |
Пользователь
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76
раз(а) в 76 сообщениях
Обратиться по нику Цитата выделенного |
Цитата:
по триггерам общий принцип отключения / включения такой Код:
alter trigger TRIGGER_NAME inactive; ... alter trigger TRIGGER_NAME active; UPD_ID UPD_IP но я не проверял, поэтому результат гарантировать не могу... |
|
В Минюст Цитата Спасибо |
06.07.2011, 15:31 | #7 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12
раз(а) в 12 сообщениях
Обратиться по нику Цитата выделенного |
По триггерам про id IBExpert видит на update для id
UPD_IP UPD_IP_NAMEID UPD_IP_NAMEORGID на update для ip before: UPD_IP_BZ after: UPDATE_IM_IP UPD_DATE_IP_OUT UPD_ID UPD_IP_BOOKSVOD UPD_IP_BOOKZONE UPD_IP_DO_PARENT_LINK UPD_IP_RECALLSUM_SV UPD_IP_REGISTERORDERS для уверенности остановлю их все Sirius34, если не возражаете, прилеплю ваши наработки в головной пост. PS. почему я не удивляюсь, что на update для ip висит триггер upd_id, а для id - upd_ip? |
В Минюст Цитата Спасибо |
06.07.2011, 19:12 | #8 |
Пользователь
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76
раз(а) в 76 сообщениях
Обратиться по нику Цитата выделенного |
|
В Минюст Цитата Спасибо |
07.07.2011, 00:39 | #9 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12
раз(а) в 12 сообщениях
Обратиться по нику Цитата выделенного |
|
В Минюст Цитата Спасибо |
07.07.2011, 02:48 | #10 |
Пользователь
Регистрация: 28.01.2010
Адрес: Россия / Сахалин / Тымовское
Сообщений: 19
Благодарности: 0
Поблагодарили 0
раз(а) в 0 сообщениях
Обратиться по нику Цитата выделенного |
В помощь вам Коллеги утилита от Сахалинской области по исправлению ошибок, незнаю может у кого и есть она...Автор просил не называтся. Нам очень помогла. будут вопросы пишите. В ней вроде все просто и понятно.
|
В Минюст Цитата Спасибо |
|
|
«Закония» в соц. сетях