Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Программное масштабирование элементов табличного документа          
logist Подменю пользователя
сообщение 04.10.13, 14:26
Сообщение #1

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Необходимы какие-то идеи.
Есть некий табличный документ, который содержит картинку как фон (РисунокТабличногоДокумента расятнутый на видимую область) и элементы типа РисунокТабличногоДокумента наложенные на фон. Все это создается пользователем в поле Табличного документа в режиме редактирования. Необходимо в зависимости от разрешения монитора и размеров отображаемого поля табличного документа программно масштабировать элементы таким образом что бы они все были в видимой части. Табличный документ может открываться в окнах и отображаться в полях разного размера.
Разрешение монитора получить не проблема, и высчитать его ширину и высоту в миллиметрах. Когда идет работа только с табличным документом (режим редактирования), т.е. когда он открыт в отдельном окне, можно каким-то тупым путем рассчитать высоту поля и отобразить, но вот потом этот табдок может открываться в поле других форм, и/или на мониторах другого разрешения, как смасштабировать элементы в этом случае (и не понятно - как получить размеры поля в котором он отображается). Создавать табдоки для каждого варианта монитора как-то не хочется (не практично, и пользователю это не удобно)

Сообщение отредактировал logist - 04.10.13, 14:36


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 04.10.13, 14:33
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Кэп предлагает: "Таблица\Вид\Масштаб".


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

logist Подменю пользователя
сообщение 04.10.13, 14:38
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Ardi @ 04.10.13, 15:33) *
Кэп предлагает: "Таблица\Вид\Масштаб".

Хорошо Кэп, я подредактировал сообщение. Необходимо программно масштабировать.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Домовик Подменю пользователя
сообщение 04.10.13, 15:00
Сообщение #4

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

а размер изображений внутри имеют право меняться?
Если да, то задать для каждого внутреннего изображения коэффициентШиринаИзображения, КоэффВысотаИзображения, КоэффПоложениеШирина, КоэффициентПоложениеВысота.

Первые два - сжимать/ увеличивать внутренний рисунок. если равен 1 - размер внешнего рисунка на максимальное разрешение.
Вторые два - точка положения рисунка, относительно точки внешнего рисунка. но тут еще смутно, нужно думать, знать возможности средств восьмерки





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

Сообщение отредактировал Домовик - 04.10.13, 15:18

logist Подменю пользователя
сообщение 04.10.13, 15:18
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Коэффициент от чего? Если бы было все так просто. Я не могу знать размеры поля в котором будет отображаться табдок...


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Zaval Подменю пользователя
сообщение 04.10.13, 15:26
Сообщение #6

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Почему? Поле - это же элемент формы?

Petre Подменю пользователя
сообщение 04.10.13, 15:37
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Цитата(Zaval @ 04.10.13, 16:26) *
Почему? Поле - это же элемент формы?

Это при открытии. А что делать, если пользователь растягивает форму? Каким событием это отловить?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

logist Подменю пользователя
сообщение 04.10.13, 15:39
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Zaval @ 04.10.13, 16:26) *
Поле - это же элемент формы?

Да. Можно подробнее, я наверное что-то упустил в образовании smile.gif)

Цитата(Petre @ 04.10.13, 16:37) *
А что делать, если пользователь растягивает форму? Каким событием это отловить?

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: Домовик,

Petre Подменю пользователя
сообщение 04.10.13, 15:44
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Ну тогда: "ЭтаФорма.ЭлементыФормы.ПолеТабличногоДокумента.Ширина" ("*.Высота") в пунктах.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Fynjy Подменю пользователя
сообщение 04.10.13, 18:31
Сообщение #10

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Цитата(logist @ 04.10.13, 15:26) *
Необходимы какие-то идеи.
Есть некий табличный документ, который содержит картинку как фон (РисунокТабличногоДокумента расятнутый на видимую область) и элементы типа РисунокТабличногоДокумента наложенные на фон. Все это создается пользователем в поле Табличного документа в режиме редактирования. Необходимо в зависимости от разрешения монитора и размеров отображаемого поля табличного документа программно масштабировать элементы таким образом что бы они все были в видимой части. Табличный документ может открываться в окнах и отображаться в полях разного размера.
Разрешение монитора получить не проблема, и высчитать его ширину и высоту в миллиметрах. Когда идет работа только с табличным документом (режим редактирования), т.е. когда он открыт в отдельном окне, можно каким-то тупым путем рассчитать высоту поля и отобразить, но вот потом этот табдок может открываться в поле других форм, и/или на мониторах другого разрешения, как смасштабировать элементы в этом случае (и не понятно - как получить размеры поля в котором он отображается). Создавать табдоки для каждого варианта монитора как-то не хочется (не практично, и пользователю это не удобно)

Посмотрите, как реализовано со штрихкодом в восьмерке - по сути тот же рисунок, с изменяемыми в зависимости размера бумаги размерами.
По поводу масштаба ctrl+колесо мыши - sendkeys спасет отца русской демократии ...


Signature

Спасибо сказали: logist,

Elstan Подменю пользователя
сообщение 31.10.13, 9:39
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 18 раз
Рейтинг: 0

Есть полезная встроенная функция ПолучитьИнформациюЭкрановКлиента(), возможно это то, что вам нужно.

logist Подменю пользователя
сообщение 31.10.13, 10:31
Сообщение #12

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Elstan @ 31.10.13, 10:39) *
Есть полезная встроенная функция ПолучитьИнформациюЭкрановКлиента(), возможно это то, что вам нужно.

Очень хорошо, что у 1С есть такая полезная функция smile.gif Правда возвращает она только три параметра.
У меня это реализовано через
    Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); 
    Скрипт.Language = "VBScript";
    Локатор = Новый ComОбъект("WbemScripting.SWbemLocator");
    WMIСервис = Локатор.ConnectServer(".","root\cimv2");
    Мониторы = WMIСервис.ExecQuery("SELECT * FROM Win32_DesktopMonitor");

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 22:34
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!