gifts2017

Быстрый экспорт конфигурации из базы "1С:Предприятие 8.1 SQL"

Опубликовал Сергей Боровик (BorovikSV) в раздел Администрирование - Системное

Быстро экспортирует конфигурацию из базы "1С:Пердприятие 8.1 SQL".
Строка соединения указывается с помощью командной строки.

Когда приходится часто "прыгать" между большими конфигурациями, медлительность платформы дико раздражает. 

Многие говорили, что экспорт из SQL базы - это элементарно, но я почему-то не нашел готовой реализации.


Режим запуска:

SQLCFExport.exe <СТРОКА СОЕДИНЕНИЯ> <ИМЯ ФАЙЛА>

Если имя файла не указано, то выгружает в каталог с запускаемой утилитой.


Пример написания BAT файла:

start SQLCFExport.exe "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=TORG;Data Source=192.168.50.100"

где

192.168.50.100 - имя машины с SQL сервером (своя машина - 127.0.0.1)

TORG -имя базы

sa -имя пользователя

123456 -пароль 

Экспорт происходит быстрей, чем средствами платформы, в 10-15 раз!

Пользуйтесь на здоровье! :) 

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

Наименование Файл Версия Размер Кол. Скачив.
SQLCFExport.rar
.1238879941 303,10Kb
25.09.09
314
.1238879941 303,10Kb 314 Скачать

См. также

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

Комментарии

1. Валентин Терёхин (Valet) 05.04.09 17:31
(0) Если не секрет, то куда файл cf сохраняется?
А то пишет запрос выполняется, cf не найду. Поэтому и не пойму, работает или нет :).
Еще может обязательное требование что машина с SQL сервером должна быть через IP указана? Я сейчас тупо строку подключения копирую из UDL файла.
2. Сергей Боровик (BorovikSV) 06.04.09 01:17
(1) CF сохраняется в каталог расположения этой утилиты :)

Нет никаких требований. Запрос выполняется ADO средствами, поэтому все зависит от строки соединения и от установленных драйверов БД.
3. Сергей Боровик (BorovikSV) 06.04.09 01:22
(2) + Имя выходного файла можно задать вторым параметром. Не забывай только про кодировку bat файла!
4. Валентин Терёхин (Valet) 06.04.09 12:00
(3) У мене еще одно подозрение :). Экспорт конфы работает только в 2005 MSSQL?
5. Артур Аюханов (artbear) 06.04.09 13:56
Впервые, конечно, подобный экспорт в Ei выполнен, но все равно плюс :)
Только уточно, выгружается конфа базы данных или другая (до обновления базы данных) ?
6. Freelancer1C (iddqdidkfa) 06.04.09 15:34
А вот бы исходные коды этой штуки посмотреть
7. Сергей Боровик (BorovikSV) 06.04.09 18:37
(5) выгружается конфа база данных.
Ei это ведь для 1С обработка. Зачем 1С запускать если можно без нее обойтись? :)
8. Сергей Боровик (BorovikSV) 06.04.09 18:41
(6)
function TExportCF_SQL.ExportCF(CFOut:TCFStorage): Boolean;
var FileName:string;
var CFFile:TCFFile;
var Data:AnsiString;
begin
ADOQuery.ConnectionString:=ConnectionString;
ADOQuery.SQL.Text:='Select * from CONFIG Order by Filename';
ADOQuery.CursorLocation:=clUseClient;
ADOQuery.Active:=true;
ADOQuery.First;
while not ADOQuery.Eof do
begin
FileName:=ADOQuery.FieldByName('Filename').AsString;
Data:=ADOQuery.FieldByName('BinaryData').AsAnsiString;
CFFile:=CFOut.AddFileNoUpdatePage(FileName,Length(Data));
CFFile.DateCreate.Date:=ADOQuery.FieldByName('Creation').AsDateTime;
CFFile.DateChange.Date:=ADOQuery.FieldByName('Modified').AsDateTime;
CFFile.WriteHead;
CFFile.Stream.Write(pointer(Data)^,length(Data));
CFFile.WriteHead;
ADOQuery.Next;
end;

CFOut.UpdatePage;
Result:=True;
end;
9. Наталия Мастербатова (zzz_natali) 08.04.09 11:28
Нда... Вкусненько арбайтничничает.
По-блондински: а нельзя ли такую же, но чтобы экспортировал dt'шку? :)
10. Наталия Мастербатова (zzz_natali) 08.04.09 11:31
(7)
Нда... Весьма вкусненько экпортит. Впечатляет. Сиба.
По-блондински: а нельзя такую же, но экспорт dt'шки? :)
11. Сергей Боровик (BorovikSV) 08.04.09 23:32
(10) DT помоему итак быстро выгружает платформа. зачем писать отдельную утилиту?
12. Наталия Мастербатова (zzz_natali) 08.04.09 23:41
(11) Ну как же?! Правой рукой почесать левое ухо... Иными словами: сделать одинэсный бакап средствами SQL :)
13. Сергей Боровик (BorovikSV) 09.04.09 15:38
(12) средствами SQL никак не сделаешь :)

А вообще эта задача вполне выполнима. лишь вопрос в актуальности :)
14. Наталия Мастербатова (zzz_natali) 09.04.09 16:14
(13) За актуальностью не заржавеет.
В твоей версии, какова была смысловая нагрузка того, что задача выполнима?
Давай поставим вопрос иначе: можно ли каким-нить инструментарием(не трогая 8ёрочную платформу), а только средствами SQL выгрузить CF'ку и чем-то выгрузить данные, чтобы с одной стороны, не зависеть от 1С(были случаи, что DT'шку потом тоже было не поднять - ошибка формата потока), а с другой, не зависеть от SQL... Ну, скажем в формате XML(с уверенностью, что потом безгеморойно данные можно загрузить в базу, хоть файловую, хоть клиент-серверную).
15. Сергей Боровик (BorovikSV) 09.04.09 22:07
(14) ну вообще смысл есть выгружать именно в фррмат DT. неважно пусть это будут и не средства платформы. Хотя бы потому, что для загрузки не потребуется писать дополнительную утилиту. Если 1С выгружает "криво", значит дело не в 1С, а в некорректных данных в базе SQL. В таком случае XML файлик тоже будет "Кривой". А вообще пусть даже из некорректного DT файла можно вытаскивать информацию также как из некоректного XML. Если присмотреться, то текстовик содержимого DT сильно напоминает структуру XML документа. Теги "{" и "}" парные. То есть нет смысла думаю приводить к чистому XML. Это как с CF файлом. Переведи его в XML, но для полноценной работы все равно потребуется создавать CF. Раньше просто нехватало средств для удобного просмотра CF файлов. Также и с DT. Просто нужен некий интерпретатор его содержимого в более наглядные виды...
16. Наталия Мастербатова (zzz_natali) 09.04.09 23:09
(15) Ну вот, мы сделали круг почета по стадиону и вернулись к пьедесталу: сможешь ли ты любыми другими средствами, не прибегая к одинэсному конфигуратору(а равно и пакетному выполнению выгрузки данных средствами 1С) к сооружению DT'эшника?
Без всякой актуальности...
Чисто гипотетически...
Как одинэсина пакует данные в DT и какой там поток?
Он удобоварим или это их "знаю как"?

ЗЫ: Можешь опереться на моё плечо, влезая на ступеньку с цифрой 1. :)
17. Александр Медведев (anig99) 29.12.10 08:30
(0) Для 8.2 обработка актуальна?
18. Александр Никитин (ManyakRus) 22.11.13 23:47
отличная вещь, мне помогда восстановить разрушенную базу :)
19. DERL (DERL) 18.02.15 08:51
(8) BorovikSV, выложите описание типов TCFStorage и TCFFile
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа