Страница 1 из 1

Выгрузка документов из Базы.

Добавлено: Пт янв 17, 2014 14:25
Koteneff
Продолжаем ежегодную рубрику "Как это работает".
Каждый новый год новые вопросы.

Сегодня вопрос один "Как выгрузить несколько папок из SQL базы в файл в формате Альта-windows, что бы потом загрузить эти папки в другую базу и не потерять ни одного документа???"

Я опять потерял кучу документов. И удивил декларантов.
Выгружал из текущей базы папки относящиеся к 2012 году в формате Альта-windows. Выделил сразу несколько папок,нажал выгрузить и.... 50 000 документов.
Потом аккуратно через консоль очистки удалял все за период 2012 года, оставишь только документы с признаком "архивный".
потом загружаю все в другую базу.... почему то 40 000 документов.

В итоге в формат Альта-windows при такой массовой выгрузке не выгрузился ни один универсальный документ, ни одного ЭД-контракта... ГТД,ДТС, ктС, ОПИСЬ и еще докменты *.E2l , в которых нет того, что я выгружал.

Рекомендации ?

Re: Выгрузка документов из Базы.

Добавлено: Пт янв 17, 2014 15:15
alta_olg
Загружали через папка целиком?

Надо еще иметь ввиду, что при выгрузке в файл могут потереться файлы имеющие один тип и одинаковые имена, типа Б/Н универсальный.
Но вообще, чудовищно трудоемкий способ выбрали.
На мой взгляд, надо было бы почистить БД и потом ее объединить с другой БД, без каких-либо выгрузок.

Re: Выгрузка документов из Базы.

Добавлено: Пт янв 17, 2014 15:52
alta_olg
При загрузке архивных документов из внутреннего формата признак архивный потеряется.
Кроме того, при выгрузке, таким образом, папки целиком, не все документы привязанные к описи выгрузятся.
Т.е. этот способ годится только чтобы выгрузить несколько ДТ, а не папку или не несколько папок.
Имеет смысл использовать архивную БД, если документы нужны изредка, а если нужны все время, объединить с существующей БД.

Re: Выгрузка документов из Базы.

Добавлено: Пн янв 20, 2014 09:45
Koteneff
alta_olg писал(а):Загружали через папка целиком?

Надо еще иметь ввиду, что при выгрузке в файл могут потереться файлы имеющие один тип и одинаковые имена, типа Б/Н универсальный.
Но вообще, чудовищно трудоемкий способ выбрали.
На мой взгляд, надо было бы почистить БД и потом ее объединить с другой БД, без каких-либо выгрузок.
Можно чуть поподробнее об объединении с другой БД ? не слышал о таком способе и слова.

Re: Выгрузка документов из Базы.

Добавлено: Пн янв 20, 2014 09:55
Ranger_Z
Утилита mergedb, в папке UTILS.

Re: Выгрузка документов из Базы.

Добавлено: Пн янв 20, 2014 16:12
Koteneff
Ranger_Z писал(а):Утилита mergedb, в папке UTILS.
и? ) больше никаких коментариев ? )))

Re: Выгрузка документов из Базы.

Добавлено: Пн янв 20, 2014 18:45
tamkon
Koteneff писал(а):
Ranger_Z писал(а):Утилита mergedb, в папке UTILS.
и? ) больше никаких коментариев ? )))
Задается конечная база (т.е. та, где что-то есть (возможно,т.к. может быть пустой), и КУДА будут копироваться данные,
задается исходная база (из которой будут копироваться данные), и после нажатия кнопки данные (все данные, вкл. все документы и сообщения протокола обмена с таможней),
копируются из второй базы в конечную...

Нюансы:
1. Обе базы должны быть подключены к SQL серверу (соответсвенно, должны иметь разные имена)
2. Копирование происходит из второй базы в КОРНЕВОЙ каталог конечной (т.е. первой) базы, т.е происходит полное смешивание информации. Добавить данные из второй базы в какую-нибудь папку конечной базы этой утилитой не получится...

P.S. Для изучения создайте парочку "левых" баз, и потренируйтесь... И самый главный совет - перед объединением (и вообще, перед любыми операциями с базами) делайте резервные копии

Re: Выгрузка документов из Базы.

Добавлено: Вт янв 21, 2014 09:51
Koteneff
tamkon писал(а): 2. Копирование происходит из второй базы в КОРНЕВОЙ каталог конечной (т.е. первой) базы, т.е происходит полное смешивание информации. Добавить данные из второй базы в какую-нибудь папку конечной базы этой утилитой не получится...
вот! а теперь представть архивную базу в которой по папкам разложено
Архив_2008
Архив_2009
Архив_2010
Архив_2011
Архив_2012

Кстати, а если в Исходной базе папки структуированы
Фирма_1
Фирма_2
Фирма_202
Группа_Фирм_1
----Фирма_1_4
----Фирма_1_100
в корень конечной базы документы в этих же папках перенесутся ? Если струтура папок перенесеться, то не велика беда, можно папки и внутри Конечно базы в самой программе перенести.

Re: Выгрузка документов из Базы.

Добавлено: Вт янв 21, 2014 09:57
tamkon
Koteneff писал(а):
tamkon писал(а): 2. Копирование происходит из второй базы в КОРНЕВОЙ каталог конечной (т.е. первой) базы, т.е происходит полное смешивание информации. Добавить данные из второй базы в какую-нибудь папку конечной базы этой утилитой не получится...
вот! а теперь представть архивную базу в которой по папкам разложено
Архив_2008
Архив_2009
Архив_2010
Архив_2011
Архив_2012

Кстати, а если в Исходной базе папки структуированы
Фирма_1
Фирма_2
Фирма_202
Группа_Фирм_1
----Фирма_1_4
----Фирма_1_100
в корень конечной базы документы в этих же папках перенесутся ? Если струтура папок перенесеться, то не велика беда, можно папки и внутри Конечно базы в самой программе перенести.
Структура папок переносится, тут все нормально... Кстати, как работает перенос из архивных баз, я пока не знаю, т.к. не пробовал,
может, Олег что подскажет?

Re: Выгрузка документов из Базы.

Добавлено: Вт янв 21, 2014 10:03
Koteneff
tamkon писал(а):
Структура папок переносится, тут все нормально... Кстати, как работает перенос из архивных баз, я пока не знаю, т.к. не пробовал,
может, Олег что подскажет?
А под Архивной БД - ты что подразумеваешь?
Я архивной называю базу, в которую напротяжении нескольких лет ссыпаю документы (без ЭД историй ибо тупо раньше выгружал документы и загружал их)

Re: Выгрузка документов из Базы.

Добавлено: Вт янв 21, 2014 10:09
tamkon
Koteneff писал(а):
tamkon писал(а):
Структура папок переносится, тут все нормально... Кстати, как работает перенос из архивных баз, я пока не знаю, т.к. не пробовал,
может, Олег что подскажет?
А под Архивной БД - ты что подразумеваешь?
Я архивной называю базу, в которую напротяжении нескольких лет ссыпаю документы (без ЭД историй ибо тупо раньше выгружал документы и загружал их)
а, ну тогда понятно, под архивной я имел ввиду "новую" структуру, которая делает сама программа "ГТД-про".
В Вашем случае - это обычные базы, и с ними можно спокойно работать утилитой mergeDB

Re: Выгрузка документов из Базы.

Добавлено: Чт янв 23, 2014 14:57
alta_olg
Давайте с самого начала, а что Вам нужно?
Ну имеете Вы кучу старых баз.
Ну имеете Вы одну текущую новую.
А зачем Вам все эти старые базы куда-то там сливать, объединять?
Ну и пусть они лежат себе.
Если вдруг, надо поднять какую-то старую процедуру, просто из списка, Просмотр архивной базы, ищем нужную ДТ из нужной БД и восстанавливаем ее, вместе с процедурой.
Позже мы сделаем поиск по всем базам на sql сервере по номеру ДТ.

Re: Выгрузка документов из Базы.

Добавлено: Чт янв 23, 2014 15:11
Koteneff
alta_olg писал(а):Давайте с самого начала, а что Вам нужно?
Ну имеете Вы кучу старых баз.
Ну имеете Вы одну текущую новую.
А зачем Вам все эти старые базы куда-то там сливать, объединять?
Ну и пусть они лежат себе.
Если вдруг, надо поднять какую-то старую процедуру, просто из списка, Просмотр архивной базы, ищем нужную ДТ из нужной БД и восстанавливаем ее, вместе с процедурой.
Позже мы сделаем поиск по всем базам на sql сервере по номеру ДТ.
Круто. :)

Олег, просто завелось так: каждый позапрошлый(!) год сливать в БД, предназначенную для хранения старых документов (ГТД...ОПИСЬ, и прочие документы ЭД). Заметь именно документов (я не говорю про истории ЭД). В текущей же БД декларант работает с прошлогодними документыми и создаёт новые документы.
Собственно вся история.

Переносить все равно старый хлам придется в начале нового года, так как любая БД имеет желание непомерно расти со временем. Для текущей БД это не приемлемо ибо начинает тормозить работу. Для архивной БД не существенно, ибо не так часто туда залезают.

Вся проблематика вырасла в 2009 году, когда я по примеру Альта-СВХ решил зачищать текущую базу. Оказалось, что декларантам неудобно в начале нового года постоянно лазить за старыми декларациями в прошлогоднюю БД. Декларант на основе старых ТД создает новые. Еще некоторые используют Конструктор и опять на основе старых лопатят новые ТД. Плюсом - прошлогодний хлам служит огромным справочным материалом по ценам и описаниям. При этом надо создать условия для декларанта - пользоваться прошлыми наработками, не допустить утери документов отправленных в таможенный архив (это кстати вы успешно реализовали, тут отдельный респект) и не допускать роста БД.

Re: Выгрузка документов из Базы.

Добавлено: Чт янв 23, 2014 15:23
Ranger_Z
Ну тогда это легко решается.
Допустим, имеется рабочая база с документами, начиная с лохматого года.
Делаешь бекап этой базы, оставляешь его в качестве архивной базы, а рабочую базу зачищаешь до необходимого тебе состояния.
Через год, опять делаешь бекап рабочей базы, с помощью утилиты mergedb(как ей пользоваться уже описали) присоединяешь ее к своему архиву, с заменой или дублированием повторяющихся записей(тебе решать). А рабочую баз уопять зачищаешь до необходимого тебе состояния.
Повторяешь это необходимое количество лет :D

Вроде как не сложно.

Re: Выгрузка документов из Базы.

Добавлено: Вт апр 15, 2014 11:07
Alex
alta_olg писал(а): Если вдруг, надо поднять какую-то старую процедуру, просто из списка, Просмотр архивной базы, ищем нужную ДТ из нужной БД и восстанавливаем ее, вместе с процедурой.
Позже мы сделаем поиск по всем базам на sql сервере по номеру ДТ.
:shock:
Прошу прощения, а можно эту фразу поподробнее...

Re: Выгрузка документов из Базы.

Добавлено: Ср апр 16, 2014 09:11
Ranger_Z
Alex писал(а): :shock:
Прошу прощения, а можно эту фразу поподробнее...
Да, вроде все подробно :)

Используя меню "Список" -- "Просмотр архивной БД", можно подключаться к архивной базе документов и при необходимости переносить их архива в рабочую базу как отдельные документы, так и комплекты документов вместе со списком сообщений по ним. Главное, что-бы архивная база была в наличии :mrgreen: