1с вставить gif на форму

Обновлено: 06.07.2024

Подскажите, пожалуйста, как вставить на форму или в отчет 1С анимированную картинку формата gif?

(0)Извращениями занимаетесь? Стандартно никак нельзя.
Выходы
- ВК, только я такую не знаю.

"визуализации происходящих процессов" - какие процессы?

Открой рядом с отчетом страничку в инете, найди подходящую картинку. и все

"Руководство требует визуализации происходящих процессов"
хехе, а если Руководство потребует свою ОС написать - тоже прийдёшь сюда на форум и будешь нудить?

+(1,5) Через цикл (ОбработкаОжидания), можно организовать только на форме, в таблице отчета нельзя.

(10)
Во-первых,"на форму или в отчет" - тут стоит условие ИЛИ ;)
Во-вторых, можно.

"Руководство требует визуализации происходящих процессов"
Как-то давным-давно выводил на экран процесс заполнения резервуара топливом. Не 1С. Обошелся псевдографикой. Может и здесь достаточно ячейку закрасить?

(13)А можно вообще ASCII-художеством занятся - все в текстовом режиме и анимацию можно намутить ;)

(11) Скажи как. А то я, в свое время, мучался мучался . и пришел к выводу что нельзя.

Когда-то на БК0010 рисовал сердце и ещё какие-то органы (для контрольной по биологии). Псевдографикой. До сих пор содрогаюсь при воспоминании.

(+13) псевдографика - для некоторых это "страшное" слово совешенно незнакомо, хотя часто дает именно то, что искали :-)

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

(19)Т.е. ты не знаешь, просто у тебя мысли есть :).
Перерисовывать таблицу можно, изменять цвет, шрифт и т.д. Но изменить картинку нельзя. Проверено :(.

(20) отчего так пессимистично. можно. причем несколько вариантов. например все картинки в свои секции запихать и выводить согласно тому, что надо.

(20)Загрузить(<?>);
Синтаксис:
Загрузить(<ИмяФайла>)
Назначение:
Загрузить картинку из файла.
Параметры:
<ИмяФайла> - строковое выражение, которое может задавать: - идентификатор картинки в библиотеке картинок конфигурации или имя файла картинки.

2(24) каким боком тут 1С?
Кстати, скажи хоть где ентот "реактор", я родных вывезу оттуда.

(22,23) Знаю, ЖКХ читал, но не проходит.
М.з. делал для таблице в режиме ввода данных.

(0)Проигрывайте лучше аудео ролики (каким нибудь "гнусавым" голосом), через недельку интузиазм руководства по воду "визуализации" кончится и будет достточно ВК типа ADDY.DLL.

(20) "например все картинки в свои секции запихать и выводить согласно тому, что надо. "
Анимацию на этом не построишь.

(31) дык тут постановка вопроса сама по себе смешная. 1С контролирует реактор (надеюсь не ядреный) да еще с мультиками.

Предвижу дальнейшее развитие системы. Оператор визуально по цвету смеси в "рекаторе" (не знаю что это такое) определяет - готово! Тыкает мышкой в нужный винтель и продукция потекла в бочку. Следит за наполнением бочки, потом также мышкой дает команду на подачу пустой . "Ошибка приложения 1cv7s.exe, версия 7.70.0.25 . "

можно ещё Тобика из MS:Office прикрутить. Вполне реально!
Колдун разводит пассы руками над реактором, Тобик подбегает, пробует, падает замертво. Смесь готова.

(32)Ну это проблемы автора :).
Я вот пытался в отчете отметить важные пункты мигающей картинкой но . хрена вам :(.
В конце концов сделал просто мигание изменением цвета ячейки. Правда есть один неприятный момент, при изменении цвета ячеци (шрифта и т.п.) перерисовывается вся таблица, мигает все :), на не очень шустрых компьютерах глаза болят :).

домой пора. жаль, если ветка умрет до завтра. прикольная.

как вариант, формировать HTML файл с данными и любой необходимой анимацией.

2(0) скажи шефу, что производительнось системы упадет на 50%, может одумается.

Приветствую. Никак не могу найти простейшей анимации пользователю, пока исполняется код на сервере (управл. формы, не БСП, самописное что-то).

Пытаюсь сделать формочку, доб. декорацию, задаю картинку "ДлительнаяОперация48" - нет никакой анимации в итоге, просто отображает статично картинку. Да что в этом 1с кругом везде ничего не является тем, чем кажется на первый взгляд? Ну почему не показывает нормально gif?

Заранее огромное спасибо всем, кто поможет

(4) Это конечно, но оно же исчезает сразу, не дожидаясь пока завершится долгая серверная оп Пытаюсь сделать формочку, доб. декорацию, задаю картинку "ДлительнаяОперация48" (8) Нет! В тонком клиенте у меня просто статичная картинка! Как получается, что у Вас декорация отображает ее как анимированную?? (9) как верно замечено в (10) вы просто на время серверной процедуры пытаетесь картинку показать? В это время клиент тупо ждет возврата управления на клиент. Запускайте серверную процедуру фоновым заданием.
Или вообще анимации нет?

(11) Вообще анимации нет. Отвлекаясь от всего, я просто показываю формочку не как модальную, просто форму с gif-декорацией. Почему нет анимации?

В модуле формы у меня проц "НаСервере" - как её запустить фоновым заданием? (дико извиняюсь, если оч тупые у меня вопросы

(13) если анимации нет вообще, в том числе и без серверных вызовов, то что-то не так сделали.

Код запуска задания:

Обработчик в серверном модуле:


Потому что операция не длительная, а просто выполняется на сервере длительное время, потому gif просто замирает. Надо запустить в фоне (10) Честно, не очень понял (в 1с недавно). Вот из проц "НаКлиенте" собираюсь запустить долгую проц "НаСервере". Я сделал формочку , там у меня декорация "ДлительнаяОперация48" , но нет никакой анимации при показе этой формочки. почему формочка, просто пока она открыта перед юзером, - почему она не показывает анимацию?

произведите вскрытие котика из БП 3.0 и не плодите мутантов.

мне нравится как он зевает

(2) Спасибо за совет, но нет сейчас у меня БП 3 под руками, хочу сделать срочно, а пока я разберусь с тем котом из БП. Неужели нельяз что-то ПРОСТЕЙШЕЕ родить самому??

с отметкой прогресса выполнения

(6) Так процедура же вып на сервере! Никакого прогресса не будет по любому! Так ладно, это уже бы пусть. Да хоть просто картинку простейшую АНИМИРОВАННУЮ показать юзеру - и то для 1с проблема (7) У вас в конфигураторе когда открываешь эту форму с картинкой gif анимация есть?
Вот у меня есть везде и в конфигураторе и в тонком и в любом клиенте (14) Спасибо , посмотрю , но пока мне больше нравится идея формочки с анимацией, и все, но как независимую форму ее открывать как-то не очень, хорошо бы как-то и интерфейс блокировать юзеру, и проц НаСервере выполнять

Так, одну проблему я нашел объяснение : в той конфигурации, с которой я сейчас работаю , сама эта картинка, хотя называется "ДлительнаяОперация48" , и выглядит так же, НО ОНА СТАТИЧНАЯ у них в общих картинках!! Я добавил свою такую же - анимация появилась

Слава Богу, а то я уже не знал, что думать! Ну почему нет анимации?

Теперь надо подумать , как запустить фоновым заданием - проц "На Сервере" из в модуля формы из одного из обработчиков "НаКлиенте" вызывается

(17) Анимация на клиенте работает только если форма клиента активна и не занята выполнением кода (20)
(21)
(18)
Ясно. Фоновое задание тогда здесь явно мимо
Тогда я вижу единственное вменяемое решение это как-то через "Состояние ()" , типа того, что в
(14)

Фоновое задание возможно использовать, как показано (18) если ты используешь ПодключитьОбработчикОжидания() вместо последней части и будешь периодически проверять статусы заданий

(23)
Спасибо, думать надо..

Но это все какие-то танцы с бубном на ровнейшем, простейшем месте!!
Ну казалось бы, Ну надо же чтобы та же функция "Состояние" просто повисела перед глазами юзера , пока идет вызов серверной процедуры! плюс картиночку анимированную показывала!
А когда произойдет возврат из серверной - просто команда убрать это"Сосотяние" - все!!

Но это целая проблема, и надо так извращаться.

если вас устроит отображение неанимированной картинки

(27) Спасибо, это уже что-то . Да ладно уж, не до картинок уже, честно! Хотя бы что-то надо, чтобы юзер понимал, что не надо лихорадочно кликать все кнопки, а просто немножко подождпть (там реально секунд 30). Но это проблема для юзеров - надо обязательно КРУПНОЕ ЯВНОЕ что-то чтобы перед ними выскочило со словами :) "ПОДОЖДИТЕ Пож-ста,, не разбивайте компьютер и программу не перезапускайте!"

(30)
spacecraft, мне кажется, что Вы нашли решение! Я еще не понял, как Вы это сделали, и почему оно у Вас работает, помедитирую потом над Вашим отличным , по-моему, решением!!

Я пока чтобы наконец перейти к другим вопросам, сделал вот такое: я сам контрол (после выбора из которого), перед вызовом сереверной части меняю его самого ЗАГОЛОВОК на типа "Подождите. " , а после возврата из серверной ставлю все как было

но конечно, Ваше гениальное (серьёзно) решение в 100 раз лучше!! Спасибо огромное!!

Это плохое решение. Нет прерывания длительной операции.

(32)
Да Господи, обойдутся без прерывания!!
\
Не критично абсолютно.

Во-первых, там не пол часа , а пол минуты, во-вторых, для сверхтяжелых длительных обработок - так штатные все те их премудрости можно городить всю ту х. (сорри)

. Общий подход к асинхронному выполнению длительных серверных операций с помощью фонового задания:

Код, выполняющий длительную обработку данных, располагается в модуле менеджера объекта* или в общем модуле. Результат своей работы он помещает во временное хранилище;

*Примечание: необходимо использовать процедуру-обертку в общем модуле, которая будет вызывать процедуру модуля менеджера через ОбщегоНазначения.ВыполнитьМетодКонфигурации(). Т.к. фоновые задания могут работать только с процедурами и функциями общих модулей.
Для выполнения этого кода на сервере запускается фоновое задание, при этом необходимо ожидать завершения выполнения фонового задания в течение 0.8 сек;
Если за время ожидания выполнения задания оно не завершилось, то управление возвращается на клиент, и в клиентском коде подключается обработчик ожидания, в котором периодически проверяется состояние фонового задания. При этом интервал опроса задания увеличивается от 1 до 15 секунд с фиксированным коэффициентом 1.4;
На время выполнения длительной операции пользователю отображается индикатор;
при этом для отчетов индикатор выводится в поле табличного документа, используя свойство поля табличного документа ОтображениеСостояния:
.

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

Применимость

В статье рассматривается платформа «1С:Предприятие» редакции 8.3. Представленная информация актуальна для текущих релизов платформы.

Работа с файлами (картинками) в интерфейсе Такси

Для увеличения нажмите на изображение.

Однако, если разрешить модальные окна, то мы столкнемся с проблемами при работе в web-клиенте.

Во-вторых, о работе с картинками в управляемых формах часто спрашивают.

Для увеличения нажмите на изображение.

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

Далее, займемся формой. Как видно на картинке, реквизит с типом хранилище значений в форме недоступен.

Форма элемента - ХранилищеЗначения

Для увеличения нажмите на изображение.

Для увеличения нажмите на изображение.

Для увеличения нажмите на изображение.

Для увеличения нажмите на изображение.

Для увеличения нажмите на изображение.

Пару комментариев к вышеописанному коду:

Для увеличения нажмите на изображение.

Процедура ПередЗаписьюНаСервере

Так, осталось теперь при записи элемента справочника записать данные из временного хранилища в реквизит элемента справочника. Описываем событие ПередЗаписьюНаСервере:

Для увеличения нажмите на изображение.

Процедура ПриСозданииНаСервере

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

Для увеличения нажмите на изображение.

Вот и все. Готовую базу можно взять тут.

PDF-версия статьи для участников группы ВКонтакте

Статья в PDF-формате

Комментарии / обсуждение (64):

// Данные = РегистрыСведений.СопоставлениеДанных.Данные;
КонецПроцедуры

А как ето зделать ? Какие елементы формы должны присутвовать ? Может ето и без етого справочника можно зделать ?

1. Создаем в конфигураторе новый справочник, подчиненный Номенклатуре (например, назовем его ПрисоединенныеКартинки). Добавляем для него реквизит ДанныеКартинки. Добавление картинки выполняем аналогично, как в статье, только работаем не со справочником Номенклатура, а с новым справочником ПрисоединенныеКартинки. Получится, что для одного элемента справочника Номенклатура можно создать несколько подчиненных элементов в справочнике ПрисоединенныеКартинки, в каждом из которых будет храниться своя картинка.
2. Вместо справочника можно использовать, например, регистр сведений для хранения данных картинок.

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

Вывод изображения на управляемую форму

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

Изображение

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

Как это было раньше

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

Изображение

  • "Фото" - реквизит с типом "ХранилищеЗначений", в котором хранятся двоичные данные файла изображения.
  • "ИмяФайла" - строковой реквизит, в который записывается имя файла прикрепленного изображения.
На обычной форме добавляется элемент "ФотоСотрудника" с типом "Поле картинки". В событии "ПередОткрытием" формы добавляем следующий код:

И, вуаля! При открытии отображается прикрепеленной ранее фото!

Изображение

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

На управляемой форме

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

Для отображения изображения для начала добавим строковой реквизит формы "ФотоСотрудника", для которого на форме создадим элемент с типом "Поле картинки".

Изображение

Теперь в обработчике формы "ПриСозданииНаСервере" добавим следующий программный код:

Здесь методом "ПоместитьВоВременноеХранилище" мы помещаем двоичные данные из реквизита "Фото" элемента справочника во временное хранилище. Метод возвращает адрес помещенных данных во временном хранилище в виде строки. Подробнее о временном хранилище, его назначении и примеров работы с ним Вы можете прочитать по ссылке .

В результате при открытии элемента мы увидим следующее:

Изображение

На этом задача полностью решена!

Задача решена

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

Читайте также: