Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Web клиент (число прочтений - 11766 )
gildebrand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 56
Зарегистрирован: 01. Сентября 2006
Пол: Мужской
Web клиент
13. Сентября 2010 :: 18:43
Печать  
http://89.169.233.251/WebJ1C/Login.faces
Предлагается к рассмотрению пример реализации "тонкого" клиента к 7.7.
При реализации были использованы следующие технологии:
J1C
RechFaces 1.2 от JBoss
MyFaces 2.0 от Appache
Tomcat 6.0
Демонстрационная база 1С: Комплексная конфигурация (468 релиз)
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Web клиент
Ответ #1 - 13. Сентября 2010 :: 19:15
Печать  
Прикольно, только вылетают ошибки.
  
Наверх
 
IP записан
 
gildebrand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 56
Зарегистрирован: 01. Сентября 2006
Пол: Мужской
Re: Web клиент
Ответ #2 - 13. Сентября 2010 :: 19:40
Печать  
не суди строго - на jcf - первый опыт
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Web клиент
Ответ #3 - 14. Сентября 2010 :: 05:05
Печать  
gildebrand писал(а) 13. Сентября 2010 :: 19:40:
не суди строго - на jcf - первый опыт

Какой запрос ( select )  к sql базе генерится
когда выбрали справочник Клиенты?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Web клиент
Ответ #4 - 14. Сентября 2010 :: 06:11
Печать  
больше интересует запрос к документам, и получение доп полей (типа информации)
каков он ?
  
Наверх
 
IP записан
 
gildebrand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 56
Зарегистрирован: 01. Сентября 2006
Пол: Мужской
Re: Web клиент
Ответ #5 - 14. Сентября 2010 :: 08:43
Печать  
Так все просто. К справочникам
Код
Выбрать все
exec _1sp_SCXXX"+getMetaObject().getId()+"_ByID :id 


А к документам
Код
Выбрать все
select *  from _1sjourn (nolock) where iddoc=:id 


Это получение ссылок.
Далее возможны 2 режима работы - через "ссылки" или "объекты" - а ля как в 8-ке. Здесь разница в том, что при получении ссылки получаем значение реквизитов по мере обращения к ним или сразу получаются все реквизиты объекта.
  
Наверх
 
IP записан
 
gildebrand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 56
Зарегистрирован: 01. Сентября 2006
Пол: Мужской
Re: Web клиент
Ответ #6 - 14. Сентября 2010 :: 08:49
Печать  
Eprst писал(а) 14. Сентября 2010 :: 06:11:
больше интересует запрос к документам, и получение доп полей (типа информации)
каков он ?

вот текст метода строки общего журнала , который вообщем повторяет код в 1С
Код
Выбрать все
        public Object getInfoDoc(){
            if(meta.getName().equalsIgnoreCase("СтрокаАвансОтчетаТМЦ") ||
                    meta.getName().equalsIgnoreCase("СтрокаАвансОтчетаОплата") ||
                    meta.getName().equalsIgnoreCase("АвансовыйОтчет") ||
                    meta.getName().equalsIgnoreCase("СтрокаАвансОтчетаПрочее")){
                return attributes.get("ФизЛицо");
            }
            else if(meta.getName().equalsIgnoreCase("ЧекККМ") ||
                    meta.getName().equalsIgnoreCase("ОтчетККМ")){
                return attributes.get("Касса");
            }
            else if(meta.getName().equalsIgnoreCase("ПеремещениеТМЦ")){
                return "с \""+attributes.get("Склад")+"\" на \""+attributes.get("СкладПолучатель")+"\"";
            }
            else if(meta.getName().equalsIgnoreCase("ИнвентаризацияТМЦ") ||
                    meta.getName().equalsIgnoreCase("ПереоценкаРозница")){
                return attributes.get("Склад");
            }
            else if(meta.getName().equalsIgnoreCase("Доверенность")){
                return attributes.get("ДоверенноеЛицо");
            }
            else if(meta.getName().equalsIgnoreCase("КомплектацияТМЦ")){
                return attributes.get("Комплект");
            }
            else if(meta.getName().equalsIgnoreCase("ПеремещениеДенегБанк")){
                return attributes.get("БанковскийСчет");
            }
            else if(meta.getName().equalsIgnoreCase("ПеремещениеДенегКасса")){
                return attributes.get("КассаПолучатель");
            }
            else if(meta.getName().equalsIgnoreCase("Сторно")){
                return attributes.get("СторнируемыйДокумент");
            }
            else if(meta.getName().equalsIgnoreCase("ПКО") ||
                    meta.getName().equalsIgnoreCase("РКО")){
                EnumerationReference codeOper = (EnumerationReference) ref.getAttribute("КодОперации");
                EnumerationManager codeOperMan = new EnumerationManager("КодыОпераций");
                if(codeOperMan.getValueByIdentifier("ВозвратПодотчетныхСумм").equals(codeOper) ||
                        codeOperMan.getValueByIdentifier("ВыдачаПодотчет").equals(codeOper) ||
                        codeOperMan.getValueByIdentifier("ВыдачаПодотчетВал").equals(codeOper)){
                    return attributes.get("ФизЛицо");
                }
                else if(codeOperMan.getValueByIdentifier("Прочее").equals(codeOper)){
                    return attributes.get("Счет");
                }
                else{
                    return attributes.get("Контрагент");
                }
            }
            else if(meta.getName().equalsIgnoreCase("СтрокаВыпискиПриход") ||
                    meta.getName().equalsIgnoreCase("СтрокаВыпискиРасход")){
                EnumerationReference codeOper = (EnumerationReference) ref.getAttribute("КодОперации");
                EnumerationManager codeOperMan = new EnumerationManager("КодыОпераций");
                if(codeOperMan.getValueByIdentifier("Прочее").equals(codeOper)){
                    return attributes.get("Счет");
                }
                else{
                    return attributes.get("Контрагент");
                }
            }
            else if(meta.getProperty("Контрагент")!=null){
                return attributes.get("Контрагент");
            }
            else return "";

        }
 

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Web клиент
Ответ #7 - 14. Сентября 2010 :: 08:55
Печать  
gildebrand писал(а) 14. Сентября 2010 :: 08:43:
Так все просто. К справочникам
Код
Выбрать все
exec _1sp_SCXXX"+getMetaObject().getId()+"_ByID :id 


А к документам
Код
Выбрать все
select *  from _1sjourn (nolock) where iddoc=:id 


Это получение ссылок.
Далее возможны 2 режима работы - через "ссылки" или "объекты" - а ля как в 8-ке. Здесь разница в том, что при получении ссылки получаем значение реквизитов по мере обращения к ним или сразу получаются все реквизиты объекта.

вот видишь неувязочка.
По Списку справочника вытаскиваешь сразу все реквизиты, а по документу только его id ( хотя можно налететь еще на общие реквизиты
неограниченной длины )

(gildebrand) По моему тебе надо реализовать нечто типа ТП
т.е чтобы на  одной форме (web) можно открыть несколько  ТП
и можно было редактировать значения тп.
все остальное уже может сделать и программист.

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


I Love YaBB 2!

Сообщений: 56
Зарегистрирован: 01. Сентября 2006
Пол: Мужской
Re: Web клиент
Ответ #8 - 14. Сентября 2010 :: 09:08
Печать  
Z1 писал(а) 14. Сентября 2010 :: 08:55:
вот видишь неувязочка.
По Списку справочника вытаскиваешь сразу все реквизиты, а по документу только его id

Что то я вас не понял - как и в том так и в другом случае запрос получает строку, из которой на этапе создания ссылки интересует только id объекта.
Цитата:
( хотя можно налететь еще на общие реквизиты
неограниченной длины )

А этот момент вообще то не был здесь отражен.  Это происходит на следующем этапе - в процессе получения значения реквизита на основе метаданных.
  
Наверх
 
IP записан
 
Петр
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 06. Августа 2010
Re: Web клиент
Ответ #9 - 08. Ноября 2010 :: 10:16
Печать  
По указаной в первом посте ссылке уже ничего посмотреть нельзя. Вопрос закрыт ?
Очень любопытно было посмотреть.
  
Наверх
 
IP записан
 
gildebrand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 56
Зарегистрирован: 01. Сентября 2006
Пол: Мужской
Re: Web клиент
Ответ #10 - 30. Июня 2011 :: 12:20
Печать  
Петр писал(а) 08. Ноября 2010 :: 10:16:
По указаной в первом посте ссылке уже ничего посмотреть нельзя. Вопрос закрыт ?
Очень любопытно было посмотреть.

Да, сервак в свое время накрылся. В принципе можно восстановить.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Web клиент
Ответ #11 - 20. Января 2012 :: 11:05
Печать  
gildebrand писал(а) 30. Июня 2011 :: 12:20:
Петр писал(а) 08. Ноября 2010 :: 10:16:
По указаной в первом посте ссылке уже ничего посмотреть нельзя. Вопрос закрыт ?
Очень любопытно было посмотреть.

Да, сервак в свое время накрылся. В принципе можно восстановить.

Хотел бы посмотреть на это чудо
  
Наверх
 
IP записан
 
interseptor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Зарегистрирован: 19. Июня 2012
Re: Web клиент
Ответ #12 - 19. Июня 2012 :: 11:33
Печать  
Опять сервер умер?  Печаль
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Web клиент
Ответ #13 - 19. Июня 2012 :: 12:22
Печать  
Подтверждаю.
Интересная идея а можно как-то глянуть на сие творение?
  
Наверх
 
IP записан
 
quick
Junior Member
**
Отсутствует


LinuxMint, python, CodeTyphon

Сообщений: 83
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 21. Февраля 2008
Пол: Мужской
Re: Web клиент
Ответ #14 - 03. Июля 2013 :: 12:16
Печать  
Жаль что умерло. Задумка то хорошая.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать