Данная обработка позволяет быстро переносить объемные таблицы с данными из одной базы в другую. Например загружать актуальные данные из рабочей базы в тестовую, где ведется разработка. Для загрузки и выгрузки данных используется стандартная утилита Microsoft Bulk Copy Program (bcp).
Но важно понимать, что данная утилита переносит лишь данные одной конкретной таблицы. А если речь идет о переносе нескольких таблиц, между которыми существуют ссылки и зависимости, в таком случае, утилита может не подойти. Либо придется переносить все таблицы поочередно. И важно что бы структура таблиц в разных базах — была одинаковой.
Так же, важно знать что обработка перед загрузкой данных в таблицу из файла, полностью удаляет все существующие записи в базе приемнике, с учетом установленного отбора. То есть, при выгрузке данных мы можем установить отбор. При загрузке этот же самый отбор будет использоваться при удалении старых данных и загрузки новых. Но при необходимости обработку можно изменить под свои нужды.
Интерфейс обработки построен в виде пошагового мастера.
SELECT INTO? не, не слышал!
я взяла, по скриншотам очень заинтересовалась, тем более можно и под себя изменить. СПАСИБО.
Кто понимает что делать с какой таблицей на sql сервреве, тот и средствами sql сервера перенесет таблицу.
Ключевым тут я считаю фразу: «Но важно понимать, что данная утилита переносит лишь данные одной конкретной таблицы. А если речь идет о переносе нескольких таблиц, между которыми существуют ссылки и зависимости, в таком случае, утилита может не подойти. Либо придется переносить все таблицы поочередно. И важно что бы структура таблиц в разных базах — была одинаковой.»
Дело в том, что большинство таблиц в 1С как раз имеют связи с другим. Таким образом обработку можно рассматривать только как пример. Но все равно интересно.
Согласен и с (3) и с (4) Обработка интересная по задумке, но прикладного применения не вижу. Операции непосредственно с таблицами выполняю обычно в консоли SQL
(1) asved.ru, Если честно не совсем понял что вы имели ввиду))) Если все же вы имели ввиду Insert into и скрипты для заливки данных — то это классика. Но bcp при больших объемах работает быстрее. По крайней мере нам так казалось при тестировании)) (нам — команде разработчиков)
(2) xast, пожалуйста))
(4) DAnry, Оно понятно. Но дело в том что можно таким образом переносить и ряд таблиц. Хотя конечно действий больше придется совершить чем другими способами)
Нам же данный инструмент нужен был для переноса одного единственного регистра сведений. Конечно он содержал в себе ссылки на другие таблицы. Но в нашем случае менялось содержимое регистра. А содержимое таблиц куда вели ссылки хранимые в регистре — не менялось. Регистр был мягко говоря пухлым, поэтому важна была скорость перезаливки данных с боевой базы в тестовую. Но глобально — согласен. Инструмент — специфичен, для специфичных задач.
Автору Огромное Спасибо!!!!!!!!! Особенно помогла обработка при переносе КЛАДР! А что касается замечаний оппонентов по Select INTO, то не всегда все гладко проходит и если что-то криво перенесется, надо заново таблицы очищать и все снова делать, а это время. Все-таки, несмотря на совместную работу с 1с, MS SQL Server- это отдельная стихия. Так что обработка супер!!!
(7) xten, Благодарю за оценку 🙂 Рад что обработка Вам помогла)
(7) xten,
Это вообще другой мир, не связанный с 1С.
(0)
Она есть у всех?
(0)
Выгрузка и загрузка ОДНОЙ таблицы из одной SQL в другую аналогичную — весьма редкое и специфичное занятие.
Вот кто-то КЛАДР переносил… как бы сказать.. ерундой занимались.
Если очень крайне узкая задача — перенести РС там с миллионами записей туда-сюда, то да, подойдет. Но как перенос данных в 1С — категорически нет. Именно из-за ссылочной каши внутри базы 1С.
(9) AlexO, Совершенно верно, обработка написана для специфичных задач.
И понятное дело что bcp.exe это утилита MS SQL’я, и что все это будет работать только при использовании MS SQL.
Так что если будет надобность таскать кучу записей между тестовой базой и реальной базой, например для определенного регистра сведений, то возможно Вам это поможет. А возможно и нет =) Решать Вам. Я лишь предлагаю живой и работающий пример использования такого подхода) Любой желающий может это переделать под себя, и даже помимо одной таблицы, зацепить параллельно кучу других, на которые существуют ссылки в первой 😉
Автор обработка хороша нет слов. Вот если бы была возможность отобрать например по организации тогдаб вообще б цены не было.Или хотя бы подскажите как зделать такой отбор. Зарание спасибо за ответ?????
(11) dyak84, здравствуйте) Очень рад что публикации по данной теме оказались кому-то полезными.
На сколько я помню в данной обработке реализована возможность производить отбор. По любому полю. Если не ошибаюсь в масетере это Шаг №3. Нажимаете кнопку «Установить отбор». Откроется дополнительная форма. В ней Вы можете установить отбор для любого поля которое имеется в таблице которую Вы собираете выгрузить из базы. В том числе отборы работают и для ссылочных типов.


Потом на шаге №4 Вы увидите как Ваш отбор преобразован уже в MS SQLый запрос. И вместо представления 1С Вы увидите в условии GUID на элемент справочника по которому Вы сделали отбор. На фотках пример такого отбора:
Причем прошу обратить внимание, что когда Вы будете загружать выгруженные данные на другую базу, они загрузятся с учетом отбора.
То есть если отбора нет — таблица приемник сначала полностью очищается, затем в неё загружаются данные из файла.
Если отбор есть, то в таблице приемнике удаляются все записи с учетом отбора. Например записи ссылающиеся на какого-то контрагента. И затем загружаются записи из файла.
(12)Cпасибо за оперативный ответ на выходных, скачаю обработку и разберусь что да как работает.по результату отпишусь