|
v7: Удалить движения документов | ☑ | ||
---|---|---|---|---|
0
Pit0n_08
15.02.17
✎
14:27
|
ИБ - переписанная ТиС 7.7 SQL 2000. Предыдущим специалистом была выполнена свертка ИБ - созданы документы по вводу остатков, а предшествующие помечены на удаление. Полагаю, пометки на удаление были поставлены не штатно, а прямым запросом, поскольку у каждого документа присутствуют движения регистров. Документов таких очень много, как следствие ИБ не проходит ТИИ - падает с сообщением "Недостаточно свободной памяти" (на сервере 12 Гб). Успевает сообщить "Документ ... не проводился - некорректная запись о движениях регистра". Как это можно победить?
|
|||
1
МихаилМ
15.02.17
✎
14:47
|
прямыми запросами
|
|||
2
Pit0n_08
15.02.17
✎
14:54
|
(1) догадываюсь, что прямыми, только сам их использую не часто - если есть рыба или ссылка на пример - буду признателен.
|
|||
3
Pit0n_08
15.02.17
✎
15:06
|
ТиИ проводить надо край, поскольку есть и другие ошибки.
|
|||
4
Это_mike
15.02.17
✎
15:13
|
а зачем ТиИ нужно?
|
|||
5
Pit0n_08
15.02.17
✎
15:24
|
при копировании базы (бэкап-рестор на SQL) копия базы не запускается "Нарушена структура таблицы SC496" (справочник "Полномочия пользователей"). После реструктуризаци этот справочник пустой - это не особо печально записей 12, но очищаются и справочник "Типы цен" SC597 вроде. А вот он подвязан в ценах номенклатуры, коих более 250000 наименований...
|
|||
6
Это_mike
15.02.17
✎
15:53
|
(5) ну так причем тут ТиИ? смотри, какая структура должна быть, какая есть, и приводи одно к другому... проще привести струтуру БД к структуре мд.
|
|||
7
Pit0n_08
15.02.17
✎
16:29
|
А ТиИ не приведет структуры БД и md в соответствие? Каким иным способом это сделать корректно?
|
|||
8
Это_mike
15.02.17
✎
16:31
|
(7) тииделает это долго, монопольно и зачастую с потерей данных.
|
|||
9
Pit0n_08
15.02.17
✎
16:39
|
Вот поэтому я хочу сначала удалить движения документов, а потом уже выяснять расхождения БД и md.
|
|||
10
Pit0n_08
15.02.17
✎
17:11
|
(8) Так как иначе это сделать,быстро и корректно?
|
|||
11
МихаилМ
15.02.17
✎
17:26
|
+ (10)
уточню: быстро , корректно, дёшево |
|||
12
Bigbro
15.02.17
✎
17:30
|
+11 выберите любые 2
|
|||
13
Builder
15.02.17
✎
17:30
|
(11) Ну и как обычно - выберите 2 варианта!
|
|||
14
Pit0n_08
15.02.17
✎
17:34
|
День св. Валентина похоже удался :-)
(11-13) могу предложить любого из Вас и за дорого руководителю |
|||
15
МихаилМ
15.02.17
✎
17:39
|
(14)
на фриланс ру . Вам за 5-15 тысяч помогут. |
|||
16
trdm
15.02.17
✎
17:45
|
(13) выбрал: корректно, дёшево
Смогешь? ))) |
|||
17
trdm
15.02.17
✎
17:49
|
СЦ = 0;
Для СЦ = 1 По Метаданные.Регистр() Цикл вМетаРег = Метаданные.Регистр(СЦ); вИдент = вМетаРег.Идентификатор; ТекстЗапроса = " |DELETE FROM $Регистр."+вИдент+" |WHERE IDDOC IN ( | SELECT | жОбщий.IDDOC | FROM | _1SJourn as жОбщий (NOLOCK) | WHERE | жОбщий.DATE_TIME_IDDOC <= :ВыбДата |) |"; КонецЦикла; |
|||
18
trdm
15.02.17
✎
17:50
|
А вот как поля в _1SJourn разыменовать, в которых флаги проведения по регистрам я не помню.
|
|||
19
Pit0n_08
15.02.17
✎
17:54
|
(18) это если есть документы без проведения регистрам?
|
|||
20
trdm
15.02.17
✎
17:55
|
Пардон,
жОбщий.DATE_TIME_IDDOC <= :ВыбДата~ Хвостик забыл. А то будет ошибка приведения. |
|||
21
Builder
15.02.17
✎
17:56
|
(16) Легко. Думаю сроки заказчика не устроят :)
|
|||
22
trdm
15.02.17
✎
17:57
|
(19) вРекордСет = СоздатьОбъект("ODBCRecordset");
Состояние("Начинаем Чистку регистров у непроведенных документов."); СЦ = 0; Для СЦ = 1 По Метаданные.Регистр() Цикл вМетаРегистр = Метаданные.Регистр(СЦ); вИдент = вМетаРегистр.Идентификатор; ТекстЗапроса = " |DELETE FROM $Регистр."+вИдент+" |WHERE IDDOC IN ( | |SELECT | рег.IDDOC |FROM | $Регистр."+вИдент+" as рег(NOLOCK) | INNER JOIN _1SJourn as жОбщий (NOLOCK) on рег.IDDOC = жОбщий.IDDOC |WHERE | жОбщий.CLOSED & 1 = 0 |GROUP BY | рег.IDDOC |) |"; вТаблаЗнач = СоздатьОбъект("ТаблицаЗначений"); Попытка вТаблаЗнач = вРекордСет.ВыполнитьИнструкцию(ТекстЗапроса); Исключение глСообщитьОбОшибке(ОписаниеОшибки()+"[201404291347]"); вТаблаЗнач = СоздатьОбъект("ТаблицаЗначений"); КонецПопытки; КонецЦикла; |
|||
23
trdm
15.02.17
✎
17:58
|
(19) <= (22)
|
|||
24
trdm
15.02.17
✎
18:00
|
+ Бекап сделай.
Епрста не хватает, он бы сейчас тут все до копья разрулил. У чела талант. |
|||
25
trdm
15.02.17
✎
18:03
|
Потом сделаешь пересчет регистров
вот этой обработкой: https://yadi.sk/d/XO5v3agy3E7xTP |
|||
26
Pit0n_08
15.02.17
✎
18:07
|
Спасибо, завтра на копии опробую.
|
|||
27
Злопчинский
15.02.17
✎
18:09
|
проще убить таблицы движений и итогов вообще все тупо. потом сделать штатное удаление помеченных. потом сделать перепроведение начиная с документов свертки.
|
|||
28
trdm
15.02.17
✎
18:13
|
(27) Конечно проще. Только неизвестно каков объем созданных после свертки документов и сколько их проведено.
Обычно свертка на НГ делается. а сегодня уже 15 февраля. ХЗ сколько они наработали. |
|||
29
Pit0n_08
15.02.17
✎
18:14
|
(27) прошлая свертка была в 2011, перепроведение на SQL 2000 до второго пришествия будет (native connekt)...
|
|||
30
Pit0n_08
15.02.17
✎
18:19
|
Собственно вся бодяга из-за новой свёртки - надо архивную базу оставить, а копии получаются битыми. Не уверен, что если детачить базу, скопировать, приатачить обратно получится.
|
|||
31
Diman_Kr
15.02.17
✎
18:22
|
А вариант перевести в файловую, убить RG,RA. Перепровести нужное не катит?
|
|||
32
Pit0n_08
15.02.17
✎
18:24
|
(31) Пробовал, выгрузка падает "Ошибка чтения из архива". Ранее выгрузки получались.
|
|||
33
Diman_Kr
15.02.17
✎
18:26
|
Выгрузка или загрузка?
|
|||
34
Pit0n_08
15.02.17
✎
18:35
|
(33) ВЫГРУЗКА
|
|||
35
Злопчинский
15.02.17
✎
18:41
|
(30) ссзб
Надо было за базой следить и одноэсника не жлобить Сейчас единственный вариант это перейти на восьмерку |
|||
36
sidalexsandr
15.02.17
✎
18:46
|
(30)
1) А не проще написать обработку средствами 1с, которая пометит на удаление средствами 1с. Если не получается то сначала снять пометку удаления, а потом заново поставить средствами 1с. 2) Есть ещё конфигурация 1с Конвертация данных 2.0. Так вот можно создать пустую такуюже базу и с помощью 1с конфертация данных перенести только нужное. |
|||
37
sidalexsandr
15.02.17
✎
18:56
|
(0) Ты где?
|
|||
38
Diman_Kr
15.02.17
✎
18:56
|
(34) Проверь место на диске куда сохраняешь, и права туда.
|
|||
39
Pit0n_08
16.02.17
✎
07:23
|
(35) ссзб - ??? У руководителя этой конторы по жизни правило - стоматолог, программист и ... должны быть приходящими. Прошлый "специалист" свернул - теперь выкручиваться приходится...
Вы же взрослый товарищ и понимаете, что фраза "переход на восьмёрку" - это не чудодейственная таблетка... |
|||
40
Pit0n_08
16.02.17
✎
07:27
|
(36) 1) - как вариант, но выполняться будет очень-очень долго.
2) - это на крайний случай. В свернутой базе надо оставить документы за последние несколько месяцев. Не уверен, что перенос документов прокатит. |
|||
41
Это_mike
16.02.17
✎
07:29
|
(40) чем тебя не устроил (22)?
(40).1 с переносом ТА на удалаемый документ - не так уж и долго 2. перенос будет в разы дольше |
|||
42
Pit0n_08
16.02.17
✎
07:30
|
(38) с этим всё в порядке, пробовал сохранять в разные места, как на сервере, так и с рабочей станции.
|
|||
43
Это_mike
16.02.17
✎
07:31
|
(39) "специалист" обновлял подменой МД?
|
|||
44
Pit0n_08
16.02.17
✎
07:32
|
(41) спасибо, (22) пока не проверил.
|
|||
45
DrZombi
гуру
16.02.17
✎
07:32
|
(3) Подумай, как должно быть и сделай :)
Удали движения, пересчитай итоги. |
|||
46
DrZombi
гуру
16.02.17
✎
07:32
|
(43) Жесть, это не спец, а нуб :)
|
|||
47
DrZombi
гуру
16.02.17
✎
07:34
|
(5) Все правильно, в МД файле отсутствуют реквизиты, которые присутствуют в Базе. Либо добавь их в МД, либо удали колонки из БД :)
|
|||
48
DrZombi
гуру
16.02.17
✎
07:34
|
(7) Нет, не может оно такое делать.
И лучше не работать с человеком, кто так вам сделал :) |
|||
49
Это_mike
16.02.17
✎
07:35
|
(46) они друг друга стоят...
|
|||
50
DrZombi
гуру
16.02.17
✎
07:35
|
(9) Вот это зря. За движениями стоят остатки, ТиИ их не может пропустить :)
|
|||
51
DrZombi
гуру
16.02.17
✎
07:36
|
(49) Действительно? Я пока только до 9-го поста дошел :)
|
|||
52
Pit0n_08
16.02.17
✎
07:37
|
(43) не обновлял. Добавил документ, обработкой заполнил документы по свертке регистров и, полагаю, прямым запросом установил значение признака удаленности в журнале. А движения остались.
|
|||
53
Это_mike
16.02.17
✎
07:39
|
(52) а откуда тогда разница между описанием структуры и самой структурой данных? "оно само"? :-)))
|
|||
54
DrZombi
гуру
16.02.17
✎
07:39
|
(30) Вам нужно починить МД файл.
Свернуть БД, т.е. получить остатки. После грохнуть Лишние Движения. Пересчитать Итоги через ТиИ... лишние галочки не ставить, только итоги и служебные данные!!! И не забываем всегда делать бекапы средствами СКУЛЯ, а не через выгрузку от 1С :) |
|||
55
DrZombi
гуру
16.02.17
✎
07:41
|
(52) Разница в структуре возникает просто.
1. Делаешь копию МД и DDS файла 2. Добавляешь мертвый реквизит. 3. Тупо копируешь старые файлы МД и DDS... И вуаля, ты запер конфу от изменения... |
|||
56
DrZombi
гуру
16.02.17
✎
07:42
|
+(55) Решение, грохнуть в БД колонки через менеджер запросов :)
https://msdn.microsoft.com/ru-ru/library/ms175491.aspx |
|||
57
Это_mike
16.02.17
✎
07:43
|
(54) пересчет итогов делается и без ТиИ. и гораздо эффективнее. ссылку вроде давали выше.
|
|||
58
DrZombi
гуру
16.02.17
✎
07:43
|
(57) Да? Не углядел :)
|
|||
59
Pit0n_08
16.02.17
✎
08:01
|
Попробую отделить мух от котлет. Есть две проблемы:
1. Не получается создать копию базы. Выгрузка из 1С падает с "Ошибка чтения из архива" - +см. (38,42). Бекапы средствами СКУЛЯ после загрузки в чистую БД с идентичной конфигурацией выдают нарушения структуры таблиц (обнаружил пока две, может их больше...). После реструктуризации, соответственно, некоторые справочники пустые. 2. Чтобы выяснить, какие есть расхождения между БД и md, запускаю ТиИ. Оно падает на проверке служебных данных "Недосточно свободной памяти" (12 Гб на сервере) после 36 часов выполнения по причине наличия "висящих" движений у документов, некорректно помеченных на удаление - их очень много. |
|||
60
Pit0n_08
16.02.17
✎
08:05
|
+(59) А главная цель - сверка базы. В свернутой ИБ желательно бы оставить документы последних месяцев и остатки в разрезе партий - документов поступления.
|
|||
61
Это_mike
16.02.17
✎
08:10
|
(59) проблема только одна :-)))
|
|||
62
Это_mike
16.02.17
✎
08:12
|
(59) сделай следующее:
1. бэкап Бд. 2. восстановление БД (как вариант - превод в оффлайн - копирование мдф и лдф, перевод в онлайн) 3. копия каталога базы с МД 4. заити в копии каталога в конфигуратор, привязать конфигурацию к БД (ну, или БД к конфигурации, что монопенисуально) |
|||
63
DrZombi
гуру
16.02.17
✎
08:17
|
(59) Чукча не читатель :)
|
|||
64
DrZombi
гуру
16.02.17
✎
08:18
|
(59) >>> Чтобы выяснить, какие есть расхождения между БД и md
"Муха тоже бьется об стекло, когда рядом открыта форточка" :) |
|||
65
DrZombi
гуру
16.02.17
✎
08:19
|
+(59) >>> их очень много.
Их всегда много. При свертки удаляются только Движения. И в БД так то растут катастрофически только Остатки :) |
|||
66
Это_mike
16.02.17
✎
08:21
|
(64)
"муха тоже вертолет без коробки передач" © |
|||
67
Это_mike
16.02.17
✎
08:22
|
кстати, ветка - лишнее подтверждение "закона соответсвия"
|
|||
68
DrZombi
гуру
16.02.17
✎
08:32
|
(67) Как он звучит? :)
|
|||
69
Pit0n_08
16.02.17
✎
16:23
|
Прошу пардону - отвалился по работе. Пока в сухом остатке:
(62) бекап - восстановление в рабочей БД приведет (уверен на 99%) к потере данных в части озвученных справочников. Не уверен, что перевод БД в офлайн позволит вернуть её в онлайн - на "прямых" базах прокатывает, на кривой рабочей проверять страшновато. |
|||
70
Pit0n_08
16.02.17
✎
16:30
|
(65) а здесь движения у помеченных на удаление документов остались. Вот их удалить и надо.
Пока нашел обормотку - за полчаса удалила в копии документы за 5 лет плодотворной работы. Вечером запущу ТиИ. |
|||
71
Pit0n_08
16.02.17
✎
16:37
|
(68) может кто ещё знает - Это_mike сегодня, похоже не ответит...
|
|||
72
Злопчинский
16.02.17
✎
17:13
|
(39) ССЗБ = СамиСебеЗлобныеБуратины
|
|||
73
Pit0n_08
16.02.17
✎
17:52
|
(72):-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |