Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Интерактивный ввод нового элемента справочника? (число прочтений - 15718 )
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Интерактивный ввод нового элемента справочника?
09. Сентября 2011 :: 09:12
Печать  
То ли я дурак, то ли как... Использую следующий подход:

Код
Выбрать все
Спр=СоздатьОбъект("Номенклатура");

МаксимальныйКод=0;

Спр.ПорядокКодов();
Спр.ОбратныйПорядок(1);
Если Спр.ВыбратьЭлементы()=1 Тогда
	Спр.ПолучитьЭлемент();
	МаксимальныйКод=Спр.Код;
КонецЕсли;

ОткрытьФормуМодально("Элемент.Номенклатура");

Спр.ПорядокКодов();
Спр.ОбратныйПорядок(1);
Если Спр.ВыбратьЭлементы()=1 Тогда
	Спр.ПолучитьЭлемент();
	Если Спр.Код>МаксимальныйКод Тогда
		// значит появился новый элемент
	КонецЕсли;
КонецЕсли; 



Работает конечно, но во-первых некрасиво, во-вторых в данном случае код у меня интерактивно изменить нельзя, а если бы можно было, то работать не будет.

Есть более красивый и универсальный подход?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Интерактивный ввод нового элемента справочника?
Ответ #1 - 09. Сентября 2011 :: 09:27
Печать  
Не вкурил, ты потом новый элемент записываешь и закрываешь что ли, после открытия модальной формы ?

И.. нафига тебе вообще нелепая привязка к коду  ?
Тупо count на количество записей в справочнике и всё.

Или..НовыйИД() смотри до того как и после у объекта метадатаворк
Улыбка

  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #2 - 09. Сентября 2011 :: 09:45
Печать  
При нажатии кнопки на форме (она до кучи у меня еще веб Улыбка), открываю модально форму нового элемента справочника, а потом мне надо получить ссылку на сохраненный элемент, и вообще факт того что пользователь именно сохранил элемент а не нажал "отмена". Насчет count согласен.

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

После ввода и редактирования элемента я произвожу изменения на форме, так вот чтобы мне эти изменения понапрасну не производить, надо узнать было ли осуществлено действие и получить ссылку на элемент.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #3 - 09. Сентября 2011 :: 10:03
Печать  
maljaev писал(а) 09. Сентября 2011 :: 09:12:
То ли я дурак, то ли как... Использую следующий подход:

Код
Выбрать все
Спр=СоздатьОбъект("Номенклатура");

МаксимальныйКод=0;

Спр.ПорядокКодов();
Спр.ОбратныйПорядок(1);
Если Спр.ВыбратьЭлементы()=1 Тогда
	Спр.ПолучитьЭлемент();
	МаксимальныйКод=Спр.Код;
КонецЕсли;

ОткрытьФормуМодально("Элемент.Номенклатура");

Спр.ПорядокКодов();
Спр.ОбратныйПорядок(1);
Если Спр.ВыбратьЭлементы()=1 Тогда
	Спр.ПолучитьЭлемент();
	Если Спр.Код>МаксимальныйКод Тогда
		// значит появился новый элемент
	КонецЕсли;
КонецЕсли; 



Работает конечно, но во-первых некрасиво, во-вторых в данном случае код у меня интерактивно изменить нельзя, а если бы можно было, то работать не будет.

Есть более красивый и универсальный подход?

я делаю наоборот
при открытии нового элемента вычисляю его код.
При записи ( модуль ПриЗаписи() ) для нового элемента проверяю есть ли такой код или нет.
(т.е. не создали два пользователя нов элемент одновременно).
не совсем чисто но вполне хватает да и  лучше чем 0.

  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #4 - 09. Сентября 2011 :: 10:16
Печать  
Z1, менять ради этого модуль элемента справочника не есть хорошо ИМХО. Хотелось бы простое и лаконичное решение. Типа:

Код
Выбрать все
// вводим новый элемент
Объект=ОткрытьФормуМодально("Элемент.Номенклатура",Отмена);
Если Отмена=0 Тогда
     // значит сохранили новый элемент
КонецЕсли;

// редактируем существующий элемент
ОткрытьФормуМодально(Объект,Отмена);
Если Отмена=0 Тогда
     // значит сохранили изменения в элементе
КонецЕсли;
 

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Интерактивный ввод нового элемента справочника?
Ответ #5 - 09. Сентября 2011 :: 10:16
Печать  
Да ?
А может еще проще ?
Улыбка)

Код
Выбрать все
Конт="";
ОткрытьФормуМодально("Элемент.Вася",Конт);

.........
Процедура ПриЗакрытии()
   Если Выбран()=1 Тогда
	 Форма.Параметр = ТекущийЭлемент();
   КонецЕсли;
КонецПроцедуры
...........

Если ПустоеЗначение(Конт)=0 Тогда
   Сообщить("а вот и наш элементик : "+Конт);
КонецЕсли;
 



Да, чтоб не править код, класс.Перехватчик в руки.
Улыбка

  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #6 - 09. Сентября 2011 :: 10:18
Печать  
Eprst, точно! Лучше наверно не придумаешь.  Улыбка

Спасибо огромное, хоть я и пользовался раньше аналогичным приемом но в этот раз что-то в голову не пришло....
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #7 - 09. Сентября 2011 :: 10:38
Печать  
Только наверное меньше проблем будет, если делать это при записи элемента:

Код
Выбрать все
Конт="Вернуть объект";
ОткрытьФормуМодально("Элемент.Номенклатура",Конт); // или ОткрытьФормуМодально(Объект,Конт)
...........
Процедура ПриЗаписи()
	Если ТипЗначенияСтр(Форма.Параметр)="Строка" Тогда
		Если Форма.Параметр="Вернуть объект" Тогда
			Записать();
			Форма.Параметр=ТекущийЭлемент();
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
...........
Если ТипЗначенияСтр(Конт)="Справочник" Тогда
     // значит все нормально, пользователь произвел запись, вернулся новый/отредактированный объект
КонецЕсли;
 

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #8 - 09. Сентября 2011 :: 10:44
Печать  
maljaev писал(а) 09. Сентября 2011 :: 10:38:
Только наверное меньше проблем будет, если делать это при записи элемента:

Код
Выбрать все
Конт="Вернуть объект";
ОткрытьФормуМодально("Элемент.Номенклатура",Конт); // или ОткрытьФормуМодально(Объект,Конт)
...........
Процедура ПриЗаписи()
	Если ТипЗначенияСтр(Форма.Параметр)="Строка" Тогда
		Если Форма.Параметр="Вернуть объект" Тогда
			Записать();
			Форма.Параметр=ТекущийЭлемент();
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
...........
Если ТипЗначенияСтр(Конт)="Справочник" Тогда
     // значит все нормально, пользователь произвел запись, вернулся новый/отредактированный объект
КонецЕсли;
 


так у тебя элемент будет два раза записываться ( ну может это и не важно).


  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #9 - 09. Сентября 2011 :: 10:50
Печать  
Z1, согласен, 2 раза, но временные и транзакционные накладки будут небольшими, не документ же записываем. А если присваивать "форма.параметр" при закрытии, то придется еще отслеживать факт записи редактируемого элемента (вводить переменную-флаг).
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #10 - 09. Сентября 2011 :: 10:55
Печать  
maljaev писал(а) 09. Сентября 2011 :: 10:50:
Z1, согласен, 2 раза, но временные и транзакционные накладки будут небольшими, не документ же записываем. А если присваивать "форма.параметр" при закрытии, то придется еще отслеживать факт записи редактируемого элемента (вводить переменную-флаг).

ПриЗакрытии
если новый элемент закрываем то возращаешь  ТекущийЭлемент()
иначе ничего не делаешь.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #11 - 09. Сентября 2011 :: 10:57
Печать  
(7) и как поведет (7) когда произойдет откат из-за дублирования кодов (ввели с другого компа ) ?
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #12 - 09. Сентября 2011 :: 11:02
Печать  
Ну вот тогда доработанный вариант от Епрста:

Код
Выбрать все
Конт="";
ОткрытьФормуМодально("Элемент.Номенклатура",Конт); // или ОткрытьФормуМодально(Объект,Конт)
...........
Перем ЗаписалиЭлемент;

Процедура ПриЗаписи()
	ОшибкаЗаписи=0;
	Попытка
		Записать();
	Исключение
		ОшибкаЗаписи=1;
	КонецПопытки;
	Если ОшибкаЗаписи=0 Тогда
		ЗаписалиЭлемент=1;
	КонецЕсли;
КонецПроцедуры

Процедура ПриЗакрытии()
	Если ЗаписалиЭлемент=1 Тогда
		Форма.Параметр=ТекущийЭлемент();
	КонецЕсли;
КонецПроцедуры
...........
Если ТипЗначенияСтр(Конт)="Справочник" Тогда
     // значит все нормально, пользователь произвел запись, вернулся новый/отредактированный объект
КонецЕсли; 

  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #13 - 09. Сентября 2011 :: 11:06
Печать  
В этом случае если запись не прокатит из-за накладки кодов или блокирующей транзакции, тогда флаг не установится. Ну и соответственно элемент не вернется при закрытии формы.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #14 - 09. Сентября 2011 :: 11:27
Печать  
maljaev писал(а) 09. Сентября 2011 :: 09:45:
При нажатии кнопки на форме (она до кучи у меня еще веб Улыбка),


А можно про web поподробней - заинтреговал.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #15 - 09. Сентября 2011 :: 11:33
Печать  
А если сделать так меняем только при записи
Код
Выбрать все
Процедура ПриЗаписи()
	ОшибкаЗаписи=0;
	Попытка
		Записать();
	Исключение
		ОшибкаЗаписи=1;
	КонецПопытки;
	Если ОшибкаЗаписи=0 Тогда
		Форма.Параметр=ТекущийЭлемент();
		СтатусВозврата(0);
		Форма.Закрыть(0);
		return;
	КонецЕсли;
КонецПроцедуры
 

  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #16 - 09. Сентября 2011 :: 11:48
Печать  
Да обычный ActiveX WebBrowser размером во всю форму. Шаблон (HTML, CSS) нарисовал в дримвивере. На форме два активикса: один скрытый, я в него шаблон гружу, а второй для вывода. Ну и используя DOM HTML-документа, выдергиваю куски из шаблона (по ID), заполняю их и вывожу в форму. Потом можно уже динамически прямо в чистовике менять. Удобно, все элементы интерактивные, всё при наведении мыши подсвечивается, подсказки всплывают... При измененении содержимого форма не мигает, отображение моментальное почти. Могу любой блок/стиль добавить/удалить/изменить/заменить - опять же всё быстро и без миганий в отличии от таблицы. возможностей масса, можно яваскрипты использовать, можно прямо из 1С ловить события (например при наведении мыши, при клике) и обрабатывать с отображением на форме. Можно вводить значения прямо в форму (например в какие-то ячейки таблицы). Можно графику выводить, как растровую так и супер-навороченную векторную Подмигивание

Ну вот к примеру шаблон, тока на скриншоте не видно всех красот, т.к. onmouseover только в динамике покажешь. Шапка статичная, а всё что под шапкой - прокручивается. Все кнопки/иконки интерактивные.
  

screen.jpg ( 179 KB | Загрузки )
screen.jpg
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #17 - 09. Сентября 2011 :: 12:03
Печать  
Цитата:
Можно графику выводить, как растровую так и супер-навороченную векторную

А векторная графика на какой основе ?
svg или что-то другое
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #18 - 09. Сентября 2011 :: 12:04
Печать  
SVG или Рафаэль

SVG - если графика на 99% рисуется в редакторе, и потом в 1С уже немного видоизменяется (видимость, раскраска, масштаб и т.д.).

Рафаэль - для рисования "с нуля" из программы.

P.S. Графика кстати тоже интерактивная получается, т.к любыми элементами её можно управлять так же через DOM-модель, и события те же самые поддерживаются и даже анимация.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Интерактивный ввод нового элемента справочника?
Ответ #19 - 09. Сентября 2011 :: 12:16
Печать  
Интересно, тебе за эти красоты отдельно доплачивают ?
Улыбка

ЗЫ: можешь кинуть мини пример шаблона с интерактивными кнопочками ?
...
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #20 - 09. Сентября 2011 :: 12:20
Печать  
Ёрпст, пожалуста, можешь прямо IE смотреть.

P.S. К сожалению в данном конкретном случае не доплачивают. Тренируюсь, потом на крупных коммерческих проектах пойдет.
  

zp.zip ( 28 KB | Загрузки )
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #21 - 09. Сентября 2011 :: 12:29
Печать  
Жалко что WebBrowser сделан на базе IE7 вне зависимости от того какой IE стоит на компе. Соответственно не поддерживается CSS3, а так бы было совсем круто. А на CSS2 кнопки с тенью и закругленными углами приходится делать через ##пу, то есть с помощью вспомогательных png-картинок.
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #22 - 09. Сентября 2011 :: 12:35
Печать  
Вот пример вывода и заполнения шапки формы.

Код
Выбрать все
Процедура ОбновитьТекстПериода()

	Период=БраузерДок.getElementById("period_zp");
	Если ПустоеЗначение(ТекущийПериод)=1 Тогда
		Период.InnerHTML="Период не выбран";
	Иначе
		Период.InnerHTML=СокрЛП(ТекущийПериод.Наименование)+" ("+СокрЛП(ТекущийПериод.ДатаС)+" - "+СокрЛП(ТекущийПериод.ДатаПо)+")";
	КонецЕсли;

КонецПроцедуры


Процедура ВывестиПанельКнопок()

	ПанельКнопок=ИсходникДок.getElementById("tools");

	НовыйЭлемент=БраузерДок.createElement("div");
	НовыйЭлемент.setAttribute("id","tools");
	НовыйЭлемент.InnerHTML=ПанельКнопок.InnerHTML;

	БраузерДок.body.appendChild(НовыйЭлемент);

	ОбновитьТекстПериода();

КонецПроцедуры


Процедура HTML_DocumentComplete()
	БраузерДок=Браузер.Объект.Document;
	ВывестиПанельКнопок();
КонецПроцедуры


Процедура Source_DocumentComplete()
	Браузер.Объект.Navigate(КаталогФормы+"Оболочка.xhtml");
	ИсходникДок=Исходник.Объект.Document;
КонецПроцедуры


Процедура ПослеОткрытия()

	ВыровнятьРеквизиты();

	Браузер=СоздатьОбъект("АктивИкс");
	Браузер.УстановитьАтрибут(Форма,"HTML");
	Браузер.СоздатьЭУ("Shell.Explorer.2");
	Браузер.ОбработкаСобытий = 1;

	Исходник=СоздатьОбъект("АктивИкс");
	Исходник.УстановитьАтрибут(Форма,"Source");
	Исходник.СоздатьЭУ("Shell.Explorer.2");
	Исходник.ОбработкаСобытий = 1;

	Исходник.Объект.Navigate(КаталогФормы+"Шаблон оболочки.xhtml");

КонецПроцедуры
 

  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #23 - 09. Сентября 2011 :: 12:38
Печать  
А вот обработка событий от формы:

Код
Выбрать все
Процедура HTML_BeforeNavigate2(Контейнер,Ссылка,Флаги,Фрэйм,Пост,Заголовки,Отмена)

	Если Найти(Ссылка,"#")>0 Тогда

		Отмена=1;
		Действие=СокрЛП(Сред(Ссылка,Найти(Ссылка,"#")+1));

		Если Действие="добавить период" Тогда

			ДобавитьПериод();

		ИначеЕсли Действие="удалить период" Тогда

			УдалитьПериод();

		ИначеЕсли Действие="изменить период" Тогда

			ИзменитьПериод();

		ИначеЕсли Действие="выбрать период" Тогда

			ВыбратьПериод();

		КонецЕсли;

	КонецЕсли;

КонецПроцедуры
 

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Интерактивный ввод нового элемента справочника?
Ответ #24 - 09. Сентября 2011 :: 12:44
Печать  
От спасибо!
Подумаю, куды прикрутить.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #25 - 09. Сентября 2011 :: 13:11
Печать  
maljaev писал(а) 09. Сентября 2011 :: 12:04:
SVG или Рафаэль

SVG - если графика на 99% рисуется в редакторе, и потом в 1С уже немного видоизменяется (видимость, раскраска, масштаб и т.д.).

Рафаэль - для рисования "с нуля" из программы.

P.S. Графика кстати тоже интерактивная получается, т.к любыми элементами её можно управлять так же через DOM-модель, и события те же самые поддерживаются и даже анимация.

сорри за темность что такое Рафаэль.
если можно то на нем маленький примерчик
и чем он лучше(хуже) svg ?
заранее спасибо.
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #26 - 09. Сентября 2011 :: 13:24
Печать  
http://graphing.ru/i/raphael/

У Рафаэля подход другой. Он не хуже и не лучше.

1. Скажем тебе нужна интерактивная карта района. Разумеется удобнее нарисовать ее в Adobe Illustrator, и потом уже готовой управлять из 1С. И менять ее удобно, если скажем дом новый появился, даже не-программист может это сделать, что бывает важно для клиента.
2. Скажем тебе необходим интерактивный график, в реалтайме отражающий изменения каких-то данных (например биржевые графики). Тогда используем Рафаэль, потому что мы не можем заранее подготовить картинку - нам надо ее каждую секунду формировать/менять в широких пределах.

P.S. В описании к Рафаэлю оболгали чистый SVG - прекрасно и в SVG события ловятся и отрабатываются, и элементы менять можно и даже анимировать их. Рисовать новые элементы только очень сложно, и сильно менять существующие.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #27 - 10. Сентября 2011 :: 07:24
Печать  
maljaev писал(а) 09. Сентября 2011 :: 11:48:
Да обычный ActiveX WebBrowser размером во всю форму.

Красиво, черт побери!
Вернуть из отпуска – обязательно поковыряю!
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #28 - 15. Сентября 2011 :: 07:25
Печать  
maljaev писал(а) 09. Сентября 2011 :: 12:35:
Вот пример вывода и заполнения шапки формы.
У меня почему-то при выполнении Док.body.appendChild(НовыйЭлемент) не находится агрегатный объект appendChild, хотя ТипЗначенияСтр(Док.body) = "OLE.DispHTMLBody".

Что я делаю не так?
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #29 - 15. Сентября 2011 :: 10:56
Печать  
Чтобы элементы добавлять, надо реальный документ загрузить (пусть даже только костяк с пустым телом) а не через write содержимое прописывать. Может конечно и так как-то можно, но у меня не получилось. И элементы добавлять только после DocumentComplete.
« Последняя редакция: 15. Сентября 2011 :: 13:43 - maljaev »  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #30 - 16. Сентября 2011 :: 01:09
Печать  
Я так и делаю - этот отрывок из обработчика события DocumentComplete. А гружу простой
Код
Выбрать все
<html><head></head><body><div id="content"></div></body></html> 

В прочем, дивка там тоже лишняя...

Лет 10 назад делал чат, в котором "рабочей поверхностью" был именно WebBroeser, но потом от него ушел в сторону RichView ... только те исходники остались в той конторе, а там я умудрялся даже без загрузки файла работать ... точнее загрузка была, но не из файла, а из ... не помню уже...

Если нетрудно, выложи простенький пример с выводом нескольких слов в пустую браузерню?
« Последняя редакция: 16. Сентября 2011 :: 06:09 - Dmitry The Wing »  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #31 - 16. Сентября 2011 :: 09:35
Печать  
Вот рабочий пример, полученный путем кастрирования реального проекта, должен работать под любой конфигурацией с загруженными 1C++ и FormEx.
  

_______004.rar ( 38 KB | Загрузки )
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Интерактивный ввод нового элемента справочника?
Ответ #32 - 16. Сентября 2011 :: 11:20
Печать  
БраузерДок.head.InnerHTML=ИсходникДок.head.InnerHTML;
{C:\7\ПРИМЕР\ОБОЛОЧКА.ERT(38)}: Поле агрегатного объекта не обнаружено (head)
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #33 - 16. Сентября 2011 :: 11:23
Печать  
У меня нормально работает, я проверял. Ну тогда будем копать дальше: какая ОС, какие апдейты, какой IE?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Интерактивный ввод нового элемента справочника?
Ответ #34 - 16. Сентября 2011 :: 11:31
Печать  
maljaev писал(а) 16. Сентября 2011 :: 11:23:
У меня нормально работает, я проверял. Ну тогда будем копать дальше: какая ОС, какие апдейты, какой IE?

Пока попобую сам покопать.
А для чего 2 активикса?
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #35 - 16. Сентября 2011 :: 11:36
Печать  
В один загружаю шаблон, из которого выдираю куски (узлы) по мере необходимости. Второй - чистовой, для интерактивной работы. В модуле же всё видно.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #36 - 16. Сентября 2011 :: 12:35
Печать  
у меня тоже пример из архива не заработал.
  

_______007.JPG ( 67 KB | Загрузки )
_______007.JPG
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Интерактивный ввод нового элемента справочника?
Ответ #37 - 16. Сентября 2011 :: 12:52
Печать  
у меня заработал... win2008R2x64 ie9
  
Наверх
wwwICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #38 - 19. Сентября 2011 :: 02:17
Печать  
Первый вывод - не всякий IE понимает такое расширение файла, т.к. предлагает сохранить.
Смена расширения приводит к ошибке, озвученой шахматистом...

У меня XP Pro SP3 с последними обновлениями, кроме IE. Его я тормознул на версии 7.0.5730.13.
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #39 - 19. Сентября 2011 :: 08:41
Печать  
Провел тестирование на виртуалке с XP. Действительно, в том виде что есть не работает. Работает на Win7 и Win2008. На WinXP WebBrowser кривой до невозможности, при управлении DOM-моделью из 1С, из скриптов в странице всё отлично управляется. Вывод - необходимо весь функционал по добавлению/удалению/изменению узлов вынести в java-скрипты в страницу или отдельный файл, и из 1С вызывать ту или иную java-функцию с параметрами. Вызывать тоже не очень-то просто, но я уже раньше это делал, когда клепал TiniMCE-редактор под 1С. На неделе подготовлю рабочий (под WinXP) пример.

P.S. Сам вообще в шоке, до этого делал аналогичный проект под Win2008 и всё работало, а тут клиент под Win2003 и такой облом. Ладно хоть выход нашелся, а то бы вообще попа....
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #40 - 19. Сентября 2011 :: 09:11
Печать  
Пример в студию Подмигивание
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Интерактивный ввод нового элемента справочника?
Ответ #41 - 19. Сентября 2011 :: 18:53
Печать  
Дальнейшее продолжение темы будет здесь: http://www.1cpp.ru/forum/YaBB.pl?num=1316457428
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать