Имя: Пароль:
1C
 
Ссылка на картинку в 8.1
0 Выдра
 
27.08.08
08:42
Народ, подсобите, пжалста.
Хотелось бы хранить в базе ссылку на картинку, т.е. сама картинка должна быть снаружи. Ссылку крепить к элементу справочника и каким-то макаром открывать по ней рисунок (в 1С-ке) для печати.
В документации ничего подходящего найти не могу. Там только через хранилище предлагается.
1 чувак
 
27.08.08
08:46
А хранилище чем тебе не угодил?
2 MaxiM072
 
27.08.08
08:48
в любовой типовой посмотри как это реализованно в справочнике Номенклатура,но лучше всё таки будет через хранилище,поскольку тогда картинка будет храниться в базе,а не зависеть от физического пути,который может поменяться!
3 kosts
 
27.08.08
08:56
Еще ход - хранить картинки и файлы в другой базе.
4 MaxiM072
 
27.08.08
08:58
(3) а смысл?можно просто создать справочник,в который и пихать эти картинки!так всё таки будет лучше!
5 чувак
 
27.08.08
09:02
(3) Ты бы сказал еще - в удаленной базе :)
6 kosts
 
27.08.08
09:05
(4)(5) Я же сказал, что так всегда нужно делать. Так лучше когда картинок будет очень много, не на одну сотню мегабайт...

Есть три способа, каждый выбирает способ под свои нужды...
7 MaxiM072
 
27.08.08
09:08
(6) так эти картинки очень хорошо сжимаются!(3) как бы тоже вариант если и вправду дафигища картинок!)
8 Выдра
 
27.08.08
09:11
Народ, хранение в хранилище - не вариант! Картинок будет очень много, я не хочу грузить их все в базу. Она после этого будет просто неподъемной, да и шевелиться будет с трудом. Каталог картинок будет лежать на сервере. И то, что картинка будет "зависеть от физического пути,который может поменяться" меня вполне устраивает. Вопрос в том, как это сделать?
9 MaxiM072
 
27.08.08
09:14
Картинка.Записать (Picture.Write)
Картинка (Picture)
Записать (Write)
Синтаксис:
Записать(<Имя файла>)
Параметры:
<Имя файла> (обязательный)
Тип: Строка. Полное имя файла, в котором будет сохранена картинка. Если имя каталога не указано, то картинка будет сохранена в каталог исполняемых файлов программы.
Описание:
Записывает картинку в файл с указанным именем.
Пример:
Картинка.Записать("C:\My Documents\My Pictures\home.bmp");
10 H A D G E H O G s
 
27.08.08
09:15
(8) Товарисч Выдра, вы хрень сказали. Это все предрассудки. Все будет шевелиться.
11 H A D G E H O G s
 
27.08.08
09:17
(10) Только, если есть филиалы, миграцию правильно настройте..
12 Выдра
 
27.08.08
09:18
(10) По-видимому, вы просто не сталкивались с хорошо загаженной картинками базой. :)
Ничего, у вас еще все впереди ))
13 Выдра
 
27.08.08
09:19
(9) осмысляю...
14 kosts
 
27.08.08
09:21
(13) Как погода в сибе, говорят прохладно?
15 H A D G E H O G s
 
27.08.08
09:21
(12) Сталкивался. Не с загаженной. А с отлаженной. И правильно структурированной. Все работает. Как пример - Электронная сертификация 2.0
16 Выдра
 
27.08.08
09:22
(9) Осмыслила. Это не то. Это метод для записи картинки, которая лежит в базе, в файл. Мне нужно другое действие:
1 из элемента справочника указать путь к картинке.
2 Открыть по этому пути картинку для печати.
17 Vitello
 
27.08.08
09:23
А подгружать из файла динамически в нужный момент нельзя?
18 Выдра
 
27.08.08
09:24
(14) ваще!.. Зуб на зуб не попадает. А еще и думать надо, а мозги смерзлись... бррр.. )
19 Выдра
 
27.08.08
09:25
(17) как?
20 чувак
 
27.08.08
09:27
Для начало пробуй:
Картинка = Новый Картинка("C:\My Documents\My Pictures\home.gif");
21 kosts
 
27.08.08
09:30
ЗапуститьПриложение("Картинка.png");
22 kosts
 
27.08.08
09:32
Можно попробовать вставить картинку в табличный документ и вывести на экран средствами 1С.
23 чувак
 
27.08.08
09:33
Картинка = Новый Картинка("C:\1.jpg");
ЭлементыФормы.ПолеКартинки1.Картинка = Картинка;

проверил, работает
24 чувак
 
27.08.08
09:34
(23) Тут самое главное название файла картинки должен совпадать с кодом справочника и код спарвочника должен бырь уникальным или код справочника указать как полный код
25 kosts
 
27.08.08
09:41
(24) Нет. Что будет если код поменяется? В реквизит справочника запишем имя картинки на диске и все. Еще лучше если к имени картинки добавить уникальную комбинацию GUID например. Или имя только из GUID, но тогда трудно работать с картинками не из базы...
26 Выдра
 
27.08.08
09:41
(23) Отлично. Именно это мне и нужно. Спасибо :)
А как бы теперь ее в печатную форму засунуть?
27 Выдра
 
27.08.08
09:44
собстна, нашла пример. Все, всем спасибо. :)
28 kosts
 
27.08.08
09:46
(27) Покажи, тоже интересно
29 kosts
 
27.08.08
09:51
Т.к. я все равно искал способ вывести на печать картинки, для тех кому интересен это вопрос.

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");

Область = Макет.ПолучитьОбласть("Шапка");
Область.Рисунки.D1.Картинка = Новый Картинка("C:\1219371784421.jpg");

ТабДок.Вывести(Область);
ТабДок.Показать();
30 Выдра
 
27.08.08
09:52
(28) Ну, как-то так:
Картинка = Новый Картинка(СтрокаТаблицы.ДвоичныйКод);        
       ОбластьМакета = Макет.ПолучитьОбласть("Сертификат");
       Рис = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
       Индекс=ОбластьМакета.Рисунки.Индекс(Рис);
       ОбластьМакета.Рисунки[Индекс].Картинка = Картинка;
       ОбластьМакета.Рисунки[Индекс].РазмерКартинки = РазмерКартинки.Пропорционально;
       ОбластьМакета.Рисунки[Индекс].Расположить(ОбластьМакета.Область("R1C1:R72C11"));
       ТабДокумент.Вывести(ОбластьМакета);
       ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
31 чувак
 
27.08.08
09:52
(25) Тут проблем нету, просто дописать код, который будет при непосредственном удалении справочника файл удаляется или перемещатся в другую папку
32 Выдра
 
27.08.08
09:53
(29)ух ты. Класс! :)
33 kosts
 
27.08.08
10:00
Я еще на 77 делал такой способ работы с картинками:
Из формы справочника открывается отдельная форма.
На форме картинки были кнопки добавить, редактировать, удалить. Но особенностью было то, что пока не нажмешь кнопку ОК никакие фактические изменения на диске не производились... Работа в форме велась с картинками во временной папке.
34 Выдра
 
28.08.08
09:45
наверное, все-таки эту ветку продолжу.
Вчера получилось прицепить к элементу справочника ссылку на файл. По этой ссылке находится и распечатывается рисунок.
А если рисунков несколько?
Прицепила вместо ссылки на файл, ссылку на каталог. Теперь нужно перебрать поочередно все файлы каталога и каждый распечатать. Вопрос в том как организовать цикл, т.е. каким методом перебирать файлы? Кто-нибудь подскажет?
35 Валерыч
 
28.08.08
10:23
поиск файлов по маске
36 Serg_1960
 
28.08.08
10:43
(34) Мой вариант (минимум изменений в конфе):
Новый регистр сведений - там ссылка на объект и полное имя файла на общем ресурсе. Регистр "подцепляю" к документам и справочникам через... внешняя печатная форма :о) Почему? Да так, просто она у всех объектов всегда доступна :о) В обработке - показ списка файлов и работа со списком. Для прикола: его можно даже распечатать из-под печатной формы :о)
37 Выдра
 
28.08.08
11:37
Еще предложения есть?
38 Валерыч
 
28.08.08
11:53
чем (35) не устаривает?
НайтиФайлы (FindFiles)
Синтаксис:
НайтиФайлы(<Путь>, <Маска>)
Параметры:
<Путь> (обязательный)
Тип: Строка. Путь к каталогу, в котором производится поиск. Каталог может быть как на локальной сети, так и на ftp-сервере. При использовании этой схемы в адресах необходимо указывать прямые слеши '/', а не обратные '\'.
Допускается указание полного имени файла (путь+имя).
<Маска> (необязательный)
Тип: Строка. Маска выбора файлов. В строке маски допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.
Если параметр задан, то первый параметр воспринимается системой как путь к каталогу, в котором требуется найти файлы, удовлетворяющие маске выбора.
Возвращаемое значение:
Тип: Массив. Массив из значений типа Файл, содержащий найденные файлы.
Описание:
Осуществляет поиск файлов и каталогов по заданной маске, расположенных в заданном каталоге.
Примечание:
Все искомые объекты должны находиться в одном каталоге.
Пример:
НайденныеФайлы = НайтиФайлы("C:\Temp", "*.cdx");
39 Выдра
 
28.08.08
12:06
(38) Да, точно. Туплю, извините.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.