Формирование "креста" в Таблице Значений на форме (7.7)
Разработка - Работа с интерфейсом
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Версия 3С от 28.08.2009 (продолжается подготовка к четвертой версии (см 75 коммент).
Иногда в больших таблицах с большим количеством строк и мелких колонок неудобно определиться в какой же все-таки строке и/или колонке находится активная ячейка.
Для работы необходим FormEx. ![]()
Последняя версия здесь 97 релиз
Огромное спасибо АЛьФу за создание этой замечательной ВК и за море советов, данных им мне в процессе программирования.
Отдельное спасибо Шёпоту теней за саму идею создать эту разработку.
Большое спасибо Ёпрсту и Che Burashka Сергею за советы и подсказки.
История версий:
1 от 13.08.2009. Самая первая. Отрабатывалось только событие ПриОтжатииЛевойКнопки мыши.
2 от 14.08.2009. Новые фичи, новые глюки :-)
3 от 18.08.2009. Возможность имитации пиктограмм с помощью работы со шрифтами.
3A от 19.08.2009. Устранение глюков и существенное ускорение скорости работі. Добавлена возможность интерактивного выбора цвета для раскрашивания таблицы с предварительнім просмотром на вспомогательной ТЗ.
3B от 25.08.2009. Возможность интерактивного просмотра символа для пиктограмм и случайное заполнение при формировании ТЗ. С использование внешнего объекта MSScriptControl.ScriptControl (по идее, есть во всех Windows, начиная с 2000)
3C от 28.08.09. Убран лишний код. И даже тот, без которого, казалось, не должно работать 
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Работа с интерфейсом Пользователь 1С:Предприятие 7.7 1C77 Абонемент ($m)
Часто встречающаяся проблема: потерялось Окно сообщений. Обработка исправляет эту "проблему" одним нажатием кнопки. Для обычных пользователей. Не требует программирования. Достаточно запустить обработку и нажать кнопку "Выполнить".
5 стартмани
17.01.2025 3280 2 CheBurator 13
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Создание и использование на формах в среде 1С 7.7 прогрессбара, индикатора, как в 1С 8.Х для контроля над длительными процессами. Реализовано средствами языка программирования 1С 7.7.
1 стартмани
06.06.2024 3314 3 user1416274 17
Работа с интерфейсом Логистика, склад и ТМЦ Системный администратор Разработчик Пользователь 1С:Предприятие 7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)
Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".
2541 руб.
18.10.2022 8947 4 45
Инструментарий разработчика Работа с интерфейсом Разработчик 1С:Предприятие 7.7 Абонемент ($m)
Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.
1 стартмани
30.03.2022 7325 2 igor7777 4
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Публикация имеет цель обратить внимание на возможность улучшения интерфейса.
15.12.2021 7967 120 Cерый 15
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Программный прием запрета максимизации формы
18.04.2021 4542 CheBurator 10
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Простая и удобная внешняя обработка для выбора цвета без применения внешних компонент.
1 стартмани
09.06.2020 9612 4 vap_pig 5
Учет рабочего времени Работа с интерфейсом Разработчик Бухгалтер Пользователь 1С:Предприятие 7.7 1C77 Россия Абонемент ($m)
Обработка производственного календаря с возможностью импорта и экспорта xls для 1С 7.7 (7.70.027) без изменения конфигурации.
1 стартмани
18.09.2019 15556 8 Jill 8
Запаздывание на один клик.
И дай совет как побороть ;-)
P.S. Это моя первая более-менее серьезная разработка с применением FormEx'а.
До этого я только строки подсвечивал в журналах и списках справочников.
P.P.S. С радостью научусь чему-то новому. :-)
Перем РасшФ;
Процедура ПослеОткрытия()
.........
РасшФ=СоздатьОбъект("РасширениеФормы");
РасшФ.УстановитьФорму(Форма);
......
КонецПроцедуры
Процедура ПриНажатииЛевойКнопки(Сост,Х,У,ФСО)
РасшФ.УстановитьТекущуюЯчейку("ТЗ", Х, У);
Отрисовка();
КонецПроцедуры
Процедура ПриДвиженииМыши(Сост,Х,У,ФСО)
Если Сост=1 Тогда
РасшФ.УстановитьТекущуюЯчейку("ТЗ", Х, У);
Отрисовка();
КонецЕсли;
КонецПроцедуры
+ //Форма.Обновить() в Функция Отрисовка()
Перезалил. Но при ПриНажатииКнопкиКлавиатуры опаздывает.
А как там УстановитьТекущуюЯчейку?
Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
Если (КодКлавиши>32) и (КодКлавиши<41) Тогда
Отрисовка();
КонецЕсли;
КонецПроцедуры
... НЕразумному - разУмное - глупОсть ...
... рАзумному - НЕразумное - игрА ...
... Неразумному - НЕразумное - безСмысленно ...
... однАко СИЛА ...
... вОт ...
ЦветТекущий="(BRUSH["+глПолучитьЦвет(255,255,153)+"])";
- пишите проще: ЦветТекущий="(BRUSH["0xFFFFCC"])";
(18) ТП или не ТП - это мну не волнует.. ;-) я показал автору на явную несуразность.. как он ее устранит и устранит ли вообще - меня вообщем-то не волнует... но на всякий случай я запомню.. ;-)
.
ТЗ.ВидимостьКолонки("1",0); - прячешь колонку подкраски
ТЗ.Фиксировать(0,1); - фиксируешь колонку с номерами строк, а выше - ее определяешь и заполняешь... - нафига?
.
> P.S. Я и не утверждаю, что все знаю :-)
- а я это констатирую! ;-)
Для красоты :-) И не только. Нафик нужен крест, если непонятно к какому значению строки он относится?
(27) >обрисуйте тогда строго область применимости ;-)
Да где угодно :-) см (0)
"в больших таблицах с большим количеством строк и мелких колонок"
(28) > почему бы отрисовку не бросить на форму как функцию?
Смешно... Если строка не поменялась, то функция не срабатывает. :-)
Это даже я знаю!
(29) А вот за это спасибо!
"Я не волшебник. Я только учусь"
- вот такие и пишут уппырища всякие... ;-) обрисуйте тогда строго область применимости ;-)
старым дедовским способом.
Посмотри сколько отображается на самом большом разрешение экрана
в ширину видно 86 по горизонтали 122 (просто к примеру)
и не нужно все 10000 прорисовывать
(тупо рисуй 150 на 150 и то быстрее будет)
Формекс позволяет определять разрешение экрана (хотя здесь оно не к чему)
ТЗ.Фиксировать(0,1);...????
автор не знает про ТЗ.ВидимостьКолонки("НомерСтроки",1);...?????
..
попутный вопрос: почему бы отрисовку не бросить на форму как функцию? тогда отрисовка будет выполняться по новым координатам...
забрать его можно отсюда:
. и на 20 тыс строк - притормаживание является уже существенным
А надо только Отрисовку() отключать при формирование НОВОЙ ТЗ
а то такая шняга получается- тормоза и визуально не очень красиво.
Лучше наверное будет создать ТЗВр - виртуальную а потом махом выгрузить в ТЗ а не заполнять ее сразу на форме с отрисовкой
// блин, чтобы отобразить номера строк достаточно
ТЗ.ВидимостьКолонки("НомерСтроки",1) - и все!
а то отсортируют твою ТЗ - я посмотрю на красивые номера строк
Это даже я знаю!
- ну не знаю... у меня вроде все отрабатывает... смотри выложенную обработку...
.
в итоге, конечно, ндо бы минус влепить...
Сравнение выделения "крестом" в 8-ке и в 7-ке было бы корректно , если бы в текущей теме использовался объект "Таблица" , аналог табличного документа в 8-ке.
По утверждению vip'a :
Компонента "TableDoc расширяет возможности таблицы в 7.7 (в 8.х аналог видимо табличный документ?) до немысленных высот."
Вот и хотелось посмотреть.. Не удалось.
Формексом никогда не пользовался.
С приветом, 8-ник.
Как правтльно говоришь, есть TableDoc и есть Yoksel. Первый проект - как бы надстройка над мокселем 1С, второй - новый табличный документ. В обоих есть событие "ПриАктивизацииЯчейки/АктивизацияЯчейки". Имея эти события, нарисовать что-либо в соседних (и не только) ячейках, думаю, не составит труда.
"Имея эти события, нарисовать что-либо в соседних (и не только) ячейках, думаю, не составит труда."
Казалось бы, бесспорно.
Но в 8-ке это не так и реализация выделения произвольной области больше походит на некий программный "выверт"(ухищрение) , чем на обычный приём. Поэтому нигде , насколько мне известно, такое выделение ранее не применялось.
Большое спасибо!
Надо понимать, что это не готовая программа, а алгоритм, пример программирования. С большими недостатками, это я понимаю.
Но... я пытаюсь. Что-то делаю. А сколько асов даже не пробовали сделать нечто подобное. Эх.. ваши бы умения для этого, а не мои скромные познания.
И я выложил эту разработку не для того что бы себя показать, а что бы на других посмотреть. Научиться чему-то новому, полезному.
Не только для себя, но и для других.
.
при обновлении - описание сохранил? ;-)
И тогда , если две ячейки имеют до выделения разный цвет , то после выделения будут иметь одинаковый (желтый).
Если это так , то
осмелюсь заметить , что выделение ячеек - это не закрашивание другим цветом. Это именно - выделение.
Т.е. если до выделения две ячейки имели разный цвет , то после выделения
они различаются по интенсивности выделения (яркости).
- это не столь существенно, гораздо важнее чтобы при уходе креста с ячеек - они были зарисованы так, как до попадания креста на эти ячейки...
1.Существенно или нет .. Так всё-таки выделяется или закрашивается ?
2. "важнее чтобы при уходе креста с ячеек - они были зарисованы так, как до попадания креста на эти ячейки..."
Если это условие не выполняется , тогда о чем разговор .. ?
- ????
или я не прав...
Но у ячейки не может быть более одного цвета фона? Или я не прав... ;-)
И если по какому-то условию у этой ячейки должен быть определенный цвет, то какая разница, какой он был до этого?
И тогда при отрисовке "креста", результат этой функции должен повлиять и на их раскраску. Но... это выходит за рамки данной обработки.
Хотя, все возможно. :-)
Версия номер 3 выложена! ОГРОМНОЕ спасибо АЛьФу!
.
а что нового в 3 версии?
.
кстати, раз уж формекс - а вы тестировали обработку на ТЗ, с расположением строки в несколько "строк"...? а, батенька?
.
- угумс.. как же... придется тянуть пару тысяч строк допустим для обеспечения такого функционала - негламурно!!! ты вот "вычисли" ближайший браш по вертикали/горизонтали и считай оттуда отрисовку...
И не тьма и хаос, и не дух бесплотный носился, а ИДЕЯ. И первая моя версия была рабочей. Но с ограничением. Она срабатывала только при отжатии кнопки мыши.
Но... в четвертой версии напишу ;-)
Может, не этими словами, и не только про тебя. А еще про Альфа и Ёпрста.
(101) А я заремил ВСЕ ненужные процедуры :-) В том числе, и отработку нажатий клавиш.
(102) Там не только мыша нажатая, но и клик, и колесико, и клава.
Перем ЭлементУправления;
//{ ПослеОткрытияФормы
ТабличныйДокумент=СоздатьОбъект("ТабличныйДокумент");
ТабличныйДокумент.ЗагрузитьИзТаблицы(Таблица);
ЭлементУправления = ТабличныйДокумент.СоздатьЭлементУправления();
ЭлементУправления.ПодписатьсяНаСобытие ("АктивизацияЯчейки", "АктивизацияЯчейки");
//} ПослеОткрытияФормы
Процедура АктивизацияЯчейки (Документ, НомерСтроки, НомерКолонки, ФСО)
ВыделенныеОбласти = ЭлементУправления.ВыделенныеОбласти;
// Выделить Строку
ВыделенныеОбласти.Добавить(ЭлементУправления.ТабличныйДокумент(НомерСтроки,));
// Выделить Колонку
ВыделенныеОбласти.Добавить(ЭлементУправления.ТабличныйДокумент(,НомерКолонки));
КонецПроцедуры
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 21743
Создание 13.08.09 11:56
Обновление 31.08.09 13:11
Просмотры 31892
Загрузки 245
Рейтинг
40
Комментарии 106
Код открыт Не указано
Рубрики Работа с интерфейсом
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа
Оперативный учет 7.7
,
Бухгалтерский учет 7.7
,
Расчет 7.7
Конфигурация 1C77
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)