Загрузка файла в SQL из 1С

1. nik.averkin@mail.ru 21.03.22 17:10 Сейчас в теме
Морочился тут с записью файла во внешнюю систему. Искал по всей сети - не нашёл, может кому пригодится.
Платформа 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();
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. МихаилМ 21.03.22 21:09 Сейчас в теме
Сериализация в стиле фирмы 1с.
(1) Какой максимальный размер файла удалось записать таким вандалистским неандертальским способом ? Если у этого "SQL Server 2019" есть админ, то он за такие извраты имеет полное право отбить вам копчик.
3. nik.averkin@mail.ru 23.03.22 13:40 Сейчас в теме
4. ishelper 23.03.22 14:10 Сейчас в теме
(3) Зачем такие вещи размещать на форуме? Ветка просто утонет и вряд ли "кому пригодится". Так что знаменатель этой дроби можете смело примерять на себя.

А числитель... Сделайте публикацию, по количеству скачиваний или плюсов станет понятно и насчет числителя. :-)
5. nik.averkin@mail.ru 23.03.22 14:48 Сейчас в теме
(4) На публикацию не тянет как-то. Придётся что-то писать - зачем это всё, какую задачу решал и т.п.
Что касается "утонет" - когда я искал инфу по вопросу, так 2011 год на мисте всплывал...
Мне не помогло НИЧЕГО из того, что я нашёл. Пришлось читать, вникать и т.д.
И вообще - по делу есть что-то? Ваши комменты - информационный шум, который не имеет отношения к вопросу.
6. ishelper 23.03.22 15:16 Сейчас в теме
(5)
информационный шум, который не имеет отношения к вопросу
А где вопрос-то? "Я тут наваял нетленку - берите, пользуйтесь... вдруг кому надо" - это вопрос?

Ну, посмотрим, кому еще оно понадобится... Лично я больше ничего тут писать не буду, учитывая вашу манеру общения.
7. nik.averkin@mail.ru 23.03.22 17:53 Сейчас в теме
(6)
Лично я больше ничего тут писать не буду, учитывая вашу манеру общения.
Благодарю!
Вопрос - он же - тема в том, как без дополнительных программных конструкций передавать файлики типа .pdf и прочие, генерируемые 1С при печати, в стороннюю базу данных. Оба комментатора пришли оттоптаться на авторе, ничего по делу не сказав. Своё наиценнейшее мнение при себе удержать, видимо, сил не было, но хоть что-то бы по делу сказали! Ихсперты....
9. alul 17.11.23 09:00 Сейчас в теме
Автор, браво! Отличная публикация.
Не слушайте набежавших с мисты "коекакеров", которые не способны на синтез кода, их максимум возможностей - желчь в строках форума.
10. nik.averkin@mail.ru 17.11.23 15:48 Сейчас в теме
(9) Я и не слушаю. :) В коде видно, что я формирую отчет в 1С, записываю его в pdf. Самый большой получился килобайт на 36. КИЛО байт... Товарищи же предлагают мне сделать непонятно для чего универсальный, общий случай - разбить AppendChunk-ом (а вдруг, огромный?) двухстраничный мой отчетик на куски, чтобы он не порушил тонкую душевную организацию SQL... :) Реально - моя задача не требует никаких усложнений, вот уже полтора года колбасит без сбоев и напрягов.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот