gifts2017

Сравнение на изменение текущей и архивной конф на предмет изменения данных

Опубликовал Виричев Владимир (vva) в раздел Обработки - Обработка документов

В течении 2-х лет происходят случаи, когда доки правятся и перепроводятся задним числом.
Отыскать, почему "поплыли" счета приходится программерам т.е. нам.
Какие счета изменились можно выяснить и по ОСВ, но вот на какие конкретно суммы и из каких доков?
Вот и дошел до того, что попробовал написать прогу, которая бы сравнивала архивную копию базы с текущей.
Я нахожусь в текущей, но сравнение начинается с той в которой больше доков. По моему разумению так более
вероятно, что сравню все доки.
Вызываю и сравниваю через оле все операции проведенных доков с попыткой их сравнения на идентичность

Нужно открыть архив, вероятность которого на изменения близка к 100 процентам (т.е. там еще не правили задним числом). Восстановить его в другую базу, индексировать и открыть к нему путь (база должна быть рабочей). Запускаем обработку из текущей конфы (можно не монопольно) в появляющемся окне 1С выбираем базу-архив и....
Сформировать! Откликнитесь те, кто может открыть через ОЛЕ расшифровку дока в сравниваемой базе (если это возможно) на nior@mail.ru Буду очень признателен! Меня эта обработка очень выручает. Ищу через проводки операций и все изменения фиксирую. Может быть полезной, когда смены присваивают выработку себе (с других), бухи правят доки и т д. С уважением VVA!

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
СравнениеДанных.ert
.1212830250 208,00Kb
22.10.14
159
.1212830250 208,00Kb 159 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. dolly_ev (Dolly_EV) 11.06.08 10:04
Плусик поставил...ОДНАКО совет:
Коли мы сравниваем две идентичные базы (Текущую и ее же архив)
то поиск ДокЗдесь в ОЛЕ базе лучше осуществлять след. образом:
Код
СтрДокЗдесь = ЗначениеВСтрокуВнутр(ДокЗдесь);
ОлеДок = База.ЗначениеИзСтрокиВнутр(СтрДокЗдесь)
Если ОлеДок.Выбран() = 1 Тогда
.........вот здесь сравнение Проведен/НеПроведен и всех реквизитов, операций и т.д.
Иначе
     Сообщить("в ОЛЕ базе НЕ НАЙДЕН ДОК: " +Строка(ДокЗдесь)+" УЖОС!","!");
КонецЕсли;
Показать полностью


Если ОлеДок.Выбран() = 1 Тогда лучше наверно посадить в Попытка/Исключение, а то в ОлеДок может всякое вернуться))
2. Adapter (adapter) 11.06.08 10:39
в моей программе хранятся архивы за несколько лет и есть возможность сравнения рабочей базы с любым из них. Причем в отчете видны все изменения - документы, справочники и т.п.
http://infostart.ru/profile/19126/projects/1508?ref=19126
3. Аркадий Кучер (Abadonna) 11.06.08 14:44
Братья программисты! Ну давайте хоть немного делать синтаксический контроль не только текстов программ!
"В теченИИ" бывает только реки, а когда речь идет об интервале - "в течениЕ". Блин и еще слово на "Б".
P.S. Это не в обиду, информация к размышлению...
4. Igоr Sаulеviсh (gutentag) 11.06.08 15:47
...я не программер, поэтому делаю по-другому: делаю соответсвующие/необходимые карточки счета(субконто) из 'текущей' ' и 'архивной' базы и открываю в '1С:Предприятие - Работа с файлами' через меню Файл -> Сравнить файлы.
5. Павел Шунайлов (pshunailov) 07.08.08 10:00
Ни хрена не работает эта обработка, показывает какую то чушь...
6. Ludena (ludena) 13.09.08 23:14
7. Oskar (oskar) 06.11.08 12:19
8. nickVZ (nickVZ) 28.04.10 12:29
Реквизиты документов (и справочников, естественно) можно достать через Метаданные. Впрочем, если сравнивается бэкап, лазать в Метаданные через ОЛЕ совсем не надо: список реквизитов (их Наименование и Тип) можно и по клиентской базе узнать. В ОЛЕ-сервере они должны быть такими же. Обычно ;)
И кстати, ID объекта (полученного методом ЗначениеВСтрокуВнутр() содержит и тип объекта, и его вид (последнее для документов и справочников).
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа