|
v7: Включить документы в РИБ без перепроведения | ☑ | ||
---|---|---|---|---|
0
sbvoshod
22.08.16
✎
18:18
|
Доброго Всем времени суток.
Есть необходимость включить некоторые уже проведенные документы в обмен, т.е. что бы они повторно пришли в центральную базу, но при этом без их перепроведения. Просто возникла следующая проблема: не знаю что и как случилось, но в центральной базе вылетела реализация! Причем ВСЯ! Видимо где то физически удалили или повредили файл. Т.е. до определенного дня во всей реализации исчезли контрагенты и некоторые другие реквизиты в шапках документов, т.ч. при этом все на месте. И все это с 2012 года по сегодня. После этого числа документы, уже вновь поступающие из переферийных баз нормальные. Перепроводить доки в торговле думаю все знают, что черевато однозначно. да еще и за столько лет. Сами движения документов при этом остались на месте. тестирование и исправление, переиндексацию не предлагать естественно, уже пробовал. |
|||
1
Зая Бусечка
22.08.16
✎
18:24
|
В типовых обычно есть обработка "регистрация изменений"
|
|||
2
sbvoshod
22.08.16
✎
18:42
|
Это в 1С 7.7? база не типовая, полностью написана с нуля. Я знаю, что в 1С 8 есть такая штука, в 7.7 не могу найти такого. Это как программно выглядит непосредственно в коде?
|
|||
3
youalex
22.08.16
✎
18:56
|
(2) Таблица 1SUPDTS вроде, удалял регистрацию однажды по одному доку.
|
|||
4
Зая Бусечка
22.08.16
✎
19:07
|
(2) Пардон, не заметила. Просто в 77 это называется УРБД.
Прямым запросом в Updts пропиши нужные документы. |
|||
5
sbvoshod
22.08.16
✎
19:11
|
Так, народ, ВСЕМ большое спасибо, я нашел метод. Все оказалось банально и просто донельзя. Программная перезапись документа не вызывает его пререпроведения! :)
Если вдруг кому пригодиться, то вот банальный простейший код - делает что нужно. Все доки восстановились с обменом. Процедура Сформировать() ДокРН = Создатьобъект("Документ.РасходнаяНакладная"); начатьтранзакцию(); дата1 = дата(2000,01,01); дата2 = дата(2016,06,30); ДокРН.ВыбратьДокументы(дата1,дата2); счет = 0; Пока ДокРН.ПолучитьДокумент()=1 Цикл счет = счет + 1; ДокРН.Записать(); если счет%10=0 тогда Состояние(Строка(ДокРН.ДатаДок)); конецесли; КонецЦикла; Состояние("Запись транзакции..."); зафиксироватьтранзакцию(); Сигнал(); предупреждение("Обработка завершена! Обработано: "+СокрЛП(Счет)+" документов.",0); КонецПроцедуры Не стал морочиться сильно с работой транзакции, все запихал в одну, этого вполне хватает. Главное - есть необходимый результат. Обработка обрабатывает 10.000 документов буквально за 15 секунд. Но обмен конечно потом очень долго их грузит, но куда ж без этого. ВСЕХ БЛАГОДАРЮ ЗА ПОДСКАЗКИ!!! |
|||
6
Это_mike
22.08.16
✎
20:31
|
Имхается мне, что проблема всего лишь в индексах.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |