Загрузка файла в SQL из 1С
Морочился тут с записью файла во внешнюю систему. Искал по всей сети - не нашёл, может кому пригодится.
Платформа 1С:Предприятие 8.3 (8.3.20.1674)
SQL Server 2019
Платформа 1С:Предприятие 8.3 (8.3.20.1674)
SQL Server 2019
Если ТабличныйДокумент.ВысотаТаблицы = 0 Тогда
СформироватьОтчет("Расш");
КонецЕсли;
/////////////////////////////////////////
//Подключение к SQL-серверу
Соединение = Новый COMОбъект("ADODB.Connection");
Команда = Новый COMОбъект("ADODB.Command");
Выборка = Новый COMОбъект("ADODB.RecordSet");
Соединение.ConnectionString =
"driver={SQL Server};" +
"server="+ИмяСервераSQL+";"+
"uid="+ПользовательSQL+";"+
"pwd="+ПарольSQL+";"+
"database="+БазаДанныхSQL+";";
Соединение.ConnectionTimeout = 30;
Соединение.CommandTimeout = 600;
//Открытие соединение
Соединение.Open();
Команда.ActiveConnection = Соединение;
ИмяФайла = КаталогВременныхФайлов()+"Отчет.pdf";
ТабличныйДокумент.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.PDF);
Попытка
ДД = Новый ДвоичныеДанные(ИмяФайла);
Исключение
Возврат;
КонецПопытки;
Если ДД.Размер() = 0 Тогда
Возврат;
КонецЕсли;
ТекстКоманды =
"DECLARE @hexstring varchar(max);
|SET @hexstring = '"+ПолучитьHexСтрокуИзДвоичныхДанных(ДД)+"';
|INS ERT IN TO ClientFiles
|(UID, CLIENT_UID, NAME, CONTENT)
//, SIGNATURE, ERROR)
|VALUES ('"+Новый УникальныйИдентификатор()+"', '"+Клиент()+"', 'Отчет.pdf', CONVERT(varbinary(max),@hexstring,2))";
Команда.CommandText = ТекстКоманды;
Команда.Execute();
Соединение.Close();
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Зачем такие вещи размещать на форуме? Ветка просто утонет и вряд ли "кому пригодится". Так что знаменатель этой дроби можете смело примерять на себя.
А числитель... Сделайте публикацию, по количеству скачиваний или плюсов станет понятно и насчет числителя. :-)
А числитель... Сделайте публикацию, по количеству скачиваний или плюсов станет понятно и насчет числителя. :-)
(4) На публикацию не тянет как-то. Придётся что-то писать - зачем это всё, какую задачу решал и т.п.
Что касается "утонет" - когда я искал инфу по вопросу, так 2011 год на мисте всплывал...
Мне не помогло НИЧЕГО из того, что я нашёл. Пришлось читать, вникать и т.д.
И вообще - по делу есть что-то? Ваши комменты - информационный шум, который не имеет отношения к вопросу.
Что касается "утонет" - когда я искал инфу по вопросу, так 2011 год на мисте всплывал...
Мне не помогло НИЧЕГО из того, что я нашёл. Пришлось читать, вникать и т.д.
И вообще - по делу есть что-то? Ваши комменты - информационный шум, который не имеет отношения к вопросу.
(5)
Ну, посмотрим, кому еще оно понадобится... Лично я больше ничего тут писать не буду, учитывая вашу манеру общения.
информационный шум, который не имеет отношения к вопросу
А где вопрос-то? "Я тут наваял нетленку - берите, пользуйтесь... вдруг кому надо" - это вопрос?
Ну, посмотрим, кому еще оно понадобится... Лично я больше ничего тут писать не буду, учитывая вашу манеру общения.
(6)
Вопрос - он же - тема в том, как без дополнительных программных конструкций передавать файлики типа .pdf и прочие, генерируемые 1С при печати, в стороннюю базу данных. Оба комментатора пришли оттоптаться на авторе, ничего по делу не сказав. Своё наиценнейшее мнение при себе удержать, видимо, сил не было, но хоть что-то бы по делу сказали! Ихсперты....
Лично я больше ничего тут писать не буду, учитывая вашу манеру общения.
Благодарю!
Вопрос - он же - тема в том, как без дополнительных программных конструкций передавать файлики типа .pdf и прочие, генерируемые 1С при печати, в стороннюю базу данных. Оба комментатора пришли оттоптаться на авторе, ничего по делу не сказав. Своё наиценнейшее мнение при себе удержать, видимо, сил не было, но хоть что-то бы по делу сказали! Ихсперты....
(9) Я и не слушаю. :) В коде видно, что я формирую отчет в 1С, записываю его в pdf. Самый большой получился килобайт на 36. КИЛО байт... Товарищи же предлагают мне сделать непонятно для чего универсальный, общий случай - разбить AppendChunk-ом (а вдруг, огромный?) двухстраничный мой отчетик на куски, чтобы он не порушил тонкую душевную организацию SQL... :) Реально - моя задача не требует никаких усложнений, вот уже полтора года колбасит без сбоев и напрягов.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот