Неизвестный формат картинки 1с

Неизвестный формат картинки 1с

Довольно часто возникает необходимость отображения различных картинок в справочниках или документах. Так, например, нам может понадобиться отображать фотографии нашей продукции в справочнике Товары или фото наших сотрудников в справочнике Сотрудники. Понятно, что такие фотографии лучше всего хранить непосредственно в нашей базе данных 1С. И сегодня мы разберемся, как же добавлять и хранить фотографии в базе данных 1С 8.2, а также как отображать данные фотографии в справочниках и документах.

Пример является универсальным и без труда может быть использован в любой конфигурации платформы 1С: Предприятие 8.2

1. Постановка задачи: нам необходимо реализовать для нашей кадровой службы возможность добавления фотографий в наш справочник Сотрудники и сделать так, чтобы данные фотографии отображались при просмотре информации по конкретному сотруднику. Каждому сотруднику будет устанавливаться 1 фотография.

2. Приступаем к реализации: решение данной задачи будет выполняться с использование платформы 1С:Предприятие 8.2. Скачать платформу 1С 8.2 можно тут.

3. Создайте новую конфигурацию и запустите систему в режиме конфигуратора. Более подробную информацию вы найдете в шагах с 1 по 9 данного пошагового примера.

4. Создайте новый справочник Файлы. Перейдите на закладку «Данные», длину кода и наименования оставьте без изменений. Создайте новый реквизит справочника « Файл » с типом значения ХранилищеЗначения.

Для хранения файлов, в том числе и Картинок в системе 1С Предприятие 8.2 используется особый тип значений — ХранилищеЗначения.

Зачем нам понадобился отдельный справочник Файлы? Ведь можно было создать справочник Сотрудники и в этом справочнике сделать дополнительный реквизит Файл с типом значения ХранилищеЗначения?
Фотографии могут быть довольно большого объема. А если еще у нас будет много сотрудников, то работать с таким справочником очень скоро станет некомфортно. Дело в том, что при открытии списка справочника, считываются все реквизиты (поля) его элементов, а значит, если мы будем хранить фото в его реквизитах, то будут считываться и все фотографии. Понятно, что при выборках и работе со списком справочника Сотрудники система будет «тормозить». Чтобы этого не было, мы создаем отдельный служебный справочник Файлы, а в справочнике Сотрудники будем в одном из реквизитов хранить лишь ссылку на определенный элемент справочника Файлы (ссылку на фото). В таком режиме работать со справочником Сотрудники будет комфортно.

5. Создайте новый справочник Сотрудники. Перейдите на закладку «Данные», длину кода и наименования оставьте без изменений. Создайте новый реквизит справочника Картинка с типом значения СправочникСсылка.Файлы.

6. Перейдите на закладку «Формы» нашего справочника Сотрудники. Для создания формы элемента справочника нажмите на кнопку Открыть.

На первом шаге выбираем тип формы: Форма элемента справочника. На втором шаге убираем галку с реквизита Картинка, так как данный реквизит (ссылку на фото) мы будем заполнять программно, а не интерактивно.

7. Перед нами открывается конструктор форм. Создайте новый реквизит формы Фото, тип – Строка, длина 0.

8. Мышкой перетащите созданный в шаге 7 реквизит Фото на Форму элемента справочника Сотрудники. В свойстве «Вид» получившегося поля меняем значение с «Поле ввода» на «Поле картинки».

Именно в этом поле (Фото) у нас на Форме и будет отображаться фотография, установленная данному сотруднику.

9. Для того, чтобы можно было загружать фотографии в базу данных 1С, создадим команду ДобавитьКартинку.

Перейдите на закладку «Команды» и создайте новую команду «ДобавитьКартинку». Далее нажмите на увеличительное стекло в свойстве «Действие» для перехода в программный модуль и создания шаблона процедуры ДобавитьКартинку(Команда).

10. Теперь в программном модуле нам необходимо описать действие нашей команды «ДобавитьКартинку». Пишем следующий программный код:

&НаКлиенте
Процедура ДобавитьКартинку(Команда)
ИмяФайла = "";
ПутьФайла = "";
//Вызываем Диалоговое окно и помещаем файл Картинки из локальной файловой системы во временное хранилище
Если ПоместитьФайл(ПутьФайла, , ИмяФайла, Истина) = Истина Тогда

//в строковый реквизит ФОТО нашей формы сохраняем ссылку на Картинку во временном хранилище
Фото = ПутьФайла;
//для создания нового элемента в Справочнике Файлы и записи Картинки в его реквизит Файл
//переходим на сервер с помощью вызова серверной процедуры
УстановитьКартинку();
КонецЕсли;
//условие ЕСЛИ нужно для того, чтобы если пользователь отказался от выбора файла
//мы не вызывали серверную процедуру УстановитьКартинку()
КонецПроцедуры

11. Действия по установке (загрузке) картинки и ее отображения на форме нашего справочника Сотрудника необходимо выполнять на стороне сервера. Это особенность работы системы с файлами. Именно для этого в тексте процедуры ДобавитьКартинку осуществляется вызов другой процедуры УстановитьКартинку() , которая будет выполняться на сервере.

В программном модуле, ниже процедуры ДобавитьКартинку(Команда) пишем следующий программный код:

&НаСервере
Процедура УстановитьКартинку()
//создаем новый элемент в Справочнике Файлы
НовыйФайлКартинки = Справочники.Файлы.СоздатьЭлемент();
//в реквизит СправочникаФайлы Файл помещаем выбранную ранее Картинку
НовыйФайлКартинки.Файл = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Фото));
Фото = ПоместитьВоВременноеХранилище(НовыйФайлКартинки.Файл.Получить());
//записываем новый элемент справочника Файлы
НовыйФайлКартинки.Записать();

Читайте также:  Лампа люминесцентная fsl yz30rr26

//устанавливаем значение реквизита Картинка Справочника Сотрудники
Объект.Картинка = НовыйФайлКартинки.Ссылка;
КонецПроцедуры

12. Теперь нам остается добавить на Форму Кнопку и связать Кнопку с нашей командой «ДобавитьКартинку».

13. Как мы уже говорили в шаге 11, для отображения картинки на форме процедуру необходимо выполнять на сервере. Для этого выделяем Форму, в свойствах нашей Формы переходим на закладку «События» и переходим к событию ПриСозданииНаСервере.

14. Напишем программный код процедуры ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) :

//устанавливаем автомасштаб для картинки
Элементы.Фото.РазмерКартинки = РазмерКартинки.АвтоРазмер;
КонецПроцедуры

15. Запускаем систему в режиме 1С:Предприятие и смотрим что у нас получилось:

На этом упрощенная реализация отображения картинок в справочника закончена. Вы можете скачать кофигурацию с данным примером по ссылке ниже:

О том, как можно улучшить нашу конфигурацию и какие дополнительные проверки можно добавить мы поговорим во второй части пошагового примера.

В этой статье я расскажу, как программно работать на управляемой форме с картинкой в 1С 8.3: загружать их на форму, хранить в базе и выводить картинку при открытии формы.

Для демонстрации работы с картинками решим простую задачу: в нашей условной базе имеется справочник Номенклатура, наш заказчик хочет, чтобы к каждой номенклатуре можно было привязать картинку этой номенклатуры. Реализуем эту задачу.

Первым делом у справочника Номенклатура создадим реквизит Картинка с типом ХранилищеЗначений.

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

Сделаем управляемую форму элемента справочника, на которой реализуем следующий функционал: на форме будет размещено поле с картинкой, если картинка не хранится в справочнике, то оно будет пустое, а иначе при открытии формы в 1С необходимо будет получить картинку из базы автоматически, т.е. на форме нужно организовать вывод картинки. Пользователь может загрузить в 1С файл картинки, для этого он должен кликнуть на поле картинки, после этого будет открыта форма выбора файла формата jpg, а после выбора нужного файла, картинка появится на форме. При сохранении элемента, картинка должна будет записаться в базу.

Создадим управляемую форму элемента справочника, у этой формы создадим реквизит СсылкаНаКартинку с типом Строка.

Поместим этот реквизит на форму в виде поля, а вид у данного поля установим «Поле картинки».

Сделаем так, чтобы мы могли загружать картинку по клику мышки на это поле, для этого установим в свойство поле Гиперссылка.

Создадим клиентский обработчик для события Нажатие этого поля.

В этом обработчике напишем код, который будет вызывать диалог открытия файла с расширением jpg.

Опишем процедуру ПослеЗагрузкиФайла, которую указали в описании оповещения, в этой процедуре, если пользователь выбрал файл, мы будем помещать его во временное хранилище при помощи метода НачатьПомещениеФайла.

Следующим шагом, необходимо в процедуре ПослеПомещенияФайла, которая указана в описании оповещения процедуры ПослеЗагрузкиФайла, присвоить реквизиту формы «СсылкаНаКартинку» адрес временного хранилища.

Если мы сейчас сохраним конфигурацию, то наша картинка будет прекрасно загружаться на форму и показываться на ней, но она не будет храниться в базе.

Для того, чтобы картинка хранилась в базе, нам необходимо сохранить картинку в реквизит объекта, делать мы это будем в событии формы ПередЗаписьюНаСервере. Создадим это событие.

В обработчике события проверим, что реквизит формы СсылкаНаКартинку является адресом временного хранилища, и если это так, то получим файл картинки из временного хранилища и запишем его в реквизит Картинка нашего объекта. В конце удалим картинку из временного хранилища, а поскольку у нас реквизиту формы присвоен адрес во временном хранилище, то нужно получить адрес с реквизита объекта, чтобы картинка никуда не делась после сохранения.

И последний штрих: нам нужно сделать так, чтобы при открытии формы, картинка появлялась на форме, если она есть в базе (в хранилище).

Для этого, создадим обработчик для события ПриСозданииНаСервере формы.

И в этом обработчике будем получать навигационную ссылку на картинку.

Всё! Задача выполнена. Теперь мы можем загружать картинку на форму с помощью диалога открытия файлов, сохранять картинку в базу, и выводить картинку на форму при открытии, если она имеется в базе.

Мой опыт преподавания показывает, что многие начинающие и не очень разработчики всё еще слабо программируют в управляемом приложении, теряются во многих вопросах.
Книга «Основы разработки в 1С: Такси» научила программировать под управляемым приложением 300+ начинающих программистов 1С.
И Вы обязательно освоите все тонкости разработки под управляемым приложением 1С 8.3.

Читайте также:  Какие игры тянет geforce 9600 gt

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Только для читателей моего блога,
промо-код на скидку в 150 рублей — blog

Для тех же, кто только начинает:
общие вопросы по разработке в 1С подробно и основательно даются в книге «Программировать в 1С за 11 шагов»

Стартуйте в изучении 1С программирования в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Только для читателей моего блога, промо-код на скидку в 150 рублей — blog

Эти книги плюс книга по разработке оперативного учёт имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

One thought on “ Картинка в 1С 8.3 — программная работа ”

Подскажыте плз а как зделать штоб к 1 товару из справочника номенклатура можна привязать несколько картинок товара не обезательно штоб оны отображались просто штоб были привязаны к одному товару. Вот пример кода который помещает одну картинку как из него зделать несколько картинок ? &НаКлиенте Процедура ПрикрепитьФайл(Команда) // ОбъектТекущий = РеквизитФормыВЗначение(“Объект”); Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.ПолноеИмяФайла = “”; ДиалогОткрытияФайла.Расширение = “”; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; // ДиалогОткрытияФайла.ВыбранныеФайлы = “”; ДиалогОткрытияФайла.Заголовок = “Выберите файлы”; Если ДиалогОткрытияФайла.Выбрать() Тогда ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; // Получение двоичные данные файла //ПутьКФайлу = ДиалогОткрытияФайла.Расширение; ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу); // Имя = Новый ДвоичныеДанные(ПутьКФайлу); //Разширение = Новый ДвоичныеДанные(ПутьКФайлу); // Передача двоичных данные на сервер ПрикрепитьФайлНаСервере(ДвоичныеДанные); Иначе Текст = “ru = “”Файл(ы) не выбран!””; en = “”File(s) not selected!”””; Предупреждение(НСтр(Текст)); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПрикрепитьФайлНаСервере(ДвоичныеДанные) // Трансформируем объект формы в справочник-объект ОбъектТекущий = РеквизитФормыВЗначение(“Объект”); // Присваиваем новое значение реквизиту “Данные” //РегистрыСведений.СопоставлениеДанных. = Новый ХранилищеЗначения(ДвоичныеДанные); ОбъектТекущий.Картинка = Новый ХранилищеЗначения(ДвоичныеДанные); //ОбъектТекущий.КартинкаИмя = Новый ХранилищеЗначения(Имя); //ОбъектТекущий.КартинкаРазширение = Новый ХранилищеЗначения(Разширение); //ОбъектТекущий.Данные = Новый ХранилищеЗначения(ДвоичныеДанные); //ОбъектТекущий.РегистрыСведений.СопоставлениеДанных.Данные = Новый ХранилищеЗначения(ДвоичныеДанные); // Сохраняем изменения ОбъектТекущий.Записать(); // Данные = РегистрыСведений.СопоставлениеДанных.Данные; КонецПроцедуры

Цена решения проблемы

Но чтобы дать конечную оценку, надо смотреть и уточнять детали. позвоните обсудим.

Обычно порядок работ следующий: приезжаю или подключаюсь удаленно, смотрю, даю оценку работ, устраивает — делаю.

Мои услуги

  • Решение когда неизвестный формат картинки 1С 8.3 ошибка
  • Продажа и настройка 1С:Предприятие
  • Загрузка товаров в 1С из Excel, dbf, xml, txt и т.д.
  • Обучение — курсы по работе с 1С
  • Обновление 1С (версии 7.7, 8.1, 8.2 и 8.3)
  • Исправление и восстановление баз 1С
  • Сброс забытых паролей
  • Программирование в 1С — любые задачи
  • Гарантия конфиденциальности!

Быстрое обучение 1С
простым языком

Доступная автоматизация
на базе 1С

Экспресс внедрение
1С за 2 ч.

Сделаю в 1С то
что нужно именно Вам!

Наименование услуги Стоимость
Неизвестный формат картинки 1С 8.3 ошибка от 1000 руб.
Помощь в решение именно ВАШЕЙ задачи от 300 руб.
Настройка 1С от 800 руб.
Настройка маркировки (одежды и обуви) по договору
Проверка компьютера на вирусы (при заказе любой услуги) БЕСПЛАТНО
Облачная 1С Предприятие 8.3 от 700 руб. в месяц
Обучение 1С (план обучения) по договору
Торговое оборудование
Настройка ЕГАИС и онлайн-касс от 800 руб.
Подключение сканера штрих-кода, эквайринга к 1С от 1000 руб.
Настройка принтера этикеток, принтера чеков, дисплея покупателя, весов и т.д от 600 руб.
Обновление 1С
При заказе обновления, проверка базы на ошибки БЕСПЛАТНО
Обновление типовой базы 1С от 800 руб.
Доработка 1C
Создание нового отчета 1С от 600 руб.
Разработка новой печатной формы 1С от 500 руб.
Загрузка товаров в 1С из Excel по договору
Сопровождение (обслуживание) 1С Предприятие см. тарифы
Ускорение работы компьютера (чистка от мусора) 2000 руб.
Сканер штрих-кода 2D (бесплатная доставка) видео обзор сканера
Продажа 1С Предприятие 8.3 (лицензия) по договору (подробнее)
Цена часа работ 500 руб.
Читайте также:  Что делать если battle net инициализация

Сравнение цены часа работ, это боль и слезы 1С.

Программист с опытом работы 15 лет — который может за 3 минуты рассказать главбуху ГазпромаАэрофлотаРЖД на каком счете "раки зимуют" и программист с опытом 1 год — это "просто" программисты и для клиента они ОДИНАКОВЫЕ!

Как такое возможно?

Всё для клиента и чтобы он не задавал лишних вопросов. но:

1. Вы знаете какой программист решает вашу задачу? С опытом 10 лет или 1 год?

2. Вы знаете сколько действительно нужно времени на решение задачи?

3. Может вы знаете с какой скоростью думает программист?

4. А еще лучше — вспомните профессии с оплатой по часам где выгодно делать максимально быстро?

5. Итого — чем больше тратишь времени на работу — тем больше ты заработает!

Вам еще не смешно? Программисту просто выгодно рассказывать часами (подбирая нужные слова) как "считать на пальцах одной руки".

Замечу что — если твоя работа "вешать лапшу" + программировать, это не очень то и приятно. но а как по другому продавать часы?

Поэтому я даю оценку — за решение задачи!

Какую 1С выбрать?

Ваша сфера деятельности:

Магазин розничный
Оптовая торговля
Опт и розница
Производство и торговля
Автосервис
Другое

Сколько человек ОДНОВРЕМЕННО работает в 1С?

Под ваши требования подходит

Конфигурация 1С

*Перед покупкой проконсультируйтесь с специалистом

Сферы деятельности моих клиентов: торговля одеждой, торговля строительными материалами, торговля авто запчастями, услуги СТО (автосервис), торговля косметикой, торговля мебелью, торговля инструментом (для ремонта), торговля электрикой, розничная торговля (практически все ее сферы) и т.д.

Мои клиенты, в основном это компании в сфере торговли. Которые обращаются по оперативным работам в 1С и когда неизвестный формат картинки 1С 8.3 ошибка.

Мои готовые модули (для автомобильной отрасли) можно посмотреть здесь: www.auto-soft-lab.ru.
Любой модуль можно адаптировать для любой сферы бизнеса.

Сопровождение и обслуживание 1С

Тариф Стоимость
Только обновление 1С — одной базы №1 бесплатно (при покупке ИТС на год)
Только обновление 1С — одной базы №2 800р. в мес.
Обновление нескольких баз 1С 600р. за одну базумес
Обновление нескольких баз 1С + консультации по договору
Обновление нескольких баз 1С + консультации + доработки по договору

  • Специалист 1С с общим опытом программирования — более 8 лет.

Сразу говорю цену и сроки работ.

Всегда на связи — дозвониться можно всегда!

Предлагаю готовые решения — а не изобретаю каждый раз "велосипед".

Когда неизвестный формат картинки 1С 8.3 ошибка — решаю проблему!

  • Всегда соблюдаю сроки!
  • Вывод: делайте копии 1С ежедневно или закажите сопровождение 1С.

    Для надежной работы 1С рекомендую следующие работы:

    • Создание резервных копий — каждый день
    • Проверка базы на ошибки — раз в неделю
    • Обновление базы — раз в месяца
    • Свертка базы (для уменьшения ее объема) — раз в год

    Я провожу индивидуальное обучение !
    Обучение занимает 3-4 часа, и поверьте моему опыту, этого достаточно чтобы научиться работать в 1С. Бонус — в любое удобное время (день), еще 1 час обучения для ответов на накопившиеся у вас вопросы.

    Три самых частых вопроса

    • 1. Мне точно не хватит 4 часа!
      Ответ: поверьте, хватит. смотрите видео пример обучения в 1С.

    2. Обучение дистанционное? как-то мутно.
    Ответ: если я буду стоять рядом, запоминать Вы лучше не станете.

  • 3. Я точно не запомню, и будет много вопросов которых небыло на обучение
    Ответ: во время обучения я отвечаю на все Ваши вопросы.
    Курсы, это курсы, а ответы на вопросы во время работы — это сопровождение 1С (оно у меня тоже есть).
  • План обучения 1С:Предприятие

    • 1. Как купить товар
    • 2. Как назначить ему цены
    • 3. Как распечатать ценники и прайс-лист
    • 4. Как оформить продажу
    • 5. Как посмотреть отчеты по закупкампродажамостаткам
    • 6. Как провести инвентаризацию
    • 7. Ответы на ВСЕ ваши вопросы!

    Обучение проводится дистанционно, надо только договорится о времени обучения.

    Результат обучения

    • 1. Вы уверенно работаете в 1С
    • 2. Вы знаете что умеет и чего не умеет 1С (это нужно чтобы вам не "вешали лапшу" при доработки 1С )
    • 3. Вы получаете видео запись обучения

    100% гарантия возврата средств

    Оплатив курс, если вам не подойдет формат обучения, сообщите об этом в течении первого часа обучения, и без лишних вопросов верну ваши деньги.

    Ссылка на основную публикацию
    Не удалось вычислить задержку проверьте интернет соединение
    Задержка в Доте 2: что делать? Проблемы с интернетом в различных регионах всегда остаются актуальными. Речь идет даже не о...
    Наигач значение слова википедия
    вопрос опубликован 21.01.2017 04:17:02 Это же шифровка. Если бы было всё понятно, то это не была бы шифровка, а была...
    Не включается принтер epson l132
    Довольно часто владельцы печатающей оргтехники сталкиваются со следующей банальной проблемой — не включается принтер. Т.е. вы нажимаете на кнопку, отвечающую...
    Не удалось подключиться к серверам warface ps4
    Подключение к сети PlayStation Network необходимо для корректной работы игр на PS4 и системы в целом. Если PS4 не удается...
    Adblock detector