Имя: Пароль:
1C
1С v8
Где хранить картинки? Во внешней базе? и как организовать быструю печать их?
0 Cerera
 
16.07.13
08:09
Такая проблема. К Номенклатуре прилагаются сертификаты. Иногда в разрезе характеристик номенклатуры. Если хранить их в базе - база пухнет. Просто в файлах хранить - некрасиво. Есть идея в базе 1С второй хранить эти данные и подключаться к ней через com соединение. Только вот хотелось бы советов услышать как лучше это организовать и как организовать быструю печать картинок? чтоб реально отметил в обработке список товаров и каждый сертификат потом печатать с бешанной скоростью? Сертификат - это картинка.
1 Рэйв
 
16.07.13
08:12
база пухнет..Пусть пухнет, что ж теперь. Ложи в ХранилищеЗначений
2 Рэйв
 
16.07.13
08:13
И кстати в хранении в файлах тоже не вижу криминала
3 Sun_Lin
 
16.07.13
08:13
Хранить в виде файлов, а в базе хранить ссылки. На печать направить - не проблема.
4 Sun_Lin
 
16.07.13
08:14
(0) Пивники, поди ;)
5 Cerera
 
16.07.13
08:14
(4)пищивые ингридиенты и всё для кулинарии.
6 Cerera
 
16.07.13
08:16
(1)ну в хранилище значений класть - не вопрос. только не обязательно же в этой же базе хранить их.
7 skiller3000
 
16.07.13
08:16
мне кажется быстрее будет, если положить эти картинки в виде файлов или же отдельной базы на диск SSD... затем в рабочей базе можно получать эти картинки заранее при выборе номенклатуры и при печати доставать их из ранее полученных хранилищ.
8 Юрий Юрьевич
 
16.07.13
08:19
С файлами не очень быстро будет при больших объемах.
Сделать отдельную sql базу с одной таблицей (гуид номенклатуры и картинка).
9 Cerera
 
16.07.13
08:20
(8)отдельная SQL база будет быстрее отдавать файлы, чем соединение по com к sql базе?
10 Cerera
 
16.07.13
08:21
(8)а в сжатом виде можно хранить в SQL ?
11 Юрий Юрьевич
 
16.07.13
08:22
А изображение сразу делать сжатым нельзя?
12 jsmith82
 
16.07.13
08:22
(9) ну ком же тоже будет запрос делать в файловую базу + затраты на ком
а тут сразу запрос в скульную базу
13 Юрий Юрьевич
 
16.07.13
08:23
А com соединение так и так будешь использовать.

типа:
ПутьКБазе = СоединенияИБКлиентСервер.ПутьКИнформационнойБазе();
   ИмяБазы = Прав(СтрЗаменить(ПутьКБазе, """", ""), СтрДлина(СтрЗаменить(ПутьКБазе, """", "")) - Найти(СтрЗаменить(ПутьКБазе, """", ""), "\"));
   
   ТекстЗапроса = "Select _Image, _Guid, _MetaData, _Num, _ImageName, _FileName, _Ref, _Serv from dbo.Table_1
                 |Where "
                 + "_Guid = '" + Строка(мОбъектОтбора.УникальныйИдентификатор()) + "'"
                 + " And _MetaData = '" + мОбъектОтбора.Метаданные().ПолноеИмя() + "'"
                 + " And _Ref = '" + СокрЛП(ИмяБазы) + "'"
                 + " And _Serv = '" + СокрЛП("") + "'";
   RecordSet = Новый COMОбъект("ADODB.Recordset");
     RecordSet.CursorLocation = 3;
     RecordSet.LockType = 2;
   RecordSet.Open(ТекстЗапроса, глПодключениеКВнешнейБД);
   Если RecordSet.RecordCount>0 Тогда
       RecordSet.MoveFirst();
   КонецЕсли;
   Пока Не RecordSet.EOF Цикл
       НовСтрока = Таблица.Добавить();
       НовСтрока.Изображение = RecordSet.Fields("_Image").Value;
       НовСтрока.Идентификатор = RecordSet.Fields("_Guid").Value;
       НовСтрока.Метаданные = RecordSet.Fields("_MetaData").Value;
       НовСтрока.Номер = RecordSet.Fields("_Num").Value;
       НовСтрока.ИмяИзображения = СокрЛП(RecordSet.Fields("_ImageName").Value);
       НовСтрока.ИмяФайла = СокрЛП(RecordSet.Fields("_FileName").Value);
       НовСтрока.ИмяБазы = СокрЛП(RecordSet.Fields("_Ref").Value);
       НовСтрока.ИмяСервера = СокрЛП(RecordSet.Fields("_Serv").Value);
       RecordSet.MoveNext();
   КонецЦикла;
   RecordSet.Close();
14 jsmith82
 
16.07.13
08:39
так если юзать sql, можно в этой же базе хранить, пусть пухнет
15 jsmith82
 
16.07.13
08:39
ну, как вариант
16 MSOliver
 
16.07.13
08:52
я за внешнее хранение, есть пример база 5гб + картинки (15гб) = а оно надо?
17 George Wheels
 
16.07.13
08:57
(16) Поддерживаю. Бэкап такой базы...
18 Мыш
 
16.07.13
09:23
Хранить в той же базе, но таблицу вынести в отдельный физический файл на другой носитель.
19 vde69
 
16.07.13
09:25
делаешь УРБД, узлы по годам, в них старые, в текущей базе храним только за последний год
20 Мыш
 
16.07.13
09:35
Похоже народ не любит использовать штатные средства SQL. Проще через COM поизгаляться )
21 arsik
 
гуру
16.07.13
09:40
Если хранить в отдельной базе 1С то лучше использовать вебсервисы.
Ком соединение слишком долго поднимается. При каждой печати тебе придется его поднимать (ну если не извратится конечно).

Вебсервис по сути постоянно подключен (нужно таймауты настроить) и работает без потерь на подключение
22 Infsams654
 
16.07.13
10:10
(21) + и нет платформной зависимости - com только в винде
23 Cerera
 
16.07.13
14:13
(20)это вы что имеете ввиду?
24 Мыш
 
16.07.13
17:40
(23) http://msdn.microsoft.com/ru-ru/library/ms179316(v=sql.105).aspx

Вот это. Можно решить вопрос штатными средствами SQL-сервера. И не заморачиваться на отдельные базы.