Как реализовать в форме элемента справочника выбор картинок - Общие вопросы по 1С 7.7 - 1С v.7.7 - Каталог статей - Программирование в 1С
Программирование в 1СВоскресенье, 04.12.2016, 01:51

| RSS
Главная | Каталог статей
Меню сайта

Категории раздела
Основы [36]
Общие вопросы по 1С 7.7 [88]
1С: Бухгалтерия 7.7 [7]
1С: Торговля 7.7 [4]
1С:Зарплата и кадры 7.7 [1]
1С 7.7: Проблемы и решения [33]
УРБД [3]
Управление Распределенными Базами Данных
OLE [2]
Механизм обмена данными между базами 1С через OLE
SQL [1]
Сервер терминалов [1]
Интеграция с внешними приложениями [3]
FAQ по 1С v.7.7 [7]
FAQ по 1С v.7.7

Поиск

Поиск по сайту

Главная » Статьи » 1С v.7.7 » Общие вопросы по 1С 7.7

Как реализовать в форме элемента справочника выбор картинок
Как реализовать в форме элемента справочника выбор картинок
 
    Рассмотрим ситуацию на таком примере: в конфигурации есть сотрудники, нужно, чтобы к каждому сотруднику «цеплялась» его фотография. Исходные фотографии в формате jpg храним в папке photo внутри папки с базой.
 
Последовательность действий по шагам:
1) Сначала нужно в глобальном модуле объявить глобальную переменную КаталогФотографий:
Перем КаталогФотографий Экспорт;
2) Затем в предопределенной процедуре глобального модуля ПриНачалеРаботыСистемы() нужно подготовиться к работе с фотографиями:
КаталогФотографий = КаталогБазыДанных()+"photo\”;
Если (ФС.СуществуетФайл(КаталогФотографий+”.")=0) Тогда
    ФС.СоздатьКаталог(КаталогФотографий);
КонецЕсли;
    Здесь мы присваиваем начальное значение переменной КаталогФотографий и создаем папку photo внутри папки с базой, если таковой нет.
3) В справочник «Сотрудники» добавляем новый реквизит ИмяВыбрФайла (строка длиной 50 символов) – здесь мы будем хранить имя выбранного файла с фотографией сотрудника.
4) Открываем форму элемента справочника Сотрудники, вкладку Диалог. Создаем в диалоге новый элемент форме с типом Картинка и идентификатором Фотография, под ним кнопку с заголовком Фотография и вызовом функции Фото() в поле Формула: на закладке «Дополнительно», а также вторую кнопку со знаком Х в поле «Заголовок» и вызовом функции УдалитьФото() в поле Формула: на закладке «Дополнительно».
5) Займемся кодом. Код вставляется на вкладке Модуль формы элемента справочника.
Как должно быть понятно из п.4, нам нужны две функции: Фото() и УдалитьФото().
Вот код первой из них:

Процедура Фото()
    ИмяВыбрФайла = "”;
    ИмяПути = "”;

    Если ФС.ВыбратьФайлКартинки(0, ИмяВыбрФайла, ИмяПути, "Выберите файл”, "jpg”, )=1 Тогда
        Фотография.Загрузить(ИмяПути+ИмяВыбрФайла);
    КонецЕсли;
    Фотография.РежимРисования(3);
КонецПроцедуры

Вот код второй процедуры

Процедура УдалитьФото()
    А=СоздатьОбъект("Картинка”);
    Фотография.УстановитьКартинку(А);
КонецПроцедуры

6) Теперь нам осталось внести изменения в предопределенную процедуру ПриОткрытии() формы элемента справочника:

Если ПустоеЗначение(ИмяВыбрФайла) = 0 Тогда
   ФайлФото=КаталогФотографий+СокрЛП(ИмяВыбрФайла);
   Если ФС.СуществуетФайл(ФайлФото)=1 Тогда
      Фотография.Загрузить(КаталогФотографий+ФС.НайтиПервыйФайл(ФайлФото));
   КонецЕсли;
КонецЕсли;

    Эту вставку можно сделать в самом конце процедуры ПриОткрытии(), перед КонецПроцедуры. Если в вашей конфигурации в модуле формы выбранного справочника процедура ПриОткрытии() отсутствует, то ее нужно создать в таком виде:

Процедура ПриОткрытии()
    Если ПустоеЗначение(ИмяВыбрФайла) = 0 Тогда
        ФайлФото=КаталогФотографий+СокрЛП(ИмяВыбрФайла);
        Если ФС.СуществуетФайл(ФайлФото)=1 Тогда
            Фотография.Загрузить(КаталогФотографий+ФС.НайтиПервыйФайл(ФайлФото));
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
Категория: Общие вопросы по 1С 7.7 | Добавил: Spacer (10.08.2008)
Просмотров: 4851 | Комментарии: 4
Всего комментариев: 4
1  
Spacer, все сделал как ты описал, но не сработало! Пишет что "Переменная не определена (ИмяПути)"
Подскажи, в чем может быть проблема?

2  
Где выдаёт эту ошибку? В процедуре Фото()?
Её нужно изменить следующим образом:
Code
Процедура  Фото()
  ИмяВыбрФайла = “”;
  ИмяПути = “”;
  Если ФС.ВыбратьФайлКартинки(0, ИмяВыбрФайла, ИмяПути, “Выберите файл”, “jpg”, )=1 Тогда
     Фотография.Загрузить(ИмяПути+ИмяВыбрФайла);
  КонецЕсли;
  Фотография.РежимРисования(3);
КонецПроцедуры

3  
Большое спасибо! Все работает :)

4  
Здравствуйте, а не подскажете как сделать привязку нескольких фотографий к товару, но так чтобы у разных товаров могло быть разное количество изображений?

Зы Ваша статья очень помогла, все работает.


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Copyright 1C:Programmer © 2016
    Бесплатный конструктор сайтов - uCoz