1C++ – внешняя компонента для программы 1С: Предприятие

Вид материалаПрограмма

Содержание


Получение имен таблиц
ИмяПоля – имя, которое будет доступно для обращения к полю методами этого класса. Тип1С
Подобный материал:
1   2   3   4   5   6   7   8

6. Рекомендуемая дополнительная литература

  • Грэди Буч. Объектно-ориентированный анализ и проектирование;
  • Э. Гамма, Р. Хелм, Р.Джонсон, Дж. Влиссидес. Приемы объектно-ориентированного проектирования;
  • Дж. Рамбо, А. Якобсон, Г. Буч. UML Специальный справочник.
  • А. Якобсон, Г. Буч, Дж. Рамбо. Унифицированный процесс разработки программного обеспечения. Издательство «Питер» 2002 год.
  • Бьерн Страуструп. Язык программирования С++ 3-е издание, главы 24. «Проектирование и программирование» и 25 «Роли классов». Издательство «Бином» 2000 год.
  • Крэг Ларман. Применение UML и шаблонов проектирования. Введение в объектно-ориентированный анализ и проектирование.



7. Информационная поддержка проекта


В этом разделе будут появляться различные ссылки на ресурсы в сети, которые, так или иначе, связанны с данным проектом.
  • Репозитарий классов для 1С++ - ссылка скрыта (ru/clar.html), здесь разработчики могут найти себе подходящий рабочий класс или выложить свой.
  • здесь (ru/cgi-bin/predownl.cgi?id=1461), можно скачать свежую версию ВК 1С++.
  • ссылка скрыта (ссылка скрыта) - обсуждение объектно-ориентированного подхода в программировании на языке 1С.
  • Сюда (debbuger@yandex.ru) присылайте замечания, предложения, сообщения о найденных ошибках.

8. Благодарности


В этом разделе я хотел бы упомянуть всех тех людей, которые принимали участие в создании, тестировании, просто советовали, предлагали идеи. Всех кого я здесь не отметил, прошу не обижаться, а написать мне на debbuger@yandex.ru и я вспомню вас и с удовольствием внесу в этот список. От себя же хочу добавить, что я всем крайне признателен за их участие и за их интерес к этой разработке, или другими словами вместе мы – сила!
  • Панферов Вартан
  • WildHare
  • А. Рачкин
  • ToyPaul
  • Zerga
  • Maxim A. Polomoshnov
  • Alex Agarkov
  • Андрей Бертыш
  • Сергей Огарков aka SO
  • Slay
  • Alex L. Fedorov aka АльФ
  • Александр Орефков
  • Ощепков Д.В.

9. Разработчики

  • Гусев Дмитрий aka Deb основной движок 1С++ и дополнительные классы - разделы: 3.1, 3.2, 3.3, 3.4, 3.5, 3.7
  • В классах 3.12, 3.13, 3.14 были использованы наработки: Павла Шемякина, Carlosa Antollini, Поломошнова Максима, Валерия Атаманюка, за что им мой респект и большое спасибо.
  • Андрей Рачкин дополнительные классы - разделы: 3.6, 3.8
  • Алекс Л. Фёдоров aka АЛьФ дополнительные классы - разделы: 3.9, 3.10, 3.11, раскраска таблиц
  • Александр Орефков раздел 1.8. Visual 1C++ 1.0, TurboBL
  • Ощепков Д.В. – SQL процессор метаимен



Приложение А. Спецификация метаимен и параметров в запросах


v 2.13

Содержание

Описание условных обозначений

Спецификация метаимен

Получение имен таблиц

Получение имен полей

Получение внутренних идентификаторов

Описание виртуальных таблиц

Виртуальная таблица остатков

Виртуальная таблица оборотов

Виртуальная таблица остатков и оборотов

Описание виртуальных значений

Получение наиболее позднего периодического значения

Получение начала периода

Спецификация параметров

Правила обозначения модификаторов

Описание условных обозначений

Идентификаторы 1С, как они заданы в конфигураторе

  • Константа – идентификатор константы;
  • Справочник – идентификатор справочника;
  • Документ – идентификатор документа;
  • ВидПеречисления – идентификатор вида перечисления;
  • Регистр – идентификатор регистра;
  • ЖурналДокументов – идентификатор журнала документов;
  • Последовательность – идентификатор последовательности документов;
  • ЖурналРасчетов – идентификатор журнала расчетов;
  • ГрафаОтбора – идентификатор графы отбора;
  • Реквизит – идентификатор реквизита справочника, регистра или журнала расчетов;
  • РеквизитШапки – идентификатор реквизита шапки документа;
  • РеквизитТабличнойЧасти – идентификатор реквизита табличной части документа;
  • Измерение – идентификатор измерения регистра;
  • Ресурс – идентификатор ресурса регистра;
  • ПериодическийРеквизит – идентификатор периодического реквизита;
  • ОбщийРеквизит – идентификатор общего реквизита;
  • ВидРасчета – идентификатор вида расчета;
  • ГрафаОтбораЖР – идентификатор графы отбора журнала расчетов;
  • Календарь – идентификатор календаря;

Специальные обозначения

  • ХХХХ – внутренний идентификатор объекта метаданных (десятичное представление);
  • ZZZZ – внутренний идентификатор объекта метаданных (тридцатишестиричное представление);
  • Alias – псевдоним таблицы в SQL запросе;
  • ИмяПараметра – имя параметра.

Для обозначения начала метаимени в тексте запроса используется символ “$”.

Для обозначения начала имени текстового параметра в тексте запроса используется символ “:”.

Для обозначения начала имени SQL параметра в тексте запроса используется символ “?”.

Метаимена транслируются только в теле запроса, т.е. не транслируются в комментариях, текстовых литералах. Метаимена также не транслируются в квадратных скобках [ … ] (расширенных идентификаторах MS SQL).

Замечание! На текст запроса накладывается дополнительное ограничение: псевдонимы таблиц, имена которых транслируются из метаимен, не должны повторяться, иначе трансляция метаимени полей через псевдоним таблицы может быть неверной.

Типизация колонок типами 1С в тексте запроса.


Для получения в наборе данных агрегатных типов 1С, возможна типизация колонок в тексте запроса. Для этого необходимо использовать специальный типизирующий псевдоним (алиас) колонки.

Формат типизирующего псевдонима

[<ИмяПоля> $<Тип1С>]

ИмяПоля – имя, которое будет доступно для обращения к полю методами этого класса.

Тип1С – строка, представляющая тип 1С, который будет назначен полю, в формате применяющемся в методе SetTypeColumn1C.

Спецификация типизирующих имен

Типизирующее имя

Допустимые SQL типы в наборе данных

Строка

Любой

Дата

Любой

Число

Любой

{Справочник|Reference}

Char(13)

{Справочник|Reference}.<Справочник>

Char(9)

{Документ|Document}

Char(13)

Char(9) – Идентификатор объекта, кроме того, в наборе данных должна находиться колонка с именем составленным из имени этой колонки и суффикса {_вид|_kind} (чувствительно к регистру), в которой должны содержаться идентификаторы видов документов. Тип колонки SQL: Int, DBF: Char(4)

{Документ|Document}.<Документ>

Char(9)

{Перечисление|Enum}

Char(13)

{Перечисление|Enum}.<ВидПеречисления>

Char(9)

{Неопределенный|Undefine}

Char(23)

{ВидРасчета|CalculationKind}

Int – идентификатор в журнале расчетов SQL формат;

Char(4) - идентификатор в журнале расчетов DBF формат;

Char(13) - в остальных таблицах, где вид расчета содержится как реквизит;

{Календарь|Calendar}

Char(13)

{Субконто|Subconto}

Char(13) – идентификатор значения субконто (с видом или без вида). Типизируется в значение субконто, кроме того в наборе данных должна находиться колонка с именем составленным из имени этой колонки и суффикса {_вид|_kind} (чувствительно к регистру), в которой должны содержаться идентификаторы видов субконто. Тип колонки SQL: Int, DBF: Char(4). Типизация субконто простых типов (число, строка, дата) не поддерживается.

{Класс|Class}.<ТипКОП>

Любой SQL тип. Создается объект типа ТипКОП. Значение поля будет преобразовано в значение которое может хранить 1С, и передано в процедуру КОП _SQLCreate().

Примечания:
    • конструктор класса отработает раньше чем _SQLCreate();
    • и конструктор и _SQLCreate() не должны использовать обращение к БД на соединении по которому в данный момент получается выборка, во избежание конфликтов локального курсора.



Поддержка пользователей DBF формата ИБ.


Для пользователей DBF формата ИБ, рекомендуется использовать следующую строку подключения: "DRIVER = {Microsoft Visual FoxPro Driver}; Deleted = No; Null = Yes; Collate = RUSSIAN; Exclusive = No; SourceType = DBF; SourceDB = <КаталогИБ>"

В запросах допустимы комментарии типа -- и /* */, при DBF формате ИБ они будут вырезаны парсером перед передачей текста на драйвер.

В запросах допустима типизация колонок набора данных по общим правилам.