Получить картинку по навигационной ссылке 1с
Теперь мне нужно эту самую загруженную картинку загрузить в рисунок макета табличной части,
заполняю макет, пытаясь вывести эту картинку так:
Ничего не получается, не хочет выводить он этот штамп в картинку, преобразование делал.
При этом спокойно выводит эту картинку в текстовый реквизит с видом картинка из любой другой формы, любого другого документа.
Как эту картинку вывести в макет?
Вывести табличную часть в параметры макета
Здравствуйте! Есть табличная часть с тремя полями (Дата, ВремяНач, ВремяКон) и макет в виде.
Как вывести подчинённый справочник в табличную часть?
Добрый день! Есть: - платформа 1с 8.2 Управляемая. - два справочника: Номенклатура и.
Внешняя обработка. Вывести элемнты в табличную часть
Здраствуйте. Помогите пожалусти с решением вот такой проблемы. При добавлении значения из.
карочи смори. поиграйся с типами картинки в макете.
там должно быть что то типа актив документа картинка или штамп штрихкода.
а принципи работы такой же.
какрочи этой картинке присваивается адрес во врем хран ил ина крайняк картинка = новый картинка.
мона еще из врем хран получить двоичные данные записать в файл и сделать картинку из него.
вроде больше вариантов нет .
Добавлено через 5 минут
твой кот нечитабелен.
эта полоса перемеотки жутко бесит - или инет у мене тормозит( не знаю)
выкинь просто текстом без оформления.
Решение
ДанныеМенеджера = Справочники.Сотрудники.НайтиПоКоду(АктПечать.ДоговорКонтраге нта.Менеджер.Код).ПолучитьОбъект();
Если ДанныеМенеджера <> NULL Тогда
Метод НайтиПоКоду никогда не возвращает NULL (читаем внимательнее справку!)
Тут я при закрытии сохраняю эту картинку как навигационную ссылку в реквизит "Штамп" с типом временноехранилище
2. Нихрена подобного. Нет такого типа в 1С "временноехранилище" сохраняешь ты значение которое лежит по какому-то адресу временного хранилища в реквизит с типом ХранилищеЗначения (реквизит Штамп)
из второго вытекает третье:
ШтампМенеджера = ПолучитьНавигационнуюСсылку(ДанныеМенеджера.Ссылка, "Штамп");
Если ЗначениеЗаполнено(ШтампМенеджера ) Тогда
ОбластьМакета.Рисунки.D1.Картинка = ШтампМенеджера ;
Вопрос в следующем - как получить значение на которое ссылается навигационная ссылка?
Полагаю многие использовали некий вариант перехода к объекту по навигационной ссылке:
Вот так выглядит навигационная ссылкаe1cib/data/Справочник.Номенклатура?ref=9f3fc0533777800f4943e563e5eb03f6
Но, 1С позволяет получать навигационную ссылку на конкретный реквизит объекта:
Выглядит вот так: e1cib/data/Справочник.Номенклатура.НомерБлокировки?ref=9f3fc0533777800f4943e563e5eb03f6
Возможно ли из этой навигационной ссылки методом 1С получить значение?
Переход по навигационной ссылке
Необходимо перейти по навигационной ссылке. Создал реквизит формы СсылкаНаДокумент1111 и добавил.
Как перейти в браузере по навигационной ссылке
Всем привет! Подскажите пожалуйста. Имеется опубликованная база, на почту приходит внутренняя.
Получить ТЧ по ссылке в запросе
Как получить табличную часть по ссылке найденной в запросе? При обычной выборке говорит нельзя.
Получить доступ к обьекту по ссылке
Здравствуйте, у меня есть класс к примеру v мне нужно что бы в функции bn, я получил обьект.
sigmov, если не ошибаюсь, то встроенных в платформу таких средств нет. Можно только получить человеческое представление навигационной ссылки.
Ну или написать функцию по разбору НС в значение (структура НС хорошо описана в СП)
Можно ли получить копию объекта по ссылке?
Добрый день. Столкнулся со следующей проблемой: В интерфейсе функции есть такое объявление.
Получить указатель по ссылке на объект и наоборот
Подскажите, пожалуйста: 1. Как получить указатель на объект, имея ссылку на объект. 2. Как.
Получить оригинальное имя файла по ссылке
Есть сайт с ссылками на файлы, но в ссылках указан не настоящий путь (напр.
Вот только не пойму как теперь получить изображение. Т.к. на форме получаю его по ссылке, а вот при выводе на печать не пойму через что стучаться.
Добавлено через 4 часа 16 минут
Вот так я помещаю картинку на форму.
А как по этой навигационной ссылке можно получить двоичные данные, и можно ли вообще?
Добавлено через 15 минут
Ну или как из поля картинки (не из декорации) получить отображаемое изображение?
Как сделать отчет и вывод на печать
обращаюсь с этим вопросом так как в delfi не предоставлялось возможности программировать помогите.
Вывод изображения на печать
Подскажите как вывести картинку на печать, именно картинку, про xml, pdf и doc файлы в поиске по.
Отчет СКД. Вывод нескольких таблиц в отчет из разных запросов.
Привет, коллеги! Возникла необходимость в одном отчете видеть 2 таблички: одну по продажам, другую.
Печать и отчет
Народ помогите. Есть DBGRID с данными как в другой формочке сделать печать етих данных?? и.
DrSMERTb, ну у тебя справочник паспорт должен хранить ссылку на справочник фАЙЛЫ
В реквизите Файл справочника Файлы и лежат двоичные данные картинки
Добавлено через 38 секунд
Но до меня так и не доходит как по этой навигционной ссылке выдрать картинку.
Добавлено через 1 час 36 минут
Главное он же отображает изображение на форме. Но куда не стучись в поле этой картинки Фото везде пусто. Как он вообще что то тогда может отрисовывать?
Добавлено через 4 часа 26 минут
Может по навигационной ссылке можно как нибудь сохранить изображение на диск?
А ты не задавался вопросом, что такое Навигационная ССЫЛКА ?
Добавлено через 51 секунду
Начни с разбора метода как работает
ТЫ вообще не помещаешь картинку НА ФОРМУ (это делает за тебя платформа!)
Ты лишь указываешь ссылку форме на файл во временном хранилище, ну а поле ДекарацияФормы по этой ссылке показывает это изображение
Ну собственно делает то что и должна, помещает файл во временное хранилище и возвращает ссылку на него.
Добавлено через 27 секунд
DrSMERTb, теперь читаем про метод
Решение
ну открывает OpenDialog и закидывает во временное хранилище.
Добавлено через 7 минут
Но из временного хранилища файл дропается, как я понимаю, как только я закрываю 1С и потом уже из ХранилищаДанных загружается в поле по навигационной ссылке. Причём поле даже не декорация а текстовое с видом Картинки.
Добавлено через 3 минуты
Dethmontt, кароче я вообще не "вкуриваю" к чему вы ведёте.
Добавлено через 16 минут
Если уж знаете как это делается написалиб, а я запомнил и не задавал глупых вопросов по этой теме.
Добавлено через 25 минут
Dethmontt, попробовал так:
, что только подтверждает что 1С чисти временное хранилище.
Добавлено через 5 минут
Подскажете как его вернуть во временное хранилище?
Как известно, конфигурация Документооборота рассылает на пользователей уведомления, в которых указана задача для сотрудника (согласование, ознакомление и т.д.) В письмо вложена навигационная ссылка на задачу. Вопрос автоматизации перехода к задача в базе встал сразу же, так как много ручной работы заключается - запустить 1С, скпировать из письма навигационную ссылку, и переход по ней в задаче.
Написать скрипт, который бы занялся запуском 1С, либо открытием задачи в уже запущенной 1С, только часть проблемы. Труднее было его "вкрутить" в письмо.
Практический вопрос, который необходимо было решить: добавить в уведомления пользователя по задачам Документооборота кликабельную ссылку на саму задачу, по нажатию которой запускалась 1С (если не запущена), и открывалась задача.
Данное решение состоит из скрипта, написанного на AutoIt, и небольшого кода 1С, который нужно вставить в процедуру формирования текста письма (для создания cmd-файла запуска скрипта). Скомпилированный скрипт не требует доработки, и благодаря настраиваемому ini-файлу, может быть применен к любой базе без изменений.
В состав решения входит исходный файл AutoIt, скомпилированный exe-файл, файл конфигурирования.
[Конфигурация скрипта]
Скрипт настроен так, чтобы не зависел от конкретной базы, и не было необходимости его заново компилировать. Предварительно его необходимо настроить. Для этого внесите изменения в конфигурационный ini-файл.
Параметр BaseWindowName отвечает за название окна запущенной 1С, которое будет искать скрипт, чтобы активировать его, и выполнить переход по навигационной ссылке (предположительно, каждая база отличается наименованием окна).
Параметры BaseServer и BaseName отвечают за размещение базы 1С, которую необходимо запускать, если 1С неактивна.
Параметр OpenWaitTime указывает скрипт, сколько секунд необходимо ожидать запуска программы. Если время выходит, скрипт завершает свою работу.
Параметры RunDirPath1 и RunDirPath2 отвечают за определение каталога локально установленной 1С для 32-х и 64-х битных систем. В параметр RunFile указан файл запуск.
Если скрипт не находит 1С по локальным путям, считается что она не установлена, и тогда идет попытка запустить 1С по каталогу, указанному в параметре RunDirPathRemote по указанному в RunFileRemote файле запуска RemoteApp.
[Выполнение скрипта]
Скрипт работают с одним ключом запуска – навигационная ссылка объекта базы 1С. Если он не указан, то работа скрипта прерывается. Далее идет проверка, запущена ли программа 1С (определяется по названию окна). Если программа запущена, скрипт активирует окно 1С, помещает навигационную ссылку в буфер обмена, и эмитирует вызов окна перехода по навигационной ссылке. Содержимое буфера обмена автоматически подставляется в строку. Далее скрипт эмитирует нажатие Enter (основная кнопка формы - Перейти), и 1С открывает необходимый объект, если ссылка была корректной.
Если же программа 1С не запущена, тогда она будет принудительно запущена. Если происходит запуск локально установленной 1С, то навигационная ссылка передается как ключ запуска. Если же 1С локально не установлена, и запускается через ярлык RemoteApp, то параметр передать невозможно. По этому скрипт ожидает запуска 1С, затем активирует его окно, и выполняет ранее описанные действия с навигационной ссылкой.
[Использование скрипта]
Напрямую скрипт использовать из почты не получится. Исполняемый файл поместить в тело письма, чтобы он запускался с параметрами не выйдет. Для его активации с параметрами пришлось создавать cmd-файл. Для этого, при генерации письма пользователю необходимо добавить такой код в 1С:
То есть, получаем навигационную ссылку, отсекаем от нее лишнее, и оставляем только само значение ссылки на объект. Создаем текстовый документ с указанием запуска скрипта с навигационной ссылкой. Сам же текстовый документ именуем по значащей части ссылки.
В тело письма подставляем путь на созданный cmd-файл:
Так же напомню, чтобы 1С обработала передаваемую навигационную ссылку, нужно добавить код в обработчик ПриНачалеРаботыСистемы, который будет разбирать на кусочки переменную ПараметрЗапуска. Ниже приведен пример обработки ключа, который передает скрипт (ключ /С)
"enterprise /AppAutoCheckMode /DisableStartupMessages /s BaseServer\BaseName /CLNKNavLink
[Неудобства использования]
Необходимо иметь каталог, с полным доступом всем участникам, чтобы хранить там скрипт и иметь возможность от имени любого пользователя создавать cmd-файлы. Так же необходимо наладить регламентное задание, которое будет удалять неактуальные (по времени создания) cmd-файлы, чтобы их не накапливалось слишком много. Предположительно cmd-файлы можно заменить VBScript-ом, буду рад, если кто поделится такой реализацией.
В новой версии платформы 1С 8.2 работа с картинками производится отличным от предыдущих платформ методом , разобраться с которым без примеров сложно. Подробно можно прочитать в книге Разработка управляемого интерфейса глава 3.18. Работа с файлами и картинками . Примеры данной статья являются переработанными и дополненными примерами книги.
Картинка как и раньше (8.1) хранится в базе в реквизите (реквизите ТЧ) с типом ХранилищеЗначения, но записать данные в реквизит с этим типом обычном способом нельзя, запись производится в предопределенной процедуре «ПередЗаписьюНаСервере».
Для отображения картинки создается элемент формы поле картинки, данными для которого, является реквизит формы (с типом Строка(0)), содержащий навигационную ссылку на картинку (можно получить функцией «ПолучитьНавигационнуюСсылку») или адрес во временном хранилище (пол.ф. «ПоместитьФайл»)
Ниже приведен код части примера:
&НаКлиенте
Процедура ЗагрузитьФотографию ( Команда )
Перем ВыбранноеИмя , АдресВременногоХранилища ;
Если ПоместитьФайл ( АдресВременногоХранилища , "" , ВыбранноеИмя , Истина, УникальныйИдентификатор ) Тогда
АдресКартинки = АдресВременногоХранилища ;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере ( Отказ , ТекущийОбъект , ПараметрыЗаписи )
Если ЭтоАдресВременногоХранилища ( АдресКартинки ) Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища ( АдресКартинки );
ТекущийОбъект . Фото = Новый ХранилищеЗначения ( ДвоичныеДанные , Новый СжатиеДанных ());
КонецЕсли;
&НаСервере
Процедура ПриЧтенииНаСервере ( ТекущийОбъект )
АдресКартинки = ПолучитьНавигационнуюСсылку ( ТекущийОбъект . Ссылка , "Фото" );
&НаСервере
Процедура ПриЗаписиНаСервере ( Отказ , ТекущийОбъект , ПараметрыЗаписи )
Если ЭтоАдресВременногоХранилища ( АдресКартинки ) Тогда
УдалитьИзВременногоХранилища ( АдресКартинки );
КонецЕсли;
АдресКартинки = ПолучитьНавигационнуюСсылку ( ТекущийОбъект . Ссылка , "Фото" );
В книге Разработка управляемого интерфейса используется дополнительно поле для сохранения имени файла оно необходимо если нужно чтобы программа запомнила из какой папки пользователь предпочитает добавлять или выгружать файлы.
В процедуре ПриЗаписиНаСервере на первый взгляд можно убрать код удаление из временного хранилища т.к. ф. ПоместитьФайл вызывается с параметром УникальныйИдентификатор формы т.е. объект хранилища будет существовать до закрытия формы, но рекумендуется освобождать ресурсы сразу (если пользователь загрузит картинку и нажмет записать, форма не закрыта и объект будет существовать до закрытия).
Читайте также: