Проект: МОЕ ПРЕДПРИЯТИЕ
Новости
Цели проекта
-Концепция
-Реализация
Состояние
Download
 
 
 
 

 

Внимание: проект закрыт, все наработки перенесены в проект 2С (Совместимая Система)

 

Цели проекта:

Цель проекта - создание новой открытой платформы для создания информационной системы предприятия.

Концепция построения и развития информационной системы "МОЕ ПРЕДПРИЯТИЕ"
Общие:
-Система будет строиться с середины. Предполагается, что уже есть исходная конфигурация, описывающая бизнес логику предприятия (т.е. это md-файл конфигурации 1С:Предприятие 7.7). В рамках этого проекта будет происходить конвертация такой конфигурации в проект на С++.
-В обеспечение вышеуказанного пункта система на первом этапе должна будет, как минимум повторять функциональность и интерфейс программы 1С:Предпритие 7.7. На следующих этапах будет производиться повышение удобства интерфейса, улучшение технических характеристик, например, построение трехзвенной архитектуры и пр.
Технические:
-Операционная система - MS Windows (портирование на другие ОС допускается)
-Основной язык программирования для создания ядра является С++ с использованием библиотеки MFC. Модули, подключаемые для расширения набора компонент (dll библиотеки) могут быть написаны на произвольном языке.
-Для хранения базы данных принимается произвольный SQL-сервер, поддерживающий стандарт SQL ANSI-92
-Новая платформа будет позиционироваться как система для средних и крупных предприятий
-В основании построения такой системы будут лежать программисты-энтузиасты, имеющие теоретический интерес (повышение профессионального уровня знаний, собственной самооценки) или практический интерес (использование такой системы в своей организации).
Лицензия:
-Неограниченна

Примерная диаграмма проекта:

Примечание: работа программы-компилятора 1С-кода (ICompiler.exe) основывается на синтаксическом разборе конструкций макроязыка 1С, диаграммы которых приведены здесь.


Техническая реализация
Основа построения системы является объектная модель. Для обеспечения совместимости кода транслятор макроязыка 1С и компилятором С++ служит класс CValue, который является базовым классом для всех агрегатных объектов, поддерживает произвольные типы данных, все методы и операции, аналогично транслятору 1С. Один и тот же указатель типа CValue сможет работать одновременно с произвольными объектами.
Обращение к произвольным данным осуществляется через предопределенные методы:
-Attribute(ИмяАтрибута)
-Method(ИмяМетода,Параметры)
Прямое обращение к методам допускается для типизированных переменных, такие как, диалоговые элементы формы или при явном задании типов в исходном коде 1С (через директивы компилятора).

Пример работы с нетипизированной переменной (Spisok):
Spisok=::CreateObject(_S("СписокЗначений"));
for(A=1;A<=10;A=A+1)
{
Spisok.Method("ДобавитьЗначение",A,_S("Тест-")+A);
};
Spisok.Method("Сортировать",0);
Spisok.Method("ВыбратьЗначение",_S(""),_S("Выберите что-нибудь"));

Пример работы с типизированной переменной, находящейся на форме диалога (SpisokDialoga):
for(A=1;A<=10;A=A+1)
{
SpisokDialoga.AddValue(A,_S("Тест-")+A);
};
SpisokDialoga.Sort(0);
SpisokDialoga.ChooseValue(_S(""),_S("Выберите что-нибудь"));

Таким образом, все объекты в системе, которые предполагают использование в конфигурации в независимости от типа объекта (диалоговые, для работы с базами данных или системные) должны содержать свое описание в потомке базового класса CValue. Это осуществляется наследованием класса, реализацией функций обработки обязательных методов (предопределенных наследуемых методов) и дальнейшей регистрации такого объекта в списке объектов (для дальнейшего доступа к такому объекту через функцию CreateObject):
RegisterObject(RUNTIME_CLASS(CValueGrid),"Таблица");
RegisterObject(RUNTIME_CLASS(CValueList),"СписокЗначений");

Примерная иерархическая схема агрегатных классов:

 

 

 

1C:TOP-100

 

 

 

 

 

Hosted by uCoz