Версия 2.0.1.0

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

- Устранена ошибка возникающаяя при использовании параметризированных запросов. State 24000
  Недопустимое состояние курсора.

- Принята новая система версий. 

- Устранены проблемы с аппаратным DEP.

- Добавлен встроенный класс ИндексированнаяТаблица, англ. синоним IndexedTable

#########################################################################################
Версия 1.8.1.7

- ВыполняемыйМодуль::ПолучитьИнформациюОПроцедуре() получение информации о процедуре или функции.

- Исправлена ошибка. СервисРасшФормы::ЭмулироватьКлавиатуру() не отрабатывал код клавиши NUMLOCK.

- Восстановлено значение 0 флага стандартной обработки в процедуре ГМ ОбработкаЯчейкиТаблицы.

- Новые объекты: ТаблиноеПоле, ПоставщикДанныхODBC, ПоставщикДанныхТЗ

- Новые классы: OLEDBData (нет рус. синонима) и OLEDBCommand (нет рус. синонима)

#########################################################################################
Версия 1.8.1.6

- Добавлена возможность хранить несколько классов в одном модуле. Для этого текст модуля 
  каждого класса нужно начинать со строки "//# ClassBegin <ClassName>" и заканчивать 
  строкой "//# ClassEnd <ClassName>", где вместо <ClassName> пишем имя класса. 
  Пробелы имеют значение.

- Исправлена ошибка. Флаг стандартной обработки при вызове процедуры ГМ ОбработкаЯчейкиТаблицы
  при входе в процедуру имеет значение 1.

- BinaryData режимы открытия файлов.
  Исправлена ошибка: при чтении данных из 4 байт результатом могло быть отрицательное число.
  Теперь только положительное.

- Оптимизировано создание объектов. Ускорена работа функции СоздатьОбъект().

- Добавлена оптимизация: ВТ РегистрОбороты по оборотному регистру, если расчет идет по ТА, то
  не используется таблица движений.

- Введены модификаторы для типа Документ: 3-ВидДокумента 4-ПозицияДокумента.

- Добавлен новый метод: ODBCRecordset::УложитьСписокОбъектов13(СпОбъектов, ИмяВремТаблицы).

- Поправлен метод ODBCRecordset::ReconnectNative.

- MetaInfoClasses::ПолучитьВерсию() и страница свойств компоненты получают версию из VERSION_INFO
  ресурса загруженной dll.

- Новый метод ODBCRecordset::РежимRPC(). Только для MSSQL. Переводит парсер в режим, в котором
  парсинг идет для выполнения запроса с помощью RPC вызова хранимой процедуры sp_executesql.

- Несколько ускорен парсинг текста запроса.

- Новые метаимена: $ПустойИД, $ПустойИД13.

#########################################################################################
Версия 1.8.1.5

Изменения ODBCRecordset и иже с ним v. 2.12

- Доработан метод ODBCRecordSet::ВыполнитьСкалярный(). Если в результате запроса отсутствовала
  строка, то для простых типов возвращаемое значение могло быть не пустым.

- Доработан метод ODBCRecordSet::ВыполнитьИнструкцию(). Если в переданной таблице было больше
  колонок чем в результате запроса, происходило аварийное завершение программы.

- Метод ODBCDataBase::ReconnectNative(). Решение бага MSSQL при вставке во временную таблицу
  при выполнении ХП sp_executesql. Переподкючает программу к серверу.

- Имена КОП-ов, их методы и свойства регистронезависимы.

- ODBCRecordSet::ExecuteStatement() Исправлена ошибка при передаче вторым параметром простого
  типа происходило аварийное завершение работы.

- ODBCRecordSet. Метод для получения XML результата.

- BinaryData. Работа с файлом в разделенном режиме. Добавлены методы работы с
  блокировками. Объект может чтение/запись строк в различных кодировках (ANSI,
  OEM, UTF-16(LE), UTF-8)

- ODBCRecordSet. Доработано получение длинных строк в unicode (ntext).

- Парсер запросов. Добавлено условие по флажку регистра в таблице журнала документов.
  В общем случае повышает быстродействие.

Изменения ядра FormEx

- новый метод CurrentTreeColumn/ТекущаяКолонкаДерева у объекта "Дерево+Таблица"

- исправлена ошибка совместимости с PuntoSwitcher

- исправлена ошибка с флагом стандартной обработки в процедуре ОбработкаЯчейкиТаблицы

- исправлена ошибка невызова глобальных процедур обработки событий мыши и клавиатуры,
если нет открытых форм

- исправлена ошибка установки системного курсора (на изменение размеров) главного окна

#########################################################################################
Версия 1.8.1.4

- доработка объекта "Дерево+Таблица"

- у объекта "СервисРасшФормы" новый метод - КоманднаяСтрока()

#########################################################################################
Версия 1.8.1.3

Изменения ODBCRecordset и иже с ним v. 2.11

- Исправлена ошибка MetaDataWork::ЗначениеВСамуюДлиннуюСтрокуБД() формировала строковое
  представление длиной 15 символов, теперь 23.

- Убран функционал КОП _StringView(), т.к. произошло дублирование функций с _getCode().

- В реализации метаимени $ПоследнееЗначение изменен внутренний алиас на нечитабельный.

- ODBCRecordset::ExecuteScalar(); если в результате запроса будет несколько полей,
  возвращается объект Структура заполненый соответствующим образом (если одно поле,
  возвращается его значение).

- Исправлена ошибка. Новыми методами выполнения (ЕхecuteStatement и ExecuteScalar) было
  невозможно записывать длинные поля.

- Исправлена ошибка. При использовании ODBCRecordset::ExecuteScalar() и
  параметризированном запросе, если в результате запроса получается пустая выборка
  возвращалось значение с прошлого выполнения.

- баг-фикс части, касающейся FormEx;

- получение списка принтеров, проверка состояния принтера;

- управление видом курсора (можно устанавливать на реквизит формы, саму форму и на главное окно;
  естественно, везде можно разные курсору задавать);

- управление цветом фона и шрифта реквизитов (работает не для всех типов реквизитов);

- новый визуальный объект "дерево-таблица";

- перехват списка значений (можно в реквизите "поле со списком" напрямую набирать с клавиатуры и
  список будет позиционироваться на соответсвующем значении);

- сброс флага модифицированности формы;

- получение координат левого-верхнего угла формы;

- минимизация формы;

- воспроизведение wav-файла;

- получение списка открытых печатных форм с возможностью их последующей записи;

- получение версии ОС;

- обработка ожидания, работающая во всех режимах (даже при открытом модальном окне) с установкой
  периода вызова в миллисекундах;

- загрузка дополнительных глобальных модулей директивой ЗагрузитьИзФайла.

#########################################################################################
Версия 1.8.1.2

Изменения ODBCRecordset и иже с ним v. 2.10

- Исправлена ошибка. При получении значения null в колонке типа datetime (SQL_C_TIMESTAMP)
  формировалось некорректное пустое значение типа Дата.

- Новый функционал. Объекты типа КОП могут реализовать собственное представление
  в виде строки. Для этого КОП должен реализовать функцию "_StringView", которая
  должна вернуть строковое представление объекта.

- Новый функционал. Типизация выборки типом КОП. Для этого необходимо:
  1)Использовать типизирующее имя "Класс" и имя класса, например
    "Спр.id [ОбъектТипаМойКОП $Класс.МойКОП]";
  2)В реализации класса должна присутствовать процедура с названием "_SQLCreate"
    (виртуальный конструктор), которая будет вызвана после создания объекта, указанного
	в типизации класса; процедура должна иметь два или меньше параметров; в первом
	параметре передается значение поля без типизации, во втором статический объект типа
	MetaDataWork.
  3)в реализации _SQLCreate и конструктора объекта не должно быть обращения к БД на
    том соединении на котором в данный момоент происходит выборка (во избежание кофликта
	локального курсора).

- Переписана работа с длинными строками (SQL_LONGVARCHAR). Теперь возможна запись.

- Новый объект "BinaryData". Позволяет работать с двоичными данными. Данные может
  содержать в памяти или на диске. Создание, чтение/запись данных через строку или целое
  число различной разрядности, сжатие/разжатие внутренним архиватором (zip), чтение/запись
  в БД (ODBC тип поля SQL_LONGVARBINARY).

- Новый объект "GUID". Формирование нового, выгрузка/загрузка в строку, сравнение,
  чтение/запись в БД (ODBC тип поля SQL_BINARY(16)).

- Исправлена ошибка. При типизации колонки именем $Дата, неправильно возвращался ее
  1С тип методом ПолучитьПараметрыПоля().

- Исправлена ошибка. При типизации колонки агрегатным типом, если поле содержало строку
  длиной меньше минимально необходимой в результате могло получиться некорректное значение.

- Добавлены методы ODBCRecordSet::ExecuteStatement() и ODBCRecordSet::ExecuteScalar().
  При ошибке в запросе формируют исключение. Обеспечивают получение результата запроса,
  закрывая курсор. ExecuteStatement() возвращает таблицу значений или количество
  обработанных строк. Время загрузки результата запроса в таблицу значений уменьшено на
  30-60%. ExecuteScalar()возвращает значение из первого поля первой строки результата,
  остальные данные игнорируются или количество обработанных строк.

- При типизации колонки типа datetime именем $Строка возвращаются значения типа строка
  с каноническим представлением даты ODBC.

- Для корректной отрисовки ЭУ текст, рамка, флажок, переключатель внесены изменения в
  FormEx.

- Исправлена ошибка. Метод ODBCRecordSet::ВыполнитьSQL_ИзТЗ() не работал правильно при
  использовании подстроки в заголовке поля "?3" и "?*".

- Исправлена ошибка. При получении полей типа Numeric в состоянии когда набор данных не
  спозиционирован на строке происходило аварийное завершение программы.

- Новый метод ODBCRecordset::ОбратныйРасчетОтТА(). Разрешает оптимизацию расчета остатков
  от ТА.

- Исправлена ошибка. ВТ РегистрОбороты по оборотному регистру. В случае когда периодичность
  оборотного регистра квартал или год происходил неправильный расчет итогов.

- Исправлена ошибка. ВТ РегистрОбороты по оборотному регистру. В случае когда в ВТ
  передавался период выходяший за рамки периодичности итогов с обоих строн, и условие
  - формировался неправильный запрос и в выборку попадали лишние записи.

- Исправлена ошибка. При типизации именем $Документ с использованием поля с суффиксом
  "_вид" и имененм $Субконто, и при размещении поля с суффиксом "_вид" первым в выборке,
  типизация не работала.

#########################################################################################
Версия 1.8.0.2

Изменения ODBCRecordset и иже с ним v. 2.9

- Новый функционал. Типизирующее имя $Субконто, для типизации полей - значений субконто,
  при этом в выборке должно находиться поле с именем, состоящим из имени
  типизируемого поля и суффикса "_вид", в зачении которого должен быть вид субконто.
  При этом в выборке в поле с видом субконто будут значения типа ВидСубконто.

- Новый функционал. ODBCRecordset::УложитьСписокОбъектов() может создать временную
  таблицу счетов по иерархии плана счетов. Для этого нужно передать счет или
  СписокЗначений со счетами и идентификатор плана счетов.

#########################################################################################
Версия 1.8.0.1
- Изменения ODBCRecordset и иже с ним v. 2.8

- Исправлена ошибка. При соединении через драйверы для интерфейса ODBC API версии
  меньше 03.00, при получении чисел происходило аварийное завершение.

- Исправлена ошибка. ВТ РегистрОбороты, в некоторых случаях игнорировались связи и
  условия.

- Исправлена ошибка. При использовании ВТ РегистрОстаткиОбороты, в случае когда
  результат не перебирается до конца, и подается метод Закрыть() происходило
  аварийное завершение.

- Исправлена ошибка. Не создавался объект SQLLock.

- Код формирования запросов ВТ переписан на 80% все обращения к полям внутри
  запросов ВТ идут через алиасы таблиц. Это позволяет использовать в связях таблицы
  с именами полей, совпадающими с именами полей таблиц источников данных для ВТ.

- Метод УложитьСписокОбъектов() при указании в третьем параметре вида справовника,
  который неопределен в конфигурации, происходило аварийное завершение, сейчас
  формируется 1С исключение.

- В очередной раз поправлена работа с числами: если драйвер для ODBC API
  версии меньше 03.00 получение числа идет через строку, иначе если точность меньше
  или равна 9 получение идет через SQL_NUMERIC_STRUCT, иначе через строку.
  Т.о. при получении чисел из типа SQL_NUMERIC тип double не используется никогда.
  Однако, при установке SQL параметров используется тип double.

- При включеной отладке, и параметризированном запросе не выводятся сообщения в
  методе Open()

#########################################################################################
Версия 1.8.0.0
- Исправлена ошибка допущеная при внесении изменений в релизе 1.7.2.3, а именно: 
  "В группу базовых методов классов: ПолучитьБазовыйКласс()/GetBaseClass() и НазначитьБазовыйКласс()/AssignBaseClass()
  добавлена поддержка английских синонимов объектов 1С, таких как Документы, Справочники, Регситр, Регситры, 
  соответственно: Document, Reference, Register, Registers. Учет видов некоторых из этих объектов не изменился."
- Исправлена ошибка, в некоторых случаях не работала АвтоТипизация
- Добавлена возможность чтения полей строк с неограниченной длиной. ВНИМАНИЕ: запись строк с неограниченной длиной
  запрещена.

Изменения ODBCRecordset и иже с ним v. 2.6

- Исправлена ошибка. В методе ВыполнитьSQL_ИзТЗ() в ТЗ, в имени колонки числом
можно указать модификатор, как и написано в документации.

- Исправлена ошибка. При использовании набора строк (УстРазмерМножестваСтрок),
в некоторых случаях неработала типизация.

- Исправлена ошибка парсинга связей в виртуальных таблицах, случающаяся в
некоторых случаях.

- Переработано получение чисел из набора данных. До этого, для получения числа
от драйвера ODBC использовался тип double, что в некоторых случаях приводило
к потере точности (мантисса ограничена). Теперь, если десятичная_точность числа
не превышает 9 знаков, формирование внутреннего числа 1С происходит без
использования float арифметики. При этом, по некоторым оценкам, наблюдается
повышение быстродействия на ~20%.
Следует иметь в виду, что при получении чисел с точностью более 9 знаков
все работает как раньше.

- При типизации колонки выборки типом $Неопределенный, кроме агрегатных типов
допустимо получать простые типы 1С (Число, Строка, Дата). Аналогично работает
теперь метод MetaDataWork::ЗначениеИзДлиннойСтрокиБД().

- MetaDataWork::ЗначениеИзСтрокиБД(). Может вернуть запись журнала расчета. Для
этого необходимо первым параметром передать строку "ЗаписьЖурналаРасчета",
вторым идентификатор журнала расчета, третьим, идентификатор записи ЖР в
формате char(9). Соединение с SQL сервером должно быть свободно от открытых
локальных курсоров.

- Новый метод MetaDataWork::ЗначениеВСамуюДлиннуюСтрокуБД() позволяет для переданного
значения получить строку которая хранится в базе данных в реквизите типа
Неопределенный.

- Новый метод ODBCRecordset::УстТаймаутЗапроса(<ТаймаутВСекундах>), устанавливает
таймаут на выполнение запроса. Если выполнение не завершается до истечения таймаута
выполнение методов ODBCRecordset::Выполнить() или ODBCRecordset::Открыть()
завершается с ошибкой. Для проверки что запрос вывалился по таймауту, существует
метод ODBCRecordset::ИстекТаймаут(), вызывать его нужно только после
ODBCRecordset::ПолучитьОписаниеОшибки().
Применяя это возможно решить проблему загрузки процессора при ожидании захвата таблиц,
которая так актуальна в терминальных системах.

- Новый объект SQLLock. Позволяет получать новые идентификаторы объектов, коды
справочников, номера документов, которые можно использовать для образования новых
записей в базе данных.

- Добавлена возможность работы со значениями типа time (SQL_TYPE_TIME).
Значение возвращается и устанавливается в виде строки с каноническим представлением
времени (hh:mm:ss).

- Добавлены типизируещие имена:
${Счет|Account}
${Счет|Account}.*
${ВидСубконто|SubcontoKind}
${ПланСчетов|ChartOfAccount}


#########################################################################################
Версия 1.7.2.3
- В группу базовых методов классов: ПолучитьБазовыйКласс()/GetBaseClass() и НазначитьБазовыйКласс()/AssignBaseClass()
  добавлена поддержка английских синонимов объектов 1С, таких как Документы, Справочники, Регситр, Регситры, 
  соответственно: Document, Reference, Register, Registers. Учет видов некоторых из этих объектов не изменился.

- Исправлена ошибка в методе ODBCRecordset::ExeSQL_FromTV, не учитывался тип ссылочного параметра для 
  обрабатываемой таблицы значений ?1, ?2, ?3. Исправлена документация в части описания данного метода.
  Вместо: "Заголовок должен содержать строку вида ?X в любом месте строки, где Х может принимать 
  следующие значения: 0 - короткая строка (9 - символов), 1 - длинная строка (13 - символов), 
  2 - супер длинная строка (15 символов)" следует читать: "Заголовок должен содержать строку вида ?X в 
  любом месте строки, где Х может принимать следующие значения: 1 - короткая строка (9 - символов), 
  2 - длинная строка (13 - символов), 3 - супер длинная строка (15 символов)"

- Добавлена возможность препроцессора: в момент загрузки модулей из внешних отчетов как модуля класса, 
  автоматически определяется символ препроцессора: _NOW_PREPARE_CLASS 
  (аналогично строке кода //#define _NOW_PREPARE_CLASS) 
  и отключался после того, как класс уже готов.
  (аналогично строке кода //#undef _NOW_PREPARE_CLASS)


#########################################################################################
Версия 1.7.2.2
- При передаче переменного числа параметров методу класса, который описан как Число Получить(...);
  при вызове "Получить(0);" поведение внутри функции "получить" :
  Функция Получить()  Экспорт
    список = Сам(Контекст).ПолучитьСписокПараметров("Получить");  
//   после чего сразу же
//   список.ПолучитьЗначение(1) возвращает  "" и
//   ТипЗначенияСтр(список.ПолучитьЗначение(1)) возвращает "Строка"
  Исправлено на:
//   список.ПолучитьЗначение(1) возвращает  0 и
//   ТипЗначенияСтр(список.ПолучитьЗначение(1)) возвращает "Число"
  Также и со всеми остальными пустыми ссылочными (спавочники, документы, ...) типами данных, типом 
  дата, которые превращались в "пустую строку"

*************************************************************************************
- Изменения ODBCRecordset и иже с ним v. 2.5

- Виртуальные таблицы остатков, остатков и оборотов на распределенной базе
  данных могли выдавать неверные итоги.
  Исправлено: работают правильно.

- Метод MetaDataWork::ПолучитьДобПериод(). Теперь работает для всех возможных
  значений периодичности сохранения итогов.

- Типизация колонок выборки ODBCRecordset. Для типизирующего имени "$ВидРасчета"
  колонка может иметь три различных SQL типа:
    int - в журнале расчетов SQL формата ИБ;
    char(4) - в журнале расчетов DBF формата ИБ;
    char(13) - в остальных таблицах, где вид расчета содержится как реквизит.

- Для параметра со значением типа ВидРасчета, определен модификатор с номером 2
  (~~), который обозначает, что в текст запроса будет подставлен литерал, тип
  которого будет соответствовать типу хранения в журнале расчетов, для текущего
  формата ИБ (SQL:int, DBF:char(4)).

- Внимание! Изменена трансляция метаимени "$ВидДокумента.ХХХХХ". При SQL
  формате ИБ - литерал типа int, при DBF формате - литерал типа char(4) со
  значением идентификатора вида документа в 36-м формате.

- Внимание! Изменена трансляция метаимени "$ВидРасчета.ХХХХХ". При SQL формате
  ИБ - литерал типа int, при DBF формате - литерал типа char(4) со значением
  идентификатора вида документа в 36-м формате.

- Определено метаимя "$ВидДокумента36.ХХХХХ", транслируется в литерал типа
  char(4), со значением идентификатора вида документа в 36-м формате.

- Определено метаимя "$ВидСправочника36.ХХХХХ", транслируется в литерал типа
  char(4), со значением идентификатора вида справочника в 36-м формате.

- Определено метаимя "$ВидПеречисления36.ХХХХХ", транслируется в литерал типа
  char(4), со значением идентификатора вида перечисления в 36-м формате.

- При DBF формате ИБ, в тексте запроса возможно использование коментариев обоих
  типов (--) (/* */) (парсер их просто убирает, перед передачей текста запроса
  на драйвер). Протестировано на драйвере {Microsoft Visual FoxPro Driver}.

- При DBF формате ИБ, возможна типизация колонок результата запроса прямо в
  тексте запроса, по общим правилам. Протестировано на драйвере {Microsoft
  Visual FoxPro Driver}.

- Типизация колонок выборки ODBCRecordset. Для типизирующего имени "$Документ"
  (документ неопределенного вида) колонка может иметь два различных SQL типа:
    char(13) - собственно как и было (kind[4] + objid[9]);
    char(9) - в этом случае значения должны быть идентификаторами документов
    (objid[9]), в наборе данных должна находиться колонка с именем состоящим
    из имени колонки с идентификатором документа и суффикса "_вид" или "_kind"
    (Внимание, чувствительно к регистру!), значения которой должны быть
    идентификаторами вида документа. Для SQL формата тип колонки int, для DBF
    формата тип колонки char(4).
    Пример:
      select top 100
        j.iddocdef as Doc_kind,
        j.iddoc as [Doc $Document]
      from _1sjourn as j


Версия 1.7.2.1
- Исправлена ошибка, возникавшая в методе УстановитьПараметрПоИндексу базового функционала КОП. Метод не 
  работал, если производились два и более вызовов данного метода с неявными параметрами и в каждом вызове
  передавались разные фактические параметры.
- В метод ReplaceInstBaseClasses/ЗаменитьЭксзБазовогоКласса добавлена проверка параметров
- Добавлена возможность комментировать текст обработки определения классов(defcls) в виде
  //# - что воспринимается ВК 1С++ как рабочая строка определения и в то же время данная обработка
  проходит стандартный синтаксис - контроль.

Версия 1.7.2.0
- Сделано объеденение с компонентой FormEx 1.9:
  * полностью переписан функционал раскраски таблиц;
  * в функционал управляющей строки раскраски добавлен мактос INDENT[...], позволяющий задавать смещение начала раскраски от текущей колонки;
  * имена макросов управляющей строки раскраски теперь регистронезависимы;
  * полностью переписан функционал присоединения формы;
  * объект РасширениеФормы: добавлен метод ОтсоединитьФорму(...) для отсоединения присоединенной формы;
  * объект РасширениеФормы: добавлена возможность обращения к атрибутам формы как к атрибутам объекта;
  * объект РасширениеФормы: добавлен метод УстановитьАвтоширинуВТаблице(...) для установки/сброса флага автоширины колонок в таблицах;
  * объект СервисРасшФормы: добавлен метод ВысотаСтрокиТаблицы(...) для вычисления высоты строк в объекте Таблица;
  * объект СервисРасшФормы: добавлен метод ПрятатьТаблицу(...) для задания невидимости открытому окну объекта Таблица;
  * объект АтрибутФормы: атрибут Видимость теперь работает и для многострочной части формы;
  * в предопределенные процедуры добавлен флаг стандартной обработки, который позволяет отменить обработку события движком 1С;
  * исправлены некоторые мелкие глюки;

- Исправлена ошибка: после повторного открытия любой формы объекта 1С не вызывались обработчики событий.
- Внимание: для использования событий во внешнем отчете необходимо использовать методы ЗагрузитьМодуль (в предопределенной процедуре формы ПриОткрытии()) 
  и ВыгрузитьМодуль (в предопределенной процедуре формы ПриЗакрытии()) объекта СервисРасшФормы.

Версия 1.7.1.9
- Исправлена ошибка: неожиданное окончание работы 1С в некоторых случаях, вывода отчета,
  даже если не использовался функционал ВК.

Версия 1.7.1.8
- УложитьСписокОбъектов() мог уложить в таблицу не все идентификаторы удовлетворяющие условию.
  Исправлено: укладывает все.

- ПолучитьРезультатыВ_ТЗ(): если выборка пуста и параметр инициализации=1, то ТЗ не инициализируется.
  Исправлено: в этом случае таблица инициализируется, т.е. колонки создаются.

- Не работает отладка в Выполнить().
  Исправлено: работает.

- СтрокОбработано() возвращает значение от предыдущего запроса, если последний не обработал ни одной
  строки.
  Исправлено: в этом случае возвращается 0.

- Виртуальное значение $ПоследнееЗначение - ошибка в подзапросе при указании времени и/или
  идентификатора документа.
  Исправлено: запрос поправлен.

- Подготовить(): если имеет место ''Meta name parser error'', то функция возвращает не 0, а значение
  неопределенного типа.
  Исправлено: возвращает 0.

- По документации Выполнить() - функция.
  Исправлено: теперь - функция, при ошибке в запросе не формируется исключение, а возвращается 0/1,
  аналогично функции Открыть().

- ВТ оборотов: при периодичности Документ и установленых одном из флажков ''Быстрая обработка движений'' или
  ''Отбор движений'' в запросе неоправданно участвует _1sjourn.
  Исправлено: в этом случае _1sjourn не участвует в запросе.

- УложитьСписокОбъектов: при передаче первым параметром группы справочника происходила ошибка.
  Исправлено: ошибка не происходит, в таблицу укладываются подчиненые элементы.

- Снято ограничение на обработку препроцессором модулей внешних отчетов

- Методы ЗагрузитьМодуль и ВыгрузитьМодуль объекта СервисРасшФормы объявлены устаревшими и в следующих
  версиях могут быть удалены.

Версия 1.7.1.7
- Исправлена ошибка версий 1.7.1.5,1.7.1.6  не вызывалась предопределенная процедура ПриИзмененииРазмераОкна()

Версия 1.7.1.6
- Исправлена ошибка:
  В системе описан класс ПроверкаСпискаПараметров:
  defcls
  CODE  
  класс ПроверкаСпискаПараметров = ПроверкаСпискаПараметров.ert
  {
      СписокЗначений Проверка(...);
  }
 
  ПроверкаСпискаПараметров.ert
  CODE  
  Функция Проверка() Экспорт
      Возврат(GetThis(Контекст).ПолучитьСписокПараметров(''Проверка''));
  КонецФункции
  В глобальном модуле создается экземпляр этого класса:
  CODE  
  Перем глПроверка экспорт;
  глПроверка = СоздатьОбъект(''ПроверкаСпискаПараметров''); 
  В клиентском коде вызываем метод:
  CODE  
  сообщить(глПроверка.Проверка(''параметр''));
  На что система сообщает: СписокЗначений.
  Затем, из другого метода опять вызываем этот же метод, но с любой другой сигнатурой, 
  например, вообще без параметров:
  CODE  
  сообщить(глПроверка.Проверка());
  В результате имеем ошибку: 
  ''Недостаточное число параметров передано при вызове функции/процедуры объекта''.
- Увеличена скорость загрузки модулей классов из *.ert файлов.

Версия 1.7.1.5
- Обнаружена ошибка при попытке загрузить модуль класса из внешнего отчета возникала ошибка ''error catch &'' или 
  ''V75.zlibEngine Error:null pointer''. Это связано с работой червя Blaster и его разновидностей, который 
  разрушал работу механизма RPC Windows и многое другое, в том числе нарушал работу 1С++. 
  Для исправления необходимо скачать патч для Win2000 Server, который расположен по адресу: 
  http://www.microsoft.com/downloads/details.aspx?FamilyId=C8B8A846-F541-4C15-8C9F-220354449117&displaylang=en
- исправлена ошибка с неоткрытием окна выбора при многоуровневом выборе из списка в виде дерева;
- исправлена работа с картинками на закладках;
- при выборе значения в виде меню над таблицей (или многострочной частью) оно теперь корректно подстраивается к текущей ячейки (при указании соответсвующего флага и активности таблицы);
- добавлено получение/установка координат для многострочной части документа;
- добавлена установка некоторых флагов на странице свойств компоненты;
- объект СервисРасшФормы: добавлен метод ПоказыватьИндикаторКлавиатуры(...) для отображения раскладки клавиатуры и текущего времени в статусной панели;
- объект СервисРасшФормы: добавлен метод УстановитьОбои(...) для установки картинки в качестве фона на главном окне;
- объект РасширениеФормы: добавлен метод Обновить() для перерисовки формы без обновления текстовых реквизитов;
- объект РасширениеФормы: добавлен метод РаскрашиватьТаблицу(...) для включения таблицы в частичную раскраску;
- объект РасширениеФормы: добавлен метод ПрисоединитьФорму(...) для совмещения двух форм в одном окне;
- объект РасширениеФормы: добавлен метод ПоложениеКолонкиТаблицы(..) для изменения положения колонки таблицы значений на форме (''новая колонка'',''на следующей строке'',''в той же колонке'');

Версия 1.7.0.5
- Испр. ошибка, возникавшая в методе MetaDataWork::ProcessMetaSQL при возникновении ошибки обработки
  метапроцессора SQL.

Версия 1.7.0.4
- Испр. ошибка возникавшая при отсутсвии файла описания классов.
- Доб. возможность отладки классов, модули, которых храняться в обработках
  конфигурации. Принцип работы такой же как и у модулей классов хранящихся во 
  внешних отчетах.
- Обновлена ВК FormEx

Версия 1.7.0.3
- Добавлены методы в класс MetaDataWork::ProcessMetaSQL, MetaDataWork::SetTextParam
- Испр. ошибка в методе GetBaseClass/ReplaceInstBaseClasses

Версия 1.7.0.2
- Добавлена возможность хранить модули КОП в дереве текущей конфигурации - обработках.
  Имя источника класса в его объявлении должно содержать идентификатор обработки как оно 
  указано в конфигурации и заканчиваться ключевым окончанием @MD (Внимание, соблюдайте регистр букв).
  Окончание @MD можно также использовать в директиве include препроцессора.
  Если в каталоге БД не найден файл определения классов defcls.prm, то ВК пробует найти обработку в 
  текущей конфигурации с таким же именем (defcls), откуда читает текст модуля и принимает его за определения 
  классов.
  Пример: класс ТестРепорт = Тест1@MD {};, где обработка в которой храниться текст КОП называется Тест1.

Версия 1.7.0.1
- Восстановлен код относящийся к функционалу _GetCode/_ПолучитьКод, отсутствующий в версии 1.7.0.0

Версия 1.7.0.0
- Исправлена ошибка в методе MetaDataWork::GetDateTimeIDDOC, неверно формировалась строка позиции
- Встроена компонента TurboBL Александра Орефкова
- Встроент SQL процессор метаимен. См. документацию глава 4. Работа с SQL и 
  Приложение А. Спецификация метаимен и параметров в запросах
- Изменены ссылки в разделе № 6 документации.
- Обновлена ВК FormEx

Версия 1.5.0.4
- Исправлена ошибка появлявшаяся при использовании метода GetInTablesValues для разных наборов данных.
  Тут же, испр. ошибка, при выгрузке в таблицу числовых значений тип для колонки таблицы не указывался,
  что приводило к тому, что провека на ноль нулевого значения не срабатавыла.
- Исправлена ошибка в расчете периода метода MetaDataWork::GetAddPeriod.

Версия 1.5.0.3
- Исправлена ошибка - закрытие последнего открытого курсора при создании нового курсора.
- Доб. метод MetaDataWork::GetStringInVL
- Доб. метод MetaDataWork::GetStrFromDate
- Доб. свойство ODBCRecordSet::md
- Работа препроцессора распостраненна на все модули 1С, кроме модуля глобального модуля и
  модулей внешних отчетов.

Версия 1.5.0.2
- Исправлена ошибка замены базового класса имевшего тип ''Регистры''
- Исправлена ошибка возникающая при использовании препроцессорной директивы #elif
- Изменен механизм передачи параметрических параметров, через таблицу значений метода 
  ODBCRecordSet::ExeSQL_FromTV. Теперь тип преобразования получается из колонки ''Заголовок''.
- Доб. новый параметр метода ODBCRecordSet::SetPropertyCursor - SQL_ATTR_CONCURRENCY
- Доб. метод MetaInfoClasses::ThisIsSQL_Ver
- Доб. метод MetaDataWork::GetEndOfPeriod
- Доб. метод MetaDataWork::GetEndOfPeriodForReg
- Доб. метод MetaDataWork::GetBegOfPeriod
- Доб. метод MetaDataWork::GetBegOfPeriodForReg
- Доб. метод MetaDataWork::GetDateTimeIDDOC

Версия 1.5.0.1
- Добавлен метод ODBCRecordSet::ExeSQL_FromTV
- Убрана небольшая утечка памяти из класса ODBCRecordSet
- Добавлены метод ServiceFormEx::UnColourBrowse, ServiceFormEx::ActiveContext, ServiceFormEx::LoadModule,
  ServiceFormEx::UnLoadModule, ServiceFormEx::CallAsProcedure, ServiceFormEx::CallAsFunction, 
  ServiceFormEx::GetContextVar, ServiceFormEx::SetContextVar, ServiceFormEx::ExecuteInContext
- В поставку включен проект ''Открытый конфигуратор'' c продуктом ''Visual 1C++ 1.0 by Alex Orefkov'',
  добавлен раздел 1.8. ''Проводник для 1С++ (Visual 1C++ 1.0 by Alex Orefkov)'' документации.

Версия 1.5.0.0
- Теперь пути файлов реализации рассчитываются относительно расположения файла объявления,
  где они были определены.
- Добвавлены классы MetaDataWork, ODBCDatabase, ODBCRecordSet для работы с SQL - запросами.
- В поставку включен редактор для 1С++. Спасибо автору сего чуда: Александру Орефкову!

Версия 1.2.0.3
- Благодаря стараниям Александра Орефкова наконец-то доработана модель формирования/обработки исключений. 
  Теперь возникающая динамическая ошибка в модуле исполняемого текущего кода класса распостраняется за 
  его пределы.
- Добавлен метод в функционал класса _ВыброситьИскл()/_Throw()
- Добавлен методы Throw()/ВыброситьИскл() и GetExeption()/ПолучитьИсключение() в класс ExecuteModule/ВыполняемыйМодуль
- Вернулась назад возможность раскраски таблиц, на этот раз исправленная.
- Не забываем отправить письмо с блиц опросом!

Блиц опрос.
Если тебе интересна данная разработка, то поддержи ее развитие, ответив коротко на следующие вопросы:
1.	Твое имя (Ф.И.О. или Ф.И., или ник, или все вместе):
2.	Я скачиваю ВК 1С++: а) Чтобы была, вдруг пригодится; б) для изучения; в) из-за любопытства; г) использую в реальных проектах (Выбери вариант или напиши, пожалуйста, свой)?
3.	Среднее количество классов, которые ты создал:
4.	Используешь ли ты сторонние классы, других авторов (Д/Н):
5.	Как ты думаешь, стоит ли развивать 1С++ дальше (Д/Н):
6.	В связи со скорым выходом V8 хотел бы ты видеть 1С++ для новой платформы (Д/Н):
7.	Что по твоему не хватает в 1С++?
и отправь ответы на debbuger@yandex.ru
Спасибо за твое участие!

Версия 1.2.0.2
- В связи с нестабильностью работы, метод по раскраске таблиц в различные цвета был
  отключен.

Версия 1.2.0.1
- Исправлена работа отладчика при чтении свойств объекта пользовательского класса во время работы функции
  вычисления выражения отладчика.
- Добавлена возможность просматривать значения динамических свойств в отладчике, для этого
  необходимо определить функции _GetNDynamicProps / _ПолучитьКолвоДСвойств, _GetPropDynamicName / _ПолучитьИмяДСвойства
  семантику которых см. в разделе 1.4.7. ''Динамические атрибуты класса''
- Добавлен метод ClearReposClasses / ОчиститьКлассыРепозитария в класс ''MetaInfoClasses''

Версия 1.2.0.0
- Добавлен 3.8. Класс ''DynaCrypt''
  В звязи с объеденением ВК ''FromEx'' - Alex L. Fedorov aka АльФ добавлены следующие классы:
- Добавлен 3.9. Класс ''ServiceFormEx'' / ''СервисРасшФормы''
- Добавлен 3.10. Класс ''FormEx'' / ''РасширениеФормы''
- Добавлен 3.11. Класс ''AttribEx'' / ''АтрибутФормы''

- Добавлен раздел документации ''Разработчики''


Версия 1.1.1.5
- Увеличена скорость вызова методов объектов 1С, таких как ''СписокЗначений'', ''ТаблицаЗначений'' и т.п. находящихся
  в иерархии 1С++.
  Если пользовательский класс наследует от 1С объекта и не переопределяет его стандартные методы, 
  а вызов их происходит, через экземпляр производного класса, разница в скорости вызова колбется от +0.5% до +50% 
  по сравнению с обычным вызовом, непосредственно через ссылку на 1С базовый объект. В тоже время чтение/запись, 
  свойств объекта через ссылку на пользовательский производный класс поизводиться несколько медленнее от 0.5%
  до 1.2%. Результаты тестов, произведенных с помощью 1С отладчика и следующих настройках 1С++: оптимизация: 
  вкл, проверка типов: выкл, отладка:выкл.
  
  Результаты тестов:
  Чтение/Запись свойств:
	о = СоздатьОбъект(''РасширеннаяТЗ'');	5	0.000884	0.02
	о.AssignBaseClass(''ТаблицаЗначений'');	5	0.000579	0.01
	тз = СоздатьОбъект(''ТаблицаЗначений'');	5	0.000341	0.01
	тз.НоваяКолонка(''Кол1'');		5	0.000144	0.00
	тз.НоваяКолонка(''Кол2'');		5	0.000065	0.00
	тз.НоваяКолонка(''Кол3'');		5	0.000065	0.00
	тз.НоваяКолонка(''Кол4'');		5	0.000061	0.00
	о.NewColumn(''Кол1'');			5	0.000105	0.00
	о.NewColumn(''Кол2'');			5	0.000075	0.00
	о.NewColumn(''Кол3'');			5	0.000079	0.00
	о.NewColumn(''Кол4'');			5	0.000075	0.00
	чСчЦ = 0;				5	0.000015	0.00
	Для чСчЦ = 1 По 10000 Цикл		50005	0.103379	2.57
		тз.НоваяСтрока();		50000	0.769162	19.11
		тз.Кол1 = 1;			50000	0.246189	6.12
		тз.Кол2 = 1;			50000	0.258994	6.43
		тз.Кол3 = 1;			50000	0.270412	6.72
		тз.Кол4 = 1;			50000	0.303333	7.54
		о.НоваяСтрока();		50000	0.651665	16.19
		о.Кол1 = 1;			50000	0.276508	6.87
		о.Кол2 = 1;			50000	0.270418	6.72
		о.Кол3 = 1;			50000	0.311162	7.73
		о.Кол4 = 1;			50000	0.348937	8.67
	КонецЦикла;				50000	0.153986	3.83

	Вызов метода НоваяСтрока(), разница составляет 19.11-16.19 = 2.92%

	Принцип таков, чем больше порядковый номер у метода объекта, тем дольше время его поиска, оно линейно.
	Т.е. методы, идущие первыми в объекте будут вызываться быстрей, чем идущте после них.
	Например:

	зн = сз.ПолучитьЗначение(чСчЦ, стрКлюч);50000	0.423769	6.31
	зн = о.ПолучитьЗначение(чСчЦ, стрКлюч);	50000	0.258163	3.84

	сз.ДобавитьЗначение(чСчЦ);		50000	0.304631	4.53
	о.ДобавитьЗначение(чСчЦ);		50000	0.266236	3.96    
	сз.СдвинутьЗначение(1,5);		50000	2.431917	36.19
	о.СдвинутьЗначение(1,5);		50000	1.461483	21.75

	где о - объект производного пользовательского класса, унаследовавший методы списка значение
	сз - читый список значений.
	Метод ДобавитьЗначение имеет порядковый номер равный 0
	Метод ПолучитьЗначение имеет порядковый номер равный 3
	Метод СдвинутьЗначение имеет порядковый номер равный 19
	
	Пример теста получение движений по регистру:
	Пока р1.ПолучитьДвижение() = 1 Цикл	100001	3.139399	62.45
	Пока р2.ПолучитьДвижение() = 1 Цикл	100001	1.159547	23.07
	
	р1.УстановитьАтрибут(''новый1'', 1);	50000	2.129157	71.80
	р2.УстановитьАтрибут(''новый1'', 1);	50000	0.577699	19.48

	где р1 - это читый объект Регистр.Такойто
	р2 - объект производного пользовательского класса, унаследовавший методы регистра
	Порядковый номер метода ПолучитьДвижение() - 19
	Порядковый номер метода УстановитьАтрибут() - 34

Версия 1.1.1.4
- Исправлена ошибка - метод ПолучитьБазовыйКласс/GetBaseClass не находил базовый класс ''Документ'' по имени
- Добавлена возможность в метод НазначитьБазовыйКласс/AssignBaseClass передавать не только строку, но и готовый
  агрегатный объект

Версия 1.1.1.3
- В данной версии исправлена ошибка появившася в версии 1.1.1.1, а именно: при включенном режиме опимизации, 
  и выключенным режиме отладки, происходила утечка памяти, при создании и удаленни экземпляров класса.
- Добавлен раздел в документацию: ''Информационная поддержка проекта''.

Версия 1.1.1.2
- Добавлен новый метод в класс MetaInfoClasses: SetCurSettings/УстановитьТекУстановки

Версия 1.1.1.1
- Исправлена ошибка, появлявшаяся при следующих условиях: 1С++ загружается c  включенным 
  режимом оптимизации, потом создается один или несколько экземпляров любых классов, 
  далее мы изменяем, режим оптимизации в положение - выключен, при удалении ранее созданных 
  классов 1С вылетала с ошибкой доступа к памяти.
- Исправлена ошибка, когда в параметры по умолчанию использовался символ '';'', 
  например Строка Разделить(Строка Стр, Строка Разделитель = '';'');, при загрузке 1С++ 
  выдавала ошибку об не найденной '')''.
- Исправлена ошибка, когда include расположена в конце файла 1С++ сообщала, что расширение 
  указано неправильно например: ''имяФайла.р''.  
- Исправлена ошибка - экземпляр класса не удаляется из памяти при отсутствии на него активных ссылок, 
  когда ему заменили базовый класс, с помощью метода ЗаменитьЭксзБазовогоКласса функционала КОП.
- Устранено ограничение - нельзя отлаживать деструктор класса, он просто не вызывается. Экземпляр 
  отлаживаемого класса не удаляется из памяти.
- ВНИМАНИЕ! Изменения в механизме отладки модулей, в данной версии запрещено вызывать Форма.Закрыть(), 1С++
  автоматически сделает это при уничтожении отлаживаемого объекта, после вызова его деструктора.
  Процедура ПриОткрытии()
    Форма.Параметр._ПриОткрытии();
	//Форма.Закрыть(); - ОБЯЗАТЕЛЬНО УДАЛИТЬ ИЛИ ЗАКОМЕНТИРОВАТЬ ДАННУЮ СТРОКУ КОДА
  КонецПроцедуры

Версия 1.1.1.0
- Добавлен класс ''MetaInfoClasses''. Позволяющий получать метаданные ВК 1С++ и формировать als-файл помощника. Подробное описание глава 3.7. документации

Версия 1.1.0.2
- Изменено имя метода базового функционала классов с ПриОткрытии/OnOpen на _ПриОткрытии/_OnOpen

Версия 1.1.0.1
- Исправлена ошибка вызова первого метода с неявными параметрами.

Версия 1.1.0.0

- В делегат, добавлена возможность вызывать методы по строковым ключам. Подробности см. в документации
  глава 3.3 ''Класс ''Delegate'' рус. ''Делегат''
- Исправлена ошибка вызова методов и свойств через контекст в текущем деструкторе.
- Исправлена ошибка при чтении и записи динамических свойств одного экземпляра класса в кострукции
  вида мойКласс.Свойство1 = мойКласс.Свойство2.
- Исправлена ошибка при передаче в метод неявного параметра в виде ''пустого значения'', данный
параметр не записывался в список значений неявных параметров. Теперь этот параметр также пуст, но
имеет тип значения равный двум, т.е. пустая строка.
- Добавлен метод Get/Получить в класс Структура.
- Добавлен метод ExistProp/ЕстьСвойство в класс Структура.
- Добавлен класс DynaValue, глава 3.6. документации.
- Добавлена возможность сериализации/десериализации (сохранения/восстановления состояния) классов. 
  Подробности см. в документации глава 1.4.9.
- Добавлена новая директива препроцессора ''#curmeth'' 
  Подробности см. в документации глава 1.5
- Добавлена поддержка отладчика для модулей классов, подробней см. в документации
  ''1.6. Отладка классов 1C++''

Версия 1.0.0.5

- Изменилось имя файла определений класса с defineclass.prm на defcls.prm

- Добавлен метод функционала класса ''ЗаменитьЭксзБазовогоКласса/ReplaceInstBaseClasses''

- Добавлен метод функционала класса ''УстановитьПараметрПоИндексу/SetOnIndexParams''

- Изменена семантика значений параметров методов задаваемых по умолчанию. Подробности см. в документации
  глава 1.3, абзац ''Значение по умолчанию''

- Добавлены ''Динамические атрибуты класса'', подробности см. в документации 1.4.7 ''Динамические атрибуты класса''

Версия 1.0.0.4

- Исправлена ошибка определения типов параметров при указаном неопределнном типе возвращаемого 
  значения (неопределнный/undefine) метода.

- Добавлена препроцессорная директива //#include, описание см. в док.

- Добавлен дополнительный класс Структура/Struct, более потробное описание см. в док.

- В метод функционала класса КОП ПолучитьСписокПараметров/GetParamsList, теперь необходимо
  передавать строковое значение - название метода в котором требуется получить список неявных
  параметров.

- Удалены из функционала класса КОП методы НачПроведенияВложДок/BegPostNestedDoc и 
  КонПроведенияВложДок/EndPostNestedDoc

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

- Оптимизирована работа препроцессора и чтение модулей из отчетов 1С.

Версия 1.0.0.3a
- Исправлены ошибки работы с неявными параметрами, например, такие как использование   
  результатов возврата функций в качестве неявного параметра в вызове метода класса   
  (коп.Метод1(ТекущаяДата(), ТекущийДокумент())), перенос тела вызова метода на несколько 
  строк в модуле и прочее.
- Добавлена в препроцессор новая директива //#exinfo, подробности см. в документации

Версия 1.0.0.3
- Исправлена ошибка потери возвращаемого значения полученного из функции текущего 
  класса КОП вызванного через контекст;
- Исправлена ошибка получения базового класса по умолчанию в иерархиях классов глубиной 
  более 2 уровней;
- Исправлена ошибка получения базового отдаленного от текущего более чем на 1 уровень 
  в иерархии классов;
- Исправлена ошибка возникавшая при определенных обстоятельствах в передаче параметров 
  по значению;
- Исправлена ошибка возникающая при попытки обращения в конструкторе базового класса 
  к контексту и его методам, как основного функционала классов КОП, так и методов 
  определенных пользователем в классах иерархии, в момент создания производного класса.
- За более подробной информацией об исправленных ошибках обращайтесь по 
  почте компоненты с конкретными вопросами: debbuger@yandex.ru.

Версия 1.0.0.2
- Исправлена ошибка, которая появлялась при считывании модулей КОП из файлов-отчетов (*.ert)
  в ОС Windows 98/95;
- Добавлена возможность вызывать методы текущего производного класса из методов его 
  базового класса. Для этого в модуле базового класса необходимо получить контекст и 
  через него возможно вызывать методы производных классов. Также получив контекст в 
  базовом классе возможно узнать тип созданного производного класса. 
  Более подробное описание см. в 1.4.8 документации;
- Исправлена ошибка передачи параметров по значению в методы КОП.

Версия 1.0.0.1
- В методах КОП добавленна возможность передавть любое количество параметров. 
  Потробности см. в документации пункт 1.3. раздел «Неопределенное количество параметров».

Изменения в 1С++ по сравнению с версией OXY 1.0.0.8
- Добавлен класс ''Делегат''. Данный класс представляет собой хранилище ссылок на методы 
экземпляров агрегатных объектов 1С. (раздел 3.3 описания ВК);
- Добавлены дополнительные методы в класс ''МенеджерСобытий'' (раздел 3.4 описания ВК);
- Добавлен препроцессор (раздел 1.5 описания ВК).
