![]() |
|
Как добавить фото в справочник "Товары" | ☑ | ||
---|---|---|---|---|
0
rulikch
05.12.09
✎
22:20
|
Как добавить фото в справочник "Товары" ? Не сохраняется фото у элемента справочника, при его последующем открытии. Почему?
|
|||
1
VitGun
05.12.09
✎
22:24
|
сохраняй в реквизите справочника ссылку на файл с фото
|
|||
2
Ваше благородие
05.12.09
✎
22:31
|
В базе - текстовое поле "ПутьКФайлу". Сами файлы в отдельном каталоге.
|
|||
3
aka AMIGO
05.12.09
✎
22:46
|
(1) - правильно.. правда, если только фото хранить..
(2) почти так сделано у меня. Только путь к файлу у меня равен конкатенации постоянной части пути в Константе, а добавка - папка с именем = Коду Товара. я так думаю, в этой папке захочется хранить не только рисунок, но и описание, и сертификат товара. менеджеры уже оценили удобство такой штуки. открывать папку для просмотра можно и из карточки, и из списка справочника.. и из документа.. да ото всюду. |
|||
4
rulikch
05.12.09
✎
22:53
|
Ребята, я честно очень сегодня устал. Башка уже нефига не варит! Я вот такой код написал, подскажите, пожалуйста, еще раз что не так.
Кнопка "Добавить Фото" Функция НайтиФото() Файл=Создатьобъект("ФС"); ФотоZ=Создатьобъект("Картинка"); ФотоC=Создатьобъект("Картинка"); Если Файл.ВыбратьФайлКартинки(0,ИмяФайла,ИмяКаталога,"Выберите файл","*.jpg",)<>1 Тогда Возврат 0; КонецЕсли; исходный = ИмяФайла; ИмяФайла=ИмяКаталога+ИмяФайла; ФотоZ.Загрузить(ИмяФайла); ФотоС.РежимРисования(2); ФотоС.УстановитьКартинку(ФотоZ); Возврат 1; КонецФункции Кнопка "Сохранить Фото" // =============================== Процедура СохранитьФото() Попытка НовИмяФаила = (КаталогИБ() + "ExtForms\Foto"+"\"+код+".jpg"); фс.ПереименоватьФайл(ИмяФайла,новимяфаила,1); Форма.Загрузка.Видимость(1); Форма.Сохранение.Видимость(1); Форма.Загрузка.Доступность(1); Форма.Сохранение.Доступность(1); Исключение КонецПопытки; КонецПроцедуры |
|||
5
syktyk
05.12.09
✎
22:56
|
У меня тоже башка не варит, ноя добавил кнопу "Утащить", откуда забирается фотка, и складается в определенную папку. Если нет возможности подключить сканер.
|
|||
6
aka AMIGO
05.12.09
✎
22:59
|
Н форме карточки товара есть кнопка "ВывестиПроводник.
В модуле процедура: Процедура ВывестиПроводник() Если ТекущийЭлемент().ЭтоГруппа()=1 Тогда Возврат; КонецЕсли; //составляем адрес: константа + ПапкаДляВывода ПапкаДляВывода = СокрЛП(Константа.ПутьКИнформации)+"\"+Код; ПапкаДляВывода = СтрЗаменить(ПапкаДляВывода,"\\","\"); Если ФС.СуществуетФайл(ПапкаДляВывода+"\NUL")=1 Тогда //правильная конкатенация ЗапуститьПриложение("explorer.exe "+СокрЛП(ПапкаДляВывода)); Возврат; Иначе //ошибка неисправима Сообщить("Адрес техинформации ошибочен, проверьте путь:"); Сообщить(""+ПапкаДляВывода); Предупреждение("Ошибка в создании Адреса техинформации! |Для исправления - Прочтите Описание!"); Возврат; КонецЕсли; КонецПроцедуры посмотри, может устроит тебя? |
|||
7
rulikch
05.12.09
✎
23:17
|
Нет фотки при сохранении элемента. Ведь работает сохранение в папке. А почему при открытии элемента фото не сохранилось
|
|||
8
aka AMIGO
05.12.09
✎
23:21
|
||||
9
rulikch
05.12.09
✎
23:24
|
(8) Большое СПАСИБО! ДРУГ!
|
|||
10
Композитор
05.12.09
✎
23:24
|
(0) На форму (например, форма списка), повесь объект Картинка и текстовый объект с функцией "СформироватьИнформационнуюСтроку".
Функция СформироватьИнформационнуюСтроку() Перем ИнфСтрока; Если ПустоеЗначение(ТекущийЭлемент()) = 1 Тогда // не выбран элемент ИнфСтрока = ""; Иначе Если ТекущийЭлемент().ЭтоГруппа() = 1 Тогда // текущий элемент - группа ИнфСтрока = ТекущийЭлемент().ПолноеНаименование(); Иначе ТекЭлем = ТекущийЭлемент(); ИнфСтрока = СокрЛП(ТекЭлем.ПолнНаименование) + ?(ПустоеЗначение(ТекЭлем.Артикул) = 0, " Артикул: " + СокрЛП(ТекЭлем.Артикул), "") + ?(ПустоеЗначение(ТекЭлем.Комментарий) = 0, " Комментарий: " + СокрЛП(ТекЭлем.Комментарий), ""); Файл = КаталогИБ()+СокрЛП(ТекЭлем.КаталогКартинки)+СокрЛП(ТекЭлем.ИмяФайлаКартинки); Если (ПустоеЗначение(ТекЭлем.ИмяФайлаКартинки) = 0)И (ФС.СуществуетФайл(Файл) = 1) Тогда Попытка Картинка.Загрузить(Файл); Картинка.РежимРисования(3); Исключение Картинка1 = СоздатьОбъект("Картинка"); Картинка.УстановитьКартинку(Картинка1); КонецПопытки; Иначе Картинка1 = СоздатьОбъект("Картинка"); Картинка.УстановитьКартинку(Картинка1); //КонецАвторскойВставки КонецЕсли; КонецЕсли; КонецЕсли; Возврат ИнфСтрока; КонецФункции // СформироватьИнформационнуюСтроку() "КаталогКартинки" и "ИмяФайлаКартинки" - это строковые поля в справочнике "Номенклатура". Они должны быть заполнены. Можно сделать круче, выводя картинку в плавающее окно. Смотри здесь: Плавающее окно с фоткой |
|||
11
Композитор
05.12.09
✎
23:33
|
на форме элемента объект Картинка (у меня две картинки - фото и чертеж) и кнопка с процедурой ПриИзмененииИмениФайла(). В качестве параметра у меня или "Картинка" или "Чертеж"
Процедура ПриИзмененииИмениФайла(Параметр) Если Параметр = "Картинка" Тогда ИмяФайла = ИмяФайлаКартинки; Если ПустоеЗначение(КаталогКартинки) =1 Тогда ИмяНачКаталога = КаталогИБ()+НачКаталогКартинки; Иначе ИмяНачКаталога = КаталогКартинки; КонецЕсли; Если ФС.ВыбратьФайлКартинки(0,ИмяФайла,ИмяНачКаталога,"Выбрать картинку","*") = 1 Тогда Если Найти(ИмяНачКаталога,КаталогИБ()) = 0 Тогда Предупреждение("Неверный каталог!"); Возврат; КонецЕсли; ИмяФайлаКартинки = СокрЛП(ИмяФайла); КаталогКартинки = СокрЛП(Прав(ИмяНачКаталога,СтрДлина(СокрЛП(ИмяНачКаталога))-СтрДлина(КаталогИБ()))); Файл = КаталогИБ()+СокрЛП(КаталогКартинки)+СокрЛП(ИмяФайлаКартинки); Если ФС.СуществуетФайл(Файл)=1 Тогда Картинка.Загрузить(Файл); Картинка.РежимРисования(3); КонецЕсли; КонецЕсли; ИначеЕсли Параметр = "Чертеж" Тогда ИмяФайла = М_ИмяФайлаЧертежа; Если ПустоеЗначение(М_КаталогЧертежа) =1 Тогда ИмяНачКаталога = КаталогИБ()+НачКаталогЧертежа; Иначе ИмяНачКаталога = М_КаталогЧертежа; КонецЕсли; Если ФС.ВыбратьФайлКартинки(0,ИмяФайла,ИмяНачКаталога,"Выбрать картинку","*") = 1 Тогда Если Найти(ИмяНачКаталога,КаталогИБ()) = 0 Тогда Предупреждение("Неверный каталог!"); Возврат; КонецЕсли; М_ИмяФайлаЧертежа = СокрЛП(ИмяФайла); М_КаталогЧертежа = СокрЛП(Прав(ИмяНачКаталога,СтрДлина(СокрЛП(ИмяНачКаталога))-СтрДлина(КаталогИБ()))); Файл = КаталогИБ()+СокрЛП(М_КаталогЧертежа)+СокрЛП(М_ИмяФайлаЧертежа); Если ФС.СуществуетФайл(Файл)=1 Тогда Чертеж.Загрузить(Файл); Чертеж.РежимРисования(3); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры ну и доп фнкции на допконпках: Процедура ПоКнопкеУдалитьИзображение(Параметр) Если Вопрос("Вы действительно хотите удалить изображнеие?",4) = 7 Тогда Возврат; КонецЕсли; Если Параметр = "Картинка" Тогда ИмяФайлаКартинки = ""; ИначеЕсли Параметр = "Чертеж" Тогда М_ИмяФайлаЧертежа = ""; КонецЕсли; КонецПроцедуры //****************************************************************************** Процедура ПоКнопкеУвеличитьИзображение(Параметр) Если Параметр = "Картинка" Тогда ИмяФайла = СокрЛП(ИмяФайлаКартинки); Каталог = КаталогИБ()+СокрЛП(КаталогКартинки); ИначеЕсли Параметр = "Чертеж" Тогда ИмяФайла = СокрЛП(М_ИмяФайлаЧертежа); Каталог = КаталогИБ()+СокрЛП(М_КаталогЧертежа); КонецЕсли; Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(ИмяФайла, "ИмяФайла"); Параметры.ДобавитьЗначение(Каталог, "Каталог"); ОткрытьФорму("Отчет",Параметры,КаталогИБ()+"ExtForms/"+"М_Изображение.ert"); КонецПроцедуры |
|||
12
aka AMIGO
05.12.09
✎
23:48
|
красиво :)
|
|||
13
Злопчинский
06.12.09
✎
00:39
|
у мну по Ф4 просмотр картинки из многих мест. + отправка картинок по почте из справочников, документов, произвольных наборов и т.д и т.п.
. автору поможет моя маленькая учебка: http://www.infostart.ru/public/17125/ http://www.infostart.ru/public/15239/ |
|||
14
VicAlex
06.12.09
✎
13:43
|
Amigo, "а добавка - папка с именем = Коду Товара". Юзеру в голову ударит сменить код товара, что будет?
|
|||
15
ДенисЧ
06.12.09
✎
13:47
|
(14) Ударь юзверю в голову запретом менять код товара...
|
|||
16
VicAlex
06.12.09
✎
13:50
|
(15)Можно конечно и так,но нежелательно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |