|
v7: Как определить на каком слое находится элемент. | ☑ | ||
---|---|---|---|---|
0
protsenkodv
24.08.13
✎
16:28
|
На форме несколько слоев. На разных слоях разные кнопки.
При переключении слоя нужно определить какие кнопки находятся на текущем слое. Подскажите, пожалуйста, как программно определить какие кнопки находятся на текущем слое. |
|||
1
Злопчинский
24.08.13
✎
16:39
|
а накуа?
|
|||
2
protsenkodv
24.08.13
✎
16:54
|
Кнфа по автоматизации бара.
На форме столы. Стол - Кнопка, вернее две кнопки наложенные друг на друга. Черная кнопка - свободный, красная - занятый. Столы располагаются на разных слоях (не помещаются на экран. есть кнопка переключения столов). При переключении слоя нужно определить какие столы находятся на текущей форме, и показать в соответствующих цветах. |
|||
3
Rie
24.08.13
✎
17:27
|
(2) Ну кнопки же по слоям - не просто так разбросаны. Наверняка известно, что на первом слое - кнопки с 1 по 10, на втором - с 11 по 20.
ПриВыбореЗакладки - даст номер слоя - можно вычислить кнопки. А ещё проще - если слоями не пользоваться, а регулировать через Видимость. И использовать Форма.ПолучитьАтрибут(). |
|||
4
Злопчинский
24.08.13
✎
17:28
|
стол - фиксировнного размера. на слое "то есть на форме" - фиксированное количество столов. переход на другой слой - в слое столы начинаются с последний стол на предыдущем слое+1
|
|||
5
Злопчинский
24.08.13
✎
17:28
|
и вооще - нахрена фиксировано на слоях делать? увеличиться количество слоев - надо лезть в пофигуратор и перерисовывать.
|
|||
6
Rie
24.08.13
✎
17:30
|
(2) Ну а если очень хочется возиться со слоями - то используй FormEx. Там есть у объекта АтрибутФормы свойство Слой.
|
|||
7
Злопчинский
24.08.13
✎
17:30
|
сделай единственный слой, на нем "кнопки-столы" - по кнопе "следующий-предыдущий" - формексом назначай на кнопку нужную строку-формулу (если надо что-то делать со столом при тычке на него) и формексом же переназначай названия кнопок.
|
|||
8
Злопчинский
24.08.13
✎
17:31
|
и столы-кнопки в виде кнопок - некрасиво выглядит. сделай столы в виде табличного документа йокселя или обычной печформормой, будет красивше
|
|||
9
Rie
24.08.13
✎
17:31
|
(7) И вообще - зачем форма? Таблица. На ней нарисованы столы. И - ОбработкаЯчейкиТаблицы.
|
|||
10
ЧеловекДуши
24.08.13
✎
20:06
|
(5) Наверное он просто еще не ловил пошаговую отрисовку формы диалога :)
|
|||
11
Torquader
24.08.13
✎
22:02
|
1C идёт в топку вместе с кнопками и т.п.
Как я делал формы с галочками и списками выбора: 1) Берём Internet Explorer, который мы открываем по OLE (CreateObject) и показываем на весь экран (также можно отключить адресную строку и прочие "грабли"). 2) Рисуем форму html и сценарий управления формой на VbScript (можно JavaScript, но VbScript отрабатывает быстрее). 3) Создаём переменные, в которые 1С "заглядывает" за событием, произошедшим на экране. 4) В Internet Explorer используем массив событий, в который пишем действия. 5) Пользователь на экране может видеть таблицы, кнопки, анимацию и множество других ActiveX элементов управления, размеры которых можно задавать через стили. 6) Пользователи, привычные ко всяким вконтактам, одноглазникам и прочему прекрасно работают в "осле", и не знают про то, что они что-то вводят в 1С. Удачи. |
|||
12
Злопчинский
24.08.13
✎
23:17
|
(11) куртуазный извращенец
|
|||
13
Torquader
24.08.13
✎
23:20
|
(12) Зато оно работает без проблем - и форму можно поменять, не запуская конфигуратор. Отработка скролинга - выпадающие списки, динамические картинки - в 1С с этим не очень хорошо.
|
|||
14
Злопчинский
24.08.13
✎
23:21
|
913) главное чтобы 404 не случилось.. ;-0
|
|||
15
Torquader
24.08.13
✎
23:32
|
(14) Ну и как оно случиться ?
Если прослойку через Windows Script Component сделать, то можно и событие перехода на страницу отловить и сказать, что переходить не надо. А если ещё и Apache прикрутить, то получится Web-сайт с формой, которая взаимодействует с 1С. P.S. а зал в нормальной программе пользователи сами рисуют и расставляют не только столы и стулья, но и всякую другую "мебель", чтобы даже "баран" понял, что и где в зале находится. |
|||
16
Злопчинский
24.08.13
✎
23:42
|
(15) это все поянтно.. но у меня все больше ощущение, что мы работаем в каком-то приюте призрения и вытираем сопли дебилоидам...
|
|||
17
Torquader
25.08.13
✎
20:27
|
(16) А как ты хотел - ты программист - пишешь программы для пользователей. А пользователи - они разные бывают.
Очень сложно написать для людей что-то стоящее, так как очень долго пытаешься понять, как думают пользователи, и только после неуспешной реализации понимаешь, что пользователи просто вообще не способны думать при работе. |
|||
18
Злопчинский
25.08.13
✎
20:59
|
917) ну так меня и плющит сейчас оттого, что большую часть времени занимает не собственно само программирование, а создание такой "инфраструктуры" (например, как частный случай запуск обработки) - чтобы обрубить максимально бОльшее количество путей к косякам. По сути все сводится к ликвидации альтернатив. но этосразу снижает гибкость исполнения неформализованных БП. Даешь альтернативы - косячат. исправление косяков - внятного персонала на это дело сажать неоткуда. самому сопли вытирать за каждым ужо надоело...
|
|||
19
Cthulhu
25.08.13
✎
21:05
|
Не надо тебе определять что на каком слое.
Переключение видимости слоев - это по сути лишь способ группового изменения видимости реквизитов формы. Чтобы определить - что там у тебя на форме в результате изменения видимости слоев - достаточно определить видимость реквизитов, расположенных на слоях - с какого слоя реквизит видимый - тот слой целиком и видимый, и тогда иди по реквизитам этого слоя и раскрашивай. |
|||
20
Cthulhu
25.08.13
✎
21:12
|
(18): а мне норм. ))
не расстраивайся. со временем вырабатываются типовые способы решения таких задач - в виде стандартного перечня переменных модуля, стандартных процедур управления диалогом и стандартного регламентирования доступов. у меня так в конфигурации давно уже прижились два справочника-костыля "видыдопуска" и "допдопускпользователей" (с кодом пользователя, видом и уровнем допуска, и датами начала-конца допуска и уровня), а в глобалинике процедура глуровеньдопдопуска(ВидДопуска,тПользователь="",тДата=""). и теперь у меня даже в справочниках юзверя ходят с регламентацией допусков на уровне групп и элементов, и закладки даже в той же форме тмц видят по допускам, да и отчеты могут формировать с контролем отборов и фильтров по нему, да всё практически. и допуски меняются при надобе "на лету", без перезапуска. ))) |
|||
21
Злопчинский
25.08.13
✎
21:14
|
920) да и уменя что-то подобное по допускам было.. но это же, блин, какая-то профессиональная стагнация...
|
|||
22
Cthulhu
25.08.13
✎
21:18
|
(21): профессиональная стагнация - это исправление шрифтиков в отчете по приказу директора. и вообще. ты забыл?.. мы - дворники! и смотрим свысока на вот этот весь сброд! )))
|
|||
23
Cthulhu
25.08.13
✎
21:21
|
(21): и схреновли ты "стагнацией" называешь решение, которое позволяет решать "рутинные" задачи (регламентирование допусков "на лету", например) не "длинным нудным кодингом", а в тройку строк????
|
|||
24
Злопчинский
25.08.13
✎
22:13
|
(23) а кинь пару скриншотов на [email protected] показывающие как у тебя хранятся в справочниках упомянтутые ВидДопуска (что это такое) и допдопускпользователей...
. это у тебя сделано подпиской на событие "приОткрытии" форм документов/справочников? |
|||
25
Cthulhu
26.08.13
✎
02:17
|
(24): да любая форма списка. реквизиты - в (20).
вид допуска - строка шаблона построения конкретного допуска. простейший с макроименами кода (для справочников с уникальными кодами) или наименования или (для сложных случаев) ид-а. остальное - программно в нужных местах. и в приоткрытии, и в приначалевыборазначения, и в обработкавыборазначения, и в обработкаподбора, и при установке видимости/доступности реквизитов, и в основной выполняемой процедуре (пере-проверка допусков по фильтрам) отчетов и обработок. благо запихнуть - пара-тройка строк. и в проверку допусков по авторству (временное замещение), и на использование обработок. въелось и легло основательно, но раз засунул - и забыл, только в инструкцию не забыть добавить. ))) |
|||
26
skunk
26.08.13
✎
06:58
|
||||
27
Бертыш
26.08.13
✎
08:14
|
(26) Регистрации просят. Нафиг
|
|||
28
Ёпрст
26.08.13
✎
08:18
|
(0)
Слой Layer Синтаксис: Слой Назначение: Доступ к значению принадлежности к слою атрибута формы. Атрибут для чтения/записи. ПРИМЕР: ФормаРасш = СоздатьОбъект("РасширениеФормы"); ФормаРасш.УстановитьФорму(Форма); Для Х = 0 По ФормаРасш.КоличествоАтрибутов() - 1 Цикл Если ФормаРасш.ПолучитьАтрибут(Х).Слой = "Слой1" Тогда ФормаРасш.ПолучитьАтрибут(Х).Видимость = 0; КонецЕсли; КонецЦикла; |
|||
29
protsenkodv
27.08.13
✎
22:02
|
Реализовал через FormEx. Всем спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |