Имя: Пароль:
1C
1С v8
Кто-нибудь делал поддержку истории (Ctrl+Z Ctrl+Y)?
0 Юрий Лазаренко
 
01.11.11
10:11
Есть форма, на ней поле HTML с набором объектов. Объекты можно перемещать мышой, изменять размер, менять текст внутри или цвет, удалять с поля и т.д.
Задача - реализовать ведение истории изменений, чтобы потом можно было отменить любое действие нажатием клавиш или, например, открыть окошко со списком изменений и отменить любое из них выбором.
Кто-нибудь заморачивался этим? Или хотя бы ткните в примеры реализации.
1 Ёпрст
 
01.11.11
10:14
я делал, только для клюшек.
По "кругу" гоняются вс реквизиты формы.
2 Ёпрст
 
01.11.11
10:17
+1 для снеговика есть падобные поделки, только в части полностью сохраненных объектов ИБ (сохранение после нажатия кнопки "записать"), я же делал - сохранение атрибутов при любом изменении.
Под снеговика, с кандачка переписать не получится - там нет некоторых событий, реализованных в клюшках с помощью ВК.
3 Jstunner
 
01.11.11
10:18
(0) ничего сложного
4 Stepa86
 
01.11.11
10:20
Сделать то легко - или сз или тз с колонками ИмяОбъекта, Значение. Но вот к горячим клавишам привязаться может быть сложнее
5 Stepa86
 
01.11.11
10:22
Тут главный вопрос, а нужна ли так сильно эта история?
6 Юрий Лазаренко
 
01.11.11
10:25
(1) "По кругу гоняются" это как?
(2) Мне алгоритм посмотреть, если не жалко конечно. В любом примере всегда можно взять что-то полезное.
(5) Нужна. Во всяком случае были у меня уже моменты, когда ее не хватало, а раз так, то и у клиентов появится потребность.
7 Stepa86
 
01.11.11
10:28
(6) при изменении поля клади его в стек, при восстановлении из стека просто подменяй поле сохраненным значением... при достаточной инкапсуляции стека можно сделать сперва версию на коленке "чтоб работало" за 10 минут, а при необходимости добавить плюшек, типа времени изменения, хранения между сеансами итп...
8 Ёпрст
 
01.11.11
10:28
(6) по Ctrl+z возвращаются предыдущие значения всех атрибутов,еще раз нажмешь - еще предыдущие и т.д..
9 acsent
 
01.11.11
10:28
(0) Не проще ли нормальный хтмл редактор запускать? Найти актив-х какой нибудь если уж очень хочестся в 1с
10 Ёпрст
 
01.11.11
10:31
(6) идея такая - перехватчиком ловитятся предопределенные события , в которых ведётся запись в ТЗ+ в формулу всех атрибутов формы программно устанавливается вызов своей процы, которая пишет в ТЗ.
По горячей клавише из ТЗ переписываются все значения атрибутов формы назад.
11 Ёпрст
 
01.11.11
10:31
+10 но для html, такой способ не катит
:(
12 Юрий Лазаренко
 
01.11.11
10:48
(10) Ну в общем как я и думал. А почему думаешь для HTML не прокатит? Я записываю в ТЗ УИД объекта, для которого произведено действие, тип действия (размер, перемещение, цвет, текст и т.д.) старые значения и новые значения. При отмене просто устанавливаем для объекта те атрибуты, которые сохранены в колонке "Старые значений".
(9) Я же не редактор леплю, а средство визуализации. Объекты HTML-поля привязаны к объектам БД, а сама вся эта поделка позволяет юзеру по-другому взглянуть на эти объекты, распределить их по определенным критериям и т.д. Поэтому необходимо перемещение, размер, установка текстовых пояснялок ну и отмена ошибочно или случайно сделанных действий.
13 Юрий Лазаренко
 
01.11.11
10:51
(9) Можно, конечно, и редактор, но это сделает решение менее гибким и более тяжелым, так что не покатит такой вариант...
14 polymorph
 
01.11.11
10:54
не знаю как именно работает хтмл там но может прокатит пересоздание цсс файла и при откате подсовывать старый
15 Юрий Лазаренко
 
01.11.11
10:57
(14) CSS влияет на расцветку-компоновку всех объектов определенного типа, а мне надо дать юзеру возможность задать определенные параметры для каждого из объектов. То есть новый объект рисуется по правилам из CSS, а дальше юзер творит с ним все что хочет, и вот эти самые изменения надо в случае чего уметь откатить.
16 polymorph
 
01.11.11
11:04
(15) какие параметры? при изменении юзером объектов дублируй его изменения в цсс.
17 Юрий Лазаренко
 
01.11.11
11:12
(16) И для каждого объекта держать описание в CSS? Ну размер, положение и цвет так можно сохранять, а текст внутри?
Хотя, на самом деле, идея хорошая, кое-где ее можно применить, спасибо!
18 polymorph
 
01.11.11
11:24
(17) ну может есть параметры текст по умолчанию.
19 Юрий Лазаренко
 
01.11.11
11:35
(18) Каскад - это разметка, не помню я там текста...