|   |   | 
| 
 | Как добавить картинку в поле таблицы | ☑ | ||
|---|---|---|---|---|
| 0
    
        Julia_S12 18.02.13✎ 09:34 | 
        Добрый День!
  Помогите разобраться. Мне нужно вставить в поле таблицы отсканированный документ(Картинку). Как это сделать не могу понять. Данные будут храниться на сервере | |||
| 1
    
        aka AMIGO 18.02.13✎ 09:37 | 
        (0) для начала нажми красную букву "Я" справа от топика     | |||
| 2
    
        Случайный прохожий 18.02.13✎ 09:42 | 
        (0) Фотка где?     | |||
| 3
    
        Julia_S12 18.02.13✎ 09:46 | 
        О, Насчет кнопки спасибо..Сейчас посмотрю что ниб, но сколько не исала ничего найи не могла.точнее есть много, но для меня пока что не понятно..поэтому и прошу помочь так скажем с нуля..     | |||
| 4
    
        Julia_S12 18.02.13✎ 09:49 | 
        наверно мне нужно, чтоб при нажатии кнопки, было окно выбора файла, при выборе фото вставлялось в таблицу (пусть не сама картинка, а имя), но чтоб это была как ссылка. Например нашли в таблице нужного человека, и к нему прикреплен файл-резюме. Нажали на имя файла, и можно было просматривать в стандартных программах просмотра     | |||
| 5
    
        aka AMIGO 18.02.13✎ 09:50 | 
        (3) на здоровье :)
  на первой странице форума есть еще одна кнопка, называется "Поиск". Я нажал её, в поле поиска ввет твой заголовок, получил вот что: http://www.google.ru/search?as_sitesearch=forum.mista.ru&q=%CA%E0%EA+%E4%EE%E1%E0%E2%E8%F2%FC+%EA%E0%F0%F2%E8%ED%EA%F3+%E2+%EF%EE%EB%E5+%F2%E0%E1%EB%E8%F6%FB когда вопросы были, я понимаю форумчан, отвечать не очень хочется.. ведь всё было, было.. :) | |||
| 6
    
        Cube 18.02.13✎ 09:51 | 
        (0) На этом форуме девушкам принято сначала фотку в личную карточку вставлять, а потом уже вопросы задавать :)
  Чем удачнее фото, тем оперативнее ответы :) | |||
| 7
    
        Julia_S12 18.02.13✎ 09:52 | 
        аа..вон оно как:) ну щас вставлю)     | |||
| 8
    
        Julia_S12 18.02.13✎ 10:02 | 
        Ну давайте пока подумаем над поим вопросом))     | |||
| 9
    
        Cube 18.02.13✎ 10:04 | 
        (8) Не плохо.
  Тебе картинку надо в табличный документ вставить или в таблицу значения, я что-то не понял чуть-чуть? | |||
| 10
    
        Julia_S12 18.02.13✎ 10:04 | 
        Я не спорю, есть какие то фрагменты..Но я только начала узнавать 1с,     | |||
| 11
    
        Случайный прохожий 18.02.13✎ 10:07 | 
        Может быть таблица в вашем понимании - это есть форма списка справочника сотрудников?     | |||
| 12
    
        Julia_S12 18.02.13✎ 10:07 | 
        мм...ну смотри...Я создаю информацию о человеке, Реквизиты ФИО, УЧ.Учреждение, ну и т.д, и туда же (в информацию о данном человеке мне нужно будет поместить отсканированное резюме).     | |||
| 13
    
        Cube 18.02.13✎ 10:09 | 
        (12) "и туда же" - нет такого объекта в 1С :)
  Ну хоть скрин покажи, если объяснить не можешь :) | |||
| 14
    
        Julia_S12 18.02.13✎ 10:16 | 
        и куда мне скрин вставлять?     | |||
| 15
    
        aka AMIGO 18.02.13✎ 10:21 | 
        (14) хотя-бы сюда: http://itmages.ru/     | |||
| 16
    
        Cube 18.02.13✎ 10:21 | 
        (14) На любой хостинг картинок, например, сюда: http://itmages.ru     | |||
| 17
    
        Julia_S12 18.02.13✎ 10:24 | 
        Спасибо за подсказку:)
  http://itmages.ru/image/preview/901074/687011b1 | |||
| 18
    
        Cube 18.02.13✎ 10:25 | 
        (17) Сюда надо вставлять ПРЯМУЮ ССЫЛКУ :)     | |||
| 19
    
        Cube 18.02.13✎ 10:25 | ||||
| 20
    
        Случайный прохожий 18.02.13✎ 10:25 | 
        Версия платформы какая? Конфигурация типовая или самописанная?     | |||
| 21
    
        Cube 18.02.13✎ 10:26 | 
        (17) Ну и где на скрине мосто для фото? :)     | |||
| 22
    
        Julia_S12 18.02.13✎ 10:26 | 
        вот самое последнее поле: Резюме. Мне нужно, чтоб я могла выбирать сама файл, и после нажатия кнопки записать и сохранить в таблице как это отображалось     | |||
| 23
    
        Cube 18.02.13✎ 10:26 | 
        (20) Судя по скрину - самописка на УФ     | |||
| 24
    
        Julia_S12 18.02.13✎ 10:26 | 
        я сама её создаю.     | |||
| 25
    
        Случайный прохожий 18.02.13✎ 10:27 | 
        (17) А, все догадался :) Ошибочки орфографические исправьте :)     | |||
| 26
    
        Cube 18.02.13✎ 10:27 | 
        (22) Где ты таблицу на скрине видишь? Может я ослеп? :))     | |||
| 27
    
        Julia_S12 18.02.13✎ 10:28 | 
        ну походу я совсем тупая:В Простите уж:) Ну когда нажимаем записать и сохранить данные в таблицу записываются..     | |||
| 28
    
        Julia_S12 18.02.13✎ 10:28 | 
        Обязательно исправлю)     | |||
| 29
    
        Cube 18.02.13✎ 10:29 | 
        (27) Ты покажи скрин и выдели рамкой место, куда ты хочешь картинку с резюме разместить.     | |||
| 30
    
        Julia_S12 18.02.13✎ 10:30 | 
        точнее провести и закрыть     | |||
| 31
    
        Cube 18.02.13✎ 10:30 | 
        Ладно, у нас тут свет пропал, так что я исчезаю... :)     | |||
| 32
    
        aka AMIGO 18.02.13✎ 10:32 | 
        (29) ей не картинку надо, а поле с адресом картинки, справа кнопка выбора и вторая - кнопка просмотра     | |||
| 33
    
        Julia_S12 18.02.13✎ 10:34 | 
        Да, Именно так.     | |||
| 34
    
        aka AMIGO 18.02.13✎ 10:42 | ||||
| 35
    
        Cube 18.02.13✎ 10:44 | 
        (34) Это для УФ не подойдет.     | |||
| 36
    
        aka AMIGO 18.02.13✎ 10:45 | ||||
| 37
    
        Cube 18.02.13✎ 10:46 | 
        (36) Счас мой пофигуратор откроется - скину для УФ     | |||
| 38
    
        Случайный прохожий 18.02.13✎ 10:47 | 
        Ну если с самых низов: У тебя есть некий справочник физических лиц (сотрудников, пользователей, не важно вообщем). В этот справочник пихаешь еще один реквизит с типом "Строка" (сюда будешь сохранять путь до картинки). Сами картинки будут храниться где-нибудь в папке с базой. Соответственно этот реквизит выводишь в форму элемента справочника физ.лиц. В свойствах ставишь галочку "Имеет кнопку выбора". При нажатии на кнопку запускаешь функцию выбора картинки (файла картинки), которая в качестве возвращаемого значения возвращает адрес до файла и записывает его в наш реквизит (типа пункта 34-го). Вот... Пол дела сделано. Теперь пихаешь поле картинки туда, куда тебе нужно, и при открытии (или при нажатии на некую кнопочку) должна запускаться некая функция, которая бы обновляла картинку, исходя из сохраненного адреса. Вообщем я написал много букв и сильно устал :)     | |||
| 39
    
        Cube 18.02.13✎ 10:51 | 
        Загрузка файла (в примере подгружается word-файл):
  &НаКлиенте Процедура ЗагрузитьМакет(Команда) Если ПодключитьРасширениеРаботыСФайлами() Тогда ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытияФайла.ПолноеИмяФайла = Объект.ИмяФайлаМакета; ДиалогОткрытияФайла.Фильтр = "Документ Word 97-2003 (*.doc)|*.doc|Документ Word (*.docx)|*.docx"; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите файл макета'"); ПомещаемыеФайлы = Новый Массив; ПомещенныеФайлы = Новый Массив; Если ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, ДиалогОткрытияФайла, Истина) Тогда МассивПодстрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ПомещенныеФайлы[0].Имя, "\"); Объект.ИмяФайлаМакета = МассивПодстрок.Получить(МассивПодстрок.ВГраница()); Если НЕ ЗначениеЗаполнено(Объект.Наименование) Тогда МассивПодстрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Объект.ИмяФайлаМакета, "."); Объект.Наименование = Лев(Объект.ИмяФайлаМакета, СтрДлина(Объект.ИмяФайлаМакета) - СтрДлина(МассивПодстрок[МассивПодстрок.Количество() - 1]) - 1); КонецЕсли; Объект.ДатаЗагрузкиМакета = ТекущаяДата(); ЗарегистрироватьМакет(ПомещенныеФайлы[0].Хранение); Иначе Возврат; КонецЕсли; Иначе АдресВоВременномХранилище = ""; ВыбранноеИмяФайла = ""; Если ПоместитьФайл(АдресВоВременномХранилище, , ВыбранноеИмяФайла, Истина) Тогда МассивПодстрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ВыбранноеИмяФайла, "\"); Объект.ИмяФайлаМакета = МассивПодстрок.Получить(МассивПодстрок.ВГраница()); Если НЕ ЗначениеЗаполнено(Объект.Наименование) Тогда МассивПодстрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Объект.ИмяФайлаМакета, "."); Объект.Наименование = Лев(Объект.ИмяФайлаМакета, СтрДлина(Объект.ИмяФайлаМакета) - СтрДлина(МассивПодстрок[МассивПодстрок.Количество() - 1]) - 1); КонецЕсли; ЗарегистрироватьМакет(АдресВоВременномХранилище); Иначе Возврат; КонецЕсли; КонецЕсли; ОбновитьИнформациюОФайле(); КонецПроцедуры //ЗагрузитьМакет() &НаСервере Процедура ЗарегистрироватьМакет(АдресВоВременномХранилище) ДвоичныеДанныеОбработки = ПолучитьИзВременногоХранилища(АдресВоВременномХранилище); ДвоичныеДанныеОбработки.Записать(ПолучитьИмяВременногоФайла()); Модифицированность = Истина; ЗаписатьМакет = Истина; КонецПроцедуры //ЗарегистрироватьМакет() &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если ЗаписатьМакет Тогда ТекущийОбъект.ХранилищеМакета = Новый ХранилищеЗначения(ДвоичныеДанныеОбработки, Новый СжатиеДанных(9)); ЗаписатьМакет = Ложь; КонецЕсли; КонецПроцедуры //ПередЗаписьюНаСервере() | |||
| 40
    
        Cube 18.02.13✎ 10:53 | 
        +(39) Тут используется процедура общего модуля "РазложитьСтрокуВМассивПодстрок", вот она:
  // Разбивает строку на несколько строк по разделителю. Разделитель может иметь любую длину. // // Параметры: // Строка - Строка - текст с разделителями; // Разделитель - Строка - разделитель строк текста, минимум 1 символ; // ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк. // Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией: // - для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки // включаются в результат. // - если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в // случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а // при других разделителях результатом функции будет пустой массив. // // // Возвращаемое значение: // Массив - массив строк. // // Примеры: // РазложитьСтрокуВМассивПодстрок(",один,,два,", ",") - возвратит массив из 5 элементов, три из которых - пустые строки; // РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина) - возвратит массив из двух элементов; // РазложитьСтрокуВМассивПодстрок(" один два ", " ") - возвратит массив из двух элементов; // РазложитьСтрокуВМассивПодстрок("") - возвратит пустой массив; // РазложитьСтрокуВМассивПодстрок("",,Ложь) - возвратит массив с одним элементом "" (пустой строкой); // РазложитьСтрокуВМассивПодстрок("", " ") - возвратит массив с одним элементом "" (пустой строкой); // Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт Результат = Новый Массив; // для обеспечения обратной совместимости Если ПропускатьПустыеСтроки = Неопределено Тогда ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); Если ПустаяСтрока(Строка) Тогда Если Разделитель = " " Тогда Результат.Добавить(""); КонецЕсли; Возврат Результат; КонецЕсли; КонецЕсли; // Позиция = Найти(Строка, Разделитель); Пока Позиция > 0 Цикл Подстрока = Лев(Строка, Позиция - 1); Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда Результат.Добавить(Подстрока); КонецЕсли; Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); Позиция = Найти(Строка, Разделитель); КонецЦикла; Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда Результат.Добавить(Строка); КонецЕсли; Возврат Результат; КонецФункции | |||
| 41
    
        Случайный прохожий 18.02.13✎ 10:54 | 
        (17) Поле "Отзыв о практике" (так-же как и "Задачи на практику") - сделай многострочным. Оценку перемести куда-нибудь в шапку на самое видное место и по умолчанию заполняй хотя бы двойкой (а то что это за оценка "0"??)     | |||
| 42
    
        Cube 18.02.13✎ 10:54 | 
        +(39) В реквизиты формы нужно добавить реквизит "ДвоичныеДанныеОбработки" с типом "Произвольный".     | |||
| 43
    
        Cube 18.02.13✎ 10:54 | 
        +(42) И Реквизит "ЗаписатьМакет" с типом "Булево".     | |||
| 44
    
        Случайный прохожий 18.02.13✎ 10:59 | 
        Cube, вот взял и девушку спугнул... (((     | |||
| 45
    
        Cube 18.02.13✎ 11:09 | 
        (44) У так УФ не для слабонервных)))     | |||
| 46
    
        Julia_S12 18.02.13✎ 12:04 | 
        нет нет..я тут:)     | |||
| 47
    
        Julia_S12 18.02.13✎ 12:05 | 
        я тут разбираюсь что вы мне посоветовали:)     | |||
| 48
    
        Cube 18.02.13✎ 12:11 | 
        (47) Ты погоди. Сейчас самое главное раз и навсегда решить: файлы с резюме должны храниться в базе или в папке на сервере?
  Я привел пример для хранения в базе. Если хранить в папке на сервере, то код намного проще, примерно как в (34). | |||
| 49
    
        Julia_S12 18.02.13✎ 12:17 | 
        давай чтоб на сервере     | |||
| 50
    
        Julia_S12 18.02.13✎ 12:17 | 
        в базе если этож весить она потом много будет, так же??     | |||
| 51
    
        Cube 18.02.13✎ 12:20 | 
        (50) Ну, у каждого способа свои плюсы и минусы.
  Допустим, при хранении на сервере, можно папку стереть "нечаянно", но зато можно посмотреть файл не открывая 1С... | |||
| 52
    
        Cube 18.02.13✎ 12:21 | 
        (49) Если на сервере, то в базе тебе нужен просто реквизит с типом "Строка" неограниченной длины, в котором ты будешь хранить путь до файла. Сейчас накидаю простой пример.     | |||
| 53
    
        Julia_S12 18.02.13✎ 12:23 | 
        давай, жду:)     | |||
| 54
    
        Julia_S12 18.02.13✎ 12:26 | 
        т.е когда пользователь будет выбирать вставляемую картинку этот путь будет копироваться в эту строку, правильно? а как в  базе отображаться будет?? в видде ссылки? И можно ещё раз сказать как сделать выбор..чтоб выскакивало окошко выбора....я ж чайник:) Пока что :)     | |||
| 55
    
        Cube 18.02.13✎ 12:32 | 
        +(52) Вот обработка: http://files.mail.ru/C536707A04D843D48ED99A4D4D79094D
  Вот её модуль формы (на всякий случай): &НаКлиенте Процедура ПутьДоФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбораФайла.Заголовок = "Выберите файл"; Если ДиалогВыбораФайла.Выбрать() Тогда Объект.ПутьДоФайла = ДиалогВыбораФайла.ПолноеИмяФайла; КонецЕсли; КонецПроцедуры //ПутьДоФайлаНачалоВыбора() &НаКлиенте Процедура ПутьДоФайлаОткрытие(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; КомандаСистемы("explorer " + Объект.ПутьДоФайла); КонецПроцедуры //ПутьДоФайлаОткрытие() | |||
| 56
    
        Cube 18.02.13✎ 12:33 | 
        (54) В базе будет просто строка храниться. Если надо где-то отобразить, то при любом способе хранения нужно ещё код отображения писать.     | |||
| 57
    
        Julia_S12 18.02.13✎ 12:35 | 
        а ты знаешь этот код??:)     | |||
| 58
    
        Cube 18.02.13✎ 12:37 | 
        (57) Глупый вопрос :)
  После прочтения (39) у тебя разве не возникло такого ощущения? :) | |||
| 59
    
        Julia_S12 18.02.13✎ 12:39 | 
        так..ну сейчас я разбирусь немного и напишу что я поняла из всего этого:)     | |||
| 60
    
        Cube 18.02.13✎ 12:42 | 
        (59) Да да, ты сначала сделай одно, а потом уже хватайся за другое)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |