8.х Картинка под произвольным углом

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Amber, 14 ноя 2008.

  1. TopicStarter Overlay
    Amber
    Offline

    Amber Опытный в 1С

    Регистрация:
    16 ноя 2007
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Есть форма элемента. На нее выводится картинка(угол 0), есть макет с этой же картинкой( но угл уже 90). Сама картинка выбирается пользователем(многократно..и может быть абсолютна любая) Вопрос- Как можно повернуть картинку или на форме элемента или в печатной форме(макете)? Как крайний вариант на форму вставлять одну картинку, а в макет перевернутую копию... что посоветуете? Заранее спасибо!
  2. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Я бы на вашем месте написал dll на тех же Delphi или VisualStudio, в ней сделал бы процедуры, преворачивающие картинку (это возможно, самый простой вариант с bmp поиграться).

    А дальше смотрите как в 1Ске вызывать dll функции.

    Средствами 1С я не знаю как на форме это сделать, а с выводом в макет все еще хуже
  3. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Попробуй это:

    РисунокТабличногоДокумента (SpreadsheetDocumentDrawing)
    ОриентацияТекста (TextOrientation)
    Использование:
    Чтение и запись.
    Описание:
    Тип: Число. Содержит угол наклона текста по отношению к горизонтальному положению в градусах.
    Примечание:
    Применимо для рисунков типа Текст, Примечание.

    Если получиться скинь сюда код плз.
  4. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    хм, тупанул, это только на текст влияет...

    А какие углы нужны?
    или тебе произвольный угол нужен?
  5. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Там только кратные 90 градусов нужны, судя по задаче, а не совсем произвольный. Так что задача, конечно проще. Но типовым объектом с картинкой - навряд ли удастся

    ПолеКартинки (PictureBox)
    ПолеКартинки (PictureBox)
    Свойства:
    ГиперСсылка (HyperLink)
    Доступность (Enabled)
    ИспользоватьКонтекстноеМеню (UseContextMenu)
    Картинка (Picture)
    Масштабировать (Zoomable)
    Подсказка (ToolTip)
    ПрозрачныйФон (Transparent)
    РазмерКартинки (PictureSize)
    РазрешитьНачалоПеретаскивания (EnableStartDrag)
    РазрешитьПеретаскивание (EnableDrag)
    Рамка (Border)
    СочетаниеКлавиш (ShortCut)
    ТекстНевыбраннойКартинки (NonselectedPictureText)
    ЦветРамки (BorderColor)
    ЦветТекста (TextColor)
    ЦветФона (BackColor)
    Шрифт (Font)

    События:
    Нажатие (Click)
    НачалоПеретаскивания (DragStart)
    ОкончаниеПеретаскивания (DragEnd)
    Перетаскивание (Drag)
    ПроверкаПеретаскивания (DragCheck)

    Описание:
    Поле картинки предназначено для размещения на форме различных изображений. Механизм ссылки позволяет связать с полем картинки некоторые действия, выполняемые при нажатии на неё.
    Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
  6. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    тогда можно прикрепить на макете 4 картинки под разными углами
    и обращаться к ним по необходимости...
  7. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    В макете можно, если правда картинка не динамическая, то есть если она фиксированная, а если картинка задается ссылкой на нее... то навряд ли
  8. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Тогда действительно только внешними методами.

    Кстати мона попробовать через ком изменять картинку (методами ворда например), записывать в темп файл и потом выводить.
  9. TopicStarter Overlay
    Amber
    Offline

    Amber Опытный в 1С

    Регистрация:
    16 ноя 2007
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Вообщем я сделал так. В форму документа выводится картинка. Запускается внешнее приложение и поворачивает картинку, одновременно ее сохраняя. В конфу в хранилище значений сохраняются обе картинки, одна идет на форму документа, другая на макет.
    Теперь у меня вопрос по оптимизации...Возможно ли чтобы ХранилищеЗначений хранило фото только в моменткогда открыта форма документа, а при закрытии обнулялась?
  10. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    А при открытии что происходит?
    Как у тебя картинка появляется, пользователь выбирает или из базы береться?
  11. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Очищайте хранилище значений после использования, и все.
  12. TopicStarter Overlay
    Amber
    Offline

    Amber Опытный в 1С

    Регистрация:
    16 ноя 2007
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Картинка сейчас берется из базы. Так как картини могут быть весьма большими конфигу мне грузить не хочется. предполагаю сделать так- в конфигу писать путь(или код) картинки, и при открытии формы документа открываются нужные мне картинки. Первоначально пользователь их выбирает(естественно хранятся они все в одном месте, исходник и перевертыш отличаются первым символом).
    Подскажите пожалуйста как очистить переменные типа ХранилищеЗначений? присвоить им нулевое значение( Фото=0) или каким-то другим способом? Заранее спасибо!
  13. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    фото = Новый ХранилищеЗначения("");

    Но по идее

    фото = "";

    Тоже сработает...

Поделиться этой страницей