Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Вопроси по опенконфу/внутренностям 1С, можно? (число прочтений - 14175 )
trdm
1c++ power user
qt1l developer
1c++ moderator
На связи



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Вопроси по опенконфу/внутренностям 1С, можно?
30. Мая 2006 :: 07:52
Печать  
Как имея указатель на CMetaDataObj, нужного объекта открыть форму элемента справочника, форму документа?
С обработками проблем нету, т.к. примеры есть. А вот с остальной бедой.......
Вернем форум по радуге?
  
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #1 - 30. Мая 2006 :: 11:29
Печать  
trdm писал(а) 30. Мая 2006 :: 07:52:
Вернем форум по радуге?

Я думаю, что пока стоит обсуждать прямо тут. Если вопросов будет много - выделим в отдельный форум.
  
Наверх
www  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #2 - 30. Мая 2006 :: 13:37
Печать  
Цитата:
Как имея указатель на CMetaDataObj, нужного объекта открыть форму элемента справочника, форму документа?
Во вложении - пример OLE-плагина для опенконфа.
В примере открывается форма документа.
Если нужно, могу рассказать по шагам как создать плагин в VC++ 6.0.
  

ocplug.rar ( 35 KB | Загрузки )

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
На связи



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #3 - 30. Мая 2006 :: 14:41
Печать  
Цитата:
Во вложении - пример OLE-плагина для опенконфа.
В примере открывается форма документа.
Если нужно, могу рассказать по шагам как создать плагин в VC++ 6.0.

Ага, теперь в принципе понял.
Если позволишь попробую описать шаги.
- Новый проект типа "ATL COM Wizard"
- Тип сервера dll + Флаг сабпорт МФЦ
- Инсерт нью АТЛ объект по ходу просто "Simpe Obj"
- Вводим имя, например MyATLPlg, атрибуты-все по умолчанию, + птичим галочку "Support &ISupportErrorInfo" + ОК
- #import "C:\Program Files\1Cv77\BIN\config.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
- компилим,
- прописываем классу еще одного предка, public IConfigPlugin, добавляем функции IConfigPlugin, описанные в доке по опенконфу, заводим свои.
пропустил только подключение  config.tlh config.tli, не помню как, но это легко устранимо.
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
На связи



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #4 - 30. Мая 2006 :: 14:51
Печать  
В связи с вышеизложенным.
У неня в своем прагине используются след. классы:
class CMDSplitter;
class CBaseView : public CFrameWnd
class CColumnTreeCtrl : public CTreeCtrl
class CColumnTreeView : public CView
class CInputStrDlg : public CDialog
class CMDSplitter : public CSplitterWnd
#define CMultiTree_BASE      CTreeCtrl
class MST_AFX_EXT_CLASS CMultiTree : public CMultiTree_BASE
CMapStringToString m_ObjToSub;      // № подсистмы к перечню объектов
class CMyDoc : public CDocument
class CMyListBox : public CListBox
class CMyView : public CColumnTreeView //CFormView
CToolBar, CHeaderCtrl, CArhive;
class CSubsView : public CFormView
class CSubsViewMain : public CFrameWnd
Их можно запросто всунуть в данный плагин? Или есть ограничения.
Много раз натыкался на вопросы типа "ATL+MFC проблема такая-то" но особо не вчитывался...
По этому пока чешу репу.... +Александр подсказам технологию открытия форм,
за что ему огромное спасибо...
  
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #5 - 30. Мая 2006 :: 14:56
Печать  
trdm писал(а) 30. Мая 2006 :: 14:41:
Ага, теперь в принципе понял.
Если позволишь попробую описать шаги.
- Новый проект типа "ALT COM Wizard"
- Тип сервера dll + Флаг сабпорт МФЦ
- Инсерт нью альт объект по ходу просто Simpe Obj
- Вводим имя, например MyATLPlg, атрибуты-все по умолчанию, + птичим галочку "Support &ISupportErrorInfo" + ОК

Так а далее:
  • в ClassView в контекстном меню для класса CMyATLPlg выбираем "Implement Interface", указываем путь к config.tlb и отмечаем интерфейс IConfigPlugin. Вот тут появляются config.tlh и импорт:
    trdm писал(а) 30. Мая 2006 :: 14:41:
    #import "C:\Program Files\1Cv77\BIN\config.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
  • реализуем Init, Done и GetPluginCaps.
  • в ClassView через контекстное меню интерфейса IMyATLPlg добавляем макросы (методы без параматров) и реализуем их
  • записываем в строковый ресурс с ID=100 ProgID класса (по умолчанию <Имя проекта>.<Имя класса>)
« Последняя редакция: 31. Мая 2006 :: 09:28 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #6 - 30. Мая 2006 :: 15:00
Печать  
trdm писал(а) 30. Мая 2006 :: 14:51:
+Александр подсказам технологию открытия форм,
за что ему огромное спасибо...

Поделись с общественностью.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #7 - 30. Мая 2006 :: 15:02
Печать  
Steban, а ты какой плагин к Опенконфу делал?
Что-то новое? или просто тренировался Улыбка ?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #8 - 30. Мая 2006 :: 15:18
Печать  
Цитата:
Steban, а ты какой плагин к Опенконфу делал?
Что-то новое? или просто тренировался  ?
Просто я не имею представления как то, что хочет trdm реализуется обычным плагином.
А имея IConfigurator делается легким движение руки.
Если человека оснавливает от написания ОЛЕ-плагина отсутствие информации и примеров, так что я решил помочьУлыбка
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
На связи



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #9 - 30. Мая 2006 :: 15:28
Печать  
+++trdm писал(а) 30. Мая 2006 :: 15:12:
Делюсь. Что-б другие не бодались как я беспробудно и безнадежно...


Steban (19:20:10 30/05/2006)
а где файл d4all.hpp?
хедеры нужны от радуги или от 1с++ пойдут?
trdm (19:21:32 30/05/2006

Выкинь это определение. Это движек CodeBase, он не используется....
Хейдеры от 1С++.

Можно еще выкинуть:
#include <oledb.h>
#include <msdasc.h>
пытался прикрутить OLE DB - cложно с первого раза
  
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #10 - 30. Мая 2006 :: 18:56
Печать  
Несколько пожеланий:
хочется поведения дерева как в стандартном дереве метаданных.
  • при даблклац открывать объект, а не его форму (касается всех объектов)
  • открытие форм элемента, группы списка справочника (формы в дереве перечислены а открыть нельзя)
  • копирование в буфер обмена идентификатора выделенного объекта
  • разрешить работать не только в панели

  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
На связи



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #11 - 31. Мая 2006 :: 12:33
Печать  
steban писал(а) 30. Мая 2006 :: 18:56:
Несколько пожеланий:
хочется поведения дерева как в стандартном дереве метаданных.

Принято. Однако:
  • при даблклац открывать объект, а не его форму (касается всех объектов) - пока не знаю как это сделать, пытался искать окно конфигурации, сабкласить дерево метаданных для позиционирования на итеме и посылки WM_COMMAND с нужным пунктом - получил ошибку "стек оверфлов", так что пока это сделать не смогу.
  • открытие форм элемента, группы списка справочника (формы в дереве перечислены а открыть нельзя) (сделаю)
  • копирование в буфер обмена идентификатора выделенного объекта (надо в обяз-но в буфер? В планах = добавить настраиваемый столбец с ИД (скрыть/показать) и настраиваемый пользователем драг/дроп в зависимости от статусов клавишь: Ctrl; Shift; Scroll Lock?)
  • разрешить работать не только в панели (вроде обсудили? или нет?)

В планах: сделать сортировку по метаданных по клику на хейдере.
ЗЫ: А где у нас vis1cpp обсуждается? Хотелось бы обсудить иконку для класса определенного внешнем отчете/текстовом файле, да еще поклянчить пару бантиков к нему.....
  
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #12 - 31. Мая 2006 :: 13:02
Печать  
trdm писал(а) 31. Мая 2006 :: 12:33:
ЗЫ: А где у нас vis1cpp обсуждается?

Здесь. Все здесь. Форумы будут выделяться по мере надобности.
  
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
На связи



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #13 - 31. Мая 2006 :: 13:47
Печать  
Господа, надоумте как с пом. радужных хейдеров сделать по этому пункту:
  • при даблклац открывать объект, а не его форму (касается всех объектов) - пока не знаю как это сделать, пытался искать окно конфигурации, сабкласить дерево метаданных для позиционирования на итеме и посылки WM_COMMAND с нужным пунктом - получил ошибку "стек оверфлов", так что пока это сделать не смогу.

  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
На связи



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопроси по опенконфу/внутренностям 1С, можно?
Ответ #14 - 31. Мая 2006 :: 21:29
Печать  
trdm писал(а) 31. Мая 2006 :: 13:47:
Господа, надоумте как с пом. радужных хейдеров сделать по этому пункту:
  • при даблклац открывать объект, а не его форму (касается всех объектов) - пока не знаю как это сделать, пытался искать окно конфигурации, сабкласить дерево метаданных для позиционирования на итеме и посылки WM_COMMAND с нужным пунктом - получил ошибку "стек оверфлов", так что пока это сделать не смогу.


Просто замучался переделывать плагин. Это будет уже 4-я версия. Раз ни как с пом. радуги тада ч/з МФЦ+АТЛ с их траблами из-за несовместимости.
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать