-*- encoding: cp1251 -*-

Описание используемых обозначений:
----------------------------------

+ Добавлено
- Исправлена ошибка
* Внесены изменения
! Произведены серьезные изменения, которые могут затронуть функционирование
  проектов в целом
 Изменения/дополнения, квалифицируемые автором как улучшения
P Изменения касаются внутренней организации программы, функционально не
  проявляются и не могут быть непосредственно протестированы
B Адаптировано из ветви проекта
> Группа изменений
<ADAPT> Требуется адаптация в проектах
<BRANCH> Эквивалентно "B" для блока адаптаций

DSP v3.6.347 от 21.01.2016
--------------------------

 B* Код задачи 39673. Активная вкладка главной формы выделена белым цветом.
    Изменены: SControls.PageControl.
    19.01.2016 Д.А.Бондаренко
 P- Код задачи: 39806. IsKeyWithID: При массовом добавлении в VM (для
    Hytech там не создается соединение, а использются более низкоуровневые
    функции), возникала ошибка о том что невозможно извлечь соединение.
    Изменены: KeysWithID.
    19.01.2016 М.А.Степанов
                                --- * ---

DSP v3.6.346 от 18.01.2016
--------------------------

 P- Код задачи 39831. Свойство Modified сбрасывалось при валидации, даже если 
    выполняется валидация не данного поля.
    Изменен: DBObjectChoiceController.
    14.01.2016 А.В.Шаров
                                --- * ---

DSP v3.6.345 от 30.12.2015
--------------------------

 B* Код задачи 39652. Изменён внешний вид кнопок закрытия вкладок главной формы
    Изменены: SControls.PageControl.
    29.12.2015 Д.А.Бондаренко
 B* Код задачи 39637. В заголовках вкладок главной формы отображались символы '&',
    служащие для задания горячей клавиши.
    Изменен: SControls.PageControl.
    24.12.2015 15:05 А.В.Шаров
                                --- * ---

DSP v3.6.344 от 23.12.2015
--------------------------

  - Код задачи 38316. Закрытие формы визуализации процесса архивации БД могло
    приводить к ошибкам.
    Изменены: VCLProgressHandler.
    22.12.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.343 от 18.12.2015
--------------------------

  * Код задачи 37724. В имя файла результата выполнения отчёта по шаблону
    добавлены дата/время формирования.
    Изменены: RWFByTemplateExecutor.
    17.12.2015 Д.А.Бондаренко
  + Код задачи 39422. На вкладки главной формы добавлена кнопка закрытия.
    Добавлены: SControls.PageControl.
    Изменены: form_StdMainForm.xml, MultitabbedDesktop, StdMainForm, 
      SVclCommon.dpk, SVCLCommon_Registration.
    16.12.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.342 от 07.12.2015
--------------------------

  - Код задачи 39438. Подлиты правки по задаче 35517: Редактор отчетов: При удалении 
    поля строки неверно удалялась ячейка редактора, соответствующая полю.
    Изменены: rwfdesigner.
    04.12.2015 А.В.Шаров
  - Код задачи 39439. Подлиты правки по задаче 35937: Редактор отчетов: Устранена 
    возможность несанкционированного доступа при редактировании подотчета из 
    редактора свойств поля типа "Отчет".
    Изменен: AREditRep.
    02.12.2015 А.В.Шаров
  - Код задачи 39437. Подлиты правки по задаче 35515: Редактор отчетов: Возникала 
    ошибка при добавлении поля в пустую строку.
    Изменен: rwfdesigner.
    02.12.2015 А.В.Шаров
  * Код задачи 39374. В настройках архивации отключены высокие уровни сжатия.
    Изменены: form_CompressionOptions.xml.
    01.12.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.341 от 03.11.2015
--------------------------

  * Код задачи 38892. Карточки с изображением: устранено перемещение увеличенного 
    изображения, когда пользователь нажимает клавишу в одном окне (Hint, двойной 
    клик в листалке выбора записи), а отпускает в окне изображения.
    Изменен: DBInputCustomBLOB.
    03.11.2015 А.В.Шаров
                                --- * ---

DSP v3.6.340 от 28.10.2015
--------------------------

BP- Код задачи 38852. Производилась попытка дважды освободить rtf_Datstream при возникновении
    исключения в Rewrite.
    Изменены: RepoRTFM.
    02.10.2015 А.Б.Хах
 B- Неправильно формировался отчет, если в шаблоне параметр "разрывался" 
    форматированием RTF.
    Изменены: RepoRTFM.
    14.11.2014 С.А.Барсуков
 B- Код задачи 34914. Иногда возникала ошибка при выполнении отчета с шаблоном:
    "Ошибка при создании отчёта по шаблону: Ошибка записи в файл отчёта.".
    Изменены: RepoRTFM.
    16.10.2014 С.А.Барсуков
 B+ Код задачи 34715. Добавлена возможность вставлять в шаблон RTF изображения.
    Оптимизировано: чтение шаблона, чтение файла данных, запись результата.
    P.S. Мог сломаться экспорт в RTF и отчеты с шаблонами RTF.
    Изменены: Renders, WPPARSER, RepoRTFM.
    03.10.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.339 от 27.10.2015
--------------------------

DSP v3.6.338 от 08.10.2015
--------------------------

 B- Код задачи 38550. При работе с изображениями в формате GIF без анимации
    могли происходить ошибки.
    Добавлены: iemio.pas.orig.
    Изменены: iemio.
    08.10.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.337 от 06.10.2015
--------------------------

 P+ Код задачи 38840. Выделена константа stNodeDesktopContainer.
    Изменены: DockingDesktop.
    05.10.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.336 от 01.10.2015
--------------------------

 P* Код задачи 38238. Для определения принудительной просадки теперь
    используется функция PostDataForced.
    Изменены: RecordControl.
    01.10.2015 Д.А.Бондаренко
BP- Код задачи 34884. Выполнение ForcePostData после препросадки считалось нормальной просадкой, что
    совершенно не так с точки зрения пользователя.
    Изменены: RecordControl.
    23.01.2015 А.Б.Хах
 P> Код задачи 38668.
    - Если при попытке старта транзакции происходило исключение, счётчик
      вложенности транзакций мог оставаться в некорректном состоянии.
    - Неправильно работало подтверждение отмены ожидания разблокирования
      таблиц.
    * Изменён текст сообщения, выводимого при отмене ожидания разблокирования 
      таблиц.
    Добавлены: HTProgress.
    Изменены: libutils, uDBTransactions, transman, WAITPROC, SVCLHt.dpk,
      SVCLHT_cnstr.
    30.09.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.335 от 22.09.2015
--------------------------

  * Код задачи 38741. Всплывающее сообщение теперь убирается сразу при нажатии
    мыши.
    Изменены: MessageService.
    18.09.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.334 от 17.09.2015
--------------------------

  + Код задачи 36130. Реализовано обновление содержимого формы службы сообщений
    при добавлении/удалении сообщений.
    Изменены: MessageService.
    15.09.2015 Д.А.Бондаренко
 B* Код задачи 38381. Заголовок всплывающего сообщения выделен жирным шрифтом.
    Изменены: MessageService.
    02.09.2015 А.С.Лозовой
                                --- * ---

DSP v3.6.333 от 15.09.2015
--------------------------

  > Код задачи 38642.
    * Заголовок карточки и кнопки сохранения/закрытия теперь соответствуют
      текущему состоянию карточки.
   P* Добавлено свойство TDataSetRecordController.IsRecordDoubling; удалена
      функция IsRecordDoubling; добавлена функция GetCommonFormCaption.
    Изменены: form_DataChange, RecordControl, SDBVCLUtils.
    14.09.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.332 от 31.08.2015
--------------------------

  - Код задачи 38592. При заполнении параметров отчёта или запроса отображались
    имена полей вместо заголовков.
    Изменены: SDBDataSets.
    28.08.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.331 от 17.08.2015
--------------------------

  - Код задачи 38420. На компьютерах под упарвлением Windows 10, в листалках 
    не прорисовывался фон ячеек для указателя текущей записи.
    Изменен: JvDBGrid.
    13.08.2015 12:45 А.В.Шаров
                                --- * ---

DSP v3.6.330 от 05.08.2015
--------------------------

  - Код задачи 38248. Во время принудительной просадки заголовки обязательных
    полей карточки могли мигать.
    Изменены: SDBUtils.
    31.07.2015 Д.А.Бондаренко
 P+ Код задачи 37927. Добавлено построение контекста карточки проектной
    конфигурации.
    Изменены: enterrecord.
    31.07.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.329 от 28.07.2015
--------------------------

 B- Код задачи 38185. При вводе предустановки из запросов применялись к не
    вводимым полям; была ошибка в реализации задачи 38017.
    Изменены: SDBVCLUtils.
    22.07.2015 Д.И.Кобрусев
  - Код задачи 38143. При открытом в листалке блочном редакторе существовала
    возможность взаимодействия с элементами обстановок в главной форме.
    Изменены: TableBrowser.
    20.07.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.328 от 15.07.2015
--------------------------

 B- Код задачи 38032. Неверно формировались отчеты с несколькими вложенными списками 
    (два списка с вложенными подряд).
    Изменены: ReportXLS.
    15.07.2015 С.А.Барсуков
 B- Код задачи 38105. При закрытии карточки по Enter происходила ошибка, если
    на карточке не был активным ни один элемент управления.
    Изменены: SVCLCommon_cnstr.
    13.07.2015 Д.А.Бондаренко
 B- Код задачи 38017. Листалка, ограниченная по невводимому полю запросом
    или инкрементным поиском. При вводе это поле предустанавливалось в
    значение, которым оно ограничено, и пользователь не мог его изменить
    (т.к. оно невводимое).
    Изменены: ChoiceForm, MasterDetailHandlers, RecordControl,
      SDBVCLUtils, TableBrowser, TextBox.
   14.07.2015 Д.И.Кобрусев
 B- Код задачи 38032. Неверно формировались отчеты с вложенными списками. 
    Изменены: ReportXLS.
    14.07.2015 И.В.Ковалев
                                --- * ---

DSP v3.6.327 от 02.07.2015
--------------------------

  * Код задачи 34782. Свойства JointChange и ReadOnly компонента 
    TTableDataSource сделаны взаимосвязанными: установка одного из них в True
    сбрасывает другое в False.
    Изменены: TableDataSource, DB.
    02.07.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.326 от 29.06.2015
--------------------------

  * Код задачи 37895. Добавлен запрос подтверждения перезаписи файла при
    сохранении из поля бинарных данных.
    Изменены: DBInputCustomBLOB.
    29.06.2015 Д.А.Бондаренко
  * Код задачи 37896. Добавлен контроль, запрещающий перевод набора данных в
    режим редактирования во время удаления препросаженной записи.
    Изменены: RecordControl.
    26.06.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.325 от 24.06.2015
--------------------------

 P+ Код задачи 37862. Выделена процедура SetDataSetOSFields для установки полей
    набора данных, связанных с именем файла.
    Добавлены: uSetDataSetOSFields.
    Изменены: DBInputCustomBLOB, SVclCommon.dpk.
    24.06.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.324 от 23.06.2015
--------------------------

 P* Код задачи 37373. Процедура DateStringToDMYE теперь не использует значения
    по умолчанию. Старая реализация с умолчаниями перенесена в процедуру
    DateStringToDMYEWithDefaults.
    Изменены: SonarSys.
    19.06.2015 Д.А.Бондаренко
 B- Код задачи 12485. При добавлении в результат выполнения отчёта внедрённых
    данных создавались временные файлы, которые потом не уничтожались.
    Изменены: embdObj.
    12.02.2007 М.А.Степанов, адаптировано из DSP 2.6: 18.06.2015 Д.А.Бондаренко
  + Код задачи 37816. Выделена процедура SplitDeskMenuPathNameParam.
    Изменены: deskmenuexec.
    17.06.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.323 от 15.06.2015
--------------------------

BP+ Код задачи 37776. Добавлен вариант функции GetFieldOldValue.
    Изменены: FieldValueUtils.
    12.06.2015 Д.И.Кобрусев
                                --- * ---

DSP v3.6.322 от 11.06.2015
--------------------------

  - Код задачи 37681. При инкрементном поиске под HyTech не контролировалась
    длина строки поиска, что могло приводить к ошибкам.
    Изменены: gridincrsearch.
    10.06.2015 Д.А.Бондаренко
 B- Код задачи 37774. При невозможности распознавания текста могли происходить
    ошибки.
    Изменены: TesseractOCR.
    08.06.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.321 от 18.05.2015
--------------------------

 P> Код задачи 37446.
    + Добавлено событие app_ReadDBStationNameFromConfig для возможности задания
      имени рабочей станции не из проектной конфигурации.
    + Добавлена возможность ручного вызова инициализации проектной конфигурации
    Изменены: netcnf, Config, SVCLCommon_cnstr.
    15.05.2015 Д.А.Бондаренко
 P+ Код задачи 37132. Добавлено событие app_GetCompoundErrorDefaultMessage.
    Изменены: CompoundKeysCheckKey.
    15.05.2015 Д.И.Кобрусев
                                --- * ---

DSP v3.6.320 от 14.05.2015
--------------------------

  * Код задачи 36984. При формировании отчета по шаблону Excel используется компонент
    TMS FlexCel, теперь не требуется установленного на компьютере MS Excel,
    увеличена скорость формирования отчета.
    Изменены: ReportXLS, SVclCommon.dpk, thirdparty.py, SonarSys.
    Добавлены: ExcelApi, ExcelFileApi, файлы TMS FlexCel.
    13.05.2015 И.В.Ковалев
                                --- * ---

DSP v3.6.319 от 13.05.2015
--------------------------

  * Код задачи 37441. Удалены неиспользуемые пункты главного меню.
    Изменены: dm_WindowsMenu.xml, StdMainForm, dm_HTMiscMenu.xml, HTMenus.
    12.05.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.318 от 02.04.2015
--------------------------

 P+ Код задачи 36990. Добавлена функция TryFindDataChangeFormEx.
    Изменены: uFindDataChangeForm.
    02.04.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.317 от 02.04.2015
--------------------------

  - Код задачи 36960. При закрытии приложения могла происходить повторная
    попытка освобождения фрейма с визуализацией начала регламентных работ.
    Изменены: AppAutoCloseProgress.
    01.04.2015 Д.А.Бондаренко
                                --- * ---

DSP v3.6.316 от 01.04.2015
--------------------------

  - Код задачи 36903. Из-за авторазмера колонок происходило зацикливание приложения.
    Изменены: SDBGrid.
    31.03.2015 А.Б.Хах
                                --- * ---

DSP v3.6.315 от 30.03.2015
--------------------------

BP+ Код задачи 35761. Добавлены функции
    TryGetContextDataChangeFormIfTableNameMatches и
    TryGetContextDataChangeFormIfTableNamesMatch.
    Изменены: uFindDataChangeForm.
    19.12.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.314 от 26.03.2015
--------------------------

  * Код задачи 36832. Показ хинта при показе формы теперь выполняется фоново, т.к.
    ev_CustomForm_Show это слишком рано (форма на этот момент ещё не показана).
    Изменены: CallOnEvent.
    26.03.2015 А.Б.Хах
                                --- * ---

DSP v3.6.313 от 26.03.2015
--------------------------

  * Код задачи 36821. Теперь если имя вкладки не указано, то в кач-ве имени вкладки берется имя
    окна, размещаемого на вкладке.
    Изменены: DeskTop.
    25.03.2015 А.Б.Хах
                                --- * ---

DSP v3.6.312 от 25.03.2015
--------------------------

 B- Код задачи 35912. Показ окна хинта через Show при водил к описанному в задаче эффекту. Теперь
    вместо Show используется SetWindowPos, однако при его использовании не корректно работало
    масштабирование. Поэтому вместо масштабирования применяется просто задание шрифта формы и расчет
    размеров прямоугольника, в которые этот текст вписывается.
    Изменены: HintMessage.
    30.12.2014 А.Б.Хах
  * Код задачи 36826, 35613. Изменена реализация т.н. желтого хинта.
    Добавлены: form_HintMessage.xml.
    Изменены: DBGridSearch, DbMemoSearch, HintMessage, SectionPageControl, SVCLFormH.
    22.12.2014 А.Б.Хах
                                --- * ---

DSP v3.6.311 от 23.03.2015
--------------------------

 B+ Добавлена возможность подстановки спец версии в описание программы
    Изменены: MakeVer.
    20.03.2015 С.А.Барсуков
                                --- * ---

DSP v3.6.310 от 20.03.2015
--------------------------

 B+ Код задачи 36690. Добавлен вариант процедуры ShowRichMessageBox,
    принимающий текст в формате RTF в виде строки.
    Изменены: RichMessageBox.
    17.03.2015 Д.А.Бондаренко
 B- Код задачи 36653. В карточке, если действия в листалке или разделе
    приводили к редактированию основной записи карточки, терялись
    изменения, приозведённые в виртуальных полях.
    Проявлялось в "Торе" в карточке события. При вводе факта проверки,
      если по событию ещё не было принято ни одного решения, терялись
      изменения в фабуле.
    Изменены: RecordControl, VirtualFields.
    Добавлены: uModifiedFieldValueStorage.
    16.03.2015 Д.И.Кобрусев
                                --- * ---

DSP v3.6.309 от 29.01.2015
--------------------------

 B- Код задачи 35963. Содержимое мемо-поля, состоящего из пробелов,
    переносов строк считалось непустым.
    Изменены: SonarDbIntf.
    19.01.2015 И.В.Ковалев
                                --- * ---

DSP v3.6.308 от 26.12.2014
--------------------------

BP> Код задачи 35716.
    + Добавлена возможность установки нестандартного обработчика инкрементного
      поиска под HyTech.
    + Добавлена возможность отключения оптимизации инкрементного поиска по полю
    Изменены: SDBGrid, gridincrsearch.
    19.12.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.307 от 16.12.2014
--------------------------

 B* Код задачи 35710. При возникновении исключения при открытии лог-файла теперь выдается подробное
    сообщение.
    Изменены: LogPrint.
    11.12.2014 А.Б.Хах
BP- Код задачи 35720. Поиск в списке запросов в ряде мест производился
    неправильно.
    Список запросов сделан сортированным.
    Изменены: SonarRequests.
    11.12.2014 Д.И.Кобрусев
  * Код задачи: 35111. Функция GetDefaultArchiveName вынесена в интерфейс.
    Изменены: ArchiveUtils.
    10.12.2014 М.А.Степанов
                                --- * ---

DSP v3.6.306 от 03.12.2014
--------------------------

BP+ Код задачи 35587. Добавлен вариант функции IsFieldChanged.
    Изменены: DataSetUtils.
    01.12.2014 Д.И.Кобрусев
  * Выделен пакет Synopse.dpk
    Добавлены: Synopse.dpk.
    Изменены: SVclCommon, Log4Delphi.dpk.
    01.12.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.305 от 01.12.2014
--------------------------

  * Код задачи 35512. Убраны двоеточия в метках полей.
    Изменены: DBEditFrame, FormUtils.
    25.11.2014 А.Б.Хах
                                --- * ---

DSP v3.6.304 от 19.11.2014
--------------------------

 B- Код задачи 35420. Пробелы в начале формул вызывали ошибку выполнения отчёта
    Изменены: rwfdesigner, RWFExec.
    18.11.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.303 от 14.11.2014
--------------------------

 P+ Код задачи 35296. Добавлена процедура WrappedPost.
    Изменены: form_DataChange, uHandlePostError.
    14.11.2014 Д.А.Бондаренко
 B* Код задачи 35340. Редактор отчетов: назначены горячие клавиши на операции
    с полями и строками отчета.
    Изменены: nodes.xml, rwf_form.xml.
    14.11.2014 А.В.Шаров.
BP+ Код задачи 35333. Добавлена процедура SetAsTime.
    Изменены: DataSetUtils.
    14.11.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.302 от 12.11.2014
--------------------------

  * Код задачи 35080. Теперь препросадка мастеров выполняется через механизм интерактивной просадки
    с обработкой ошибок, т.е. контроль СУК теперь работает корректно при препросадке.
    Изменены: CompoundKeysHandleError, form_DataChange, uHandlePostError, MasterDetail.
    12.11.2014 А.Б.Хах
                                --- * ---

DSP v3.6.301 от 12.11.2014
--------------------------

 P+ Код задачи 35231. В класс TFHDependentFieldsEnable добавлена возможность
    явного указания идентификатора алгоритма.
    Изменены: DependentFieldsEnable.
    11.11.2014 Д.А.Бондаренко
 P+ Код задачи 34868. В TDataSetRecordController добавлен дополнительный
    контроль допустимости редактирования записи.
    Изменены: RecordControl.
    11.11.2014 Д.А.Бондаренко
  - Код задачи 35267. Если обязательного поля в карточке нет, а есть
    виртуальное, из которого это обязательное устанавливается, при вводе
    происходила ошибка "Поле ... обязательно для заполнения".
    Проявлялось в Tasks, нельзя было ввести трудозатраты.
    P: Установка реальных полей по виртуальным производилась до валидации
       реальных.
    Изменены: VirtualFields.
    11.11.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.300 от 11.11.2014
--------------------------

  * Код задачи 35224. Запрещено блочное редактирование полей, которых нет на карточке.
    Изменены: TableBrowser.
    07.11.2014 А.Б.Хах
                                --- * ---

DSP v3.6.299 от 07.11.2014
--------------------------

  * Код задачи 35088. После масштабирования не всегда применялся ControlWidth.
    Изменены: DBEditFrame, SControls, DBObjectChoiceController.
    07.11.2014 А.Б.Хах
                                --- * ---

DSP v3.6.298 от 06.11.2014
--------------------------

  - Код задачи 35128. В "Гермесе" и "Торе". В карточке адреса в
    виртуальном поле "НомерДома" ввести пробелы между буквами и, не выходя
    из поля, нажать Enter. В БД в поле "ЛитераДома" будет сохранено
    значение с пробелами, хотя пробелы должны удаляться.
    P: Установка реальных полей по виртуальным производилась до валидации
       виртуальных.
    Изменены: VirtualFields.
    06.11.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.297 от 05.11.2014
--------------------------

 P* Код задачи 35115. Добавлена возможность изменить имя архива БД Hytech,
    предлагаемое по умолчанию.
    Изменены: ArchiveUtils.
    05.11.2014 И.В.Ковалев
  * Код задачи 35115. При архивации БД Hytech в прогресс-индикаторе вместо текста
    "Архивация БД <имя БД>" показывается текст "Архивация БД".
    Изменены: ArchiveUtils.
    05.11.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.296 от 31.10.2014
--------------------------

  - Код задачи 35090. Фоновое выполнение отчета из листалки в которой есть пользовательский
    запрос с подзапросом в котором есть свяьз с другой листалкой приводит к ошибке:
    "Ошибка при построении запроса: заданый набор ограничений не соответствует схеме БД".
    Изменены: AdvancedConstrains, RWFReportClientUtils.
    31.10.2014 С.А.Барсуков
  * Код задачи 35038. Открытие записи в карточке на редактирование. Если
    редактирование этой записи запрещено, об этом выдаётся сообщение (если
    предусмотрено) (было: карточка переводилась в режим просмотра без
    сообщений).
    Изменены: RowCommandAccessHandlers.
    Добавлены: CallOnEvent.
    30.10.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.295 от 30.10.2014
--------------------------

  * Код задачи 35079. Теперь чтение шаблона выполняется не по одной ячейке, а построчно, что даёт
    существенное ускорение подстановки данных в шаблон.
    Изменены: ReportXLS, RPTToXLS.
    29.10.2014 А.Б.Хах
 P* Код задачи 35058. Добавлены SetupEventHandler, SetupAppEventHandler
    для упрощения установки/снятия обработчика события в зависимости
    от булевского условия.
    Изменены: SonarCore.
    29.10.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.294 от 28.10.2014
--------------------------

 P- Код задачи 35028. Неверно обрабатывалась ситуация смены набора данных
    в источнике данных.
    Изменены: MasterDetailHandlers.
    27.10.2014 И.В.Ковалев
 P* Код задачи 35005. Процедура CalcSumFields вынесена в интерфейсную часть.
    Изменены: HTCalcSumFields.
    27.10.2014 Д.А.Бондаренко
  - Код задачи 35045. Редактор отчетов: Не санкционированный доступ при попытке удалить узел.
    Изменены: rwfdesigner.
    27.10.2014 С.А.Барсуков
  - Код задачи 35028. Несанкционированный доступ при открытии обстановки с
    ведущей листалкой.
    Изменены: MasterDetailHandlers.
    27.10.2014 И.В.Ковалев
 P* Код задачи 34572. В функцию запуска приложения теперь можно передать имя файла справки.
    Изменены: StdMainForm.
    24.10.2014 А.Б.Хах
 P* Код задачи 34572. Добавлена функция запуска приложения с главной формой.
    Изменены: StdMainForm.
    24.10.2014 А.Б.Хах
  * Код задачи 34984. При открытии формы текстового редактора помещение её на
    новую вкладку рабочего стола выполняется теперь перед её показом.
    Изменены: RWFExecutor, texteditor.
    23.10.2014 Д.А.Бондаренко
  * Код задачи: 34963. TFHDependentFieldsEnable: Если один обработчик
    TFHDependentFieldsEnable установил запрет редактирования полей, то
    другой обработчик этот запрет не снимает.
    Изменены: DependentFieldsEnable.
    23.10.2014 М.А.Степанов
                                --- * ---

DSP v3.6.293 от 23.10.2014
--------------------------

  + Код задачи 35015. Редактор отчетов: Добавлена подсветка полей отчета, в которых
    используется выделенный узел в редакторе узлов отчета.
    Изменены: rwfdesigner.
    23.10.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.292 от 13.10.2014
--------------------------

  - Код задачи 33481. Иногда при сканировании не сразу отображался результат.
    Изменены: DBInputCustomBLOB, ScanUtils.
    13.10.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.291 от 03.10.2014
--------------------------

  > Код задачи 34587.
    - Атрибут набора данных attr_HideDBNavigator игнорировался при просмотре.
   P* Вместо значения атрибута attr_HideInsertButton теперь используется
      наличие этого атрибута.
    Изменены: ChoiceForm, form_DataChange, SDBVCLUtils.
    01.10.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.290 от 29.09.2014
--------------------------

 P+ Код задачи 34698. Добавлена регистрация класса TFlowPanel.
    Изменены: vcl_registration.
    29.09.2014 Д.А.Бондаренко
  - Код задачи 34700. Иногда возникала попытка запротоколировать несколько
    результатов выполнения отчетов одновременно.
    Изменен: RWFReportClient.
    29.09.2014 А.В.Шаров
  - Код задачи 34228. Исправлено отсутствие синхронизации горизонтального скроллинга по листалке
      результатов выбора при отключённом авторазмере колонок.
      Обмолочены покидание ячейки и попадание в ячейку TSDBGrid при горизонтальном скроллинге.
      Обработка событий синхронизации представления и поведения колонок сделана "двусторонней",
      защищенной от циклической синхронизации, добавлена синхронизация по изменению текущей
      колонки представления.
    Изменены: SDBGrid, SyncLayouts.
    24.09.2014 А.С.Лозовой
                                --- * ---

DSP v3.6.289 от 24.09.2014
--------------------------

 P* Код задачи 34195. Удален модуль Printers2.
    Изменены: Lib.dpk, Renders, WPPARSER, EscPPrn, IMP_LP, imp_prn, JvPrvwDoc,
    PreviewConst, PreviewDocForm, SPrvwRender, texteditor, printers.
    Удалены: Printers2.
    24.09.2014 С.А.Барсуков
 P* Код задачи 34125. Изменена схема рассылки события app_PrepareRecordDouble - теперь в
    обработчик события можно задавать какие поля следует дублировать.
    Изменены: SDBVCLUtils, SVCLCommonSQL_cnstr.
    23.09.2014 А.Б.Хах
                                --- * ---

DSP v3.6.288 от 22.09.2014
--------------------------

  > Код задачи 34427: Профилактика несанкционированного доступа при освобождении полей в TTableSpec
      при закрытии Дизайнера.
    P+ Добавлен интерфейс IDependenceOnDBSchema для настройки на описатель структуры БД реализации
         элементов описателя.
    P+ В TMemoryDataSet добавлена обработка событий коннекта/дисконнекта с базой данных, вызывающая
         настройку описателя структуры таблицы на описатель структуры БД.
    P+ В MemoryDataSet.SafeDBDItems добавлена "устойчивая" к коннекту/дисконнекту с БД реализация
         описателя поля.
    Изменены: DBDItems, DBSchemaIntf, FieldSpecFactory, uTableSpecFactory, FieldEditor, MemoryDataSet.
    Добавлены: MemoryDataSet.SafeDBDItems.
    22.09.2014 А.С.Лозовой
                                --- * ---

DSP v3.6.287 от 19.09.2014
--------------------------

 P* Код задачи 34592. Добавлена константа для запроса, созданного в Дизайнере.
    Изменены: SonarDBIntf, ReqEdit.
    18.09.2014 А.Б.Хах
 P* Код задачи 34590. На время препросадки записи валидаторы теперь по
    умолчанию включены.
    Изменены: FieldValidator.
    18.09.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.286 от 18.09.2014
--------------------------

 P- Функция IsDataSetInInputMode могла неправильно работать в ходе
    препросадки.
    Изменены: uIsDataSetInInputMode.
    17.09.2014 Д.И.Кобрусев
 P* Код задачи: 34548. Добавлен вариант функции GetFieldValue для TField,
    Добавлены варианты функции GetFieldValueByKey.
    Изменены: FieldValueUtils, SDBUtils.
    17.09.2014 М.А.Степанов
 P+ Код задачи 34554. Добавлена функция IsDataSetInInputMode.
    Добавлены: uIsDataSetInInputMode.
    17.09.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.285 от 16.09.2014
--------------------------

 P* TFieldValue.AsString для даты возвращает строку в 'нашем' формате.
    Изменены: FieldValueUtils.
    12.09.2014 М.А.Степанов
                                --- * ---

DSP v3.6.284 от 08.09.2014
--------------------------

  - Код задачи 34295. Исполнитель отчетов: Неверно считались итоги по полям типа
    indLargeint, indByte, indCode.
    Изменены: OraRwfExec.
    08.09.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.283 от 04.09.2014
--------------------------

  > Код задачи 34436.
   P* Функция UseExtRwfParam в интерфейсной части теперь доступна и без отладки.
    * В интерфейсную секцию вынесена константа - имя папки RWF.
    Изменены: RWFExecutor, commenus.
    04.09.2014 А.Б.Хах
 P* Код задачи 34179. Если не удалось извлечь описатель схемы напрямую, то пытаемся сперва извлечь
    соединение, а потом из него уже описатель схемы. Благодаря этому, теперь можно извлечь описатель
    из объекта БД.
    Изменены: CommonDB_cnstr.
    03.09.2014 А.Б.Хах
                                --- * ---

DSP v3.6.282 от 03.09.2014
--------------------------

  - Код задачи: 34415. Устранена утечка памяти, происходящая при закрытии
    курсора из-за неверно возвращаемого значения методом IsCursorOpen.
    Изменен: DBObjects.
    03.09.2014 М.В.Пекшева
                                --- * ---

DSP v3.6.281 от 03.09.2014
--------------------------

  - Код задачи 34248. При выполнении синхронизации не происходило событие AfterScroll, которое
    отслеживает RecordController. Из-за этого не работал обработчик DataSetFieldValueChangeNotifier.
    Изменены: DBObjects.
    03.09.2014 А.Б.Хах
                                --- * ---

DSP v3.6.280 от 01.09.2014
--------------------------

  * Код задачи 34361. На время препросадки записи валидаторы теперь по
    умолчанию отключены.
    Изменены: FieldValidator.
    01.09.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.279 от 01.09.2014
--------------------------

 P* Код задачи 34362. В функцию Split добавлен параметр
    IgnoreEmptyItems: Boolean = False.
    При значении True в результат не помещаются пустые строки.
    Изменены: SonarSys.
    01.09.2014 И.В.Ковалев
  - Код задачи 34363. При создании поля ввода ключа ему устанавливается атрибут ReadOnly
      из поля выбора из справочника, который мог быть установлен до создания поля ввода ключа.
    Изменены: DBObjectChoice.
    29.08.2014 А.С.Лозовой
                                --- * ---

DSP v3.6.278 от 29.08.2014
--------------------------

  - Код задачи 34307. Построение DataSet для модификации данных параметризовано указанием на изменение
      именно исходной таблицы (исключается использование редактирования "через таблицу").
      Такой режим применяется при массовом и блочном редактировании.
    Изменены: SDBVCLUtils, TableBrowser.
    29.08.2014 А.С.Лозовой
                                --- * ---

DSP v3.6.277 от 27.08.2014
--------------------------

  * Код задачи 34063. При создании подотчета в отчете записывается только имя файла подотчета.
    Путь к файлу подотчета не записывается.
    Изменены: rwfdesigner.
    26.08.2014 В.В.Матвеенко
  - Код задачи 34200. Исправлена ошибка "Несанкционированный доступ".
    Изменены: htVarray.
    26.08.2014 С.А.Барсуков
 P* Исправлена кодировка модуля FieldRelatedValueChangeNotifier.
    Изменены: FieldRelatedValueChangeNotifier.
    25.08.2014 Д.И.Кобрусев
 P+ Код задачи 34253. Добавлены обработчик
    TFHFieldRelatedValueChangeNotifier (вынесен из Leg-а) b вариант
    функции FindRecByKey.
    Изменены: SDBUtils, SVclCommon.dpk.
    Добавлены: FieldRelatedValueChangeNotifier.
    25.08.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.276 от 22.08.2014
--------------------------

 P- Код задачи 34181. Исправлена установка обработчика события при удалении контролов.
    Изменены: CompoundKeysCache.
    22.08.2014 А.С.Лозовой
                                --- * ---

DSP v3.6.275 от 21.08.2014
--------------------------

 P+ Код задачи 34128. Добавлен атрибут набора данных attr_HideDBNavigator -
    признак того, что в карточке DB-навигатор должен быть погашен.
    Изменены: form_DataChange, SDBVCLUtils.
    20.08.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.274 от 20.08.2014
--------------------------

  * Код задачи 34107. Убрана наша оптимизация алгоритма расстановки контролов, проделанная в задаче
    22492, которая приводила к описанному в задаче проявлению.
    Изменены: controls.
    20.08.2014 А.Б.Хах
 P* Код задачи 34215. Выполнение RWF: Для мемо-полей(в отличии от строковых
    полей), при значении = '', считалось, что данные отсутствуют.
    Изменнен: RWFExec.
    19.08.2014 А.В.Шаров
 P* Удален закомментированный код.
    Изменены: MultiChoice.
    19.08.2014 А.Б.Хах
  * Код задачи 34004. Из автоматически формируемой формы ввода отключено
    поле TextId, значение которого показывалось в виде числа,
    поскольку то же поле есть в форме ввода в виде содержимого
    текстовых бинарных данных.
    Изменены: FormUtils.
    19.08.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.273 от 19.08.2014
--------------------------

  - Код задачи 33721. Экспорт в RTF: неверно указывался размер бумаги в RTF.
    Изменены: Renders,
    19.08.2014 С.А.Барсуков
  - Код задачи: 34171. В Гермес, в карточке WRK_PREP не работало
    редактирование в разделе WRK_REGN.
    P: Синхронизация по значению ключа не работала для
       строковых полей.
    Изменены: DataSetSynchronizer, ScrollingSynchronizer, SDBUtils.
    Удалены: request_SkipTable.xml.
    14.08.2014 М.А.Степанов
  - Код задачи 34180. Дизайнер: если объект БД находился во внешних ссылках до структурной части, то
    происходила ошибка и Active после загрузки у объекта БД оставался False.
    Изменены: DBObjects.
    14.08.2014 А.Б.Хах
 P+ Код задачи 33977. Добавлено копирование контекста-породителя в набор данных
    листалки результатов выбора из основной листалки выбора.
    Изменены: ChoiceForm.
    13.08.2014 Д.А.Бондаренко
  - Код задачи 33993. Поиск по текстовым бин. данным не работал для HyTech.
    Изменены: DBMemoSearch.
    12.08.2014 А.Б.Хах
 P- Код задачи 34141. При рассылке ev_DataSet_PrepareRowCommandDataSet не
    копировалась команда.
    Изменены: SDBVCLUtils.
    12.08.2014 Д.А.Бондаренко
  - Код задачи 34132. При выходе в раздел с нестандартной листалкой происходила
    ошибка вида 'Компонент с именем "Frame1" уже существует.'
    Изменены: TableBrowser, TableBrowserForms.
    12.08.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.272 от 08.08.2014
--------------------------

  - Код задачи 33977. При открытии карточки из листалки выбора могла возникать
    ошибка вида "Некорректное преобразование типов".
    Изменены: Sections.
    08.08.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.271 от 07.08.2014
--------------------------

  - Код задачи 34064. Исполнитель отчетов: если задать полю отчета типа
    подотчет имя, то при использовании в формулах значение было всегда пустое.
    Изменены: RWFExec.
    07.08.2014 С.А.Барсуков
 P* Код задачи: 34015. ChooseRecord: Добавлено построение
    TBegetterContext, для того чтобы по датасету листалки выбора можно было
    определить какой DBObjectChoice его 'породил'.
    Изменены: ChoiceForm.
    07.08.2014 М.А.Степанов
  - Код задачи 34041. При выделения текста справа налево, длина выделения становится отрицательной,
    что не учитывалось при восстановлении выделения.
    Изменены: DBInputCustomBLOB.
    07.08.2014 А.Б.Хах
  * Код задачи 31586. Добавлен атрибут, позволяющий не закрывать форму при автозакрытии всех форм.
    Изменены: AppLogout.
    06.08.2014 А.Б.Хах
                                --- * ---

DSP v3.6.270 от 06.08.2014
--------------------------

  * Код задачи 31611. В случае загрузки обстановки *до* авторизации происходит
    "неверная операция с указателем".
    Новый модуль AbstractDBFormFactory добавлен в SVclCommon.dpk.
    Изменены: SVclCommon.dpk.
    05.08.2014 В.В.Матвеенко
  * Код задачи 33976. rwf: редактирование сортировки узла: восстановлены изображения
    на кнопках управления сортировкой.
    Изменены: sortdialog.xml.
    05.08.2014 В.В.Матвеенко
 P+ Код задачи 33278. Добавлено событие app_PrepareMemoFieldListForSearch.
    Изменены: DbMemoSearch.
    04.08.2014 Д.И.Кобрусев
  * Код задачи: 33563. Поддержан новый интерфейс для полнотекстового поиска.
    Изменены: DbMemoSearch, frame_MemoFindDialog.xml.
    01.08.2014 М.В.Пекшева
                                --- * ---

DSP v3.6.269 от 31.07.2014
--------------------------

  * Код задачи 33922. Проверка провисших транзакций отключается
    если в ключе tor.transactions.db_check_period таблицы SETTINGS отрицательное число.
    Изменены: ActiveTransactionDetector.
    30.07.2014 В.В.Матвеенко
  * Код задачи 30232. Изменено сообщение "слишком старый снимок".
    Изменены: SDBOraErrorTranslate.
    30.07.2014 В.В.Матвеенко
                                --- * ---

DSP v3.6.268 от 30.07.2014
--------------------------
  - Код задачи 29357. Не выполнялась очистка текста в полях ввода инкр. поиска при закрытом датасете
    листалки.
    Изменены: SDBGrid.
    28.07.2014 А.Б.Хах
                                --- * ---

DSP v3.6.267 от 28.07.2014
--------------------------

  > Код задачи 31611. В случае загрузки обстановки *до* авторизации происходит
    "неверная операция с указателем".
    - Исправлена ошибка - в классе TTableBrowserFormFactory форма FTableBrowserFrom
      убивалась 2 раза.
    Р Произведен ряд косметических изменений и дополнений в TTableBrowserForm.
      Произведен ряд косметических изменений и дополнений в TTableBrowserFormFactory.
      Произведен ряд косметических изменений и дополнений в TTextBoxFormFactory
      Часть кода из TTableBrowserFormFactory и TTextBoxFormFactory перенесено в TAbstractDBFormFactory.
      Подкорректирован код в hnd_default_CreateTableBrowserForm.
      Изменены: TableBrowser, textbox, TableBrowserForms.
      Добавлен: AbstractDBFormFactory.
    28.07.2014 В.В.Матвеенко
  * Код задачи 33880. Изменены настройки наших форм: теперь те формы, которые показывались по центру
    рабочего пространства теперь будут показываться по центру того монитора, где находится гл. окно
    приложения.
    Изменены: form_DBGridLayout.xml, form_FindDialog.xml, form_gotoline.xml, form_ReplaceDialog.xml,
      form_StdMainForm.xml, frmDiffDialog.xml, frmEnterValue.xml, frmFieldsPair.xml, frmIntField.xml,
      frmIntRec.xml, frmJoinDesigner.xml, frmRelLimit.xml, execopt.xml, font.xml, linekind.xml,
      linkkind.xml, linkkind1.xml, nodeattrib.xml, nodes.xml, position.xml, rwf_field.xml,
      rwf_form.xml, selectvar.xml, sortdialog.xml, viewopt.xml, zoom.xml,
      form_CompressionProgress.xml, form_DecompressionProgress.xml, form_ReportCreateDialog.xml,
      form_SelectDataSet.xml.
    25.07.2014 А.Б.Хах
                                --- * ---

DSP v3.6.266 от 25.07.2014
--------------------------

  * Код задачи 32315. Действие "Сканировать" доступно только если тип содержимого не известен, либо
    тип содержимого - изображение.
    Изменены: DBInputCustomBLOB.
    25.07.2014 А.Б.Хах
  * Код задачи 30198. Пункты меню уровня TextBox'а теперь добавляются в лок. меню редактора
    текстовых бин. данных.
    Изменены: TextBox, frame_TextBox.xml.
    24.07.2014 А.Б.Хах
                                --- * ---

DSP v3.6.265 от 24.07.2014
--------------------------

  * Код задачи 33828. В текстовое поле "Интервал" (межсимвольный) позволено вводить целые и дробные числа.
    Введенное значение приводится не к целому, а к Extended
    Изменены: rwfdesigner
    24.07.2014 М.А.Зайкин
  - Код задачи 33707. Для полей типа "Короткое имя" и "Полное имя" при редактировании не
    выставлялось поле узла.
    Изменены: rwfdesigner.
    24.07.2014 А.Б.Хах
 B* Код задачи 33824. Интервал проверки незавершённых транзакций определяется
    параметром tor.transactions.db_check_period в таблице SETTINGS:
    - отсутствие параметра определяет интервал по-умолчанию 10 мин;
    - при нулевом значении параметра проверка транзакций не происходит;
    - установленное целое значение параметра задает интервал в минутах.
    Изменены: ActiveTransactionDetector
    24.07.2014 М.А.Зайкин
                                --- * ---

DSP v3.6.264 от 23.07.2014
--------------------------

  * Код задачи 33768. Дублировании записи обязательные поля типа дата в
    новой записи по умолчанию пустые (было: предустанавливаются в текущую
    дату).
    Изменены: DatePreset, RecordControl, SDBVCLUtils.
    22.07.2014 Д.И.Кобрусев
 P+ Код задачи 33726. Добавлена функция GetDataSetAttrEx - вынесена из Leg.
    Изменены: RecordControl.
    22.07.2014 Д.А.Бондаренко
  + Код задачи 33726. Подключена карточка TAB_RTS (вынесена из Веги).
    Добавлены: frame_TAB_RTS.xml.
    Изменены: SVCLCommon_cnstr.
    21.07.2014 Д.А.Бондаренко
  - Код задачи 33656. Есть листалка таблицы и связанное с ней окно
    редактирования текстового поля. В листалке стать на запись, для
    которой связанной записи с текстовым полем нет, и набрать в окне
    редактирования текстового поля текст, не сохраняя его. Если теперь эту
    запись (ведущую, в листалке) удалить из другой листалки, в "нашей"
    листалке они пропадала, а текст в окне оставался (хотя текущей в
    листалке стала уже другая запись). Если после этого в листалке перейти
    к другой записи, окно с текстом предлагало сохранить текст, и, в
    случае согласия, добавляло запись со ссылкой на удалённую ведущую
    запись.
    Изменены: MasterDetail, RecordControl, SonarDbIntf, TableBrowser,
      TextBox.
    18.07.2014 Д.И.Кобрусев
  + Код задачи 33620. Добавлена проверка доступности удаления записи в листалке
    и разделе-ссылке на запись. Если запись уже открыта, её удаление запрещено.
    Изменены: form_DataChange, Sections, TableBrowser.
    18.07.2014 Д.А.Бондаренко
 P* Код задачи: 33717. Код по выполнениию очета из DESKMENU
    вынесен в процедуру ExecReportFromDeskMenu.
    Изменены: DeskMenu_exec.
    17.07.2014 М.А.Степанов
 P- Код задачи: 33717. ExecReportFromDeskMenuStorage: добавлена возможность показа
    отчета: параметр AShowResult, добавлен возврат имени результирующего файла.
    Изменены: DeskMenu_exec.
    16.07.2014 М.А.Степанов
                                --- * ---

DSP v3.6.263 от 16.07.2014
--------------------------

  - Код задачи 33639. Функция ConvStringToType обрабатывала не все типы данных, из-за чего умолчания
    параметров не сохранялись.
    Изменены: type2str.
    16.07.2014 А.Б.Хах
 B* Код задачи 32204. Исправлены размеры и взаимное расположение элементов в фреймах,
    используемых в карточках настройки проектов
    Изменены: frame_fconfig.xml, frame_SQLConfig.xml, frame_kbmmwconfig.xml
    29.03.2014 М.А.Зайкин
 B- Код задачи 33605. Файл-результат выполнения отчета удалялся до завершения выполнения отчета.
    Изменены: RWFByTemplateExecutor, TempFileDeleter.
    04.07.2014 А.Б.Хах
  - Код задачи 32953. При задании строки с датой в ячейку в формате даты, Excel считал, что дата в
    этой строке в американском формате (сначала месяц, потом день), что приводило к тому, что месяц
    с днем менялись местами. Теперь, если формат у ячейки - дата, то значение подставляется в виде
    даты, а не строки.
    Изменены: ReportXLS.
    15.07.2014 А.Б.Хах
                                --- * ---

DSP v3.6.262 от 15.07.2014
--------------------------

  - Код задачи 33461. Для поля типа "часть значения" неверно строился список допустимых для выбора
    полей - туда попадали само редактируемое поле и другие поля типа "часть значения".
    Изменены: rwfdesigner.
    11.07.2014 А.Б.Хах
  - Код задачи: 32865. Исправлена утечка памяти при отмене изменений в
    blob поле (изменение взято из новой версии kbmMW).
    Изменены: kbmMemTable.
    11.07.2014 М.А.Степанов
  * Код задачи 33587. Кнопка "Изменить заголовок" теперь добавляется на уровне TTextBoxForm,
    поэтому она будет только в обстановках.
    Добавлен: frame_TextBoxForm.xml.
    Изменены: DBInputCustomBLOB, Sections, TextBox, frame_TextBox.xml.
    А.Б.Хах 10.07.2014
                                --- * ---

DSP v3.6.261 от 10.07.2014
--------------------------

  - Код задачи 33105. При открытии карточки на редактирование и при
    закрытии карточки кнопкой "Отмена" (или Esc) в подчинённых листалках
    восстанавливалась полная выборка и сбрасывался инкрементный поиск.
    Изменены: DBInputCustomBLOB, form_DataChange, MasterDetail,
      RecordControl, SVCLCommonConsts, TableBrowser.
    10.07.2014 Д.И.Кобрусев
  - Код задачи 33612. При просадке препросаженной сдублированной записи происходил переход к
    дублируемой записи.
    Изменены: MasterDetailHandlers, SonarDBkbmMW, kbmMWSonarCommonDataSet.
    09.07.2014 А.Б.Хах
  - Код задачи: 33621. При построении запроса полнотекстового поиска происходило обращение к уже
    освобожденному полю формы полнотекстового поиска.
    Изменен: DbMemoSearch.
    09.07.2014 М.В.Пекшева
  * Код задачи 33615. Команды контекстного меню листалки, работающие с текущей
    записью, теперь неактивны на пустой листалке.
    Изменены: TableBrowser.
    08.07.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.260 от 07.07.2014
--------------------------

  - Код задачи 33468. Сообщение о завершении сеанса сервером содержало время
    бездействия в миллисекундах, вместо минут.
    Изменены: kbmMWClosedSessionHandler.
    04.07.2014 Д.А.Бондаренко
  > Код задачи 29443.
    - Перед попыткой подключения к БД HyTech форма визуализатора прогресса
      показывалась на экране, что приводило к мерцанию.
    - Окно о программе могло перекрывать визуализатор ожидания завершения
      регламентных работ при подключении к БД HyTech.
   P* Отменены правки по задачам 27744, 27458, 27416; в функцию
      CreateProgressWindowDef добавлен необязательный параметр AShowDelay;
      отложенный показ формы прогресса теперь выполняется при помощи
      TProgressDelayHelper.
    Изменены: libutils, ht_init, DBGridSearch, SADProgress, SProgress,
      DBServiceCheck, SdbVcl, kbmMWAsyncWait.
    03.07.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.259 от 03.07.2014
--------------------------

  - Код задачи 33594. Исполнитель отчетов: если есть узел отчета A и подчиненный узел B
    (справочник без дополнительного запроса), то для тех записей из узла A для которых
    нет соответствующих записей из B могли печататься данные, соответствующие предыдущим
    записям узла A.
    Изменены: OraRwfExec.
    03.07.2014 С.А.Барсуков
  * Код задачи 33580. При определении типа содержимого бинарного поля по
    расширению загруженного файла теперь не учитывается регистр символов.
    Изменены: DBInputCustomBLOB.
    02.07.2014 Д.А.Бондаренко
  - Код задачи 33586. Необработанная ошибка при Post не прерывала закрытие карточки.
    Изменены: form_DataChange.
    02.07.2014 А.Б.Хах
                                --- * ---

DSP v3.6.258 от 02.07.2014
--------------------------

  - Код задачи 33515. Имя поля подавалось в DMap как WideString, а искалось как String, что
    приводило к нарушению контракта в DeCAL.
    Изменены: SDBVCLUtils.
    01.07.2014 А.Б.Хах
  * Код задачи 33540. При закрытии формы с текстом теперь выдается вопрос о сохранении текста.
    Изменены: TextBox.
    01.07.2014 А.Б.Хах
                                --- * ---

DSP v3.6.257 от 01.07.2014
--------------------------

  - Код задачи 33476. При открытии диалога редактирования поля, флаг "прописью" не восстанавливался.
    Изменены: rwfdesigner.
    30.06.2014 А.Б.Хах
 B* Код задачи: 33527. Теперь при полнотекстовом поиске если в интерактиве
    выставлена галочка "Точно как в запросе", то поисковый запрос оборачивается
    в фигурные скобки.
    Изменены: DbMemoSearch, form_MemoFindDialog.xml.
    30.06.2014 М.В.Пекшева
  > Код задачи 33479.
    - Вещественные числа прописью возвращались в Ansi кодировке, тогда как все остальные функции
      aTypeToStr возвращают результат в Oem.
    - Исправлена опечатка в функции перевода вещественного значения в строку.
    Изменены: type2str, sonarsys
    30.06.2014 А.Б.Хах
 B* Код задачи 33054. Изменена карточка выбора по тексту.
    Удален: form_MemoFindDialog.xml.
    Добавлен: frame_MemoFindDialog.xml.
    Изменен: DbMemoSearch.
    30.06.2014 А.В.Шаров
 P* Код задачи: 33426. Добавлен метод tAParamsStorage.Get, для получения
    параметра с возможностью указать указать умолчание.
    Изменены: CommonDSPUtils
    30.06.2014 М.А.Степанов
  * Код задачи 33523. Для типов полей "Итог", "Номер записи" и "Отчет" теперь выполняется
    автоматическая предустановка узла.
    Изменены: rwfdesigner.
    27.06.2014 А.Б.Хах
  - Код задачи 33463. Имя файла для поля типа изображение подавалось в кодировке Oem.
    Изменены: RWFExec.
    27.06.2014 А.Б.Хах
 B* Код задачи 33480. Если при выполнении запроса на поиск по тексту произошла ошибка, то
    восстановление исходной выборки выполняется автоматически.
    Изменены: DBMemoSearch.
    26.06.2014 А.Б.Хах
BP* Константа DefaultJPEGQuality переименована в cnf_default_ScanJPEGQuality;
    переменная ScanJPEGQuality переименована в cnf_var_ScanJPEGQuality.
    Изменены: cnfdef, CnfHnd, DBInputCustomBLOB.
    25.06.2014 Д.А.Бондаренко
BP+ Код задачи 33467. Добавлено событие ev_DBInputBLOB_LoadBitmapFromScanner,
    переменная ScanJPEGQuality.
    Изменены: cnfdef, CnfHnd, DBInputCustomBLOB, ScanUtils.
    25.06.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.256 от 25.06.2014
--------------------------

  * Код задачи 33472. Изменено сообщение о некорректном полнотекстовом запросе.
    Изменены: SDBOraErrorTranslate.
    24.06.2014 А.Б.Хах
  * Код задачи 32871. Для графической печати добавлена спецкоманда #SPC#
    (печать символа #).
    Изменены: WPPARSER.
    24.06.2014 С.А.Барсуков
  * Код задачи 33424. Обновление деталей теперь выполняется и при изменении поля, участвующего в
    связи.
    Изменены: MasterDetail.
    23.06.2014 А.Б.Хах
 P* Код задачи 33075. Библиотека DeCAL. Подключен контроль подаваемых/получаемых данных.
    Изменены: DeCAL, DBObjectSpecs, photocnstr, RecordControl, ReportXLS.
    23.06.2014 А.В.Шаров
  - Код задачи: 31506. Функциональность по обеспечению полнотекстового поиска не
    только по текстовым полям не до конца была перенесена из соответствующей
    ветки проекта.
    Изменен: DbMemoSearch.
    23.06.2014 М.В.Пекшева
  * Код задачи 33318. Теперь при построении компонента для текстовых бин. данных при просмотре для
    кодировки cp1251 строится TDBRichViewEdit, вместо TATViewer.
    Изменены: DBInputCustomBLOB.
    19.06.2014 А.Б.Хах
 B* Код задачи 33418. Значения типа Byte (однобайтовое целое без знака) конвертировались в тип java
    Byte (однобайтовое целое со знаком), что приводило к искажению значений.
    Изменены: kbmMWCustomJavaService.
    19.06.2014 А.Б.Хах
  * Код задачи 33170. Теперь контроль СУК не прерывает закрытие карточки при нажатии кнопки
    "Дублировать".
    Добавлены: uHandlePostError.
    Изменены: CompoundKeysCache, CompoundKeysHandleError, form_DataChange, MasterDetailHandlers,
      RecordControl, SVCLDBFormH.
    18.06.2014 А.Б.Хах
                                --- * ---

DSP v3.6.255 от 11.06.2014
--------------------------

 B- Код задачи 33299. Значения типа Word и ShortInt конвертировались в типы java с искажением данных.
    Изменены: kbmMWCustomJavaService.
    10.06.2014 А.Б.Хах
  * Код задачи 33194. Применена следующая технология работы с горячими клавишами в именах из описателя.
      Горячие клавиши могут задаваться в следующих именах из описателя: длинное имя домена,
        длинное имя поля таблицы, длинное имя таблицы.
      Рабочий символ горячей клавиши "&" (перед горячей клавишей), в описателе в Settings может быть
        отметка горячей клавиши между двумя символами "~".
      При загрузке описателя в память вариант с двумя "~" преобразуется в вариант с "&".
      В интерфейсные функции описателя для возврата соответствующих длинных имен добавлен логический
        параметр - возвращать имя как есть (параметр True) или без "&" (параметр False),
        с умолчанием - без "&" (False).
      Соответствующие свойства классов, реализующих интерфейсные функции для возврата длинных имен,
        возвращают имена как есть (т.е. если есть "&", то этот символ останется в свойстве).
      При работе с загруженным описателем для получения длинных имен используются интерфейсные функции
        с соответствующим случаю параметром, без использования функций преобразования/выкусывания "~".
      После сложного разветвленного алгоритмического формирования строки с использованием длинных имен
        (например - строковое представление интерактивного запроса) применена функция удаления
        ВСЕХ "&" из результата (их может быть несколько).
    Изменены: DBD2Schema, DBDItems, DBSchemaIntf, DBSchemaUtils, htdescr, HtDescr_LoadStore,
      sonarsys, REGLAM, grproj, requests, DBEditFrame, DBGridLayout, DbMemoSearch, DBObjectSpecs,
      enterrecord, FieldViewer, FormUtils, EditReqH, ReqTree, ReqUtils, DsLimit, RWFExec,
      SDBVCLUtils, SectionUtils, TableBrowser, TableBrowserForms, TableChoice, DBArchiver,
      deskmenuform, ReportComponents, ReportDesigner, ReportVisualiser.
    10.06.2014 А.С.Лозовой
  - Код задачи 33302. При попытке редактирования представления
    неподдерживаемого типа возникала утечка памяти.
    Изменены: Presentation.
    10.06.2014 Д.А.Бондаренко
 B- Код задачи 33258. В некоторых местах значения полей БД типа LargeInt
    получались неверно: "обрезались" до LongInt-а.
    Проявление. В "Торе" открыть карточку адмпротокола, в котором
    нарушитель - физическое лицо, и его код не помещается в LongInt, и
    попытаться ввести через эту карточку доставление (в разделе).
    Происходила ошибка "Доставление может быть заведено только для
    нарушителя-лица."
    Изменены: SDBDataSets.
    10.06.2014 Д.И.Кобрусев
 B- Код задачи 33011. Вызов Edit или Insert приводил к обновлению текста в полях ввода.
    Изменены: kbmMWSonarCommonDataSet, AttrAsObject.
    29.05.2014 А.Б.Хах
 B* Код задачи 33252. Отменены изменения по задаче 33011.
    Изменены: kbmMWSonarCommonDataSet.
    09.06.2014 А.Б.Хах
 B- Код задачи 33226. Повторная неудачная попытка добавления записи приводила к тому, что
    производился переход на текущую запись в листалке.
    Изменены: SonarDBkbmMW.
    09.06.2014 А.Б.Хах
 B* Код задачи: 31506. При формировании списка полей интерактив полнотекстового
    поиска теперь ориентируется на наличие по полю полнотекстового индекса, а не
    на тип обрабатываемого поля.
    Изменен: DbMemoSearch.
    09.06.2014 М.В.Пекшева
 B- Код задачи 33150. Ввод/дублирование записи. При выходе в раздел
    производится препросадка, при этом не контролировалась уникальность
    составных ключей. В результате в БД мог быть добавлен дубль по СУКу,
    даже если дублирование в этой таблице запрещено.
    Изменены: CompoundKeysCache.
    09.06.2014 Д.И.Кобрусев
  * Код задачи: 33172. При чтении следущей порции данных описание курсора
    не запрашивается с сервера.
    Изменены: SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBQuery, kbmMWJavaDBServer.
    06.06.2014 М.А.Степанов
  * Код задачи: 33224. При отмене ожидания завершения регламентных работ
    визуализатор процесса не убирался с экрана.
    Изменены: kbmMWDBServiceShutdownCheck.
    06.06.2014 М.А.Степанов
  * Код задачи: 32949. Обработка исключения о закрытии сеанса сервером
    приложений: Если закрытие сеанса произошло из-за сна компьютера то
    выдается соответствующее сообщение.
    Изменены: kbmMWClosedSessionHandler, kbmMWSonarServiceConsts, kbmMWJavaDBServer.
    05.06.2014 М.А.Степанов
  - Код задачи 33167. Листалки таблиц. Поиск по тексту (Ctrl+D). Список
    таблиц, в которых возможен поиск, строился неправильно: это был список
    таблиц, на которые ссылается данная; должно быть наоборот -
    ссылающихся на данную.
    Изменены: DbMemoSearch.
    05.06.2014 Д.И.Кобрусев
  * Код задачи 33195. Удалена перерисовка активной формы при создании
    визуализатора прогресса.
    Изменены: SFormProgressToStatusBar, SProgress.
    04.06.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.254 от 04.06.2014
--------------------------

  * Код задачи 33099. В заголовок главной формы прописывается Title и версия проекта.
    Изменен: StdMainForm.
    04.06.2014 А.С.Лозовой
                                --- * ---

DSP v3.6.253 от 04.06.2014
--------------------------

 P- Код задачи 33130. Под FullDebug, если при попытке запротоколировать
    MaskedException возникло исключение, то в лог-файл записывался только
    "Дамп кадров исключений" и "Дамп стека" обрабатываемого исключения.
    Изменен: ExtraDebugInfo.
    04.06.2014 А.В.Шаров
                                --- * ---

DSP v3.6.252 от 02.06.2014
--------------------------

  * Код задачи: 31674. Автоматическое закрытие всех окон: Очистка рабочего
    стола и закрытие соединения могли выполниться во время отработки
    запроса к БД, что приводило к исключениям.
    Изменены: AppLogout.
    02.06.2014 М.А.Степанов
  * Код задачи 33123. В редакторе отчётов rwf поддержано отображение
    выравнивания поля отчёта (влево, вправо, по центру).
    Изменены: rwfdesigner.
    02.06.2014 И.В.Ковалев
  - Код задачи 32914. При осутствии установленного Excel, вместо
    сообщения "Приложение MS Excel не найдено", выдавалось "(код: -2147221164)
    Класс не зарегистрирован, ClassID: {00024500-0000-0000-C000-000000000046}.",
    которое сопровождалось утечками памяти.
    Изменен: ReportXLS.
    30.05.2014 А.В.Шаров
 P* Код задачи: 32880. Теперь в приложение загружаются только не композитные
    полнотекстовые индексы.
    Изменен: DBD2Schema.
    30.05.2014 М.В.Пекшева
                                --- * ---

DSP v3.6.251 от 30.05.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  30.05.2014 Д.А.Бондаренко
  ----------------------------------------------------------

 P* Код задачи 33041. Константа SonarCore.Proc2EventHandler, алиас функции
      ProcToEventHandler, удалена. Переменная Objects.Proc2EventHandler
      переименована в ProcToEventHandler.
    Изменены: InitKBMMW, ComponentUtils, CommonDBUtils, htdescr, KeysWithID,
      pyutils, Classes, SonarCore, sonarsys, Streams, Jdbinit, libutils,
      OBJECTS, batchopr, bindata, changer, dbase0, dbutils, ht_init, IRFields,
      netcnf, OldBinData, dowreq, grproj, recreq, tchinfrq, SonarDB_cnstr,
      subscan, TimeSync, transman, usrutil, About, APPINVIS, AuthFormH,
      CodeIncrementHandler, DBInputCustomBLOB, DBInputMethods, DBObjectChoice,
      DBObjectChoiceController, fconfig, form_DataChange, FormResizer, IdleVCL,
      imp_prn, IntDataFactory, photocnstr, PyCnstrCommon, EditReqH,
      ReqFieldViewer, dowreqfactory, DsLimit, grprojfactory, LimitByReq,
      recreqfactory, reqfactory, reqlimfactory, tchreqfactory, rwdata, RWFExec,
      rwffactory, SDBDataSets, SDBVCLUtils, SonarDbIntf, SVCLCommon_cnstr,
      SVCLCommon_cnstr0, SVCLUtils, TableBrowser, TableBrowserForms,
      BackGroungExecuteRWF, DataSetLayoutSQLConvertor, DeskMenu_build,
      DeskMenu_exec, OraRwfExec, OraUsrReq, OraUsrReq_Factory,
      SQLCodeViewHandler, SQLConfig, SQLIncrSearchHandler, controls,
      SQLRestoreExcludedRowsHandler, SVCLCommonSQL_cnstr, UpdateAppUtils,
      ArchiveUtils, DBArchiver, AuthHyTechHandlers, CheckVer, deskmenu,
      deskmenuexec, gridincrsearch, HtCodeView, lslaunch, password, rwfhtexec,
      SdbVcl, SVCLHT_cnstr, SonarDBkbmMW, SVCLkbmMW_cnstr, kbmMWJavaDBService,
      SonarDBJava, sdboracle, SVCLOracle_cnstr, InitDBLogger, RichViewActions.
    30.05.2014 Д.А.Бондаренко

    Адаптация: вызовы Proc2EventHandler() необходимо заменить на
      ProcToEventHandler() из соответствующих модулей.


  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  30.05.2014 Д.А.Бондаренко
  ----------------------------------------------------------

  > Код задачи 33041.
    * В сообщениях о внутренних ошибках программы теперь выводится служебная
      информация.
   P* Процедура Assertion переименована в Contract,
      оптимизирована и доработана: если отладочная информация недоступна,
      выдаётся упрощённое сообщение.
    Изменены: BackGroundExecutor, ComponentUtils, DBDItems, DBSchemaUtils,
      htdescr, NativeStrConversion, ShortName, HexUtils, uVariantToString,
      Classes, sonarsys, IRFields, reqapi, SelectReq, AppLogout, BindataCache,
      BrwRecordList, Contexts, DataSetSynchronizer, DataSetUtils,
      DBGridColumnsLayout, DBInputCustomBLOB, DBObjects, DeskTop, EllipsisSel,
      FieldViewer, Login, MasterDetailHandlers, MemoryDataSet, MessageService,
      MultiChoice, MultitabbedDesktop, RecordControl, ReportXLS,
      ReportTemplateContainer, ReqFieldViewer, RWFExecutor, SConnection,
      ScrollingSynchronizer, SDBDataSets, SDBGrid, SDBUtils, SDBVCLUtils,
      Sections, SRVSpellChecker, SVCLCommon_cnstr, SVCLFormH, SVCLUtils,
      SyncLayouts, TableBrowser, ActiveTransactionDetector,
      DataSetInternalUtils, DataSetLayoutSQLConvertor, DBSettings,
      DeskMenu_cache, MissedValues, ReqConv, RWFReportClient,
      SQLIncrSearchHandler, deskmenu, gridincrsearch, SdbVcl, SonarDBkbmMW,
      kbmMWJavaDBServer, kbmMWJavaDBSrvAsyncLib, SonarDBJava, sdboracle.
    30.05.2014 Д.А.Бондаренко

    Адаптация: процедура Assertion переименована. Необходимо заменить вызовы
      Assertion() на Contract().
                                  * * *

  * Код задачи 33058. Листалка таблицы. Пункты локального меню "Выбрать по
    тексту" (Ctrl+D) и "Связь с текстом" (Shift+F8). В выдаваемом списке
    таблиц с мемо-полями есть только те, на которые у пользователя есть
    права (было: все).
    Изменены: DbMemoSearch, TableBrowser.
    30.05.2014 Д.И.Кобрусев
 B+ Код задачи 33098. Сообщения в логе о закрытии сессии пользователя теперь
    содержат текущие дату/время.
    Изменены: AppLogout.
    29.05.2014 Д.А.Бондаренко
  - Код задачи 33011. Вызов Edit или Insert приводил к обновлению текста в полях ввода.
    Изменены: kbmMWSonarCommonDataSet, AttrAsObject.
    29.05.2014 А.Б.Хах
 B- Код задачи 33046. "Самосвал" иногда не закрывал все окна, если был открыт диалог открытия файла.
    Изменены: AppLogout.
    28.05.2014 А.Б.Хах
  - Код задачи 32994. При инкрементном поиске (например, по дате) возникала ошибка, если вместо какой-либо части даты указать ??
    "Значение даты ??/01/1977 указано неверно: день месяца (указано -1) не может быть меньше 1."
    Изменены: TableBrowser
    28.05.2014 М.А.Зайкин
 P* Обновлена библиотека FastMM_FullDebugMode.dll.
    Изменены: FastMM_FullDebugMode.dll.
    28.05.2014 С.А.Барсуков
 B> Код задачи 32959:
     - Выполнение отчетов по шаблону XLS иногда могло завершаться
       ошибкой "неверная операция с указателем".
    P- При сборке DSP c FullDebug после выполнения отчета выдавалось
       сообщение об утечках памяти.
    Изменены: RWFReportSrv, kbmMWBackGroundExecutor, RWFReport, ReportXLS.
    27.05.2014 А.В.Шаров
  > Код задачи 33050.
    * При попытке подключения к БД HyTech в случае указания неверного имени
      рабочей станции теперь возможна повторная попытка подключения без
      перезапуска приложения.
    - Окно "О программе" могло перекрывать сообщение о неправильном имени
      рабочей станции.
    Изменены: About, HTNetCnfHandlers, password, SdbVcl.
    27.05.2014 Д.А.Бондаренко
  * Код задачи: 33045. В ситуации когда на выходе из программы выдавалось
    сообщение вида 'Вы не работаете на новой версии ПК "ТОР";, поскольку
    администратор Вашего отделения ...', не работало закрытие программы
    из-за регламентных работ, при начале закрытия вышеуказанное сообщение
    выдавалось циклически.
    Изменены: AppAutoClose, DBServiceCheck, kbmMWDBServiceShutdownCheck.
    27.05.2014 М.А.Степанов
                                --- * ---

DSP v3.6.250 от 27.05.2014
--------------------------

  - Код задачи: 33003. Если при соединении с БД возникала ошибка, а в это
    время шло ожидание завершения регламентных работ и висел визуализатор
    процесса, то этот визуализатор не уничтожался.
    Изменены: SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBServer,
      kbmMWJavaDBService, kbmMWJavaDBSrvAsyncLib, SDBJavaErrorTranslate,
      SonarDBJava.
    27.05.2014 М.А.Степанов
 B- Код задачи 33026. Редактор мемо-поля (в карточке или отдельном окне).
    Если поле в редакторе не было изменено (по сравнению с тем, что в БД),
    если в редакторе начать набирать текст, выделение пропадало, и новый
    текст добавлялся к старому, а не замещал собой выделенный блок.
    Изменены: DBInputCustomBLOB.
    26.05.2014 Д.И.Кобрусев
 B- Код задачи 33006. Каким-то образом, фоновый обработчик, рассылающий WM_CLOSE, добирался до гл.
    формы и пытался её закрыть, на что она выдавала окно с подтверждением, которое закрывал этот же
    фоновый обработчик, и далее он опять пытался закрыть гл. окно и т.д.
    Изменены: AppLogout.
    26.05.2014 А.Б.Хах
 P> Код задачи 22153. Буферизирующие потоки Streams.TVAStream и
    Objects2.tVAStream. Метод Seek. Позицинирование от конца потока:
    - Позиционирование производилось от конца базового потока (а базовый
      поток может быть короче буферизирующего).
    - Смещение бралось с противоположным знаком, т.е. положительное
      смещение означало смещение назад, а отрицательное - вперёд.
    Изменены: Objects2, Streams.
    26.05.2014 Д.И.Кобрусев
 B* Код задачи 33017. Увеличен размер шрифта в примерах полнотекстового
    поиска в форме ввода параметров поиска по тексту, шрифт изменён на
    Courier New.
    Изменены: form_MemoFindDialog.xml
    23.05.2014 И.В.Ковалев
 B* Код задачи 32988. Пункты "Формы, Отчеты, Запросы" в локальном меню таблицы сверху и снизу
    отделяются разделителями
    Изменены: DeskMenu_build
    22.05.2014 М.А.Зайкин


DSP v3.6.249 от 22.05.2014
--------------------------

 B* Код задачи: 32964. При попытке подключения к БД в которой идут регламентные
    работы не выдавался визуализатор процесса.
    Изменены: kbmMWDBServiceShutdownCheck, SonarDBkbmMW, SVCLkbmMW_cnstr.
    22.05.2014 М.А.Степанов
 B* Код задачи: 32974. Изменено сообщение об ошибке при полнотекстовом поиске по
    шаблону, начинающемуся с символов '?' и '*'.
    Изменены: SDBOraErrorTranslate, SVCLOracle_cnstr.
    22.05.2014 М.В.Пекшева
  > Код задачи 27275.
   * Реализовано увеличение ширины окна выдачи листалки в сообщении при дублировании,
     в зависимости от ширины текста столбцов Grid'а.
   P+ Добавлена процедура CalcColWidthByText для расчета ширины текста столбцов Grid'а.
   P* Часть кода процедуры  процедуры TSDBGrid.CalcColWidthsByText
      выделена в процедуру CalcColWidthByText.
   P+ Добавлена функция CalcAndSetColWidthByText возвращающая ширину клиентской
     части Grid'а на основании рассчета колонок процедурой CalcColWidthByText
     по максимальной или по средней ширине колонок в зависимости от флага
     ACalculateMaxWidth.
   P* Функция IndicatorWidth заменена на свойство IndicatorWidth. Описание в комментариях
      к Grid'у.
   P+ Добавлена функция GetIndicatorWidth.
    Изменены: SDBGrid, CompoundKeysHandleError.
    21.05.2014 В.В.Матвеенко
 P* Модули поддержки описателя STF вынесены в Common.
    Удалены: sdb2utils, sdbapi2, sdbc2, sdbti.
    Изменены: SVCLCommonSQL.dpk, SVCLCommonSQL_cnstr.
    21.05.2014 Д.А.Бондаренко
  * Код задачи: 32825. При закрытии сеанса из-за того что сервер закрыл
    сессию, вначале закрывается соединение и только потом выдается сообщение
    о закрытии, чтобы при висящем сообщении не работали фоновые обработчики
    которые работают с БД.
    Изменены: kbmMWClosedSessionHandler, kbmMWJavaDBSrvAsyncLib.
    21.05.2014 М.А.Степанов
                                --- * ---

DSP v3.6.248 от 19.05.2014
--------------------------

  - Код задачи 32913. Производилась попытка очистить интерфейс освобожденного объекта.
    Изменены: SQLUtils.
    16.05.2014 А.Б.Хах
  * Код задачи 32905. Добавлен контроль дублирование одного и того же листа в файле данных.
    P: Добавлена утилита RPTToXLS, которая выгружает данные из тектового файла с метками в шаблон xls.
    Изменены: ReportXLS.
    16.05.2014 А.Б.Хах
                                --- * ---

DSP v3.6.247 от 16.05.2014
--------------------------

  - Код задачи 32907. Фоновое выполнение отчета по шаблону xls завершалось
    ошибкой "(код: -2147417843) Не удается выполнить исходящий вызов, так как
    приложение обрабатывает входящий синхронный вызов".
    Изменены: RWFReportSrv, RWFReport_Const, RWFReportClient, RWFReportClientUtils.
    15.05.2014 А.В.Шаров
  - Код задачи 31690. "Самосвал" прерывался на систымных диалогах (открытия файла и т.п.).
    Изменены: AppLogout.
    15.05.2014 А.Б.Хах
                                --- * ---

DSP v3.6.246 от 15.05.2014
--------------------------

 P* Код задачи 32861. В GetListSelects (построение логического условия
    запроса) добавлена возможность использовать опцию трансляции в sql-
    запрос Oracle, которая в редакторе запросов называется
    "Не выполнять перебор записей".
    Изменены: SDBUtils.
    15.05.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.245 от 14.05.2014
--------------------------

  * Код задачи 32872. Теперь по полям бин. данных (в т.ч. текстовым) запрещен "выход" в другие таблицы.
    Изменены: FieldViewer, SdbVcl.
    14.05.2014 А.Б.Хах
                                --- * ---

DSP v3.6.244 от 14.05.2014
--------------------------

  * Код задачи: 32547. Служба всплывающих сообщений: Высота окна сообщения
    подгоняется под размеры текста.
    Изменены: MessageService.
    13.05.2014 М.А.Степанов
  * Код задачи 31205. При поиске по тексту добавлена возможность
    использования полнотекстовых индексов для поиска (при наличии их).
    Изменены: Sdbconst, Reqconst.rc, DbMemoSearch, form_MemoFindDialog.xml,
    ReqEditor, ReqUtils, ReqConv.
    12.05.2014 И.В.Ковалев
                                --- * ---
DSP v3.6.243 от 12.05.2014
--------------------------

  - Код задачи 31862. Редактор отчетов: При удалении поля отчета типа подотчет не
    удалялись поля фрагмент подотчета.
    Изменены: rwfdesigner.
    15.05.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.242 от 12.05.2014
--------------------------

  > Код задачи 31482:
   P* удалён интерфейс IFullTextIndex, вместо него добавлена функция
      IFieldSpec.HasFullTextIndex;
   P+ в интерфейс ISBSchemaSpec добавлена функция GetFullTextEngine;
    * поддержана загрузка информации о полнотекстовых индексах из таблицы
      dbd$indices, адаптированы изменения в структуре описателя (сохранена
      возможность работы с описателями старой структуры);
   P* поддержано получение используемой технологии полнотекстового поиска
      из описателя.
    Изменены: DBD2Schema, DBDItems, DBSchemaIntf, htdescr, SDBCONST,
      DBObjectSpecs.
    08.05.2014 А.В.Соса
  - Код задачи: 32840. В запросе по технической информации формы ввода даты и
    времени были неверно расположены: прижаты вправо в длинном поле.
    Изменен: ReqEditor.
    08.05.2014 М.В.Пекшева
  - Код задачи 32847. При дублировании деталей происходило исключение об отсутствии прав, которое
    маскировало исключение о нарушении СУК.
    Изменены: sonarsys, MasterDetailHandlers, RowCommandAccess, SDBVCLUtils, SVCLCommon_cnstr0,
      kbmMWSonarCommonDataSet.
    08.05.2014 А.Б.Хах
                                --- * ---

DSP v3.6.241 от 08.05.2014
--------------------------

  * Код задачи 32850. При построении меню игнорируются элементы, подчиненные элементам,
    не являющимся "Меню", "Подменю Отчеты", "Подменю Запросы"
    Изменены: DeskMenu_build
    08.05.2014 М.А.Зайкин
  - Код задачи 32830. При блочном редактировании в случае, когда
    в форме редактирования не найден видимый элемент для редактируемого
    поля, использовался набор данных из листалки, в результате контроли на
    остальные значения полей, которых в листалке нет приводили к ошибкам
    "Поле ... не найдено".
    Изменены: TableBrowser.
    07.05.2014 И.В.Ковалев
  > Код задачи 32451.
    * Изменён набор пунктов локального меню листалки результатов выбора.
    * Пункт "Убрать из списка" теперь видим только при мультивыборе.
    Изменены: ChoiceForm, LayoutManager, SVCLUtils, SyncLayouts, TableBrowser,
      frame_TableBrowser.xml, frame_TableBrowserLayout.xml,
      menu_SyncBrowser.xml.
    07.05.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.240 от 07.05.2014
--------------------------

  - Код задачи 32766. Техника обхода ошибки с буквой "я", выбранная в задаче 25585, приводила к
    ложному срабатыванию инкр. поиска.
    Изменены: controls.
    07.05.2014 А.Б.Хах
  * Код задачи 32803. При изменении данных в DESKMENU изменён алгоритм проверки
    допустимости подчинения пунктов меню, этот алгоритм срабатывает только
    при наличии в структуре БД таблицы GR_CHREF.
    Изменены: FormH_DeskMenu, DeskMenuDBC.
    07.05.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.239 от 07.05.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  06.05.2014 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 32652. Изменен механизм поддержки транзакций, теперь ведется контроль незавершенных
    транзакций.
    Добавлены: uDBTransactions, uIdleTransactionsStateChecker.
    Изменены: DBDItems, SonarCore, AuthHandlers, DBObjects, MultiChoice, SConnection, SonarDbIntf,
      SVCLCommon_cnstr, OraHintsHandler, SQLAppTriggersCodeSupport, AuthHyTech, AuthHyTechSft,
      SdbVcl, SonarDBkbmMW, kbmMWJavaDBServer, sdboracle.
    А.Б.Хах 06.05.2014

    Адаптация: Из интерфейса ISonarConnection удалены методы BeginTransaction, Commit и Rollback.
      Также удалены процедуры Transaction, Commit и Rollback, которые эти методы вызывали. Вместо
      них следует пользоваться функцией uDBTransactions.Transaction и методами возвращаемого ею
      интерфейса - Commit и Rollback. Напр.:
      Было:
      begin
        ... ... ...
        Transaction(Connection, [snRTSUBROL]);
        try
          ... ... ...
          Commit(Connection);
        except
          RollBack(Connection);
          raise;
        end;
      end;
      Стало:
      var
        trs: IDBTransaction;
      begin
        ... ... ...
        trs := Transaction(Connection, [snRTSUBROL]);
        try
          ... ... ...
          trs.Commit;
        except
          trs.RollBack;
          raise;
        end;
      end;
                                  * * *

  > Группа изменений:
    - Код задачи 30616. При восстановлении раздела из вкладки исчезали "наши"
      кнопки в заголовке окна.
    - Код задачи 30237. Под Windows 8 на формах, содержащих "наши" кнопки в
      заголовке окна, отсутствовал текст в заголовке.
    Изменены: SectionList, SVCLFormH.
    06.05.2014 А.В.Шаров
 P* Код задачи: 32547. Добавлен метод
    TSonarDBkbmMW_Connection.StartAndWaitAsyncServiceFunc,  исправлены ошибки
    в реализации TSonarDBkbmMW_Connection.CheckCompleteServiceFunc.
    Изменены: SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBServer, kbmMWJavaDBService,
      kbmMWJavaDBSrvAsyncLib.
    06.05.2014 М.А.Степанов
                                --- * ---

DSP v3.6.238 от 06.05.2014
--------------------------

  > Код задачи 32030:
    * "Обмолочено" событие TFieldDataLink.OnDataChange
    * При сохранении (по нажатию F2) позиция курсора в текстовом поле сохраняется.
    Изменены: DBCtrls, DBInputCustomBLOB
    06.05.2014 М.А.Зайкин
  * Код задачи 32793. При просмотре выполняется перенос текста в MEMO-поле по границе окна.
    Изменены: DBInputCustomBLOB
    06.05.2014 М.А.Зайкин
 P- Закомментирован неиспользуемый код, вызывающий подсказку компилятора.
    Изменены: SConnection.
    06.05.2014 Д.А.Бондаренко
  - Код задачи 32531. Несанкционированный доступ в дизайнере при
    открытии frame_Event.xml в случае отсутствия доп. файлов.
    Изменены: DBObjects.
    05.05.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.237 от 29.04.2014
--------------------------

  * Код задачи 32678. Для гарантии обновления кешей при подключении к БД DBLink
    теперь пересоздаётся безусловно.
    Изменены: SConnection.
    29.04.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.236 от 29.04.2014
--------------------------

 P* Добавлен метод TEmbeddedJavaDBServer.PrepareConnection.
    Изменены: EmbeddedkbmMWJavaServer
    28.04.2014 М.А.Степанов
  - Код задачи 32695. Синтаксическая ошибка в сообщении "Сеанс работы был
    прекращён   сервером, поскольку программа не могла связаться
    ним более..."
    Перед словом ним не хватает с.
    Изменены: kbmMWClosedSessionHandler.
    25.04.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.235 от 24.04.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  24.04.2014 Д.А.Бондаренко
  ----------------------------------------------------------

 P* Код задачи 31684. Обработчик автоматического закрытия сессий при длительном
      бездействии пользователя вынесен в Common.
    Удалены: form_AppAutoLogoutWarning.xml, form_SessionBlocking.xml.
    Переименованы: AppAutoLogout -> AppLogout.
    Изменены: BackGroundExecutor, AppLogout, SProgress, SVclCommon.dpk,
      RWFReportClient, TimeSyncCheck, kbmMWClosedSessionHandler.
    24.04.2014 Д.А.Бондаренко

    Адаптация: Класс TAppAutoLogoutHandler теперь находится в Common. Адаптация
      заключается в добавлении модуля Common AutoLogoutHandler в секцию uses.
      Модуль AppAutoLogout переименован в AppLogout; при использовании функций
      LogOutProcToLogOutMethod, AppForceLogOut, AppForceCloseWindows,
      SetActiveLongRunningProccess, IsLongRunningProccessActive необходимо
      адаптировать переименование.
                                  * * *

  * RWF_REPORT: Адлаптированы изменения в DSP.
    Изменены: BackGroundExecutor, RWFReportSrv, kbmMWBackGroundExecutor.
    24.04.2014 М.А.Степанов
  - SonarDBkbmMW не компилировался.
    24.04.2014 М.А.Степанов
                                --- * ---

DSP v3.6.234 от 24.04.2014
--------------------------

  * Код задачи: 32465. Изменение данных (т.е. выполнение sql/plsql команд)
    сделано асинхронным. Изменено поведение окна подтверждения отмены запроса,
    теперь оно закрывается если запрос завершился пока оно висит на экране.
    Изменены: BlockerOnAsyncReq, SonarDbIntf, TableBrowser, SdbVcl, kbmMWDBServiceShutdownCheck,
      SonarDBkbmMW, kbmMWSonarServiceConsts, EmbeddedkbmMWJavaServer, kbmMWJavaDBQuery,
        kbmMWJavaDBServer, kbmMWJavaDBService, kbmMWJavaDBSrvAsyncLib, SDBJavaErrorTranslate,
        SonarDBJava, SVCLJavaDB_cnstr, svclkbmmw.dpk, sdboracle.
    kbmMWDatasetAsyncWait преименован в kbmMWAsyncWait и перенесен в SonarVCL/KBMMW/Server/
    Добавлены: kbmMWJavaDBConsts, SVCLJavaDB_cnstr0.
    23.04.2014 М.А.Степанов
  - Код задачи 32644. Исправлена ошибка в сообщении "Неверный аргумент при
    операции с variant": в слове "аргумент" была пропущена н.
    Изменены: SysConst.
    23.04.2014 Д.И.Кобрусев
 P- Код задачи 32621. Функция SFieldIsNull. Для полей типа код
    кодификатора, если значение было равно Null, происходила ошибка
    "Неверный аргумет при операции с variant".
    Изменены: SDBDataSets.
    23.04.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.233 от 23.04.2014
--------------------------

  * Код задачи 32633. Изменен текст сообщения при попытке подчинить запись пункту,
    не являющемуся меню. Сообщение об ошибке не протоколируется.
    Изменены: FormH_DeskMenu
    23.04.2014 М.А.Зайкин
  * Код задачи 32632. Оптимизирован запрос, получающий информацию о полях и их
    индексах из описателя (выполнялся долго после изменений по задаче 32550).
    Изменены: dbd2schema.
    23.04.2014 А.В.Соса
 B> Код задачи 28090:
     * Реализовано фоновое выполнение RWF отчетов.
     * Изменены изображения службы сообщений.
    Изменены: uConnectToSQLite, sonarsys, LogPrint, libutils, requests,
      DBInputCustomBLOB, MessageService, DsLimit, reqfactory, reqlimfactory,
      tchreqfactory, rwfdesigner, SControls, SFormProgressToStatusBar,
      SonarDbIntf, SProgress, SVCLCommon_Registration, texteditor,
      DeskMenu_exec, OraRwfExec, OraUsrReq, SVCLCommonSQL_cnstr, deskmenuexec,
      rwfhtexec, SonarDBkbmMW, kbmMWJavaDBServer, SonarDBJava, sdboracle,
      forms, SVclCommon.dpk, SVCLCommonSQL.dpk, apps.py, svclcommon.py,
      thirdparty.py, form_StdMainForm.xml.
    Удален: ReportUtils.
    Добавлены: RWFReport.dpr, RWFReport.dproj, logo.ico, RWFReport.ini,
      BackGroundExecutor, InitSVCLCommon, MainForm, ProgressHandler, RWFReportSrv,
      RWFReportUtils, InitSVCLCommonSQL, InitKBMMW, kbmMWBackGroundExecutor,
      PrjCnstr, RWFReport, BackGroungExecuteRWF, RWFReport_Const, RWFReportClient,
      RWFReportClientUtils, ReportPDF, LimitByReq, RWFByTemplateExecutor,
      RWFExecutor, TempFileDeleter, OraReadOnlyTransSupport, OraUsrReq_Factory,
      SVCLCommonSQL_Registration, SVCLCommonSQL_utils, superobject,
      rwf_report.py, SuperObject.py, SuperObject_Package.dpk.
    17.03.2014 А.В.Шаров
                                --- * ---

DSP v3.6.232 от 23.04.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  22.04.2014 А.Б.Хах
  ----------------------------------------------------------

  - Код задачи 32181. При блочном редактировании выполнялся поиск первого попавшегося EditFrame'а
    поля на карточке, без учета того, что поле должно быть из основной таблицы, т.е. случайно могло
    попасться поле из TTableDataSource'а на карточке.
    Изменены: DBEditFrame, TableBrowser, SDBVCLUtils.
    22.04.2014 А.Б.Хах

    Адаптация: Изменена процедура FindEditFrameByFieldName - теперь поиск EditFrame осуществляется с
    учетом не только имени поля, но и датасета, на который должен быть настроен EditFrame.
    Практически всегда этот датасет извествен из контекста, поэтому адаптация сводится к передаче
    этого датасета в функцию FindEditFrameByFieldName.
                                  * * *

  - Код задачи 32029. При скроллировании в карточке фото пропадали кнопки из локального меню и тулбара.
    Изменены: DBInputCustomBLOB.
    22.04.2014 А.Б.Хах
  > Код задачи 32462:
    P+ Реализовано использование конструкции SAVEPOINT для работы с
       вложенными транзакциями.
     + Реализовано обнаружение и откат незавершенных транзакций.
    Изменены: SConnection, SdbVcl, SonarDBkbmMW, SonarDBJava, sdboracle,
      SVCLCommonSQL.dpk, svclkbmmw.dpk.
    Добавлены: ActiveTransactionDetector, kbmMWActiveTransactionDetector.
    22.04.2014 А.В.Шаров
  - Код задачи 32602. Устранена ошибка 'Dataset is not in edit mode.' возникающая при попытке сохранить
    карточку записи DeskMenu с измененным кодом меню.
    Изменены: SQLAppTriggersCodeSupport
    22.04.2014 М.А.Зайкин
                                --- * ---

DSP v3.6.231 от 22.04.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  21.04.2014 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 28202. Теперь при дублировании основной записи, связанные записи со слитым вводом,
    дублируются автоматически.
    Добавлены: uPrepareRecordDoubling.
    Изменены: MasterDetailHandlers, SDBVCLUtils.

    Адаптация: В событии app_PrepareRecordDouble добавлен параметр SourceDataSet - набор данных,
    запись которого будет дублироваться, и он может быть не равен DataSet. Поэтому, если выполняется
    анализ значений полей ДО дублирования (до обработчика по умолчанию), то следует смотреть на
    SourceDataSet.
                                  * * *

                                --- * ---

DSP v3.6.230 от 21.04.2014
--------------------------

  - Код задачи 32525. Неправильно создавались обработчики установки первичного
    ключа под HyTech.
    Изменены: SVCLHT_cnstr0.
    21.04.2014 Д.А.Бондаренко
 P* Код задачи 21952. Тип обработчика формируемого пункта меню изменен на TComEventHandler.
    Изменены: uPopupMenuTuner.
    21.04.2014 А.С.Лозовой
  - Код задачи 32512. В процессе выполнении отчёта rwf при выдаче текста
    поля вида "Исключение" в ситуации, когда текст не помещается
    в отведённый размер поля в тексте исключения после каждого перевода строки
    был символ с кодом 3.
    Изменены: rwfdesigner.
    21.04.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.229 от 21.04.2014
--------------------------

 P+ Код задачи 21952. Создан инструмент программного формирования локального меню.
    Добавлен: uPopupMenuTuner.
    Изменены: rwfdesigner.
    21.04.2014 А.С.Лозовой
 P- Код задачи 32201. В функции CreateDBRec не было контроля наличия полей
    таблицы.
    Изменены: SDBUtils.
    21.04.2014 И.В.Ковалев
  > Код задачи 31763:
    - При построении меню игнорируются элементы, подчиненные элементу,
      который не являющется раскрывающимся меню.
    - Запрещено добавлять пункты меню, подчиненные пунктам, не являющимся
      раскрывающимся меню.
    Изменены: DeskMenu_build, FormH_DeskMenu
    19.04.2014 М.А.Зайкин
  - Код задачи 32550. Исправлена ошибка при проверке наличия и уникальности
    индекса по полю, приводившая к тому, что информация о полях, по которым
    построен составной индекс и нет несоставных, не загружалась.
    Изменены: dbd2schema.
    18.04.2014 А.В.Соса
  - Код задачи 32530. Устранена утечка TDBSession при выходе из программы.
    Изменены: SConnection, SdbVcl.
    18.04.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.228 от 18.04.2014
--------------------------

 P* Код задачи 32526. Выполнена переработка поддержки детализации.
    Изменены: StandardViewer, uUserWantsToContinueAnyway, frame_ATViewer.xml.
    17.04.2014 А.С.Лозовой
                                --- * ---

DSP v3.6.227 от 16.04.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  15.04.2014 А.Б.Хах
  ----------------------------------------------------------

 P* Код задачи 31580. Добавлены понятия сессии, DBLink'а, фичи и рассылка событий об их подготовке.
    Изменены: AttrAsObject, KeysWithID, AppAutoLogout, AppTriggers, CompoundKeysCache, DBObjectSpecs,
      photocnstr, SConnection, SonarDbIntf, SVCLCommon_cnstr0, OraConsts, SVCLCommonSQL_cnstr,
      TableBinDataCache, TimeSyncCheck, UpdateAppUtils, AuthHyTechHandlers, SdbVcl, SVCLHT_cnstr0,
      SVclHtUtils, kbmMWClosedSessionHandler, kbmMWDBServiceShutdownCheck, SonarDBkbmMW,
      SVCLkbmMW_cnstr, SVCLkbmMW_cnstr0, kbmMWSonarServiceConsts, kbmMWJavaDBServer, SonarDBJava,
      SVCLJavaDB_cnstr, sdboracle, SVCLOracle_cnstr.

    Адаптация: Обработчики события app_OpenConneciton привести к обработчикам app_PrepareDBSession,
    app_PrepareDBLink, app_PrepareDBSchemaSpecObject либо app_PrepareDBFeature, в зависимости от
    того, что требуется самому обработчику. Подробнее о TDBSession, TDBLink и TDBFeature можно
    посмотреть в SConnection. Прецеденты использования этих событий и классов имеются в уже
    адаптированных местах.
    Также важно не забыть, что теперь при создании соединения (т.е. на уровне проекта) нужно
    указывать явно набор "фич", которые должны работать в этом соединении.
                                  * * *

 P- Код задачи 31580. Т.к. теперь обработчик кеша бин. данных "живет" дольше описателя, то ссылку
    на описатель держать уже нельзя.
    Изменены: TableBinDataCache, SDBUtils.
    15.04.2014 А.Б.Хах
 B- Код задачи: 32481. Если при удалении записи возникала ошибка, то
    вместо этой ошибки на экран показывалось сообщение 'Dataset is not in
    edit mode.'.
    Изменены: SonarDBJava.
    14.04.2014 М.А.Степанов
  + Код задачи 30378. При связывании доставленных не проставляется
    "дата установки связи".
    Изменены: DataSetUtils.
    14.04.2014 В.В.Матвенко
  * Код задачи 32438. В диалоге проектной конфигурации кнопки "Принять" и
    "Сохранить" объединены в одну - "Сохранить".
    Изменены: Config, enterrecord, SVCLCommon_cnstr, kbmMWAuthorization.
    11.04.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.226 от 10.04.2014
--------------------------

  - Код задачи 32426. При подключении неосновного HyTech соединения
    сбрасывались данные авторизации пользователя основного соединения.
    Изменены: SdbVcl.
    10.04.2014 Д.А.Бондаренко
 P* Код задачи 32368. Модуль TransactionCountToStatusBar перенесен в Тор.
    Изменены: StdMainForm, SVclCommon.dpk.
    Удален: TransactionCountToStatusBar.
    09.04.2014 А.В.Шаров
  > Код задачи 31754.
    - Флаг ReadOnly у DBInputCustomBLOB не копировался в сам компонент, отвечающий за вовд бин.
      данных
    - В случае когда список поддерживаемых расширений состоит из одного элемента (напр. для PNG) не
      строился компонент для просмотра изображений.
    Изменены: DBInputCustomBLOB.
    09.04.2014 А.Б.Хах
  - Код задачи 32111. Под HyTech при слиянии таблицы в листалке с той же самой
    таблицей происходило совпадение имён полей.
    Изменены: SDBDataSets.
    08.04.2014 Д.А.Бондаренко
  * Код задачи: 32392. TSonarDBJava_Connection: Транзакции реализованы с использованием
    TSonarConnection.
    Изменены: SConnection, SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBQuery, kbmMWJavaDBServer,
      SonarDBJava.
    08.04.2014  М.А.Степанов
 P+ Код задачи 32259. Добавлена константа nmServiceId.
    Изменены: sdbconst.
    08.04.2014 А.В.Соса
  > Код задачи 32368:
    P- Для устранения возможности появления подвисших транзакций, последнее
       уменьшение счетчика транзакций выполняется после выполнения
       Commit/RollBack на сервере.
     + Добавлен вывод кол-ва активных транзакций в статусную строку.
    Изменены: SConnection, StdMainForm, SVclCommon.dpk.
    Добавлен: TransactionCountToStatusBar.
    07.04.2014 А.В.Шаров
  * Код задачи: 31901. При создании запросов со значениями полей больше
    MaxInteger возникали ошибки.
    Изменены: SDBUtils, XMLUtils, kbmMWGlobal.
    07.04.2014 М.А.Степанов
                                --- * ---

DSP v3.6.225 от 04.04.2014
--------------------------

  * Код задачи 32236. Не выдается корректное сообщение при невохможности
    соединиться с сервером.
    Для избежания ссылок на конкретные приложения в DSP глобальная константа
    stServiceJarFileName заменена на глобальную переменную
    GLOBAL_ServiceJarFileName.
    Изменены: EmbeddedkbmMWJavaServer, SDBJavaErrorTranslate.
    04.04.2014 18:00 В.В.Матвеенко
                                --- * ---

DSP v3.6.224 от 03.04.2014
--------------------------

 P+ Код задачи 32270. Добавлена функция ShowRichMessageBox, позволяющая
    выводить сообщения пользователю в формате RTF.
    Добавлены: frame_RichMessageBox.xml, RichMessageBox.
    Изменены: CommonDSPUtils, SVclCommon.dpk.
    03.04.2014 Д.А.Бондаренко
  - Переименован пакет SuperObject_Package.dpk в Json.dpk
    Переименован: SuperObject_Package.dpk -> Json.dpk
    Изменены: SuperObject.py
    03.04.2014 М.А.Зайкин
                                --- * ---

DSP v3.6.223 от 02.04.2014
--------------------------

 P* Код задачи 32277. Функция IsFieldChanged теперь учитывает состояние
    набора данных. Удалена функция IsFieldChangedEx.
    Изменены: DataSetUtils, DBObjectChoice.
    02.04.2014 Д.И.Кобрусев
                                --- * ---

DSP v3.6.222 от 01.04.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  31.03.2014 А.Б.Хах
  ----------------------------------------------------------

 P> Код задачи 31445.
    + Добавлен SuperObject: пакет для работы с json.
    * TSTBXLabelItem и TSTBXEmptyItem из DeskMenuCommon перенесены в STBX.
    * При добавлении пункта меню в CaptionButton возвращается action, который за
      этот пункт отвечает.

    Добавлены: SuperObject, STBX.
    Изменены: DeskMenuCommon, SVCLFormH, DeskMenu_build, deskmenu.

    Адаптация: Адаптировать перенос TSTBXLabelItem и TSTBXEmptyItem из модуля DeskMenuCommon в STBX.
                                  * * *

  * Код задачи: 32237. Блочный редактор теперь позволяет изменять значения
    полей, отсутствующих в карточке, кроме случаев, когда это запрещено для
    всей листалки, или поле подлито, или оно не является редактируемым.
    Изменены: TableBrowser.
    01.04.2014 А.В.Соса
  - Пакет json.dpk переименован -> SuperObject_Package.dpk
    Переименован: json.dpk -> SuperObject_Package.dpk
    Изменены: SuperObject.py
    01.04.2014 М.А.Зайкин
BP- Код задачи: 32180. TSonarDBJava_DataSet.DoCommitDataChange: При
    возникновении исключения при сохранении изменений набор данных оказывался
    в состоянии не позволяющем окорректировать поля и произвести повторную
    попытку сохранение этой же записи.
    Изменены: SonarDBJava, SonarDBkbmMW, kbmMWSonarCommonDataSet.
    28.03.2014 М.А.Степанов
 B- Код задачи 32221. Проявление: В "Торе" при вводе адмпротокола не
    рассчитывался КБК.
    P: Функция IsSomeFieldChanged теперь учитывает состояние набора
       данных.
    Изменены: DataSetUtils.
    31.03.2014 Д.И.Кобрусев
BP> Код задачи 29920.
    + Добавлена возможность отключения уcтановки заданных технических полей при
      сохранении записи.
    + При операциях изменения данных необходимые атрибуты объекта БД копируются
      в наборы данных его составных частей.
    + После операций с данными у набора данных удаляются атрибуты, специфичные
      для триггеров уровня приложения.
    Добавлены: AttributeUtils.
    Изменены: DSPCommon.dpk, AppTriggers, DBObjects, SVCLCommonConsts,
      UTriggerContainer.
    28.03.2014 Д.А.Бондаренко
 B- Код задачи 32127. Не протоколировалась печать изображений.
    Изменены: DBInputCustomBLOB.
    27.03.2014 С.А.Барсуков
 B* Код задачи 32133. Препросмотр результата выполнения отчета теперь
    показывает отчет масштабируя его по ширине.
    Изменены: PreviewDocForm, texteditor.
    26.03.2014 С.А.Барсуков
BP+ Код задачи 32000. Добавлена функция GetAsLargeInt.
    Изменены: DataSetUtils.
    27.03.2014 Д.И.Кобрусев
 B* Код задачи 31315. В карточке проектной конфигурации, в блоке "Настройка сканирования"
    полю "Качество JPEG" добавлена метка-единица измерения "%"
    Изменены: frame_fconfig.xml
    26.03.2014 М.А.Зайкин
BP* Код задачи 32073. Добавлена функция IsSomeFieldChanged.
    Изменены: DataSetUtils.
    26.03.2014 А.Б.Хах
 B- Код задачи 32018. При наличии в листалке более двух различных слияний с
    одной таблицей неправильно настраивались алиасы.
    Изменены: DBGridLayout.
    25.03.2014 Д.А.Бондаренко
 P* Код задачи: 31796. Добавлена функция GetFieldValueByKey,
    аналог GetFieldByKey но с получением значения в виде TFieldValue.
    Изменены: SDBUtils.
    25.03.2014 М.А.Степанов
  - Код задачи: 31796. В пустых мемо-полях присутствовал пробел, в
    результате чего контроль их заполнености работал некорректно.
    Изменены: SonarDBJava.
    25.03.2014 М.А.Степанов
 B+ Код задачи 29545. Добавлена возможность задавать описание при выполнении
    отчётов напрямую из Хранилища Меню обстановок.
    Изменены: DeskMenu_exec.
    24.03.2014 Д.А.Бондаренко
BP+ Код задачи 31791. Добавлена функция ArrayToDynArray.
    Изменены: SonarSys.
    21.03.2014 Д.И.Кобрусев
 B+ Код задачи 31845. Добавлена возможность протоколирования экспорта изображений.
    21.03.2014 С.А.Барсуков
    Изменены: APPINVIS, DBInputCustomBLOB.
                                --- * ---

DSP v3.6.221 от 21.03.2014
--------------------------

 B+ Код задачи 31918. В статусной строке отображается уровень пользователя.
    Изменен: MainFormStatusBar.
    20.03.2014 17:22 А.В.Шаров
 B- Код задачи 31963. Если при выборе из справочника быстро набрать текст в
    инкрементном поиске и нажать Enter, то условие поиска не успевало примениться
    и выбиралась не та запись.
    Изменены: SDBGrid.
    20.03.2014 С.А.Барсуков
 B+ Код задачи 31597. Добавлена возможность открыть результат выполнения отчета из аудите
    во внешнем просмотрщике (редакторе).
    Изменены: PreviewDocForm, texteditor, DBInputCustomBLOB.
    19.03.2014 С.А.Барсуков
 B- Код задачи 31988. Неверно формировался запрос, не содержащий условий
    Изменен: ReqConv
    19.03.2014 М.А.Зайкин
 B* Код задачи 31917. Изменена комбинация клавиш для дублирования
    записи (Alt+D -> Alt+Shift+D).
    Изменен: frame_TableBrowser.xml.
    18.03.2014 А.В.Шаров
                                --- * ---

DSP v3.6.220 от 18.03.2014
--------------------------

  - Код задачи 31916. Для задокированных разделов листалок не открывался набор данных.
    Изменены: Sections.
    18.03.2014 А.Б.Хах
 P- Исправлена потенциальная ошибка в объекте tWinClipExport.
    Изменены: imp_obj.
    18.03.2014 13:20 С.А.Барсуков
                                --- * ---

DSP v3.6.219 от 18.03.2014
--------------------------

  > Код задачи 31915:
     - Исправлена внесенная предыдущей правкой ошибка с двойным отрицанием:
       отрицание условия выполнялось как до проекции (согласно задаче 28769), так
       и после проекции (как было в исходном конверторе запросов).
    P* Повторно выполнена декомпозиция метода BuildConditions
    Изменены: ReqConv
    18.03.2014 М.А.Зайкин
                                --- * ---

DSP v3.6.218 от 17.03.2014
--------------------------

  - Код задачи 31915. В результате правок (попытки избавиться от лишних скобок), выполненных по задаче 28769,
    неверно расставлялись скобки в sql-запросе, из-за чего нарушалась логика выполнения запроса.
    Изменены: ReqConv
    17.03.2014 М.А.Зайкин
 P* Код задачи 31789. Добавлена возможность при построении датасета для редактирования указать, что
    НЕ надо строить "синхронизатор по умолчанию".
    Изменены: SDBVCLUtils.pas.
    17.03.2014 А.Б.Хах
                                --- * ---

DSP v3.6.217 от 14.03.2014
--------------------------

  > Код задачи 28769:
    P* Выполнен рефакторинг метода tSqlConvertor.BuildConditions.
     * При выполнении tSqlConvertor.BuildConditions не выполняется лишнее оборачивание в скобки.
     * При выполнении tSqlConvertor.BuildConditions не используются отступы.
     - Для условий с проекцией отрицание применяется _ДО_ проекции.
    Изменены: ReqConv
    14.03.2014 М.А.Зайкин

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  12.03.2014 Д.И.Кобрусев
  ----------------------------------------------------------

 P> Код задачи 30253. Контроль уникальности составных ключей:
    * Метод проверки наличия дубликатов по конкретному ключу преобразован
      в процедуру.
    * В процедуру проверки наличия дубликатов по конкретному ключу
      добавлен параметр "проверять вне зависимости от того, изменились ли
      поля, входящие в ключ".
    Изменены и переименованы:
      CompoundError -> CompoundKeysDef,
      CompoundErrorCheck -> CompoundKeysCache,
      CompoundErrorHandle -> CompoundKeysHandleError.
    Изменены: CompoundErrorFactory, SonarDBJava, SVCLCommon_cnstr,
      SVCLHT_cnstr0, SVclCommon.dpk.
    Добавлены: CompoundKeysCheckKey, CompoundKeysCheckKeyCRC.

    Адаптация: Если не будет компилироваться из-за того, что:
    1. не найден один из переименованных модулей - адаптировать
       переименование.
    2. неизвестен один из идентификаторов:
       ev_CompoundControl_CheckKeyDuplicates,
       ev_CompoundControl_GenerateRequest,
       TEvent_CompoundControl_CheckKeyDuplicates,
       TEvent_CompoundControl_GenerateRequest,
       GenerateCompoundKeyFieldCondition
       - подключить модуль CompoundKeysCheckKey.
    3. неизвестен один из идентификаторов:
       ev_CompoundControl_CheckKeyDuplicatesCRC,
       ev_CompoundControl_CalculateCRC,
       TEvent_CompoundControl_CheckKeyDuplicatesCRC,
       TEvent_CompoundControl_CalculateCRC
       - подключить модуль CompoundKeysCheckKeyCRC.
                                  * * *

  * Код задачи: 29929. Отчеты с шаблоном XLS: Добавлена возможность
    создания вложеных уровней, которые нужно задавать в шаблоне в виде:
    #D1#
    #D2#
    #2D#
    #1D#
    Изменены: ReportXLS.
    13.03.2014 М.А.Степанов
 B* Код задачи 31761. Для запросов sql, которые получаются в рамках листалок,
    по-умолчанию подсказка Oracle FIRST_ROWS не используется.
    Изменены: OraHintsHandler, SonarDbIntf.
    07.03.2014 А.В.Шаров
  * Код задачи 31607. Изменен показ результатов выполнения отчета в аудите, при возникновении
    ошибок типа "неизвестная команда форматирования" вместо препросмотра результат показывается
    в редакторе, добавилась возможность экспортировать/копировать/печатать результат выполнения
    отчета из карточки аудита.
    Изменены: DBInputCustomBLOB, texteditor.
    Переименован: form_About.xml во frame_About.xml.
    06.03.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.216 от 04.03.2014
--------------------------

  - Код задачи: 31715. Блокировка сеанса при неактивности пользователя:
    Окно блокировки можно было закрыть через Alt-F4.
    Изменены: AppAutoLogout.
    04.03.2014 М.А.Степанов
 P- Код задачи 31721. При построении запроса с использованием GetSelectStr
    для поля типа Word не удавалось границу указать в качестве параметра.
    В результате вместо фрагмента sql-запроса вида
    O_ADRESS_0.N_doma <> :P_$_2 получался фрагмент с конкретным указанием
    значения, например
    O_ADRESS_0.N_doma <> 45.
    Изменены: Requests.
    04.03.2014 И.В.Ковалев
  * Код задачи 24690. Реализовать детализацию в тор.
    Добавлены: uUserWantsToContinueAnyway.
    03.03.2014 В.В.Матвеенко
  * Код задачи 24690. Реализовать детализацию в тор.
    Изменены: OraRwfExec, StandardViewer, ATBinHex,
    frame_ATViewer.xml.
    03.03.2014 В.В.Матвеенко
  - Код задачи 31691. Иногда не работало сканирование.
    Изменены: Scanners.
    03.03.2014 С.А.Барсуков
  - Код задачи 31696. Не показывалась одна строчка в сообщении о блокировании сеанса.
    Изменены: AppAutoLogout, form_SessionBlocking.
    28.02.2014 А.Б.Хах
 P* Код задачи 31259. Упорядочена структура photocnstr:
    GetPhotoSubInfo и GetPhotoTabInfo объединены в GetPhotoInfoForTable,
    PhotoInfoBySub и PhotoInfoByTab объединены в PhotoInfoByTable, которая выведена из интерфейса,
    tPhotoSubInfo = record заменена на TPhotoInfoItem = class(TSBaseClass),
    TDBMSPhotoInfo переведен на работу с DMap.
    Изменены: photocnstr, rwfdesigner, RWFExec.
    Перемещены: phtconst.
    28.02.2014 А.C.Лозовой
  * Код задачи 28111. При сохранении запроса открывает каталог запуска
    тор_адм-а, а не каталог forms.
    Исправлено название константы S_REK_FILTER на ST_REQ_FILTER.
    28.02.2014 В.В.Матвеенко
  - Код задачи 31676. Редактор отчетов: не всегда верно отображались поля
    типа "Итог".
    Изменены: rwdata.
    28.02.2014 С.А.Барсуков
                                --- * ---

DSP v3.6.215 от 27.02.2014
--------------------------

 B- Код задачи 31628. При скроллировании в карточке для нетекстовых бин. данных происходило EAV.
    Изменены: DBInputCustomBLOB.
    25.02.2014 А.Б.Хах
                                --- * ---

DSP v3.6.214 от 25.02.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  18.02.2014 А.Б.Хах
  ----------------------------------------------------------

 B* Код задачи 31489. Теперь при бездействии пользователя, вместо выхода выполняется блокирование
    сеанса.
    Добавлены: form_SessionBlocking.xml.
    Изменены: cryptapi, AppAutoLogout, AuthCommon, AuthConst, CommonAuthorization,
      form_EnterRecord.xml, form_textlink.xml, frame_MainMenu.xml, Login, StdMainForm, AuthHyTech,
      dm_HTMiscMenu.xml, HTMenus, OldAuthHyTech, kbmMWAuthorization, SonarDBkbmMW, SonarDBJava,
      OracleOldAuthorization, SVCLOracle_cnstr, sonarvcl.py,
    Удалены: kbmMWSonarLoginDialog, каталог SonarVCL/SVcl.

    Адаптация: Удален пакет svcl, адаптировать.
    Ctrl+I теперь выполняется на уровне гл. формы приложения в DSP, в проектах нужно это действие
    удалить. Если есть какая-то специфика, то перекрыть в авторизаторе.
                                  * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  07.02.2014 А.С.Лозовой
  ----------------------------------------------------------

  > Код задачи 31376.
  P* TMemoryDataSet, умеющий настраивать свои поля и FieldDef'ы в соответствие с заданным
     ITableSpec переименован в TBaseMemoryDataSet.
  P+ Добавлен TMemoryDataSet: наследник TBaseMemoryDataSet, владеющий TTableSpec
     как альтернатива TMemoryDataSource (published свойства аналогичны).
     Изменены: MemoryDataSet, RecordControl, SVCLCommon_cnstr0, SVCLCommon_Registration,
     TableBrowser, FormH_DskStrg, SonarkbmMWJavaSrvPrjConfig,
     frame_ArchivateLogFile.xml, frame_fconfig.xml, frmRelLimit.xml, frame_SelectionReportAndTemplateFiles.xml,
     frame_SQLConfig.xml, frame_kbmmwconfig.xml
     Удален: MemoryDataSource.
     07.02.2014 А.С.Лозовой

    Адаптация: в связи с заменой TMemoryDataSource на TMemoryDataSet необходимо вместо TMemoryDataSource
    использовать TDataSource, а поскольку ранее при загрузке TMemoryDataSource MemoryDataSet строился
    автоматически, теперь при переходе на стандартный TDataSource в формах необходимо явно прописывать
    использование TMemoryDataSet
      - в сохраненных формах (.xml)
        1. заменить TMemoryDataSource на TDataSource,
        2. за строкой, где производилась замена (п.1), добавить строки:
              <property name="DataSet" type="identifier" value="MemoryDataSet"/>
            </object>
            <object name="MemoryDataSet" class="TMemoryDataSet">

      - в модулях заменить TMemoryDataSource на TDataSource.
                                  * * *

 B- Код задачи 31625. Протоколирование экспорта в RTF результата выполнения
    отчета: не протоколировалось содержимое.
    Изменены: PreviewDocForm.
    25.02.2014 С.А.Барсуков
 B- Код задачи 31618. По Ctrl+C протоколировалось два экспорта.
    Изменены: ATViewer.
    24.02.2014 С.А.Барсуков
 B+ Код задачи 31600. Протоколирование копирования в буфер обмена из карточки события аудита,
    соответствующего отчету с шаблонами.
    Изменены: imp_obj, DBInputCustomBLOB, ATBinHex, ATViewer.
    24.02.2014 С.А.Барсуков
 B+ Код задачи 28566. Протоколирование копирования в буфер обмена из редактора
    результата выполнения отчета.
    Изменены: imp_obj, texteditor, ecExports, ecFTextDlg.dfm.
    24.02.2014 С.А.Барсуков
BP* Код задачи 28566. Добавлена возможность протоколирование экспорта из бинарных данных.
    Изменены: imp_obj, DBInputCustomBLOB.pas.
    19.02.2014 С.А.Барсуков
 B+ Код задачи 28566. Протоколирование экспорта в RTF результата выполнения
    отчета.
    Изменены: PreviewDocForm, texteditor.
    19.02.2014 С.А.Барсуков
BP* Код задачи 28566. Предварительная реализация протоколирования экспорта.
    Изменены: imp_obj, ReportUtils, texteditor.
    19.02.2014 С.А.Барсуков
 P* Код задачи 31599. Проведена адаптация 31599 к основной ветви.
    Изменены: SonarDBJava.
    24.02.2014 А.Б.Хах
 B- Код задачи 31609. Не выполнялось перестроение контрола для бин. данных при смене записи, если
    поменялись настройки содержимого, но не поменялся тип содержимого.
    Изменены: DBInputCustomBLOB.
    24.02.2014 А.Б.Хах
 B- Код задачи 31599. При добавлении записи выполнялось открытие полного набора данных, а если этот
    набор данных - объект БД, то этот процесс мог занимать длительное время.
    Изменены: SonarDBJava.
    21.02.2014 А.Б.Хах
 B* Код задачи 31590. Добавлено автоматическое закрытие сеанса, если время с момента блокирования
    сеанса превысило заданное.
    Изменены: AppAutoLogout.
    21.02.2014 А.Б.Хах
 B- Код задачи 31589. В случае, если блокирование сеанса происходит в момент, когда приложение не
    активно, то окно с сообщением о блокировании оказывалось под главным окном приложения.
    Изменены:
    20.02.2014 А.Б.Хах
 B* Код задачи 31489. Изменен внешний вид окна блокирования сеанса.
    Изменены: form_SessionBlocking.xml
    19.02.2014 А.Б.Хах
  * Код задачи 28111. При сохранении запроса открывает каталог запуска
    тор_адм-а, а не каталог forms
    Изменены: ReqDesigner.
    21.02.2014 В.В.Матвеенко
 P- Код задачи 31489. Для двузвенного соединения адаптированы изменения отработки Ctrl+I.
    Изменены: SdbOracle.
    21.02.2014 А.С.Лозовой
  * Код задачи 27248. Ошибка в предустановке кода кодификатора.
    Переменные sNewCodeValue, sOwnerCodeValue уже не используются после
    предыдущих изменений 19.02.2014 10:00.
    Изменены: CodeIncrementHandler.
    20.02.2014 В.В.Матвеенко
  * Код задачи 27248. Ошибка в предустановке кода кодификатора.
    В hnd_SetNewCodeValue убрана проверка на уровень > 0 для
    подчиненного.
    Изменены: CodeIncrementHandler.
    19.02.2014 В.В.Матвеенко
  * Код задачи 27248. Ошибка в предустановке кода кодификатора.
    Изменены: CodeIncrementHandler.
    19.02.2014 В.В.Матвеенко
  - Код задачи 29063. Ошибка ORA-00932 при выполнении запроса на сравнение
    полей на равенство, в котором одно из полей типа байт, а второе поле
    другого типа.
    Изменены: ReqConv.
    19.02.2014 И.В.Ковалев
  - Код задачи 30107. Неверная отметка об использовании слияния
    в форме визуализации списка полей листалки если выбрано поле,
    для которого при усечении имени справа образуется
    имя другого поля (например КодМенюОбс и КодМеню, при выборе
    КодМенюОбс неверно указывалось использование слияния для
    КодМеню)
    Изменены: DBGridLayout
    18.02.2014 И.В.Ковалев
  - Код задачи 27111. Ошибка "Запрос не может быть использован для
    другой таблицы" при загрузке запроса в редакторе запросов на выборку
    условия "повторяется".
    Изменены: ReqDesigner.
    17.02.2014 И.В.Ковалев
  * Код задачи 27415. При сохранении обстановки в файл, автоматически подставляет
    в название файла полный путь к файлу.
    Изменены: DeskTop.
    13.02.2014 В.В.Матвеенко
  - Код задачи 30097. Исполнитель отчетов: если из узла не используется ни одно поле,
    то возникала ошибка 'Список полей для набора данных пуст.'.
    Изменены: OraRwfExec.
    13.02.2014 С.А.Барсуков
  * Код задачи 27510. Изменить сообщение о том, что нет соединения с сервером приложений.
    Изменены: SonarDBkbmMW, EmbeddedkbmMWJavaServer, kbmMWJavaDBService,
    SDBJavaErrorTranslate.
    11.02.2014 В.В.Матвеенко
 P* Код задачи 29739. Убрана проверка видимости инкр. поиска при сборе предустановок из
    инкрементного поиска. А учитывая что у нас инкремент теперь виден всегда, то эта проверка
    отрабатывала вхолостую.
    Изменены: TableBrowser.
    07.02.2014 А.Б.Хах
                                --- * ---

DSP v3.6.213 от 07.02.2014
--------------------------

  - Код задачи 31465. Не выполнялась обратная синхронизация для простой ситуации (когда связь таблиц
    по физ. номеру).
    Изменены: ScrollingSynchronizer.
    07.02.2014 А.Б.Хах
 B- В Веге подотчеты отчетов с шаблонами искались в неверном каталоге.
    Изменены: ReportUtils.
    06.02.2014 С.А.Барсуков
  - Код задачи 31404. Редактор отчетов: неверно редактировались поля типа
    Исключение.
    Изменены: rwfdesigner.
    06.02.2014 С.А.Барсуков
BP- Код задачи 31388. Если создание объекта поддержки бинарных данных
    происходило в деструкторе обработчика реестра (LAYOUTS) в контексте
    закрытия подключения к БД, могла происходить ошибка вида "файл не найден".
    Изменены: bindata, DBReg.
    05.02.2014 Д.А.Бондаренко
BP* Код задачи 31373. Меню экспорта теперь явно освобождается при закрытии.
    Изменены: imp_obj.
    04.02.2014 Д.А.Бондаренко
 B- Код задачи 31373. При построении меню экспорта могла возникать утечка
    памяти.
    Изменены: imp_obj.
    03.02.2014 Д.А.Бондаренко
 B- Код задачи 31374. Неверно работал инкрементный поиск строки "КОН" в таблице
    "Классификатор адресных объектов" (ADDROBJ) - в результат попадали записи
    начинающиеся на "КОМ".
    Изменены: httableindex.
    03.02.2014 С.А.Барсуков
  * Код задачи 31258. Изменена формулировка сообщения при выходе за пределы
    допустимого диапазона возможных значений последовательности.
    Изменены: SDBOraErrorTranslate.
    31.01.2014 В.В.Матвеенко

DSP v3.6.212 от 31.01.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  29.01.2014 А.С.Лозовой
  ----------------------------------------------------------

  > Код задачи 31259.
  P* Модуль FieldSpecFactory перенесен из SonarVCL/Common в Common/DB.
  P* Фабрика TTableSpecFactory и процедуры SaveTableSpec, LoadTableSpec выделены
     из модуля MemoryDataSource в модуль uTableSpecFactory.
     Добавлен: uTableSpecFactory.
     Перенесен: FieldSpecFactory.
     Изменены: Common_Registration, DBObjectPartSpecs, MemoryDataSource, SVCLCommon_Registration,
     TableDataSource.
     29.01.2014 А.С.Лозовой

    Адаптация: Для использования TTableSpecFactory, SaveTableSpec или LoadTableSpec
    добвить в uses uTableSpecFactory.
                                  * * *

  - Код задачи 31342. Неверно извлекался очередной набор уровней (в случае отсутсвия набора уровней
    пропускался следующий за отсутствующим набор).
    Изменены: ReportXLS.
    31.01.2014 А.Б.Хах
  - Код задачи 31363. Параметр с умолчательным значением в процедуре настройки
    меню приводил к неправильному построению меню.
    Изменены: StdMainForm.
    30.01.2014 Д.А.Бондаренко
  - Код задачи 31344. При клонировании компонентов загрузка выполнялась НЕ изолированная, из-за чего
    клонирование выполнялось неверно, если выполнять клонирование в контексте загрузки (напр. в
    контексте загрузки формы).
    Изменены: ComponentUtils.
    30.01.2014 А.Б.Хах
  - Код задачи 31326. При закрытии окна выбора по Enter'у в верхней листалке, выполнялась валидация
    текущей записи в нижней листалке и если валидация не проходила, то окно не закрывалось.
    Изменены: ChoiceForm.
    24.01.2014 А.Б.Хах
  - Код задачи 31208. В пустую листалку нельзя было добавить запись.
    Изменены: ScrollingSynchronizer.
    24.01.2014 А.Б.Хах
BP+ Код задачи 31059. Добавлено свойство
    TSonarDB_Connection.NextTransactionTimeout, позволяющее задать таймаут
    следующей стартуемой транзакции.
    Изменены: SdbVcl.
    20.01.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.211 от 23.01.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  22.01.2014 С.А.Барсуков
  ----------------------------------------------------------

  * Код задачи 30097. Исполнитель отчетов: оптимизация исполнения отчетов -
    запрос только нужных полей.
    Изменены: RWFExec, OraRwfExec, ReqConv, functions.xml.
    22.01.2014 С.А.Барсуков

  Адаптация: Изменено поведение функции Питона nodevalue в функциях отчета.
  Теперь nodevalue возвращает объект у которого потом можно запросить значение поля в узле.
  Т.е. теперь нужно делать так:
  вначале функций отчета получить объект, а потом где нужно получать значения поля из узла его
  использовать.

       n = nodevalue('NODE', 'Имя поля')

       def getdata():
         return n.value;

                                  * * *

 P* Код задачи 31204. Добавлено условие запроса slLuceneFullTextSearch,
    поддержана трансляция этого условия в sql.
    Изменены: sdbconst, reqconst.inc, reqconst.rc,
      editreqh, reqeditor, requtils, reqconv, htsqlcustom.
    22.01.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.210 от 21.01.2014
--------------------------

 P* Код задачи 31286. При сохранении карточки с TTableDataSource могла быть сохранена пустая фабрика
    TTableSpecFactory.
    21.01.2014 А.Б.Хах
  * Код задачи 31245. Если при попытке открыть набор данных текстового окна происходила ошибку, то
    он оставался закрытым и открыть его уже было нельзя. Теперь при обновлении ведущей листалки всё
    будет восстановлено.
    Изменены: MasterDetailHandlers, TextBox, uIdleOpenTable.
    21.01.2014 А.Б.Хах
  * Код задачи: 31207. После повторного входа в БД, переставала работать
    обработка исключения о закрытии сессии сервером.
    Изменены: AppAutoLogout, TimeSyncCheck, kbmMWClosedSessionHandler.
    20.01.2014 М.А.Степанов
  * Код задачи: 30715. Если при выполнении запроса происходит исключение
    'Истек период максимального времени выполнения запроса....',
    (java.net.SocketTimeoutException: Read timed out), то производится
    попытка отменить выполнение запроса на сервере.
    Изменены: kbmMWJavaDBService, SDBJavaErrorTranslate.
    20.01.2014 М.А.Степанов
  * Код задачи 26292. При построении автоматической карточки не срабатывал алгоритм изменения цвета
    метки обязательных полей.
    Изменены: DBEditFrame, SControls.
    20.01.2014 А.Б.Хах
  - Код задачи 31242. Если в файле данных не указан лист, куда следует выгружать данные, то
    происходила EAV - исправлено, теперь выдается соотвествующее исключение.
    Изменены: ReportXLS.
    17.01.2014 А.Б.Хах
 P* Исправлен комментарий к функции OwnerCode.
    Изменены: Code.
    17.01.2014 А.Б.Хах
                                --- * ---

DSP v3.6.209 от 16.01.2014
--------------------------

 P- В случае когда функция IsOneKeyForChange возвращает False, в качестве имени поля возвращалось
    последнее проверенное имя, тогда как должна была возвращаться пустая строка.
    Изменены: SDBVCLUtils.
    15.01.2014 А.Б.Хах
 P* Код задачи 31175. Добавлена загрузка сведений о
    полнотекстовых индексах из метаописателя.
    Изменены: DBD2Schema, DbSchemaIntf, htdescr.
    15.01.2014 И.В.Ковалев
                                --- * ---

DSP v3.6.208 от 15.01.2014
--------------------------

  > Код задачи 31017.
   P* Метод ShowModalForm обернут в событие TSection.ev_ShowModalForm.
   P* Открытие набора данных раздела листалки выполняется непосредственно перед показом формы, а не
      при создании формы.
    Изменены: Sections, SectionList.
    15.01.2014 А.Б.Хах
                                --- * ---

DSP v3.6.207 от 14.01.2014
--------------------------

 P+ Код задачи 31142. Добавлена возможность отключения поддержки фото.
    Изменены: photocnstr, SVCLCommonConsts.
    14.01.2014 Д.А.Бондаренко
                                --- * ---

DSP v3.6.206 от 13.01.2014
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  10.01.2014 А.Б.Хах
  ----------------------------------------------------------

  > Код задачи 28090:
     P* Заполнение записи с параметрами отчета RWF выполняется через рассылку
        события ev_EnterUserParams.
     P* Функция IsAnyEditableField перенесена из SVCLCommon_cnstr и EnterRecord
        в DBUtils.
    Изменены: dbutils, enterrecord, ReportUtils, SVCLCommon_cnstr.
    13.01.2014 А.В.Шаров
  * Код задачи 24583. Поддержана синхронизация по ключу и внесены изменения в механизм построения
    редактируемого датасета.
    Изменены: uVariantToString, DataSetSynchronizer, DBObjects, ScrollingSynchronizer, SDBVCLUtils,
      SonarDBIntf, UsersPlugin, SonarDBkbmMW, AttrsToStr, kbmMWSonarServiceConsts, kbmMWJavaDBServer,
      SonarDBJava.
    10.01.2014 А.Б.Хах

    Адаптация: Адаптировать переименования VariantToString -> VariantValueToString, StringToVariant ->
      StringToVariantValue из модуля uVariantToString и IScrollSynchronize.Synchronize -> SyncByRecId.
                                  * * *

 P* CreateRecordBySubSchema: если нужное поле не найдено то в сообщение об
    ошибке указывается какое поле и из какой подсхемы.
    Изменены: DBUtils.
    09.01.2014 М.А.Степанов
  - Код задачи 30595. Несанкционированный доступ при протоколировании исключения.
    Изменены: ExtraDebugInfo, Jdbinit.
    30.12.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.205 от 27.12.2013
--------------------------

  - Код задачи: 30775. Некорректно работало предупреждение пользователей о
    начале регламентных работ на сервере, в результате сессии
    пользователей закрывались слишком быстро.
    P: Некорректно конвертировалась дата/время из variant, в java
       отправлялось значение меньше чем нужно.
    Изменены: kbmMWCustomJavaService.
    26.12.2013 М.А.Степанов
                                --- * ---

DSP v3.6.204 от 26.12.2013
--------------------------

  + Код задачи 29628. Из DSP 2.6 адаптированы алгоритмы сжатия БД и контроля
    описателей.
    Изменены: REGLAM.PAS, DeskTop, StdMainForm, dm_ReglamentMenu.xml, HTMenus.
    25.12.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.203 от 23.12.2013
--------------------------

  > Код задачи 30440:
    P* В функции GetNetAddrDir было задано неверное условие проверки типа поля
       "Сетевой адрес". В результате не генерировалось значение уникального поля
       на основе сетевого адреса.
     + Подключено протоколирование исключений, взведенных при выполнении
       методов COM-объекта.
    Изменены: CommonDBUtils, ComObj, htSQLOLE.
    Добалвен: ComObj.pas.orig.
    18.12.2013 А.В.Шаров
                                --- * ---

DSP v3.6.202 от 18.12.2013
--------------------------

 P- Код задачи 30141. TSonarDB_Table.AddRecByRecId: Если попытаться
    добавить в транзакции  запись, которая была добавлена в таблицу в этой
    же транзакции, запись не добавлялась, и после этого метод IsEmpty
    дкатасета возвращал True.
    Изменены: SdbVcl.
    17.12.2013 Д.И.Кобрусев
  * Код задачи 30452. При недоступной кнопке Отмена форма прогресса могла
    зависать.
    Изменены: SProgress.
    16.12.2013 Д.А.Бондаренко
  * Код задачи 30446. При выборе значения из справочника происходило переключение
    текущей вкладки в карточке.
    Изменены: ChoiceForm, ATViewer.
    16.12.2013 А.Б.Хах
                                --- * ---

DSP v3.6.201 от 13.12.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  13.12.2013 А.В.Шаров
  ----------------------------------------------------------

  > Код задачи 30440.
     + Добавлена возможность задать рабочий каталог.
     * Лог-файл создается при инициализации источника данных. Если задан
       параметр WorkDirectory - то по указанному пути. Если нет - то в каталоге
       приложения или, если там не удалось создать(например, нет прав доступа),
       то в каталоге %TEMP%.
     - Если в параметре "Размещение" указывали путь без "\" в конце строки, то
       в свойство соединения DBDName передавалось некорректное значение.
    P- Обработчик получения контейнера рабочих столов был установлен на событие
       app_CheckNetConfigure.
    Изменены: SDBCONST, sonarsys, LogPrint, About, htSQLOLE, htSQLProvider,
              lib.py, DSPCommon.dpk.
    Добавлен: NoCreateLogFileOnInitialization.rc.
    Удален: CommonUtils.
    13.12.2013 А.В.Шаров

    Адаптация: Функция IsResourceFound перенесена из CommonUtils в SonarSys.
      Модуль CommonUtils удален.
                                  * * *

 P> Код задачи 30431.
    * При ручной инициализации добавления записи кнопка "Сохранить" оставалась
      неактивной.
    * Процедура ValidatePresets вынесена в интерфейсную часть.
    Изменены: form_DataChange, SDBVCLUtils.
    13.12.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.200 от 13.12.2013
--------------------------

  > Код задачи 7072.
   P- Флаги для целых типов не восстанавливались из фабрики.
   P+ Добавлена функция SetAsFloat.
    Изменены: DataSetUtils, FieldSpecFactory.
    12.12.2013 А.Б.Хах
  * Код задачи 27228. DisableControls/EnableControls при чтении записей заменены
    на SetTempState/RestoreState. Подробности  http://win2012.sonardomain.local:8080/Plone/dokumenty/disablecontrols-enablecontrols-i-ego-vliyanie-na-master-detail.
    Изменены: kbmMWCustomDataset, SonarDBkbmMW.
    12.12.2013 А.Б.Хах
                                --- * ---

DSP v3.6.199 от 12.12.2013
--------------------------

 B> Код задачи 30276.
   P* GetAttrAsObject и SetAttrAsObject вынесены в отдельный модуль AttrAsObject.
   P* Убрано использование WordCount, ExtractWord и т.п.
   P+ Добавлена функция IsFieldsEqual.
    Добавлены: AttrAsObject.
    Изменены: DBObjectSpecs, DataSetUtils.
    10.12.2013 А.Б.Хах
 B* Код задачи 30372. Теперь если нет права просмотра на таблицу, то поле выбора из
    справочника не прячется, а прячется только кнопка выхода в справочник (т.е.
    пропадает сама возможность выйти в справочник).
    Изменены: DBObjectChoice, DBObjectChoiceController.
    10.12.2013 А.Б.Хах
 B- Код задачи 30342. Несанкционированный доступ при показе дубликатов по составному
    ключу при редактировании записи в таблице ADM_KBK (Тор).
    Изменены: forms.
    09.12.2013 С.А.Барсуков
 B- Код задачи 30394. Несанкционированный доступ при проверке СУК.
    Изменены: CompoundErrorCheck.
    05.12.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.198 от 05.12.2013
--------------------------

 B- Код задачи 30244. Редактор отчетов: неверно редактировались поля типа
    Фото.
    Изменены: PhtConst photocnstr, rwfdesigner, RwfExec, sonardb.dpk,
    SVclCommon.dpk.
    04.12.2013 С.А.Барсуков
 B- Код задачи 30374. Контроль составных ключей. Если для одной таблицы
    определены 2 СУКа, один - в программе, другой - в БД, контролировался
    только СУК, определённый в программе.
    Изменены: CompoundError, CompoundErrorCheck.
    04.12.2013 Д.И.Кобрусев
 B- Код задачи 30365. Неверно открывалась обстановка для пользователя ненулевого уровня.
    Изменены: CommonAuthorization
    03.12.2013 М.А.Зайкин
 B- Код задачи 30370. Ошибка "ORA-00936: отсутствует выражение" при открытии
    таблицы '"Реестр задержанных' в случае отсутствия поля КодГИБДД в таблице
    SLOVO3. Вместо этой ошибки будет ошибка о том, что поле не найдено в
    таблице.
    Изменены: ReqConv.
    03.12.2013 И.В.Ковалев
                                --- * ---

DSP v3.6.197 от 03.12.2013
--------------------------

 B- Код задачи 30357. В случае значения ключа = Null происходила ошибка -
    "Значение variant типа (Null) нельзя сконвертировать в тип (String)."
    Изменены: TableBinDataCache.
    02.12.2013 А.Б.Хах
BP* При вызове Build, если не задано имя для регистрации, то производится
    регистрация с использованием имени проекта.
    Изменены: dsp.py.
    29.11.2013 А.Б.Хах
                                --- * ---

DSP v3.6.196 от 28.11.2013
--------------------------

 P* Код задачи 25309. Добавлена функция GetSelectStrWithLowAndHigh - создание
    запроса с двумя строковыми границами.
    Изменены: SDBUtils.
    28.11.2013 А.Б.Хах
                                --- * ---

DSP v3.6.195 от 28.11.2013
--------------------------

  * Код задачи 30340. В фильтр по умолчанию для диалога загрузки файла в
    бинарное поле добавлен вариант "Все файлы (*.*)".
    Изменены: DBInputCustomBLOB.
    27.11.2013 Д.А.Бондаренко
  * Код задачи 30283. Для функции выполнения отчета из хранилища добавлено
    взведение исключения в случае если записи нет в хранилище, либо если бин.
    данные в записи пусты.
    Изменены: DeskMenu_exec, TableBinDataCache.
    27.11.2013 А.Б.Хах
                                --- * ---

DSP v3.6.194 от 25.11.2013
--------------------------

  - Код задачи 30251. При дизайнировании листалки возникала ошибка вида
    "внутренняя ошибка программы" и утечка памяти.
    Изменены: DBGridColumnsLayout, TableBrowser.
    25.11.2013 Д.А.Бондаренко
  + Код задачи 30046. Добавлен флаг ForceMasterPost.
    Изменены: VirtualFields.
    25.11.2013 А.Б.Хах
 > Код задачи: 28113.
   * Убрано автоматическое переоткрытие сессии при получении от сервера
     сообщения о том что сессия закрыта, теперь программа периодически во
     время работы сообщает серверу о своей активности, так что закрытие
     сессии сервером из-за неактивности клиентского приложения происходит
     только в ситуации когда приложение не могло связаться с сервером (в
     случае проблем с сетью, или с компьютером), больше 15 мин. И теперь
     такое закрытие обрабатывается как ошибка: операция отменяется,
     выдается сообщение на экран, автоматически закрываются все окна, и
     предлагается заново ввести логин и пароль.
  P* Для безопасности после успешного соединения пароль пользователя больше
     не хранится в памяти.
   Изменены: AppAutoLogout, UpdateAppUtils, kbmMWDatasetAsyncWait,
     kbmMWDBServiceShutdownCheck, SonarDBkbmMW, kbmMWSonarCommonDataSet,
     kbmMWSonarServiceConsts, kbmMWJavaDBServer, kbmMWJavaDBService,
     SonarDBJava, svclkbmmw.dpk.
   Добавлены: kbmMWClosedSessionHandler, EmbeddedkbmMWJavaServer.
   22.11.2013 М.А.Степанов
                                --- * ---

DSP v3.6.193 от 21.11.2013
--------------------------

  * Код задачи 30233. Добавлен плагин к upgrade_db.py для
    заполнения поля TextData в таблицах PERS_USER, DOC_USER.
    Изменены:  upgrade_db.py
    Добавлены: setup_pers_doc_usr_comment_plugin.py
    21.11.2013 И.В.Ковалев
                                --- * ---

DSP v3.6.192 от 20.11.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  19.11.2013 Д.А.Бондаренко
  ----------------------------------------------------------

 P+ Код задачи 30229. Добавлена функция, возвращающая текст предупреждения о
    превышении в выборке количества записей, доступных для просмотра.
    Изменены: SVCLCommonConsts, OraRwfExec.
    19.11.2013 А.В.Шаров
 P+ Код задачи 29853. Добавлена возможность загрузки представления листалки
    таблицы по имени представления.
    Изменены: LayoutManager, TableBrowser, TableBrowserForms.
    19.11.2013 Д.А.Бондаренко

    Адаптация: функция GetStoredLayout в модуле LayoutManager теперь принимает
      строковый параметр (имя загружаемого представления), а не логический, как
      раньше. При вызове нужно подавать stLayoutChoice вместо True и
      stLayoutView вместо False.
                                  * * *

  - Код задачи 30244. Исполнитель отчетов: при определенных условиях вместо
    пустого значения BLOB поля печаталось предыдущее значение из данного узла.
    Изменены: OraRwfExec.
    18.11.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.191 от 19.11.2013
--------------------------

 P* Код задачи 30097. Убрано использование GetDataBaseConnection.
    Изменены: OraRwfExec.
    18.11.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.190 от 15.11.2013
--------------------------

  - Код задачи 30200. Ошибка при выполнении запроса "в группе по" либо
    неправильная работа если в дереве узлов ситуация отличается от следующей:
    каждый новый узел отходит от последнего узла.
    Изменены: ReqConv.
    15.11.2013 И.В.Ковалев
                                --- * ---

DSP v3.6.189 от 15.11.2013
--------------------------

  * Код задачи 30196. Обновлены модули библиотеки ImageEn до версии 5.0.0_14157.
    Изменены: модули ImageEn, PKIECtrl.dpk.
    Удалены jpegfilt.pas.orig, readme.rtf.
    14.11.2013 А.В.Соса
                                --- * ---

DSP v3.6.188 от 14.11.2013
--------------------------

 P* Объект TAbstractToolBar перенесен в интерфейсную секцию.
    Изменены: DBInputCustomBLOB.
    14.11.2013 С.А.Барсуков
  - Код задачи 30177. Неверно задавался формат при переводе вещ. числа в строку:
    задавался формат вида 999.99, что в случае вещественного числа с нулевой
    целой частью возвращало строку с пустой целой частью (напр. для 0.0
    результат был .00), т.е. нуля в целой части могло не быть. Теперь задается
    формат вида 990.99, что гарантирует наличие одного нуля в целой части всегда.
    Изменены: ReqConv.
    14.11.2013 А.Б.Хах
                                --- * ---

DSP v3.6.187 от 14.11.2013
--------------------------

  - Данные для распознования искались не в том каталоге.
    Добавлены: TesseractOCR.
    14.11.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.186 от 13.11.2013
--------------------------

  * Код задачи 29561. Изменено поведение поиска: если ничего найти не удалось,
    то текущая позиция поиска не сбрасывается и следующий поиск будет произведен
    от неё.
    Изменены: DBInputCustomBLOB, ATStreamSearch.
    13.11.2013 А.Б.Хах
  * Код задачи 30185. Добавлен пакет для работы с библиотекой Tesseract.
    Необходимы библиотеки liblept168.dll, libtesseract303.dll и каталог
    tessdata рядом с exe-файлом.
    Добавлены: TESSDLL, TesseractOCR.
    13.11.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.185 от 13.11.2013
--------------------------

  * Код задачи: 29205. Если запрос на получение времени с сервера
    выполняется слишком долго то его результаты не учитываются.
    Изменены: TimeSyncCheck.
    13.11.2013 М.А.Степанов
                                --- * ---

DSP v3.6.184 от 11.11.2013
--------------------------

  * Код задачи 30043. Теперь шрифт в полях ввода инкр. поиска жирный, а фон -
    светло-серый.
    Изменены: SDBGrid.
    11.11.2013 А.Б.Хах
                                --- * ---

DSP v3.6.183 от 10.11.2013
--------------------------

 P* Код задачи 30119. Препросадка (метод
    TDataSetRecordController.PrepostData). Добавлен параметр,
    контролировать ли заполненность обязательных полей.
    Изменены: RecordControl.
    10.11.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.182 от 08.11.2013
--------------------------

  * Код задачи 30112. При загрузке обстановки сообщение об ошибках,
    вызванных отсутствием поля, таблицы и др. выдаются в виде всплывающего
    сообщения вместо желтого предупреждения(хинта).
    Изменены: LayoutValidation.
    08.11.2013 И.В.Ковалев
  * Код задачи: 30108. Редактор изображений: Добавлена кнопка для печати.
    Изменены: DBInputCustomBLOB, frame_ToolBarForImage.xml, jpegfilt.
    08.11.2013 М.А.Степанов
                                --- * ---

DSP v3.6.181 от 07.11.2013
--------------------------

  > Код задачи 29369.
    - В сообщении об отсутствии части неверно указывалось имя части.
    - Исправлена работа объектов БД с блоб полями.
    Изменены: DBObjects, SDBUtils.
    06.11.2013 А.Б.Хах
 P* Код задачи 29917. При выдаче сообщения о проблемах при загрузке
    запроса добавлена возможность переопределить способ вывода этого
    сообщения.
    Изменены: SVCLCommon_cnstr, uRecoverRequests, Core.dpk
    Добавлены: SonarLogMessages.
    06.11.2013 И.В.Ковалев
  - Код задачи 29922. При проверке прав на пункты меню не учитывался уровень
    пользователя.
    Изменены: DeskMenu_cache.
    05.11.2013 А.Б.Хах
  > Код задачи 30063.
    - Esc, Up, Down и Enter теперь переводят фокус в грид, даже если нет ни
      одной записи.
    * По команде Alt+I, если фокус находится в поле ввода инкр. поиска, то он
      возвращается на соотв. ячейку листалки.
    Изменены: SDBGrid, TableBrowser, GridCodeView, frame_TableBrowser.xml.
    05.11.2013 А.Б.Хах
  - Код задачи 29942. Исправлена ошибка "Не хватает памяти" при восстановлении БД
    из архива.
    Изменены: htindex, htSys.
    05.11.2013 С.А.Барсуков
  > Код задачи 30067.
    * Добавлен учет категории доступа таблицы при ответе на вопрос можно ли
      пользователю её просматривать.
    * Для старого санкционирования подключена работа механизма "скрытия"
      листалок на которые нет прав.
    Изменены: CommonAuthorization, TableBrowser.
    01.11.2013 А.Б.Хах
  - Код задачи 29942. Исправлена ошибка "Не хватает памяти" при восстановлении БД
    из архива.
    Изменены: htVarray, htindex.
    01.11.2013 С.А.Барсуков
  - Код задачи 30065. Длина поля "Название" в датасете в памяти, в котором
    пользователь выбирает таблицу была = 30, а название таблицы AU_BINDT в
    описателе было длиннее, т.е. в листалку оно попадало не полностью, из-за чего,
    при инкр. поиске, нужная таблица не находилась.
    Изменены: TableChoice.
    31.10.2013 А.Б.Хах
  - Код задачи 29406. При сохранении неверной даты в блочном редакторе не
    выдавалось сообщение о том, что дата не корректная.
    Изменены: TableBrowser, DBUtils.
    31.10.2013 А.Б.Хах
  * Код задачи: 30061. Трехзвенная архитектура: Максимально возможное
    кол-во полей в наборе данных увеличено до 512.
    Изменены: kbmMemTable.
    31.10.2013 М.А.Степанов
  * Код задачи 29966. Под HyTech при открытии обстановки из DeskMenu заголовок
    вкладки задаётся из заголовка элемента меню.
    Изменены: deskmenuexec.
    31.10.2013 Д.А.Бондаренко
  * Код задачи 30022. При сохранении бин. данных в файл теперь в качестве
    расширения файла подставляется расширение текущих бин. данных, полученное от
    "поставщика типа содержимого".
    Изменены: DBInputCustomBLOB.
    30.10.2013 А.Б.Хах
  * Код задачи 30009. Под HyTech адаптировано изменение формата запросов для
    Меню обстановок.
    Изменены: DeskMenuCommon, DeskMenu_exec, deskmenuexec, deskmenuform.
    30.10.2013 Д.А.Бондаренко
  > Код задачи 29923.
   P* Выделена процедура GetStoredLayout.
   P* Несколько доработан TDataSetLayout, чтобы его можно было
      создавать "руками".
   P* Выделена процедура GetDefaultGridLayout.
    Изменены: LayoutManager, SonarDBIntf, TableBrowser.
    30.10.2013 А.Б.Хах
 P+ Код задачи 22706. Добавлена поддержка дополнительной листалки со
    списком (выбранных) записей, добавляемая снизу к основной, и меню
    установки связи между записями.
    Изменены: TableBrowser, SVclCommon.dpk.
    Добавлены: BrwRecordList.
    30.10.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.180 от 30.10.2013
--------------------------

  - Код задачи: 30039. В инкрементном поиске по числовому полю невозможно
    было поискать на равенство введенному значению.
    P: В список символов допустимых при вводе инкрементного поиска
       добавлен пробел.
    Изменены: SDBGrid.
    29.10.2013 М.А.Степанов
  - Код задачи 30013. Если мы попадали в обработчик Update Action'а (а такое
    может иногда происходить, поскольку в обработчик Update управление попадает
    из самого Application'а) и у DataLink'а не было поля, то происходило EAV.
    Изменены: DBInputCustomBLOB.
    29.10.2013 А.Б.Хах
  - Код задачи 29958. При задании имени архива протокола программы без указания
    пути, файл сохраняется в рабочем каталоге.
    Изменены: uArchivateLogFile.
    29.10.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.179 от 29.10.2013
--------------------------

  - Код задачи 30014. Не отображались часы в строке меню главной формы.
    Изменены: MainFormStatusBar, StdMainForm, SVCLCommonConsts.
    28.10.2013 А.В.Шаров
  * Код задачи 29908. Добавлены параметры проектной конфигурации 'Имя сканера',
    'Качество JPEG'.
    Изменены: EnterRecord, DBInputCustomBLOB, ScanUtils, SDBCONST, CnfHnd,
    frame_fconfig.xml, frame_SQLConfig.xml, frame_kbmmwconfig.xml.
    28.10.2013 С.А.Барсуков
  * Код задачи 29984. При инициализации поддержки всплывающих сообщений база
    данных для их хранения пересоздаётся.
    Изменены: MessageService.
    28.10.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.178 от 28.10.2013
--------------------------

  > Код задачи 29244:
    * Отключена возможность добавления записи средствами DBNavigator'а в карточке, открытой из "верхней" листалки
      окна выбора записи
    * При открытии карточки из окна выбора записи пресеты "нижней" листалки применяются к "верхней" листалке.
    28.10.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.177 от 27.10.2013
--------------------------

  - Код задачи 30007. Не распаковывался архив БД HyTech без сжатия.
    Изменены: Archiver.
    27.10.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.176 от 25.10.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  25.10.2013 Д.А.Бондаренко
  ----------------------------------------------------------

  * Код задачи 29907. Подключена справочная система.
    Добавлены: HelpConst, HelpViewerDummy.
    Изменены: frame_MainMenu.xml, ReqDesigner, StdMainForm, SVclCommon.dpk,
      SVCLCommon_cnstr, dm_ArchivationMenu.xml, dm_ReglamentMenu.xml.
    25.10.2013 Д.А.Бондаренко

    Адаптация: В модулях главных форм проектов при построении главного меню
      вместо имени пункта меню 'Item_About' указать 'SubmenuItem_Help'. При
      подключении в проект справочной системы необходимо добавить в uses модуль
      HtmlHelpViewer и вызвать HelpViewerDummy.InstallHelpViewerDummy(False)
      чтобы отключить подавление ошибок справочной системы.
                                  * * *

 P+ Код задачи 29259. Добавлено событие подготовки набора данных раздела
    карточки TSection_RequestLimited.ev_PrepareDataSet.
    Изменены: Sections.
    25.10.2013 Д.И.Кобрусев
  > Код задачи 27330:
    P* Для запросов sql, которые получаются в рамках листалок, добавляется
       хинт 'first_rows'.
     * Реализовано средство для отмены добавления хинта 'first_rows' для
       листалок(доступно, если база является девелоперской (general.developers_database))
     * Признак отмены сериализуется TDataSetLayout.Options.
    Изменены: SonarDbIntf, DataSetLayoutSQLConvertor, ReqConv, SVCLCommonSQL_cnstr,
      SonarDBkbmMW, SonarDBJava, sdboracle, svclcommonsql.py.
    Добавлены: OraHintsHandler, OraLayoutSQLConvertorSettings, menu_UseOraHintFirstRows.xml
    25.10.2013 А.В.Шаров
  * Код задачи: 29953. В Тор при добавлении/редактировании в таблице
    OB_PHOTO возникала ошибка "ORA-54013: Операция INSERT для виртуальных
    столбцов запрещена". Исправлено: Виртуальные поля не участвуют в
    добавлении/редактировании.
    P: В интерфейс IDomainSpec добавлена функция GetIsVirtual: True
       означает что поле виртуальное.
    Изменены: DBD2Schema, DBDItems, DBSchemaIntf, htdescr, DBObjectSpecs,
      SDBDataSets.
    25.10.2013 М.А.Степанов
                                --- * ---

DSP v3.6.175 от 24.10.2013
--------------------------

  + Код задачи 29908. Добавлено получение изображения со сканера.
    Изменены: DBInputCustomBLOB, images.rc, frame_InputCustomBLOB.xml.
    Добавлены: ScanUtils, Scanners, TWAIN, scanner-3.png.
    24.10.2013 16:00 С.А.Барсуков
                                --- * ---

DSP v3.6.174 от 22.10.2013
--------------------------

  - При построении файла ресурсов не учитывалось, что в имени каталога запуска
    могут присутствовать пробелы.
    Изменен: dsp.py.
    22.10.2013 М.В.Пекшева
                                --- * ---

DSP v3.6.173 от 22.10.2013
--------------------------

  * Код задачи 29921. Добавлен ключ --no-resource. Если указан этот ключ
    не генерируется ресурсный файл, в файл данные помещаются в бинарном
    сериализованном виде.
    Изменены: XmlToRes.
    22.10.2013 И.В.Ковалев
  * Код задачи: 28561. Обеспечена возможность выполнения скриптов запуска из
    каталога, содержащего русские буквы.
    Изменены: convert2to3.py, dbd_check.py, dbd_to_ddl.py, dbd_to_xml.py, extract_dbd.py,
      upgrade_db.py, xml_to_dbd.py.
    22.10.2013 М.В.Пекшева
  - Код задачи 29861. Перед выполнением отчета RWF диалоговое окно ввода
    параметров строилось, даже если таких параметров нет - исправлено.
    Изменены: EnterRecord, ReportUtils.
    16.10.2013 А.В.Шаров
  * Код задачи 29727. Каждый последующий запрос "Выбрать по тексту" объединяется
    с предыдущим запросом (уточняет предыдущий запрос "Выбрать по тексту").
    16.10.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.172 от 15.10.2013
--------------------------

  - Код задачи 29864. Ошибка "Произошла внутренняя ошибка программы. Обратитесь к разработчику."
    при открытии карточки в дезайнере.
    Изменены: DBGridColumnsLayout.
    15.10.2013 16:20 С.А.Барсуков
                                --- * ---

DSP v3.6.171 от 15.10.2013
--------------------------

  > Код задачи 29851.
    P* Добавлена блокировка фоновых процессов на время выполнения запроса к БД.
    P* Удалены неиспользуемые модули.
    Изменены: RecordControl, SDBVCLUtils, SonarRequests, TimeSyncCheck,
      kbmMWDatasetAsyncWait.
    15.10.2013 А.В.Шаров
  - Код задачи 29852. Под HyTech разделители в меню обстановок на первом
    уровне не отображались.
    Изменены: deskmenu.
    14.10.2013 Д.А.Бондаренко
  * Код задачи 28809. Сообщения об ошибках при загрузке запроса теперь
    выдаются через механизм всплывающих сообщений, ранее вместо них
    использовались желтые подсказки (хинты). При загрузке отчёта rwf в
    дизайнере информация о несоответствии структуре БД узлов отчета и
    запросов выдается в виде всплывающих сообщений. При загрузке отчета
    rwf в процессе его выполнения в случае несоответствия структуре БД
    узла или запроса, выполнение прерывается с ошибкой.
    Изменены: rwfdesigner, rwffactory, uRecoverRequests.
    14.10.2013 И.В.Ковалев
  - Код задачи 29552. При наличии инкремента в мультивыборе верхняя листалки
    "накрывала" первую запись нижней листалки.
    Изменены: SyncLayouts, SDBGrid.
    11.10.2013 А.Б.Хах
  - Код задачи 29811. Поиск по вещественному полю числа с точкой ничего не находил.
    Изменены: ReqConv.
    11.10.2013 А.Б.Хах
 P* Код задачи: 28506. Функциональность по принудительному закрытию
    приложения вынесена в отдельный модуль.
    Изменены: UpdateApp, DBServiceCheck, kbmMWDBServiceShutdownCheck.
    Добавлен: AppAutoClose.
    11.10.2013 М.А.Степанов
  > Код задачи 29811.
    * Выполняется фильтрация вводимых символов в зав-ти от типа поля.
    * Между полем инкр. поиска и телом листалки теперь есть промежуток размером
      cFilterLowLineWidth, призванный визуально разделить их.
    * Поля ввода инкремента не скрываются, если в них что-нибудь указано.
    * Добавлена команда Alt+I - начать инкрементный поиск, которая показывает
      поля ввода инкрементного поиска и передает в соотв. поле фокус.
    - При вводе невалидной строки в поле ввода инкремента (напр. для числового
      поля ввести --) выдавалось сообщение об ошибке.
    Изменены: SDBGrid, TableBrowser, frame_TableBrowser.xml.
    11.10.2013 А.Б.Хах
 P* Функции WordNum, WordCount, WordPosition, ExtractWord объявлены deprecated.
    Вместо них следует пользоваться функцией Split.
    Изменены: sonarsys.
    08.10.2013 А.Б.Хах
 P* Код задачи 29785. Устранены хинты и предупреждения компилятора.
    Изменены: MakeVer, ResToXML, sonarsys, SysUtils, LogPrint, ExtraDebugInfo,
      Lib.dpk, PreviewDocForm, ReportXLS, ReportTemplateContainer, TableBrowser,
      FormH_DskStrg, TimeSyncCheck, kbmMWJavaDBSQLCommand.
    Удален: IniFile.
    08.10.2013 А.Б.Хах
 P- Код задачи 28362. При отсутствии записи параметров запроса происходило EAV.
    Изменены: IntRecDesigner.
    08.10.2013 А.Б.Хах
 P* Код задачи 29549. Добавлена возможность протоколирования процесса кеширования меню обстановок
    Изменены: DeskMenu_cache
    08.10.2013 М.А.Зайкин
  * Код задачи 28362. Доработан ввод параметров отчетов/запросов.
    Изменены: EnterRecord, FormUtils, IntDataFactory, ReportUtils, frmIntRec.xml,
      frmIntField.xml, IntRecDesigner, SControls, SonarkbmMWJavaSrvPrjConfig.
    07.10.2013 А.Б.Хах
 P* Код задачи 27114. Константа st_commands_ChangeView вынесена в интерфейс.
    Изменены: TableBrowser.
    07.10.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.170 от 04.10.2013
--------------------------

  - Код задачи 29456. Предустановки теперь устанавливаются только при добавлении
    записи, а не на любом EnableControls, который произошёл в момент, когда
    набор данных был в состоянии добавления.
    Изменены: RecordControl.
    04.10.2013 А.Б.Хах
  * Код задачи 28362. Дизайнер полей перенесен из Дизайнера.
    Добавлены: FieldSpecFactory, FieldEditor.
    Изменены: MemoryDataSource, SVCLCommon_Registration.
    04.10.2013 А.Б.Хах
  * Код задачи 29257. Во время выполнения отчёта rwf, которое протоколируется,
    входит время переноса данных в файл шаблона.
    Изменены: ReportUtils.
    04.10.2013 А.В.Шаров
                                --- * ---

DSP v3.6.169 от 03.10.2013
--------------------------

  * Код задачи 29299. Редактор отчетов: новое поле добавляется справа от текущего.
    Изменены: rwfdesigner.
    03.10.2013 С.А.Барсуков
  * Код задачи 29707. При сохранении файла имя файла подставляется с учетом
    расширения.
    P: ShowHint выставляется в True на уровне формы, поэтому больше нет нужды
      выставлять его для каждого контрола.
    Изменены: DBInputCustomBLOB, forms, form_Datachange.xml, frame_ToolBarForText.xml.
    02.10.2013 А.Б.Хах
  - Код задачи 29169. После выхода пользователя пункт гл. меню "Обновить меню
    обстановок" и пункты гл. меню по работе с отчетами оставались доступны и при
    нажатии на них происходила ошибка.
    Изменены: StdMainForm, DeskMenu_menu, commenus.
    02.10.2013 А.Б.Хах
  * Код задачи 29764. Подключена новая карточка Рабочих станций.
    Изменены: frame_STATIONS.xml.
    02.10.2013 Д.А.Бондаренко
  * Код задачи 26300. Теперь если таблица ссылается сама на себя, то среди
    автоматически построенных разделов будет и раздел на саму таблицу.
   P- Если таблица ссылалась сама на себя по смысловому полю, то генерация SQL'я
      для получения описания зацикливалась.
   P- Исключения вида EJavaDBException переводились в EkbmMWException, т.е.
      терялась информация о тексте SQL запроса и он не протоколировался в лог.
    Изменены: ObjectDescriptionsGen, SectionUtils, kbmMWJavaDBSrvAsyncLib.
    01.10.2013 А.Б.Хах
 P- Убраны warning`и.
    Изменены: SAX, SAXMS, xdom.
    01.10.2013 С.А.Барсуков
 P* Удалено использование модуля IniFile.
    Изменены: sysparms.
    30.09.2013 С.А.Барсуков
 P* Функции BcdMultiply, BcdDivide, BcdSubtract, BcdAdd сделаны не deprecated.
    Изменены: FMTBcd.
    30.09.2013 С.А.Барсуков
 P- Убраны warning`и.
    Изменены: FUNSUBD, SonarSysUtils, PreviewDocForm, RecComparer.
    30.09.2013 С.А.Барсуков
 P* Код задачи 29548. При вводе параметров отчета rwf навешивается
    дополнительный контекст, по которому можно определить, что выполняется ввод
    параметров.
    Изменены: ReportUtils.
    30.09.2013 А.Б.Хах
 P* DeskMenu_build: Отработаны предупреждения компилятора
    Изменены: DeskMenu_build
    30.09.2013 М.А.Зайкин
 P* UpdateAppUtils: Убраны предупреждения компилятора.
    Изменены: UpdateAppUtils.
    30.09.2013 М.А.Степанов
  * Код задачи 27868. Изменено сообщение при валидации даты.
    Изменены: FeildValidator.
    27.09.2013 А.Б.Хах
  * Код задачи 29203. Модуль SDBOraErrorTranslate перенесен в папку
    SVCLCommonSQL\CommonOracle.
    Изменены: svclcommonsql.py.
    27.09.2013 А.Б.Хах
  * Код задачи 29203. Протоколирование текста SQL при возникновении исключения
    теперь выполняется непосредственно перед записью исключения в лог, а не при
    возникновении исключения.
    Изменены: kbmMWJavaDBService, SDBOraErrorTranslate, SVCLOracle_cnstr.
    27.09.2013 А.Б.Хах
  > Код задачи 29328. Ввод в листалку, уточнённую инкрементным поиском:
    - Проявление: В "Торе", в листалке любого объекта учёта поискать
      инкрементно что-нибудь по полю "КодОМ" и нажать Insert - происходила
      ошибка: "Неверный аргумет при операции с variant".
    - Для кодов кодификаторов значения из инкрементного поиска не
      предустанавливались при вводе .
    P: В предустановки заносились не значения полей, а их текстовые
       представления.
    Изменены: TableBrowser.
    26.09.2013 Д.И.Кобрусев
  * Код задачи: 29694. При выполнении отчета, если в отчете формировался запрос
    с кол-вом читаемых полей больше максимально возможного кол-ва полей в kbmMW (256),
    то возникало исключение EAccessViolation.
    Изменены: SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBQuery, kbmMWJavaDBService,
    SonarDBJava.
    26.09.2013 М.А.Степанов
  > Код задачи 27868.
    - Даты раньше 01.01.0100 не переводятся в строку средствами ОС (происходит
      ошибка), поэтому вариант, содержащий дату ранее указанной, переводится в
      строку с помощью функции DateToStr.
    + Добавлена валидация дат: даты ранее 01.01.0100 вводить запрещено.
    Изменены: Variants, FieldValidator.
    25.09.2013 А.Б.Хах
  * Код задачи 29076. Изменено формирование сообщения при попытке удаления
    записи, на которую ссылаются записи из других таблиц, удаление которых запрещено.
    Изменены: SDBOraErrorTranslate.
    25.09.2013 А.Б.Хах
  + Код задачи 29675. Подключён алгоритм ограничения размера лог-файла.
    Добавлены: LogServ.
    Изменены: LogPrint, SVclCommon.dpk, SVCLCommon_cnstr0.
    25.09.2013 Д.А.Бондаренко
  - Код задачи 28892. В некоторых случаях зацикливался авторазмер ширин колонок.
    Изменены: SDBGrid.
    24.09.2013 А.Б.Хах
  + Код задачи 29672. Подключён алгоритм архивации протокола программы.
    Добавлены: frame_ArchivateLogFile.xml, uArchivateLogFile.
    Изменены: StdMainForm, SVclCommon.dpk.
    24.09.2013 Д.А.Бондаренко
  * Код задачи 29319. Неправильный подсчёт итогов в RWF при работе с Oracle
    в определённых условиях в случае, когда управляющий узел не совпадает с
    основным. В такой ситуации при подсчёте итога не срабатывало ограничение,
    которое накладывает управляющий узел.
    Изменены: OraRwfExec.
    24.09.2013 И.В.Ковалев
                                --- * ---

DSP v3.6.168 от 23.09.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  20.09.2013 М.А.Степанов
  ----------------------------------------------------------

 P* Код задачи: 27160. CheckVersionCompatible: удален параметр
    AServerVersionDBKey, для получения версии используется функция сервера.
    Изменены: CheckAppVersion, SonarDBkbmMW, kbmMWSonarServiceConsts,
    kbmMWJavaDBServer, kbmMWJavaDBService.
    20.09.2013 М.А.Степанов

    Адаптация: Если не будет компилироваться, то удалить второй параметр
    из вызова функции CheckVersionCompatible.
                                  * * *

  * Код задачи 29649. Теперь нажатия клавиш клавиатуры обрабатываются
    после выполнения асинхронного запроса и в 2-звенном соединении.
    Изменены: SonarSys, SProgress, uADStanAsync.
    Добавлен: uADStanAsync.pas.orig.
    19.09.2013 А.В.Шаров
 P+ Код задачи 27757. Добавлены функции поиска карточки по некоторому компоненту,
    который она порождает (т.е. компонент находится в её контексте).
    Добавлены: uFindDataChangeForm.
    19.09.2013 А.Б.Хах
  * Код задачи 29649. Нажатия клавиш клавиатуры обрабатываются
    после выполнения асинхронного запроса.
    Изменены: SProgress, kbmMWDatasetAsyncWait.
    19.09.2013 А.В.Шаров
                                --- * ---

DSP v3.6.167 от 17.09.2013
--------------------------

 P- Код задачи 29437. В полях типа Время в TMemoryDataSet неправильно
    обрабатывались пустые значения.
    Изменены: MemoryDataSet.
    17.09.2013 Д.А.Бондаренко
  * Код задачи 28859. При нажатии Ctrl+Del производилась попытка удалить запись.
    Изменены: SDBGrid.
    17.09.2013 А.Б.Хах
  * Код задачи 29538. При вводе параметров запроса теперь разрешается указывать
    в поле ввода ключа при выборе из справочника значения ключа, для которых не
    соответствует записи в БД.
    Изменены: EnterValue, DBObjectChoiceController.
    16.09.2013 А.Б.Хах
  * Код задачи: 25288. При обновлении текстового окна могло возникать
    замедление.
    P: При обновлении текста проверка орфографии стартует фоново.
    Изменены: DBInputCustomBLOB.
    16.09.2013 М.А.Степанов
 P+ Код задачи 29414. Добавлена поддержка виртуальных полей данных для
    форм ввода.
    Изменены: SVCLCommon_Registration, SVclCommon.dpk.
    Добавлены: VirtualFields.
    13.09.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.166 от 13.09.2013
--------------------------

  - Код задачи 29297. Если до появления формы прогресса вызвать действие,
    выполняющее запрос к БД(отрыть карточку и т.п.), и будет выполнено
    обновление прогресса, то возникала ситуация, когда к БД одновременно
    выполняется 2 запроса.
    Изменен: SProgress.
    13.09.2013 А.В.Шаров
                                --- * ---

DSP v3.6.165 от 13.09.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  12.09.2013 Д.А.Бондаренко
  ----------------------------------------------------------

  * Код задачи 28199. Функции GetFieldByKey теперь читают только необходимые
    поля, а не полную запись, как раньше. Доработаны функции GetRecByKey.
    Изменены: dbutils, AuthFormH, AuthHandlers, SDBDataSets, SDBUtils,
      SonarDbIntf, SVCLCommon_cnstr, uLoopSense, DataSetInternalUtils,
      AuthHyTech, SdbVcl, SonarDBkbmMW, SonarDBJava, sdboracle.
    12.09.2013 Д.А.Бондаренко

    Адаптация: при вызове GetRecByKey и FillRecByKey нужно задавать набор
      необходимых полей записи. Если набор полей неизвестен или его составление
      затруднительно (например, функции получения строки описания записи),
      следует использовать GetFullRecByKey.
                                  * * *

 P* Код задачи: 29517. Изменен алгоритм получения информации об индексах для
    полей. Теперь вывод о наличии индекса по полю делаются по наличию у индекса
    ключа, а не деталей индекса.
    Изменен: DBD2Schema.
    13.09.2013 М.В.Пекшева
  * Код задачи 28341. Теперь первая строка для пустого набора данных рисуется
    всегда пустая.
    Изменены: SDBGrid.
    12.09.2013 А.Б.Хах
  - Код задачи 29050. Возникала ошибка при попытке получения кодировки для тех
    поставщиков типа содержимого бин. данных, для которых кодировка не задана.
    Теперь для них по умолчанию кодировка считается = CP1251.
    Изменены: DBInputCustomBLOB.
    11.09.2013 А.Б.Хах
                                --- * ---

DSP v3.6.164 от 11.09.2013
--------------------------

  * Код задачи: 29620. После закрытия сеанса пользователя (например при
    автоматическом закрытии из-за бездействия) через какое-то время
    возникало исключение: "Не установлено соединение с сервером БД...".
    Изменены: DeskMenu_cache.
    11.09.2013 М.А.Степанов
                                --- * ---

DSP v3.6.163 от 10.09.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  06.09.2013 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 28119. Теперь перед показом диалога сохранения файла выполняется
    сохранение сохранение обстановки во временный поток, и только если
    сохранение прошло без ошибок, то показывается диалог сохранения файла.
    Изменены: Desktop, DockingDesktop, StdMainForm, DeskMenu_exec, deskmenuexec.
    06.09.2013 А.Б.Хах

    Адаптация:
      Изменения в модуле Desktop, для которых может потребоваться адаптация:
      * TDesktop.LastDesktopFileName переименован в TDesktop.FileName и сделан
        свойством на чтение и запись.
      * SaveDesktop переименован в SaveDesktopToFileWithDialog.
      * LoadDesktop переименован в LoadDesktopFromFileWithDialog.
      * LoadDesktopFromStream переименован в LoadDesktopFromFileStream.
      * SafeLoadDesktop удален, вместо него следует использовать
        LoadDesktopFromFileStream.
      * Из методов TDesktop.LoadFromFileStream и TDesktop.SaveToFileStream убран
        параметр AFileName. В случае необходимости настроить имя загруженного
        файла или имя файла куда произведено сохранение, следует использовать
        свойство TDesktop.FileName.
                                   * * *


 P* Код задачи: 29614. TAppAutoLogoutHandler: Добавлена возможность
    указать максимально возможное время неактивности пользователя.
    Изменены: AppAutoLogout, DBSettings.
    10.09.2013 М.А.Степанов
  > Код задачи 29229
   P* Поддержано отключение алгоритма контроля СУК.
    - В случае добавления записи проверка изменились ли поля входящие в СУК не
      срабатывала и контроль не выполнялся.
    Изменены: CompoundError, CompoundErrorCheck, CompoundErrorHandle.
    10.09.2013 А.Б.Хах
  * Код задачи 29050. Расширена поддержка различных типов бин. данных, введены
    понятия поставщиков типов бин. данных.
    Изменены: DBInputCustomBLOB, ComponentUtils, DBInputMethods, PreviewDocForm,
      ReportUtils, ScrollingSynchronizer, SRVSpellChecker, TextBox, ATBinHex, Unit3.dfm.
    10.09.2013 А.Б.Хах
 P+ Код задачи: 25231. Добавлен обработчик TAppAutoLogoutHandler:
    автоматическое закрытие сеанса пользователя после его длительного бездействия,
    подключать в обработчике app_AfterUserLogIn.
    Изменены: IdleVCL, SProgress, SVclCommon.dpk, TimeSyncCheck, forms.
    Добавлены: AppAutoLogout, form_AppAutoLogoutWarning.xml.
    06.09.2013 М.А.Степанов
  * Код задачи 28201. Теперь если поля, входящие в составной ключ, не изменились,
    то контроль этого составного ключа не выполняется.
    Изменены: CompoundErrorCheck.
    05.09.2013 А.Б.Хах
  - Код задачи: 29197. Неосвобождение памяти при наличии открытой карточки
    во время разрыва соединения с сервером.
    Изменены: SonarDBkbmMW.
    05.09.2013 М.А.Степанов
  + Код задачи 29349. Подключена карточка STATIONS.
    Добавлены: frame_STATIONS.xml
    Изменены: SVCLCommon_cnstr.
    05.09.2013 Д.А.Бондаренко
  - Код задачи 29543. Неверно отрабатывались наши типы Boolean и Byte в
    SetFieldData при подаче данных в виде буфера, полученного с помощью
    GetFieldData (при дублировании записи именно так и делается).
    Изменены: SDBOracle.
    02.09.2013 А.Б.Хах
 P+ Код задачи 28749. Добавлено копирование атрибутов серверного набора данных
    на клиентский.
    Изменены: SonarDBkbmMW, kbmMWJavaDBServer, SonarDBJava, svclkbmmw.dpk.
    02.09.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.162 от 28.08.2013
--------------------------

  - Код задачи: 29428. Значение "21:__" считается некорректным временем.
    Изменены: SControls.
    26.08.2013 18:00 В.В.Матвеенко
 P* Код задачи: 26279. TSonarDBJava_DataSet: Добавлена возможность
    'дочитывания' записей и поддержано св-во ISonarSQLDataSet.SelectAllData.
    Изменены: SonarDBkbmMW, kbmMWSonarCommonDataSet, kbmMWJavaDBQuery,
      SonarDBJava.
    22.08.2013 М.А.Степанов
                                --- * ---

DSP v3.6.161 от 20.08.2013
--------------------------

 P* Код задачи 29324. Флаг tJoinItem.WithROWID сделан обратно сериализуемым
    (иначе флаг не копируется при копировании компонент), но со значением по
    умолчанию.
    Изменены: DBFieldsLayout.
    20.08.2013 С.А.Барсуков
  > Код задачи 29366:
     - В функции GetCalcFieldsList получение номера поля в подсхеме выполнялось
       только по доменным именам.
    P- При возникновении ошибки исключение глушилось.
    Изменены: ReqConv, SQLUtils.
    19.08.2013 А.В.Шаров
  - Код задачи 29155. Редактор отчетов: при редактировании двух отчетов неверно открывался
    диалог редактирования узлов отчета (при активном первом отчете, открывался диалог
    редактирования узлов второго отчета).
    Изменены: nodes.xml, rwf_field.xml, rwf_form.xml, selectvar.xml, sortdialog.xml.
    19.08.2013 С.А.Барсуков
  - Код задачи 29403. При нажатии клавиши Enter в процессе мультивыбора, в
    случае непрохождения валидации выбранного значения, листалка выбора
    закрывалась, несмотря на сообщение об ошибке.
    Изменены: ChoiceForm, ManualRowsSelect.
    16.08.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.160 от 16.08.2013
--------------------------

  - Код задачи 29394. Исправлена ошибка при проверке наличия и уникальности индекса по полю,
    приводящая к отсутствию списка разделов в автоматически строящихся карточках
    Изменены: DBD2Schema
    16.08.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.159 от 13.08.2013
--------------------------

  > Код задачи 29366:
    * Обобщена реализация ISQLCommand для клиентских и серверных соединений трехзвенки.
    * Обобщен триггер trigger_CodeSupport для соединений 2х и 3х - перенесен
      в CommonSQL
    Изменены: kbmMWSQLCommand, SdbVcl, SonarDbIntf, SonarDBJava,
      SonarDBkbmMW, SVCLCommonSQL.dpk, SVCLCommonSQL_cnstr, SVCLJavaDB_cnstr, svclkbmmw.dpk
    Добавлены: kbmMWDBClientSQLCommand, kbmMWJavaDBSQLCommand
    Перенесены: KBMMW\Server\kbmMWAppTriggers.pas -> SonarVcl\CommonSQL\SQLAppTriggersCodeSupport.pas
    13.08.2013 М.А.Зайкин
 P* Код задачи 29324. Флаг tJoinItem.WithROWID сделан не сериализуемым.
    Изменены: DBFieldsLayout.
    12.08.2013 С.А.Барсуков
  * Код задачи 29246. При построении локального меню определение, является ли пункт меню
    владельцем группы осуществляется не по значению СБК, а по наличию пунктов меню,
    подчиненных данному.
    Изменены: DeskMenu_build
    11.08.2013 М.А.Зайкин
  > Код задачи 27594.
    P+ Добавлены интерфейсы ISQLCommand и ISonarSQLConnection.
    P* Получение набора данных с кол-вом записей выполняется
       функцией OpenDataSetBySql.
  > Код задачи 19695.
     + Реализован пункт меню листалки "подсчёт суммы" для oracle.
    P* Из интерфейса ISonarConnection удалена процедура CalcSumFields.
       Добавлено событие ev_TableBrowser_CalcSumFields. Теперь подсчет сумм
       выполняется обработчиком этого события.
    P* Добавлено событие ev_TableBrowser_CalcSumFields.
    P* Реализована возможность передавать в tSqlConvertor.ConvSql список
       полей и агрегатных функций.
    P* Адаптировано изменение интерфейса процедуры ConvToSqlEx.
    Добавлены: HTCalcSumFields, SQLCalcSumFields, SQLUtils,
        kbmMWSQLCommand, SonarSQLCommand.
    Изменены: SonarDbIntf, TableBrowser, DataSetLayoutSQLConvertor,
        OraRwfExec, RecordCounter, ReqConv, SVCLCommonSQL_cnstr, SdbVcl,
        SVCLHT_cnstr, SonarDBkbmMW, SonarDBJava, sdboracle.
    08.08.2013 А.В.Шаров
 B- Код задачи 29324. Неверно работал подотчет по записям узла, для которого
    использовалось слияние при вычислении данных узла.
    Изменены: DBFieldsLayout, DataSetInternalUtils, ReqConv, OraRwfExec.
    08.08.2013 С.А.Барсуков
 B* Код задачи 29320. Убраны проверки наличия и порядка следования уровней в
    файле данных, т.е. теперь, если информации об уровне в файле данных нет
    совсем, то этот уровень просто удаляется.
    Изменены: ReportXLS.
    07.08.2013 А.Б.Хах
 P+ Код задачи 29202. Добавлено свойство TRWFExecutor.SourceRecordCount для
    получения количества записей набора данных, по которому запущен отчёт.
    Изменены: ReportUtils.
    07.08.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.158 от 07.08.2013
--------------------------

  - Код задачи: 29231. В Тор происходил переход в другое приложение в
    следующей ситуации: в карточке SB_PATRL выйти в листалку нарядов,
    открыть карточку наряда (либо еще как то получить модальное окно,
    неважно как), закрыть карточку наряда, закрыть листалку, и в этот момент
    происходит переход в другое приложение.
    Также исправлено: Пункт меню 'Окна/Загрузить/Как представление':
      в Тор не загружалось представление SB_PATRL.NARYAD для таблицы SO_PATRL.
    P: ситуация отличалась тем что в данной ситуации открывалась не листалка,
       а сохраненная обстановка с докингом (из LAYOUTS), исправлено так: при выходе в поле выбора
       докинг при открытии обстановки из LAYOUTS восстанавливается не сразу, а в момент показа формы.
    Изменены: DockingDesktop, LoadFormByLayout, Presentation, StdMainForm, SQLLayoutManager.
    06.08.2013 М.А.Степанов
 P+ Код задачи 29298. RecordController. Добавлено возможность отключать
    валидацию (методы DisableValidation, EnableValidation, свойство
    IsValidationEnabled).
    Изменены: RecordControl.
    05.08.2013 Д.И.Кобрусев
  - Код задачи 29318. При сохранении RWF-отчета, открытого из хранилища, в случае
    отсутствия в хранилище имени файла ресурса или отсутствия расширения в имени файла ресурса
    невозможно было сохранить отчет в файл.
    02.08.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.157 от 31.07.2013
--------------------------

  * Код задачи: 29250. При загрузке некоторых отчетов могло всплывать
    сообщение: "При загрузке запроса произошли следующие ошибки: Ошибка при
    настройке границы.."
    Изменены: Requests.
    30.07.2013 М.А.Степанов
  - Код задачи: 29210. Если запрос шел на сервер по сети дольше 2 сек.,
    т.е. так что на экране появлялся визуализатор процесса, а на сервере
    оказывалось что сессия пользователя закрыта из-за бездействия, то
    выдавалась ошибка "..Connection not open".
    Изменены: kbmMWDatasetAsyncWait, SonarDBkbmMW, kbmMWSonarServiceConsts,
      kbmMWJavaDBServer.
    30.07.2013 М.А.Степанов
                                --- * ---

DSP v3.6.156 от 29.07.2013
--------------------------

  - Код задачи: 29223. Теперь для вещественных чисел согласно описателю ограничивается
    максимальная длина вводимого числа.
    Изменен: SControls.
    29.07.2013 М.В.Пекшева
  * Код задачи 29183. Теперь при загрузке границы, в случае обнаружения ошибки,
    вызывается функция NotifyInvalid, с сообщением об ошибке, которое позже
    выдается пользователю в виде хинта.
    Изменены: Requests.
    26.07.2013 А.Б.Хах
  - Код задачи 29201. Устранено лишнее перекодирование имени файла отчёта.
    Изменены: ReportUtils.
    25.07.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.155 от 25.07.2013
--------------------------

 B- Код задачи 29191. Экспорт подряд идущих уровней с одинаковым номером
    (естественно, разделенных метками нулевого уровня) выполнялся неверно.
    Изменены: ReportXLS.
    25.07.2013 А.Б.Хах
                                --- * ---

DSP v3.6.154 от 25.07.2013
--------------------------

  - Код задачи: 29195. Некорректный текст ошибки при нехватке памяти при
    обработке запроса.
    P: RequestJavaServer: При возникновении исключений не
       от java, а например EOutOfMemory, текст итогового сообщения мог
       оказаться пустым.
    Изменены: kbmMWJavaDBService.
    24.07.2013 М.А.Степанов
                                --- * ---

DSP v3.6.153 от 24.07.2013
--------------------------

  - Код задачи 29150. Ошибка Ora-00904 при выполнении отчета rwf.
    Изменены: reqconv, OraRwfExec.
    24.07.2013 И.В.Ковалев
  > Код задачи 29152.
    * Формирование отчёта по шаблону Excel теперь выполняется в отдельном
      экземпляре Excel.
    - Сформированный файл отчёта мог открыться в экземпляре Excel, не
      предназначенном для взаимодействия с пользователем.
    - Открытие файлов Excel во время формирования отчёта приводило к ошибкам.
    Изменены: ReportXLS.
    23.07.2013 Д.А.Бондаренко
  - Код задачи 29188. Проявление: В "Торе", в карточке адмпротокола.
    Выбрать вид нарушения не 56.25.xx. Выйти в справочник видов нарушений
    м попытаться выбрать 56.25.00, будет выдан хинт: "Эта запись не может
    быть выбрана". При попытке выбора (нажатии Enter-а) карточка
    "моргала": сначала меняла свой вид на соответствующий нарушениям
    56.25.xx, потом обратно, на соответствующий другим нарушениям.
    P: Валидация выбранного значения, включая временное (на время
       валидации) занесение этого значения в DataSet, обложена
       DisableControls / EnableControls, чтобы на это, временное,
       изменение значения поля не реагировали интерактивные обработчики.
    Изменены: ChoiceForm.
    23.07.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.152 от 23.07.2013
--------------------------

  - Код задачи 27818. Редактор отчетов: неверно редактировались не вещественные поля -
    заполнялось поле "Дес. часть".
    Изменены: rwfdesigner.
    22.07.2013 С.А.Барсуков
  - Код задачи 29151. Не заменялись некоторые теги EQ.
    Изменены: ReportXLS.
    19.07.2013 А.Б.Хах
                                --- * ---

DSP v3.6.151 от 19.07.2013
--------------------------

  - Код задачи 27457. Исполнитель RWF: не учитывалось ограничение на максимально
    кол-во записей в узле в подотчетах.
    Изменены: OraRwfExec.
    19.07.2013 С.А.Барсуков
 P* Код задачи 27024. Переименовано поле в TEvent_DBObjectChoice_ValidateField.
    Изменены: DBObjectChoiceController, SVCLCommon_cnstr.
    18.07.2013 Д.А.Бондаренко
  - Код задачи 29148. Карточка с разделом карточкой. Войти в раздел и
    задочить его; в момент задочивания все поля в нём становились
    редактируемыми.
    Проявлялось в "Торе", карточка адмпротокола, раздел "Доставления".
    P: Если набор данных переоткрывался при за-disable-енных control-ах
       (между вызовами DisableControls и EnableControls), все поля
       становились редактируемыми.
    Изменены: RecordControl.
    18.07.2013 Д.И.Кобрусев
 P* Код задачи 28194. TDataSetRecordController. Обработка EnableControls
    набора данных. Теперь это считается переходом к другой записи, только
    если запись реально изменилась (было: всегда).
    Изменены: DB, RecordControl, SonarDbIntf.
    18.07.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.150 от 17.07.2013
--------------------------

 P- Код задачи: 28976. TDataLink.Active мог возвращать True при закрытом датасете,
    что могло приводить к ошибкам во время выполнения Requery с включенной
    асинхронностью запросов.
    Изменены: DB.
    17.07.2013 М.А.Степанов
 B- Код задачи 27457. Исполнитель отчетов: сообщение о превышении максимального
    количества записей в узле выходило за пределы печатного листа.
    Изменены: OraRwfExec.
    17.07.2013 С.А.Барсуков
  * Отменены изменения по задаче 26325 (DSP v3.7.0 от 15.07.2013).
    16.07.2013 М.А.Зайкин
BP* Код задачи 28851. Добавлена возможность узнать создан ли данный набор данных
    в контексте раздела.
    Изменены: MultiChoice, Contexts, Sections, SDBVCLUtils.
    16.07.2013 А.Б.Хах
  - Код задачи 27044. Неверно работали подотчеты по записям с узлами с флагом
    "Использовать внешнее ограничение".
    Изменены: rwfhtexec.
    15.07.2013 С.А.Барсуков
 B* Код задачи: 28806. Добавлена запись в лог-файл сообщения об
    обнаружении рассинхронизации времени.
    Изменены: TimeSyncCheck.
    16.07.2013 М.А.Степанов
 B- Код задачи 27044. Неверно работали подотчеты по записям с узлами с флагом
    "Использовать внешнее ограничение".
    Изменены: OraRwfExec.
    15.07.2013 С.А.Барсуков
                                --- * ---

DSP v3.7.0 от 15.07.2013
--------------------------

 B+ Код задачи 26325. Изменения в части конвертора запросов. Добавлена поддержка
    СУБД SQLite, Firebird, PostgreSQL
    15.07.2013 М.А.Зайкин
 B> Код задачи 28717.
    - При невозможности сохранения обстановки на диске оставался файл нулевого
      размера.
    * При открытии отчёта из файла в качестве заголовка вкладки теперь
      выводится имя файла без пути.
    Изменены: DockingDesktop, rwfdesigner.
    15.07.2013 Д.А.Бондаренко
  * Код задачи: 25051. Улучшено поведение программы при потере соединения
    с БД.
    Изменены: LayoutManager, SVCLDBFormH.
    15.07.2013 М.А.Степанов
                                --- * ---

DSP v3.6.149 от 15.07.2013
--------------------------

  - Код задачи 29087. Неправильная работа отчета rwf со связью узлов "в
    списке".
    Изменены: OraRwfExec.
    12.07.2013 И.В.Ковалев
 B- Код задачи 28790. Опция пр. конфигурации "максимальное кол-во записей в
    листалке" была привязана к отдельному набору данных в памяти, из-за этого,
    вводимые значения никуда далее не попадали.
    Изменены: frame_fconfig.xml, frame_SQLConfig.xml, frame_kbmmwconfig.xml.
    Удалены: dm_config.xml.
    11.07.2013 А.Б.Хах
  > Код задачи 28992. Карточка DESKMENU под HyTech:
    * Выбор файла в поле Обстановка теперь выполняется с помощью
      TDBFileInputControl.
   P+ Добавлено событие ev_DBFileInputControl_OpenClick, позволяющее задать
      нестандартный алгоритм выбора файла или папки.
    Изменены: DBFileInputControl, deskmenuform, frame_DeskMenuHT.xml.
    11.07.2013 Д.А.Бондаренко
BP* Код задачи 29010. Добавлен перегруженный вариант Equal с параметром типа
    TFieldValue.
    Изменены: FieldValueUtils.
    11.07.2013 А.Б.Хах
 B- Код задачи 29089. Невозможно было сохранить в файл созданный RWF-отчет
    Изменены: rwfdesigner
    10.07.2013 М.А.Зайкин
  - Код задачи 28196. Переполнение числа при подсчёте суммы в исполнителе
    отчетов rwf, если в сумме в десятичной записи более 64 цифр, например
    1.11111111111111E100
    Изменены: reqconv.
    10.07.2013 И.В.Ковалев
 B - Код задачи 28916. ИАЗ, 1АП: ОШИБКА ПРИ ВЫПОЛНЕНИИ МОДИФИЦИРОВАННОГО ОТЧЕТА 1AP
    Ошибка происходит из за того что Java значения типа BigDecimal могут превышать
    значения двоично десятичного типа в Delphi.
    Для решения проблемы теперь BigDecimal конвертируется в строки
    - это устраняет проблему для полей определенных в описателе как float
    Для полей получающихся в результате аггрегатных функций типа SUM
    предполагается конвертация в BINARY_DOUBLE c использованием конструкций
    типа  TO_BINARY_DOUBLE(SUM(. Для чего добавлена поддержка этого типа в
    трехзвенной архитектуре.
    Изменены: kbmMWJavaDBQuery, kbmMWCustomJavaService.
    10.07.2013 Д.А. Илюшкин
 В - Код задачи 28952. Поле ОСК не заполняется, если значение, по которому оно
    расчитывается, содержит буквы разного регистра.
    Изменены: SndName.
    09.07.2013 В.В.Матвеенко
 B* Код задачи 28902. Переименован пункт меню "Редактировать поле" для того,
    чтобы за ним можно было навесить свой пункт.
    Изменены: frame_TableBrowser.xml.
    09.07.2013 А.Б.Хах
 B* Код задачи 27136. Теперь при попытке удаления записи, на которую есть ссылки
    для которых каскадное удаление запрещено, выдается соответствующее сообщение.
    Добавлены: SDBOraErrorTranslate.
    Переименованы: SonarDBOracleAndJavaErrorTranslate -> SDBJavaErrorTranslate.
    Изменены: kbmMWJavaDBService.
    09.07.2013 А.Б.Хах
 B- Код задачи 28744. В редакторе запросов при выборе значения из справочника,
    выборка ограничивалась условием НеПоказывать=Нет.
    Изменены: SVCLCommon_cnstr.
    09.07.2013 С.А.Барсуков
  - Код задачи 29078. Ошибка "tPyRWFExec.Param: ValueAsVariant: конвертация
    типа не поддерживается. Код типа: 18." при выполнении отчета 1ap.rwf
    Изменены: dbutils.
    09.07.2013 И.В.Ковалев
  - Код задачи 29064. При изменении размера шрифта в приложении
    форма прогресса выполнения запроса отображалась некорректно.
    Изменены: SFormProgressToStatusBar.
    09.07.2013 А.В.Шаров
                                --- * ---

DSP v3.6.148 от 08.07.2013
--------------------------

BP* Код задачи 28974. В интерфейс ITableSpec добавлена функция GetIsDictionary -
    признак того, что таблица является справочником
    Изменены: DBDItems, DBSchemaIntf, htdescr, DBObjectSpecs.
    04.07.2013 А.Б.Хах
                                --- * ---

DSP v3.6.147 от 08.07.2013
--------------------------

  - Код задачи 29067. Под HyTech при изменении данных и обновлении строки
    состояния полностью перерисовывалась главная форма.
    Изменены: MainFormStatusBar.
    08.07.2013 Д.А.Бондаренко
  - Код задачи 29060. Ошибка ORA-00932: несовместимые типы данных:
    ожидается NUMBER, получено BINARY при выполнении отчета rwf с
    суммированием по полю типа байт.
    Изменены: ReqConv, OraRwfExec.
    08.07.2013 И.В.Ковалев
 B- Устранена ошибка утечки памяти. Ошибочно создавался второй экземпляр объекта
    TIntegerTypeSpec.
    Изменен: MemoryDataSource.
    08.07.2013 М.В.Пекшева
                                --- * ---

DSP v3.6.146 от 04.07.2013
--------------------------

BP* Код задачи 28091. В инкрементном поиске при получении предустановок полей
    выполняется проверка начичия этих полей.
    Изменен: TableBrowser.
    04.07.2013 А.В.Шаров
  > Код задачи 28989.
    * Включен режим асинхронного выполнения запросов к БД Oracle в 2-х звенном
      соединении.
    * При выполнении асинхронного запроса формма прогресса выводится
      в статусной строке.
    Изменены: sdboracle, SADProgress.
    04.07.2013 А.В.Шаров
 B* Код задачи 28735. Алгоримт "НеВыибрать"/"НеПоказывать" теперь не работает
    при вводе параметров.
    Изменены: EnterRecord, EnterValue, Contexts, SVCLCommon_cnstr.
    04.07.2013 А.Б.Хах
  * Код задачи 28114. В локальном меню "поиск свободных значений",
    когда открывается окно "поле для выборка" курсор теперь стоит на первом поле
    выбора, tab идет в сторону на "Маска", "ок", "отмена".
    Изменены: MissedValues, form_MissedValues.xml.
    03.07.2013 В.В.Матвеенко
  + Код задачи 28914. Окно ввода параметров поиска св.значений теперь
    закрывается по esc.
    Изменены: MissedValues.
    03.07.2013 В.В.Матвеенко
                                --- * ---

DSP v3.6.145 от 03.07.2013
--------------------------

  > Код задачи 28560.
    * Общая карточка RIGHTS перенесена в пакет SVCLCommonSQL.
    + Подключена карточка RIGHTS для HyTech.
   P+ В контроллер выбора из списка добавлена возможность выбора записей по
      уникальному ключу.
   P* Событие ev_DBObjectChoice_LocateObject удалено; вместо позиционирования
      на выбранную запись теперь происходит простое открытие набора данных.
    Перемещены: frame_RIGHTS.xml из SonarVCL/Common в SonarVCL/CommonSQL.
    Добавлены: dm_Globals.xml, form_index.ini, frame_RightsHT.xml.
    Изменены: ChoiceForm, DBObjectChoice, DBObjectChoiceController,
      SVCLCommon_cnstr, SVCLCommonSQL_cnstr, SVCLHT_cnstr.
    03.07.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.144 от 03.07.2013
--------------------------

  - Код задачи 28969. При создании временной таблицы свойства строковых полей
    задавались неполностью.
    Изменены: temptab.
    03.07.2013 Д.А.Бондаренко
 P* Код задачи 28864. Добавлен расчет оптимальной высоты листалки и возможность
    задать оптимальный размер форме листалки.
    Изменены: TableBrowser, SyncLayouts.
    03.07.2013 А.Б.Хах
                                --- * ---

DSP v3.6.143 от 03.07.2013
--------------------------

  - Код задачи 28963. Под HyTech не удавалось подключиться к БД, если имя
    станции содержало русские буквы.
    Изменены: password.
    03.07.2013 Д.А.Бондаренко
  - Код задачи: 28959. В Tasks, если модальное окно с постановкой висело
    больше 15 мин., то при его закрытии происходил AccessViolation.
    P: AccessViolation происходил если во время выполнения запроса возникает
       исключение.
    Изменены: kbmMWJavaDBSrvAsyncLib.
    02.07.2013 М.А.Степанов
  - Код задачи 28597. Ошибка при тестовом вводе лица с непроизносимой фамилией.
    Изменены: SndName.
    02.07.2013 В.В.Матвеенко
 B- Код задачи 28905. При выполнении отчета с шаблоном Excel закрывались все
    остальные файлы, открытые в нем.
    Изменены: ReportXLS.
    02.07.2013 А.Б.Хах
 B* Код задачи 27588. Подгон размеров окна листалки теперь выполняется только
    первый раз.
    Изменены: TableBrowser.
    01.07.2013 А.Б.Хах
  - Код задачи: 28894. При выполнении длительных асинхронных запросов
    в листалке могла возникать ошибка 'DataSet: Операция не
    применима к закрытому набору данных.'
    Изменены: SonarDBkbmMW, kbmMWDatasetAsyncWait.
    01.07.2013 М.А.Степанов
 B* Код задачи 28765. Всем пользователям кроме администраторов запрещены
    ввод, редактирование и удаление во всех таблицах, на которые права не
    даны явно (в TAB_RTS). Было: по умолчанию (при отсутствии прав) всё
    разрешено, в проекте это умолчание можно сменить на всё запрещено.
    P: TCommonAuthorization. Удалено свойство DataChangeDefaultDisabled.
    Изменены: CommonAuthorization.
    01.07.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.142 от 01.07.2013
--------------------------

 B* Код задачи 28746. Теперь валидация выбранной записи производится при выборе
    или отметке записи.
    Изменены: ChoiceForm, DBObjectChoiceController, SVCLCommon_cnstr,
      SyncLayouts, SDBCONST.
    27.06.2013 А.Б.Хах
  - Код задачи: 28863. В пустой выборке попытка получить OldValue у поля
    могла привести к AccessViolation.
    Изменены: kbmMemTable.
    01.07.2013 М.А.Степанов
                                --- * ---

DSP v3.6.141 от 01.07.2013
--------------------------

 B> Код задачи: 28733.
    * Добавлена проверка версии загружаемого описателя БД на предмет его
      совместимости с приложением.
   P* Произведена адаптация к изменению способа хранения информации о типах данных
      в описателе БД.
    Добавлен: uCreateDataTypeSpecByDataType.
    Изменены: DBD2Schema, DBDItems, HTDESCR, DBSchemaIntf, MemoryDataSource.
    01.07.2013 М.В.Пекшева
  - Код задачи: 28894. При выполнении длительного инкрементного поиска
    (т.е. такого что появляется визуализатор процесса) возникали исключения:
    AccessViolation и 'DataSet: Поле ... не найдено.'
    Изменены: SDBGrid, SyncLayouts.
    28.06.2013 М.А.Степанов
  * Код задачи 26143. Запуск многозвенного клиентского приложения
    без jar-файла приводит к утечкам памяти.
    Изменены: kbmMWCustomJavaService.
    28.06.2013 В.В.Матвеенко
                                --- * ---

DSP v3.6.140 от 28.06.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  20.05.2013 А.В.Шаров
  ----------------------------------------------------------

  > Код задачи: 27455:
    P* Добавлена блокировка всех фоновых процессов на время выполнения
       асинхронных запросов (кроме проверки начала регламентных работ).
     * Если начались регламентные работы, выполнение асинхронного запроса
       прерывается.
    Добавлен: BlockerOnAsyncReq.
    Изменены: About, DBInputCustomBLOB, DBObjectChoice, DBRecordBrowser,
      DBServiceCheck, DesignObjEditors, DeskMenu_cache, DeskTop, DockHelper,
      HTMenus, kbmMWDatasetAsyncWait, kbmMWDBServiceShutdownCheck,
      MainFormStatusBar, MasterDetailHandlers, MessageService, Presentation,
      RegEdit, SControls, SDBGrid, sdboracle, SdbVcl, SectionList,
      SectionPageControl, Sections, SonarDbIntf, SonarDBJava, SonarDBkbmMW,
      StdMainForm, SVCLCommon_cnstr, SVCLkbmMW_cnstr, SVCLUtils, TableBrowser,
      TextBox, uADStanAsync, uIdleOpenTable.
    20.05.2013 А.В.Шаров

    Адаптация: поискать фоновые процессы (создание экземпляра TIdleClient),
      определиться, нужно ли их блокировать во время асинхронного выполнения
      запроса sql (В dsp это нужно часто, исключение - проверка регламентных
      работ). Для блокировки нужно создать экземпляр  класса
      TIdleProcBlockerOnAsyncReq
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  25.06.2013 И.В.Ковалев
  ----------------------------------------------------------
  * Код задачи 27454. При загрузке запроса по связям с ограничением
    на таблицу в случае, если таблицы нет в структуре данных,
    происходила ошибка, в результате невозможно было открыть
    в дизайнере отчёт rwf, содержащий такой запрос.
    Изменены: AdvancedConstrainsFactory, grprojfactory.

    Адаптация: если не будет компилироваться вызов
    TDopReqFactory.Apply - добавить параметр, для
    фабрик запросов это Request.GetRoot
                                  * * *

  * Код задачи: 27679. При выполнении запроса форма прогресса появляется в
    статусной строке.
  - Код задачи: 28101. При ожидании завершения выполнения запроса процессор
    нагружался на 100%.
    Изменены: kbmMWDatasetAsyncWait, SProgress, SVclCommon.dpk.
    Добавлены: form_ProgressToStatusBar.xml, SFormProgressToStatusBar.
    26.04.2013 А.В.Шаров
  + Код задачи: 27372 Асихронный запуск запросов
    Изменены: SonarDBkbmMW, kbmMWSonarCommonDataSet, kbmMWSonarServiceConsts, kbmMWJavaDBQuery, kbmMWJavaDBServer,
              kbmMWJavaDBService, svclkbmmw.dpk
    добавлены: kbmMWDatasetAsyncWait, kbmMWJavaDBSrvAsyncLib
    12.04.2013 Д.А. Илюшкин
 B* Код задачи 28847. Изменено сообщение об ошибке при вводе с неверно
    заданной фиксирующей предустановкой, а также это сообщение не прерывает
    работы, т.е. далее появляется карточка на добавление (либо окно
    мультивыбора).
    Изменены: SDBVCLUtils.
    25.06.2013 А.Б.Хах
  * Код задачи 28103. В блоке управления печатью дизайнера отчётов rwf
    значение поля "в узле" устанавливается в значение управляющего узла при
    смене управляющего узла поля типа "итог", а также в значение основного
    узла при смене основного  узла поля типа "значение", "итог", "номер
    записи", "отчет". При смене основного узла поля типа "итог" значение
    управляющего узла устанавливается в значение основного узла.
    Изменены: rwfdesigner.
    24.06.2013 И.В.Ковалев
                                --- * ---

DSP v3.6.139 от 24.06.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  24.06.2013 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 28796. Изменения/исправления в новой схеме мультивыбора.
    Изменены: ChoiceForm, DBEditFrame, DBObjectChoiceController, FieldValidator,
      RecordControl, SDBVCLUtils, SVCLCommon_cnstr.
    Адаптация: В процедуру валидации поля DoValidateField добавлен параметр
      const AContextualMessage: Boolean
      который позволяет выдавать либо краткое сообщение об ошибке (сообщение в
      контексте элемента ввода), либо развернутое, которое будет понятно
      пользователю вне контекста элемента ввода.

      В потомках TFieldValidator адаптировать появление доп. параметра и
      применить его по необходимости.
                                  * * *

                                --- * ---

DSP v3.6.138 от 21.06.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  21.06.2013 Д.И.Кобрусев
  ----------------------------------------------------------

  > Код задачи 28803:
    - При удалении препросаженной записи в случае отказа от ввода
      контролировались права пользователя на удаление. В результате, если
      удаление запрещено, запись не удалялась.
      Проявлялось в "Торе" на адмпротоколах (там удаление запрещено по
      структуре).
   P* Удалены функция RecordIsForceAppend и событие
      ev_DataSet_RecordIsForceAppend.
    Изменены: RecordControl, RowCommandAccessHandlers, SDBUtils.

    Адаптация: Если не будет компилироваться из-за того, что неизвестен
    идентификатор RecordIsForceAppend или ev_DataSet_RecordIsForceAppend,
    отслеживать (если надо) факт препросадки с помощью RecordController-а,
    свойство PrepostState.
    Код, удаляющий препросаженную запись в случае отказа от ввода,
    удалить, теперь это делает RecordController, при установленном флаге
    DeletePrepostedRecordOnCancel.
                                  * * *

 P- При валидации пустого поля происходила ошибка вида "значение отсутствует в
    справочнике".
    Изменены: DBObjectChoiceController.
    19.06.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.137 от 19.06.2013
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  17.06.2013 А.Б.Хах
  ----------------------------------------------------------

 P* Код задачи 28247. Новая реализация мультивыбора: теперь мультивыбор это тот
    же выбор из справочника, только несколько выбранных записей будут просажены
    в цикле.
    Добавлены: DBObjectChoiceController.
    Изменены: AuthHandlers, AuthFormH, ChoiceForm, DBEditFrame, DBInputMethods,
      DBObjectChoice, FieldValidator, HandleRowCommands, MultiChoice, EnterValue,
      ScrollingSynchronizer, SDBVCLUtils, SVCLCommon_cnstr, SVCLCommon_registration,
      TableBrowser, SVCLCommonSQL_cnstr, SDBVCL, SVCLHT_cnstr, kbmMWSonarCommonDataSet.
    Удалены: ChoiceCheck, SQLMultiSel, gridmultisel.
    Перенесены: SVCLCommonSQL\SQLEllipsisSel -> SVCLCommon\EllipsisSel.

    Адаптация:
      Если не находится TDBObjectChoiceController и связанные с ним
      вещи - то он теперь в отдельном модуле DBObjectChoiceController.

      Если использовался app_TableBrowser_PrepareMultiChoice или
      ev_TableBrowser_PrepareMultiChoice, то скорее всего нужно перенести
      действия выполнявшиеся на PrepareMultiChoice на событие
      ev_DBObjectChoice_PrepareChoiceBrowser или
      app_DBObjectChoice_PrepareChoiceBrowser (если в этом есть необходимость).
                                  * * *

 P- Код задачи 28247. RecordController (а с ним и TDBObjectChoiceFieldValidator)
    мог быть удален раньше, чем TDBObjectChoiceController, т.е. при уничтожении
    TDBObjectChoiceController'а могла происходить ошибка.
    Изменены: DBObjectChoiceController.
    19.06.2013 А.Б.Хах
  - Код задачи 28738. Определение прав пользователя на таблицы, заданных в
    таблице TAB_RTS. Вместо прав самого пользователя или его ближайшего
    начальника (в кодификаторном смысле) могли взяться права какого-нибудь
    из его начальников (в кодификаторном смысле).
    Изменены: CommonAuthorization.
    19.06.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.136 от 18.06.2013
--------------------------

  > Код задачи 28724:
    - Для запроса "в группе по" не выполнялось построение трансфера в случае
      наличия такового в запросе.
    18.06.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.135 от 11.06.2013
--------------------------

  - Код задачи 28469. Обновление: исправлено сообщение.
    Изменен: UpdateAppUtils.
    11.06.2013 С.А.Барсуков
  + Код задачи 28577. Добавлена функция CaptionToString.
    Изменен: sonarsys.
    10.06.2013 А.В.Шаров
 P* Код задачи 28593. Константа stDesktopDir вынесена в интерфейс.
    Изменены: DeskTop.
    10.06.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.134 от 10.06.2013
--------------------------

 P* Код задачи 28548. Отработаны предупреждения и замечания компилятора.
    Изменен: TSQLiteLogInserterUnit.
    10.06.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.133 от 10.06.2013
--------------------------

  * Код задачи 28642. Осуществлен перевод раскладки на английский язык и
    капитализация вводимых символов во всех окнах ввода логина/пароля.
    Изменены: Login.
    10.06.2013 В.В.Матвеенко
  * Код задачи 26482. Запрещено указывать пароль пользователя равным его логину.
    Изменены: Login, AuthFormH, kbmMWSonarLoginDialog, CommonAuthorization,
    AuthCommon, UsersPlugin.
    10.06.2013 В.В.Матвеенко
 P* Код задачи: 28548. Отработаны предупреждения и замечания компилятора.
    Изменены: SVclCommon.dpk, svclkbmmw.dpk, AuthCommon, DBGridSearch,
    DbMemoSearch, frDesgnEditors, frEditMemo, FUNSYS, gridmultisel, JvPrvwDoc,
    kbmMWSonarCommonDataSet, licfile, PROCLIB, ReportObjInspector, RTFExport,
    rwdata, SConnection, sdboracle, texteditor, TSQLiteLogInserterUnit,
    UpdateApp, zlib.
    10.06.2013 А.В.Шаров
  - Код задачи 28616. Отчеты с шаблонами: если в данных поля есть больше одного
    символа '\' и один из них - последний, то формируется неверной RTF.
    Изменены: RepoRTFM.
    07.06.2013 С.А.Барсуков
  > Код задачи: 26983. Для решения задачи в TSDBGrid был переопределен
    метод WriteCellText.
    * Увеличено число пикселей отступа текста от границ поля с 2ух пикселей до 5
      с обеих сторон.
    * Устранено мерцание ячеек.
    Изменен: SDBGrid.
    06.06.2013 А.В.Шаров
  * Код задачи: 28483. Добавлен атрибут соединения для отключения проверки
    структуры БД на предмет наличия в ней таблиц S_TABLES и SLV_CLN.
    Изменен: CompoundErrorCheck.
    06.06.2013 М.В.Пекшева
                                --- * ---

DSP v3.6.132 от 06.06.2013
--------------------------

  * Код задачи 27932. Добавлен атрибут соединения для отключения контроля СУК в
    нем.
    Изменены: CompoundErrorCheck.
    06.06.2013 А.Б.Хах
  - Код задачи 28545. Возникало исключение , когда блочное редактирование
    начиналось с поля, отсутствующего в карточке.
    Изменен: TableBrowser.
    05.06.2013 А.В.Шаров
  - Код задачи 28546. Не заменялось более одной метки в ячейке.
    Изменены: ReportXLS.
    05.06.2013 А.Б.Хах
                                --- * ---

DSP v3.6.131 от 05.06.2013
--------------------------

  * Код задачи 27932. Алгоритм контроля СУК теперь работает только для основного
    соединения с БД.
    Изменены: CompoundErrorCheck.
    04.06.2013 А.Б.Хах
 P* Код задачи: 28092. Теперь TDataSetRecordController выполняет обновление
    текущей записи фоново.
    Изменен: RecordControl.
    04.06.2013 А.В.Шаров
                                --- * ---

DSP v3.6.130 от 04.06.2013
--------------------------

  * Код задачи: 28540. Верхний браузер размещаем перед нижним в
    последовательности обхода по клавише Tab.
    Изменен: SQLEllipsisSel.
    04.06.2013 А.В.Шаров
  - Код задачи 28145. Теперь при срабатывании контроля СУК в алгоритмах (в т.ч.
    при мультивыборе), выдается сообщение на экран.
    Изменены: CompoundErrorHandle, CompoundError.
    03.06.2013 А.Б.Хах
 P* Код задачи 28238. Изменен алгоритм работы экспорта данных в Excel: теперь
    проход по листу Excel осуществляется всего один раз, что значительно ускорило
    выполнение отчета.
    Изменены: ReportXLS.
    03.06.2013 А.Б.Хах
  - Код задачи 28321. Исключение при получении имени таблицы для TMemoryDataSet.
    Изменены: SVCLCommon_cnstr.
    03.06.2013 А.Б.Хах
  * Код задачи 28321. Обработчик капитализации логина перенесен в Dsp.
    Изменены: DBEditFrame, SVCLCommon_cnstr
    31.05.2013 М.А.Зайкин
 P* Код задачи 28320. При работе с блочным редактором необходимый EditFrame теперь не клонируется,
    а переносится в блочный редактор с последующим возвращением на место
    Изменены: TableBrowser
    31.05.2013 М.А.Зайкин
 B- Код задачи 28508. В отчетах обрезалось мемо поле, если в нем были переводы
    строк.
    Изменен: type2str.
    31.05.2013 С.А.Барсуков
 P* Код задачи: 28500. Карточки RPT_MAIN, EXP_PRN перенесены из
    DSP\SONARVCL\Common в DSP\SONARVCL\HYTECH.
    Изменены: SVCLCommon_cnstr, SVCLHT_cnstr.pas.
    31.05.2013 А.В.Шаров
  * Код задачи: 27776. Изменено сообщение при превышении максимального
    времени выполнения запроса.
    Изменены: SonarDBOracleAndJavaErrorTranslate
    30.05.2013 В.В.Матвеенко
  * Код задачи: 27006. Изменено сообщение при выходе за пределы
    допустимого диапазона возможных значений последовательности.
    Изменены: kbmMWJavaDBService
    Добавлены: SonarDBOracleAndJavaErrorTranslate.
    30.05.2013 В.В.Матвеенко
  - Код задачи 28391. Изменения в наборе данных, связанном с полем TSDBEdit,
    происходят после потери фокуса ввода. При переходе по Tab поля,
    "засеренность" которых зависит от содержимого поля с TSDBEdit, не успевали
    "рассериться". Добавлена обработка события ev_WinControl_SelectNextOnTab,
    рассылаемого перед переводом фокуса на следующее поле.
    Изменены: SControls, forms
    29.05.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.129 от 27.05.2013
--------------------------

 B* Код задачи: 28446. Поля ввода в инкрементном поиске ограничены 2048
    символами.
    Изменен: SDBGrid.
    27.05.2013 А.В.Шаров
 P* Код задачи: 28144. TSonarDBkbmMW_Table.AddRecByRecId: добавлена
    проверка на открытость датасета, BuildFetchRecordQuery: добавлено
    протоколирование запроса если в нем нет нужного параметра.
    Изменены: SonarDBkbmMW.
    27.05.2013 М.А.Степанов
  * Код задачи 28421. Перед рассылкой app_BeforeApplicationRun позволяем окну приложения
    перерисоваться.
    Изменены: Forms
    27.05.2013 М.А.Зайкин
  - Код задачи 28431. Под СУБД, поддерживающими SQL, при начале
    мудьтивыбора, если изначально какие-то записи отмечены, могла
    происходить ошибка: "... некорректное значение..." Также отмеченными
    могли оказаться не те записи.
    Проявлялось в "Торе" в карточке события в листалке
    сотрудников-участников расследования. Возникала ошибка
    "'16.00.00.00.00.00' - некорректное значение целого числа".
    P: При получении списка изначально отмеченных записей в некоторых
       случаях брались значения не того поля.
    Изменены: SQLMultiSel.
    24.05.2013 Д.И.Кобрусев
BP* Код задачи 26835. Редактор отчетов: неверно редактировалась длина полей
    мышкой и клавиатурой.
    Изменены: AREditRep, rwfdesigner, rwf_form.xml.
    24.05.2013 С.А.Барсуков
 B* Код задачи 27310. Убрана алфовитно-цифровая печать.
    Пункт "Графическая печать" переименован в "Принтер".
    Изменены: IMP_LP, imp_prn.
    23.05.2013 С.А.Барсуков
  * Код задачи: 26296. Реализовать выгрузку КУСП в прокуратуру в ГАС ПС.
    Удален модуль DBSoCatlg
    Изменены: SVCLCommonSQL.dpk
    23.05.2013 В.В.Матвеенко
  * Код задачи 28333. В заголовке редактора отчета, открытого из хранилища, отображается
    описание ресурса.
    Изменены: commenus, rwfdesigner
    22.05.2013 М.А.Зайкин
 P* Код задачи 28238. Минимизированы отличия 2.6 от 3.6: отличия выделены в
    функции, которые в отдельный блок и реализованы различным образом в 2.6 и в 3.6.
    Изменены: ReportXLS.
    22.05.2013 А.Б.Хах
                                --- * ---

DSP v3.6.128 от 22.05.2013
--------------------------

  + Код задачи: 26296. Реализовать выгрузку КУСП в прокуратуру в ГАС ПС.
    Добавлены: DBSoCatlg.
    Изменены: SVCLCommonSQL.dpk.
    20.05.2013 В.В.Матвеенко
 B- Код задачи: 28340. При загрузке "абстрактного" домена в ряде случаев ему не
    проставлялся тип, поскольку выбор нужного типа был ориентирован на его
    размер, который для "абстрактного" домена равен нулю.
    Изменен: DBD2Schema.
    20.05.2013 М.В.Пекшева
                                --- * ---

DSP v3.6.127 от 17.05.2013
--------------------------

  - Код задачи 27906. Карточка со слитым вводом текстового поля; например,
    адм. протоколы в "Торе".
    1) Начать дублирование записи. При вводе не проверялось, но, скорее
       всего, будет то же самое.
    2) Заполнить текстовое поле.
    3) Заполнить поля так, чтобы нарушалась уникальность составного ключа
       таблицы.
    4) Попытаться сохранить запись. Будет выдано окно с сообщением о
       дублировании составного ключа и списком дублей (проявляется только
       на таблицах, для которых показывается список дублей).
    5) Выбрать дубль и нажать "Перейти к".
    При этом в редакторе текстового поля оставалось введённое значение
    (несмотря на то, что от ввода записи отказались). При сохранении
    записи, если для неё нет записи в таблице с этим текстовым полем,
    добавлялась новая; а если есть, выдавалось ссобщение о дублировании.
    P: В наборе данных слитого ввода не производился Cancel.
    Изменены: CompoundErrorHandle.
    17.05.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.126 от 17.05.2013
--------------------------

  * Код задачи 28239. CommonSQL-зависимые алгоритмы работы с таблицей
    Пользователей (расширение листалки USERS для установки пароля пользователю,
    капитализация Логина в постпроцессе, очистка полей Логина и Хеша при
    дублировании) перенесены из пакета SVCLCommon в SVCLCommonSQL.
    Переименованы: SQLAppTriggers --> kbmMWAppTriggers
    Перемещены: menu_UsersPlugin.xml из SonarVCL\Common в SonarVCL\CommonSQL
    Добавлены: SQLAppTriggers, UsersPlugin
    Изменены: SVCLCommonSQL.dpk, svclkbmmw.dpk, AppTriggers, AuthFormH,
      AuthHandlers, SVCLCommon_cnstr, SVCLCommonSQL_cnstr, SVCLJavaDB_cnstr.
    15.05.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.125 от 14.05.2013
--------------------------

 B- Код задачи 28304. Не вызывался конструктор предка, что приводило к тому, что
    Owner не был выставлен и представление листалки не сохранялось в контексте
    своего владельца.
    Изменены: TableBrowser.
    14.05.2013 А.Б.Хах
 B* Код задачи 28302. Теперь при дублировании записи не дублируются
    технические поля.
    Изменены: SDBVCLUtils.
    14.05.2013 Д.И.Кобрусев
 B* Код задачи 28286. Теперь при сохранении записи в таблице Users производится
    капитализация поля Логин.
    Добавлены: EditUpperCaseHandler.
    Изменены: AppTriggers, Login.
    14.05.2013 А.Б.Хах
                                --- * ---

DSP v3.6.124 от 14.05.2013
--------------------------

 B> Код задачи 28279:
    P+ Добавлена функция IsNullBlobStream. Выполнена адаптация функции IsNullBlob.
     * Добавлена проверка поля бинарных данных на Null.
    Изменены: SDBDataSets, TableBinDataCache
    13.05.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.123 от 13.05.2013
--------------------------

BP> Код задачи 28253:
    + Добавлено событие ev_DataSet_FieldPresets_NeedPresetDefaultDate.
    + Добавлен вариант функции GetFieldByKeyE.
    Изменеы: DatePreset, SDBUtils.
    13.05.2013 Д.И.Кобрусев
  * Код задачи 28251. Изменен алгоритм синхронизации времени для HyTech.
    Изменены: TimeSync.
    13.05.2013 С.А.Барсуков
  > Код задачи 27386.
    - В пункте меню вида "текст с разделителем" отступ справа линии разделителя
      от текста был больше, чем отступ слева.
    - Теперь, если имя разделителя пусто, то строится простой разделитель, а не
      разделитель с текстом, как раньше.
    Изменены: DeskMenuCommon, DeskMenu_build.
    08.05.2013 А.Б.Хах
  - Код задачи 27616. В СУБД-зависимые обработчики добавлены контроли типов
    соединений и наборов данных.
    Изменены: SQLEditFormLayoutPath, SQLLayoutManager, SVCLCommonSQL_cnstr,
      AuthHyTechHandlers, AutoLoadDesktop, deskmenuform, HTEditFormLayoutPath,
      LayoutManagerHt, SVCLkbmMW_cnstr.
    08.05.2013 Д.А.Бондаренко
 P* Добавлена возможность конвертировать файл в XML (без ресурсов).
    Изменены: ResToXML.
    08.05.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.122 от 07.05.2013
--------------------------

 B* Код задачи 28186. Если в поле выбора из справочника указано значение, то
    при выходе в справочник фокус помещается сразу на "верхнюю" листалку.
    Изменены: SyncLayouts, SQLEllipsisSel.
    07.05.2013 А.Б.Хах
                                --- * ---

DSP v3.6.121 от 07.05.2013
--------------------------

 B* Код задачи 28186: Устранена "анимация" при выходе в справочник.
    Изменены: SQLEllipsisSel.
    07.05.2013 А.В.Шаров
                                --- * ---

DSP v3.6.120 от 06.05.2013
--------------------------

  - В одном из вариантов перегруженной функции SFieldIsNull не учитывалось, что
    пустая строка так же равна Null.
    Изменен: SDBDataSets.
    06.05.2013 М.В.Пекшева
BP* Код задачи 27144. Для проверки изменилось ли поле или нет используется
    "правильная" функци IsFieldChangedEx, которая учитывает состояние набора
    данных.
    Изменены: DBObjectChoice, DataSetUtils.
    06.05.2013 А.Б.Хах
 B+ Код задачи 28188. Учтены объекты БД при анализе доступности кнопки "Перейти
    к" в диалоге о дублировании СУК.
    Изменены: CompoundErrorHandle, SVCLCommon_cnstr.
    30.04.2013 А.Б.Хах
                                --- * ---

DSP v3.6.119 от 06.05.2013
--------------------------

 B> Код задачи 28186:
    * На сплиттере в справочнике рисуется пунктирная линия.
    * если поле выбора из справочника содержит значение, то при выходе в
      справочник активным устанавливается ведомый браузер.
    Изменены: SyncLayouts, SQLEllipsisSel.
    06.05.2013 А.В.Шаров
BP* Код задачи 27488. Оптимизация исполнителя RWF.
    Изменены: RWFExec, OraRwfExec, rwfhtexec.
    30.04.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.118 от 25.04.2013
--------------------------

BP* Код задачи 27697. Процедура HandleCompoundError вынесена в интерфейс и
    сделана функцией: она теперь возвращает какой выбор сделал пользователь.
    Изменены: CompoundErrorCheck, CompoundErrorHandle.
    25.04.2013 А.Б.Хах
                                --- * ---

DSP v3.6.117 от 25.04.2013
--------------------------

 B- Исправлена периодичность проверки синхронизации времени с сервером БД.
    Изменены: TimeSyncCheck.
    25.04.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.116 от 25.04.2013
--------------------------

 P* Код задачи: 25265. TPyProgress.Если при вызове Update происходит
    исключение EAbort, то соответствующее исключение происходит и в коде
    Python.
    Изменены: PyApp.
    25.04.2013 М.А.Степанов
 B* Код задачи 28066. Теперь препросадка записи выполняется с контролем
    обязательных полей.
    Изменены: RecordControl, SDBUtils, Sections, SectionList.
    24.04.2013 А.Б.Хах
                                --- * ---

DSP v3.6.115 от 24.04.2013
--------------------------

 B* Код задачи 27036. Добавлен контроль синхронности времени на станции и
    на сервере БД.
    Изменены: SVCLkbmMW_cnstr.
    Добавлены: TimeSyncCheck.
    24.04.2013 С.А.Барсуков
 B- Код задачи 28124. В редакторе запросов неверно предустанавливалось имя поля
    для связи с ведущей листалкой в случае, если в ведущей листалке было слияние и
    поля из основной таблицы не подходили по типу, а первое подходящее было
    в подлитой таблице.
    Изменены: ReqFieldViewer, ReqUtils.
 B* Код задачи 27060. Вводимые пользователем значения логина и пароля теперь
    на лету капитализируются.
    Изменены: Login.
    24.04.2013 А.Б.Хах
 B- Код задачи 28118. Исправлена ошибка при формировании списка мультивыбора для вводимой записи
    Препросадка вводимой записи выполняется преред формированием листалки мультивыбора,
    ее результат используется для формирования ограничения на таблицу раздела.
    Изменены: HandleRowCommands.
    24.04.2013 А.С.Лозовой
 B- Код задачи 28116. Исправлено неверное формирование ширины колонки при применении GridLayout'а.
    Сначала - устанавливаем связь колонки Grid'а с полем набора данных,
    и только потом - устанавливаем ее ширину (было наоборот), поскольку от
    поля набора данных зависит ширина по умолчанию, которая используется
    при установке ширины колонки (установка ширины зависит от ширины по умолчанию).
    Изменены: DBGridColumnsLayout, TableBrowser.
    24.04.2013 А.С.Лозовой
BP+ Код задачи 27966. Добавлены функции SFieldIsNull и SFieldValuesEqual.
    Изменены: SDBDataSets.
    24.04.2013 А.Б.Хах
 B> Код задачи 28062:
    - При сохранении RWF-отчета в файл, загруженного из хранилища вместо имени
      файла использовалось описание ресурса, взятого из хранилища.
    * Отчет по шаблону, загруженный из хранилища, сохраняется в виде архива.
    * Для сохранения отчетов, загруженных из хранилища, в файл предлагается папка Forms
    Изменены: commenus, DeskMenuCommon, RWFDesigner, DeskMenu_storage
    23.04.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.114 от 22.04.2013
--------------------------

 P+ Код задачи 27899. Для проектов под HyTech добавлено подменю Регламентные
    работы с пунктами Упаковка БД и Восстановление БД; подключены
    соответствующие алгоритмы.
    Добавлены: REGLAM, dm_ReglamentMenu.xml
    Изменены: sonardb.dpk, SDBAPI, HTMenus
    22.04.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.113 от 22.04.2013
--------------------------

 B* Код задачи 28071. Для текстовых полей строится обычный TDBInputCustomBLOB:
    чтобы при скроллировании не производились действия по анализу содержимого
    поля бин. данных.
    Изменены: DBInputMethods.
    22.04.2013 А.Б.Хах
                                --- * ---

DSP v3.6.112 от 19.04.2013
--------------------------

  * Код задачи 28058: Для пользователей с уровнем доступа <> 0 отключена возможность
    сохранять в хранилище отчеты и запросы.
    Изменены: frmReqTree.xml, ReqDesigner, rwf_form.xml, rwfdesigner
    19.04.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.111 от 18.04.2013
--------------------------

  * Код задачи 28053: пункты "выбрать по тексту" и "поиск"
    в локальном меню расположены правильно
    Изменены: frame_TableBrowser.xml
    18.04.2013 В.В.Матвеенко
  * Код задачи 27711. Теперь в качестве шапки для колонок берется "длинное" имя
    поля.
    Изменены: DBSchemaUtils, DBGridLayout, TableBrowser.
    18.04.2013 А.Б.Хах
  * Код задачи: 27998. При свойстве Exception.WriteStack = False, в лог-файл
    не записываются пустые строки "Дамп кадров исключений:" и "Дамп стека:".
    Изменены: ExtraDebugInfo.
    18.04.2013 А.В.Шаров
  * Код задачи 28044: Пункт меню "Сохранить в хранилище" доступен пользователям
    с уровнем доступа 0
    Изменены: StdMainForm
    18.04.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.110 от 18.04.2013
--------------------------

  - Код задачи: 28010. При поиске свободных значений в текст запроса вставлялось
    русское имя поля.
    Изменены: MissedValues.
    17.04.2013 А.В.Шаров
  * Код задачи 26388. Убрано сообщение о незаполненности поля "Расширение" в
    TDBInputMultiCustomBLOB.
    Изменены: DBInputCustomBLOB.
    17.04.2013 А.Б.Хах
 B* Код задачи 27828: Изображение "входящего" сообщения смещено влево на 8 пикселов
    Изменены: form_StdMainForm.xml, MessageService
    17.04.2013 М.А.Зайкин
  * Код задачи 27582. Теперь при блокировании обновления набора данных, для
    которого производится редактирование записи, учитывается, что в процессе
    редактирования производилась попытка обновления и если производилась, то при
    разблокировке выполняется обновление.
    Изменены: TableBrowser, form_DataChange.
    17.04.2013 А.Б.Хах
 P* Код задачи: 27788. В классе TSDBGridInplaceEditForm поле FEditFrame
    перенесено из секции private в protected.
    Изменены: TableBrowser.
    17.04.2013 А.В.Шаров
  * Код задачи 27937. Для всех бинарных данных по умолчанию строится
    TDBInputMultiCustomBLOB: а он уже сам решает каким образом эти бин. данные
    нужно отобразить в нем самом и во внешнем редакторе.
    Изменены: DBInputMethods.
    17.04.2013 А.Б.Хах
                                --- * ---

DSP v3.6.109 от 15.04.2013
--------------------------

 P* Код задачи: 27965. Добавлена константа skDevelopersDBFlag.
    Изменены: Settings_General.
    15.04.2013 М.А.Степанов
                                --- * ---

DSP v3.6.108 от 11.04.2013
--------------------------

 P* Код задачи 27947: Листалка таблицы открывается отложенно.
    Изменены: StdMainForm
    11.04.2013 М.А.Зайкин
  > Код задачи 27699.
    - При сохранении запроса или отчёта с шаблоном в файл поверх файла большего
      размера, в конце файла мог оставаться мусор.
    * Запросы теперь сохраняются в файлы *.WRQ.
    Изменены: ReportTemplateContainer, ReqDesigner, RequestXMLUtils
    11.04.2013 Д.А.Бондаренко
 P* Код задачи: 27894. Имена настроек таблицы SETTINGS вынесены в модуль
    Settings_General, а имена полей - в DBSettings.
    Изменены: uCachedLoadSchemaDef, DBSettings.
    добавлен: Settings_General.
    11.04.2013 М.В.Пекшева
 P* Код задачи 27947.
    Добавлены функции TryGetParentDeskTop, IsPlacedOnDesktop, позволяющие определить принадлежность
    элемента управления рабочему столу и получить ссылку на рабочий стол.
    В TDockingDesktop добавлен обработчик события ev_Desktop_GetDesktop.
    Изменены: DeskTop, DockingDesktop
    11.04.2013 М.А.Зайкин
 B> Адаптация ветви DSP
    - Код задачи 27878. Обновление: исправлен запуск обновления при включенном UAC.
      Изменены: UpdateAppUtils.
      04.04.2013 С.А.Барсуков
    - Код задачи 27863. Обновление: Собственно запуск обновления перенесен на момент закрытия
      приложения.
      Изменены: UpdateApp, UpdateAppUtils.
      04.04.2013 С.А.Барсуков
    - Код задачи 27852. Обновление: после согласия пользователя на обновление не выводится
      сообщение об успешном подключении.
      Изменены: UpdateAppUtils.
      03.04.2013 С.А.Барсуков
    - Код задачи 27838. Обновление: убран лишний вопрос об обновлении.
      Изменены: UpdateAppUtilsб CheckAppVersion.
      03.04.2013 С.А.Барсуков
    - Код задачи 27834. Исправлена проверка наличия обновления на локальных ресурсах.
      Изменены: UpdateAppUtils.
      03.04.2013 С.А.Барсуков
    - Исправлена проверка наличия обновления.
      Изменены: UpdateAppUtils.
      02.04.2013 С.А.Барсуков
    * Код задачи 27832. В ситуации, когда версия ТОР меньше минимально допустимой и
      пользователь отказывается от обновления, ему сообщают о невозможности работы с данной версией.
      Изменены: CheckAppVersion.
      02.04.2013 С.А.Барсуков
    - Код задачи 27824. Неверно проверялось наличие обновления в случае когда отсутствовал кэш и
      версия ТОР была меньше минимально допустимой.
      Изменены: UpdateAppUtils.
      02.04.2013 С.А.Барсуков
   P* Функция CheckNewVersion вынесена в интерфейсную часть.
      Изменены: UpdateAppUtils.
      02.04.2013 С.А.Барсуков
   P* Изменен интерфейс CanUpdate.
      Изменены: UpdateApp, UpdateAppUtils, CheckAppVersion.
      02.04.2013 С.А.Барсуков
    - Код задачи 27799. Исправлена проверка наличия обновления.
      Изменены: UpdateApp, UpdateAppUtils.
      01.04.2013 С.А.Барсуков
   P* Код задачи 27799. При возникновении исключений в обработчиках app_AfterUserLogIn
      пользователь "деавторизируется".
      Изменены: AuthCommon.
      01.04.2013 С.А.Барсуков
    * Код задачи 27791. Не производится лишняя проверка наличия обновления после авторизации
      пользователя.
      Изменены: UpdateAppUtils.
      01.04.2013 С.А.Барсуков
    - Код задачи 27784. Несанкционированный доступ после ввода пароля.
      Изменены: UpdateApp, UpdateAppUtils, CheckAppVersion.
      29.03.2013 С.А.Барсуков
    * Код задачи 27774. При проверке наличия обновления после логина, используется
      version.db.
      Изменены: UpdateApp, UpdateAppUtils, CheckAppVersion.
      29.03.2013 С.А.Барсуков
    * Код задачи 27762. Если при старте программы в каталоге обновления
      (из кэша) обнаружено обновление, то оно не считается критическим
      (можно не ставить).
      Изменены: UpdateApp.
      29.03.2013 С.А.Барсуков
    - Код задачи 27756. Не кэшировались пустые каталоги обновления
      (оставались старыми).
      Изменены: UpdateApp.
      29.03.2013 С.А.Барсуков
    * Код задачи 27755. Добавлено кэширование каталогов обновления при
      выходе пользователя.
      Изменены: UpdateApp.
      29.03.2013 С.А.Барсуков
    - Код задачи 27738. Если в OVD_UPD указывались "плохие" параметры, то возникала ошибка
      "Invalid SQlite3 database handle (14)".
      Изменены: UpdateAppUtils.
      29.03.2013 С.А.Барсуков
    * Код задачи 27684. Изменеые сообщения в протоколе загрузки обновлений.
      Изменены: UpdateAppUtils.
      27.03.2013 С.А.Барсуков
    > Обновление клиентского приложения:
      * Код задачи 27419. Добавлено кеширование каталогов обновления и
        запуск обновлений перед санкционированием.
      * Код задачи 27319. Изменен формат хранения версии (version.db).
      * Код задачи 27649. Функциональность по запуску обновления перенесена из update.exe
        в основное приложение.
      * Код задачи 27370. Изменен алгоритм поиска и запуска обновления.
      Изменены: CommonDSPUtils, UpdateApp, UpdateAppUtils, updatepkg.dpk.
      27.03.2013 С.А.Барсуков
 * Код задачи 27389. Добавлена проверка при вводе неверного кодификатора
   с выдачей сообщения.
   Изменены: SQLAppTriggers.
   10.04.2013 В.В.Матвеенко
 * Код задачи: 27213 Пункт "Поиск по тексту" в локальном меню переименован
   в "Выбрать по тексту" и помещен за пунктом "Ограничения...
   Изменены: frame_TableBrowser.xml.
   09.04.2013 В.В.Матвеенко
 * Код задачи: 27753 Адаптирован оптимальный размер поля формы ввода значения
   при написании запроса.
   Изменены: ReqEditor.
   09.04.2013 В.В.Матвеенко
                                --- * ---

DSP v3.6.107 от 09.04.2013
--------------------------

 P+ Код задачи: 27810. Добавлена возможность для прогесса вызова метода Update из
    скриптов, написанных на языке Python.
    Изменен: PyApp.
    09.04.2013 М.В.Пекшева
  - При освобождении контекста для исполнения скриптов на языке Python не
    прочищался словарь локальных и глобальных переменных, из-за чего на него
    даже после удаления контекста оставались ссылки, и провисала память.
    Изменен: pyutils.
    09.04.2013 М.В.Пекшева
 P- Код задачи 27909. Контроль составного ключа. Поиск СУКа в БД. Не
    кэшировалось отсутствие СУКа в БД.
    Изменены: CompoundErrorCheck.
    06.04.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.106 от 05.04.2013
--------------------------

 P* Код задачи: 27142. При загрузке обстановки чтение компонентов происходит
    с помощью LoadComponentFromStream, для того чтобы рассылалось событие
    app_PrepareComponent.
    Изменены: DockingDesktop.
    05.04.2013 М.А.Степанов
 P* Код задачи: 27142. Добавлена регистрация TContext.
    Изменены: SVCLCommon_Registration.
    05.04.2013 М.А.Степанов
                                --- * ---

DSP v3.6.105 от 04.04.2013
--------------------------

 P+ Код задачи 27809. Добавлена функция записи значения в Settings.
    Изменены: DBSettings.
    02.04.2013 А.Б.Хах
                                --- * ---

DSP v3.6.104 от 01.04.2013
--------------------------

 P* Код задачи: 27705. Добавлена функция ReadIntegerSettingFromDB.
    Изменены: DBSettings.
    01.04.2013 М.А.Степанов
 P* Код задачи 27744. Изменен алгоритм задержки отображения формы прогресса.
    Удален класс TProgressDelayHelper.
    Изменены: LibUtils, SProgress, SADProgress, DBGridSearch.
    01.04.2013 А.В.Шаров.
  * Код задачи 27573. Переработана технлогия ввода из справочника и мультивыбора.
      В расширенном заголовке листалки выбора располагается листалка РЕЗУЛЬТАТОВ
      выбора, которая синхронизируется с листалкой выбора по колонкам,
      вертикальному расположению, данным и действиям.
    Добавлены: SQLEllipsisSel, SyncLayouts, menu_SyncBrowser.xml.
    Изменены: ChoiceForm, CommonForms, DBEditFrame, DBGridColumnsLayout,
      DBGridLayout, DBInputCustomBLOB, DBObjectChoice, ExportUtils, form_DataChange,
      SDBGrid, SDBUtils, SVCLFormH, SVCLUtils, SyncLayouts, TableBrowser,
      SQLMultiSel, SVCLCommonSQL_cnstr, SVCLHT_cnstr, SVCLkbmMW_cnstr,
      SVCLOracle_cnstr.
    Удален: SDBGridColumnsLayoutDialog.
    01.04.2013 А.С.Лозовой
 B* Код задачи 27778. Локализовано локальное меню в просмотрщике ATViewer.
    Изменены: ATBinHex.
    01.04.2013 А.Б.Хах
 P- Код задачи: 27781. TSonarDBkbmMW_DataSet.OpenEmpty: открывался не
    пустой набор данных, а полный.
    Изменены: SonarDBkbmMW, SonarDBJava.
    29.03.2013 М.А.Степанов
 B> Код задачи 27725:
    * В окне службы сообщений изменен набор и заголовки отображаемых колонок.
      Добавлена колонка 'Тема'.
    - Добавлена адаптация элементов управления окна службы сообщений к устанавливаемому
      размеру шрифта.
      Изменены: form_Messages.xml, form_StdMainForm.xml, MessageService
      29.03.2013 М.А.Зайкин
BP* Код задачи 27692. Показ результатов выполнения отчета с шаблоном выделен в
    функцию ShowReportResult.
    Изменены: DBInputCustomBLOB, DBInputMethods, ReportUtils, SDBDataSets,
      SVCLCommon_cnstr.
    29.03.2013 А.Б.Хах
                                --- * ---

DSP v3.6.103 от 29.03.2013
--------------------------

 P* Код Задачи: 27741. Доработан алгоритм скрытия скрытия формы прогресса.
    Исправлены: SProgress.
    28.03.2013 А.В.Шаров
                                --- * ---

DSP v3.6.102 от 27.03.2013
-------------------------

 B- Код задачи 27702. В случае, если пользователю запрещено сохранять/загружать
    представление, не загружались представления листалок, уже сохраненные в базе.
    Изменены: LayoutManager, SVCLCommonSQL_cnstr.
    26.03.2013 А.Б.Хах
                                --- * ---

DSP v3.6.101 от 26.03.2013
-------------------------

  > Обновление клиентского приложения:
    * Код задачи 27419. Добавлено кеширование каталогов обновления и
      запуск обновлений перед санкционированием.
    * Код задачи 27319. Изменен формат хранения версии (version.db).
    * Код задачи 27649. Функциональность по запуску обновления перенесена из update.exe
      в основное приложение.
    * Код задачи 27370. Изменен алгоритм поиска и запуска обновления.
    Изменены: CommonDSPUtils, UpdateApp, UpdateAppUtils, updatepkg.dpk.
    26.03.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.100 от 26.03.2013
-------------------------

  * Код задачи 27672. Сохранять и загружать представление листалки можно только
    если спец. ключ находится в таблице Settings.
    Изменены: LayoutManager, DBSettings, SVCLCommonSQL_cnstr.
    26.03.2013 А.Б.Хах
                                --- * ---

DSP v3.6.99 от 22.03.2013
-------------------------

 P* Модуль UpdateAppUtils перенесен в отдельный пакет.
    Изменены: SVCLCommonSQL.dpk
    Добавлен: updatepkg.dpk.
    22.03.2013 С.А.Барсуков
 P* Обновлены модули библиотеки AnyDac до версии 6.0.9.
    Добавлены модули AnyDac для работы с СУБД Firebird, PostgreSql
    Выполнена адаптация наших модулей.
    Изменены: SVCLCommon_cnstr, SVCLOracle_cnstr
    22.03.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.98 от 22.03.2013
-------------------------

 P* В модулях AnyDac наши правки отмечены тегами SC
    Изменены: uAD.inc, uADCompClient, uADCompDataSet, uADDAptIntf,
    uADDAptManager, uADDatSManager, uADPhysCmdGenerator,
    uADPhysConnMeta, uADPhysIntf, uADStanResStr
    22.03.2013 М.А.Зайкин

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  21.03.2013 Д.И.Кобрусев
  ----------------------------------------------------------

 P* Код задачи 27626. Пара событий ev_DataSet_PrepareRowCommandDataSet и
    app_PrepareRowCommandDataSet заменена на две пары: ...Create... и
    ...Prepare....
    Изменены: SDBVCLUtils.

    Адаптация: Обработчики событий ev_DataSet_PrepareRowCommandDataSet и
    app_PrepareRowCommandDataSet, в которых строится набор данных для
    операции (параметр Target события), переделать в обработчики события
    ev_DataSet_CreateRowCommandDataSet / app_CreateRowCommandDataSet (с
    такими же параметрами). В случае построения набора данных событие
    снимать (выставлять Event.Done в True).
    Обработчики, которые наобр данных не строят, а производят настройку
    существующего, адаптировать не надо.
                                  * * *

  - Код задачи 24680. Из-за различий PosEx в 2.6 и в 3.6 она должна вызываться
    с другими параметрами.
    Изменены: ReportXLS.
    21.03.2013 А.Б.Хах
 P* Из TORUpdateDownloader перенесен объект для загрузки обновлений.
    Добавлены: UpdateAppUtils.
    21.03.2013 С.А.Барсуков
  * Код задачи: 27235. При выполнении отчета с шаблоном результат сохраняется
    во временном каталоге и удаляется при выходе из программы.
    Изменены: ReportUtils.
    21.03.2013 М.А.Степанов
                                --- * ---

DSP v3.6.97 от 21.03.2013
-------------------------

 P* Добавлен пакет curlpkg (обертка над libcurl.dll) (перенесен из TORUpdateDownloader).
    Добавлены: ThirdParty\curl\*.*.
    21.03.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.96 от 19.03.2013
-------------------------

 P- Код задачи: 25628. TSonarDBkbmMW_Connection, TSonarDBkbmMW_DataSet:
    Реализована возможность вызова произвольных DML, DDL запросов (см.
    ExecuteSQL), хранимых процедур и анонимных pl/sql блоков (см.
    ExecuteCallableStatement).
    Изменены: SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBQuery, kbmMWJavaDBServer, SonarDBJava,
      kbmMWCustomQueryService.
    19.03.2013 М.А.Степанов
  - Код задачи 27589. Фокус устанавливается на грид листалки.
    Изменены: TableBrowser.
    19.03.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.95 от 18.03.2013
-------------------------

  - После неудачной попытки авторизации при выходе из программы проседала память.
    Изменен: uGetUserData.
    18.03.2013 М.В.Пекшева
 P> Код задачи 27266. Изменено исполнение отчётов (RWF):
    + Реализованы объекты-исполнители высокого уровня. Нужны для
      подключения протоколирования.
    + Добавлена функция исполнения отчёта из хранилища.
    Изменены: DeskMenu_exec, ReportUtils.
    18.03.2013 Д.И.Кобрусев
  - Код задачи 27587. При обновлении, которое происходит при финише транзакции,
    если ни одно поле в наборе данных не было изменено, но был выставлен флаг
    Modified, то он сбрасывался.
    Изменены: RecordControl.
    15.03.2013 А.Б.Хах
 P* Код задачи: 24657. TSonarDBJava_DataSet: Добавлено получение кол-ва
    обработаных записей при выполнении DML запросов, добавлено исключение
    если при изменении, удалении не найдена нужная запись.
    Изменены: kbmMWJavaDBQuery, kbmMWJavaDBService.
    15.03.2013 М.А.Степанов
  - Код задачи: 27339. При чтении из БД значений строковых полей обрезались пробелы
    справа и слева от значения, проявлялось как невозможность отредактировать
    такую запись, т.к. в запрос на редактирование, в блок where попадало уже
    обрезаное значение.
    Изменены: SonarDBJava.
    15.03.2013 М.А.Степанов
                                --- * ---

DSP v3.6.94 от 14.03.2013
-------------------------

  - Код задачи 27446. Для чисел, значения которых не помещались в ячейку, в
    качестве значения выставлялась строка из состоящая из символа #.
    Изменены: ReportXLS.
    14.03.2013 А.Б.Хах
 P+ Код задачи 27479. Добавлена функция GetSQLParameters.
    Изменены: SonarDBIntf, CodeUtils.
    14.03.2013 А.Б.Хах
  - Код задачи 27381. Обязательность поля Нач.Данных приводила к невозможности
    сохранения записи.
    Изменены: SDBDataSets
    14.03.2013 Д.А.Бондаренко
  * Код задачи 27479. В объектах БД производились изменения в тех частях объекта,
    которые по факту не менялись (напр. при изменении записи события,
    производилась просадка записей в A_OBJEKT и OB_D_DOP).
    Изменены: DBObjects, AppTriggers.
    12.03.2013 А.Б.Хах
  - Код задачи 27512. Если в системе не установлен шрифт Sonar LConsole,
    то при показе результатов работы отчета с графическим предпросмотром,
    возникало сообщение об отсутствии шрифта Sonar LConsole и результаты
    не показывались. Не освобождалась память.
    Изменены: texteditor.
    12.03.2013 15:45 С.А.Барсуков
 B- Код задачи: 27486. В Тор, при выполнении адресной справки, в случае
    если текущая сессия был закрыта на сервере (из-за бездействия 15 мин.),
    выдавалось исключение '..Connection not open..'.
    P: TSonarDBkbmMW_Connection.RequestService:
       добавлена возможность переоткрыть сессию и повторить запрос
       если сессия была закрыта на сервере (параметр AReopenSessionIfClosed,
       по умолчанию True).
    Изменены: SonarDBkbmMW.
    11.03.2013 М.А.Степанов
  - Код задачи 26665. Теперь при закрытии соединения кеш бинарных данных
    освобождается корректно, без утечек памяти.
    Изменены: TableBinDataCache
    11.03.2013 М.А.Зайкин
  - Код задачи 27462. Умолчательные значения для узлов полей и значения для
    печати выставлялись и при первоначальной загрузке (а должны только при смене
    занчения пользователем).
    Изменены: rwfdesigner.
    11.03.2013 А.Б.Хах
 B- Код задачи 27478. При загрузке обстановки, в которой есть пустые
    запросы, не освобождалась память.
    P: При восстановлении запросов с пропуском пустых не освобождалась
       память - не освобождались пустые запросы.
    Изменены: uRecoverRequests.
    09.03.2013 Д.И.Кобрусев
 B* Код задачи 27459. Поддержана возможность перебора рабочих столов в контейнере,
    а также возможность задать активный рабочий стол. Ссылка на активное окно,
    на которое будет передан фокус при смене вкладки, теперь хранится как
    безопасная, т.к. кто-то может удалить все окна на неактивном рабочем столе.
    Изменены: MultitabbedDesktop, Desktop.
    07.03.2013 А.Б.Хах
 B- Код задачи 27469. В "Торе" при открытии карточки дополнения к событию
    из карточки события (по кнопке "Дополнительно") происходила ошибка:
    "MergeInfo для таблицы с алиасом "SB_D_TXT" не найден".
    P: Удаление ненужных слияний перенесено с момента загрузки
       представления на момент применения представления в листалке.
    Изменены: TableBrowser.
    07.03.2013 Д.И.Кобрусев
 P* Код задачи: 27045. Убран лишний вызов PrepareSQL при открытии
    набора данных.
    Изменены: SonarDBkbmMW.
    07.03.2013 М.А.Степанов
 P* Код задачи: 27045. Оптимизирована передача на клиент наборов данных,
    обычные наборы (не объекты БД) передаются без датасета посредника.
    Изменены: kbmMWSonarBinaryStreamFormat, kbmMWJavaDBServer.
    07.03.2013 М.А.Степанов
  * Код Задачи: 27458. Добавлена 2-х секундная задержка отображения формы
    прогресса.
    Изменены: SProgress, SADProgress, DBGridSearch.
    07.03.2013 14:45 А.В.Шаров
                                --- * ---

DSP v3.6.93 от 07.03.2013
-------------------------

 B- Код задачи: 27436. В Тор при сохранении записи O_ADRESS с полем
    'ДатаИзмен.' равной 02/08/2005, возникала ошибка 'Редактируемая запись
    была изменена другим пользователем.'.
    Изменены: DBObjects.
    06.03.2013 М.А.Степанов
 P* Код задачи 27416: Форма прогресса запроса выводится на экран через 2 сек
 P: Форма выводится на экран только в режиме amCancelDialog.
    Изменен: SADProgress
    05.03.2013 14:50 А.В.Шаров
                                --- * ---

DSP v3.6.92 от 04.03.2013
-------------------------

  > Код задачи: 27427.
    * В листалках пустые запросы не загружаются и не сохраняются.
    * В корневом узле запроса можно добавлять ограничения даже
      если узел недоступен по уровню пользователя.
    Изменены: TableBrowser, uRecorverRequest, ReqEditor.
    04.03.2013 М.А.Степанов
                                --- * ---

DSP v3.6.91 от 04.03.2013
-------------------------

 P- Код задачи 27429. Ошибка ORA-00600: internal error code, arguments:
    [kkqcscpopn_Int: 0] при выполнении запросов на повторяемость.
    Изменены: ReqConv.
    04.03.2012 И.В.Ковалев
                                --- * ---

DSP v3.6.90 от 04.03.2013
-------------------------

  - Код задачи 27432. Происходило EAV при загрузке запроса в узле отчета (для
    узлов отчета EnabledLinks = nil).
    Изменены: ReqDesigner.
    04.03.2013 А.Б.Хах
  * Код задачи 26551. Добавлена смена параметров печати, при смене типа поля отчета.
    Изменены: rwfdesigner.
    04.03.2013 А.Б.Хах
  * Код задачи: 27194. Устранено добавление записей в список отождествляемых
    через ENTER и пробел.
    Добавлен: ManualRowsSelect.
    Изменены: HandleRowCommands, SDBGrid.
    01.03.2013 А.В.Шаров
                                --- * ---

DSP v3.6.89 от 01.03.2013
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  28.02.2013 М.В.Пекшева
  ----------------------------------------------------------

  > Код задачи: 27358.
    * Для Oracle реализован простой авторизатор по таблице USERS.
   P* Изменено количество параметров для функции LoginToOracleDb. Теперь помимо
      имени схемы БД oracle передается так же ее пароль.
  Изменены: SonarDBJava, SVCLOracle_cnstr, kbmMWAuthorization, OraLogin.
  Добавлены: CommonAuthorization, uGetUserData.
  28.02.2013 М.В.Пекшева

  Адаптация: В двузвенных приложениях добавить еще один параметр командной строки:
  пароль для схемы Oracle, который затем передавать в функцию LoginToOracleDb
  для подключения к БД Oracle.
                                   * * *

  * Код задачи: 27358. Для двузвенных приложений администратору добавлена
    возможность устанавливать пользователю хеш-пароль.
    Изменены: SVCLkbmMW_cnstr, SVCLCommon_cnstr.
    28.02.2013 М.В.Пекшева
  > Код задачи 27016.
    * Если при сохранении обстановки на ней размещены элементы, которые
      невозможно сохранить, то выдается соответствующее сообщение.
    * Редактор отчетов теперь показывается не как отдельное окно, а как окно в
      новой вкладке.
    Изменены: commenus, DeskMenuCommon, DeskTop, DockingDesktop, rwfdesigner,
      DeskMenu_storage.
    28.02.2013 А.Б.Хах
                                --- * ---

DSP v3.6.88 от 28.02.2013
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  27.02.2013 С.А.Барсуков
  ----------------------------------------------------------

 P* Модуль перенесен из утилиты TORUpdateDownloader. Функции BuildSimpleDialogForm,
    BuildSimpleDialogWithFrame перенесены из CommonForms в CommonDSPUtils.
    Добавлены: CommonDSPUtils.
    Изменены: CommonDSPUtils, CommonForms, enterrecord, FormH_DskStrg,
    HTNetCnfHandlers, Login, ReqEditor, TextBox.
    27.02.2013 С.А.Барсуков

    Адаптация: Если не будет компилироваться из-зи отсутствия BuildSimpleDialogForm,
    BuildSimpleDialogWithFrame, то добавить в uses CommonDSPUtils.
                                   * * *

 P* Код задачи 27236. Авторизация для подключений kbmMW. Выход
    пользователя. Событие app_AfterUserLogout рассылается до отключения от
    сервера (было: после).
    Изменены: kbmMWAuthorization.
    28.02.2013 Д.И.Кобрусев
  * Код задачи 27388. Устранено использование улилиты File_Hash.exe в
    dbd_to_ddl.py и upgrade_db.py
    Изменен: common_utils.py
    27.02.2013 А.В.Шаров
  * Код задачи 27365. Расчет очередного значения поля кода осуществляется теперь
    только если: в таблице присутствует поле СБК (т.е. таблица является
    кодификатором), поле является кодом кодификатора, поле уникальное и поле не
    является внешним ключом.
    Изменены: CodeIncrementHandler.
    27.02.2013 А.Б.Хах
  + Код задачи 27303. Если произошла ошибка при подстановке значения в ячейку,
    то в информацию об ошибке дописывается имя листа и номер ячейки, в которой
    произошла ошибка.
    Изменены: ReportXLS.
    26.02.2013 А.Б.Хах
 P* Подправлены скрипты сборки так, чтобы под IDE можно было собираться без пакетов.
    Изменены: PreviewDocForm, svclcommon.py.
    26.02.2013 А.Б.Хах
  * Код задачи 24680. Поддержаны формулы в отчетах по шаблону Excel.
    Изменены: ReportXLS.
    26.02.2013 А.Б.Хах
  - Код задачи 26735. При поиске свободных значений для цифровых полей последнее
    значение в выборке попадало в найденные свободные значения.
    Изменены: MissedValues.
    25.02.2013 А.Б.Хах
  * Исправлены ошибки в сообщении о возможности обновления программы.
    Изменены: UpdateApp.
    25.02.2013 А.Б.Хах
 P* Код задачи: 26870. при загрузке описателя всем полям, по которым построено
    ограничение первичный ключ, выставляется флаг уникальности поля.
    Изменен: DBD2Schema.
    25.02.2013 М.В.Пекшева
  * Код задачи 27300. Добавлена карточка проектной конфигурации для
    SQL-ориентированных проектов (карточка добавляет поле "Максимальное кол-во
    записей в листалке").
    Добавлены: frame_SQLConfig.xml.
    Изменены: SQLConfig, frame_kbmmwconfig.
    25.02.2013 А.Б.Хах
                                --- * ---

DSP v3.6.87 от 22.02.2013
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  21.02.2013 А.Б.Хах
  ----------------------------------------------------------

  P* Код задачи 27298. Имена полей в объектах БД теперь квалифицированы
    следующим образом: {<Имя части>}.<Имя поля>.
    Изменены: QualifiedName, DBObjects, DBObjectSpecs, SonarDBIntf, SVCLCommon_cnstr0.
    21.02.2013 А.Б.Хах

    Адаптация: В карточках и др. сериализуемых вещах нужно заменить квалицированные
    простым образом (через точку) имена полей объектов БД на квалицированныме
    новым образом (с фигурными скобками) имена.
                                   * * *

  > Код задачи 27157.
   P- При создании TDataSetLayout JoinInfo и SortInfo получались
      у DataSet'а как ссылки (а не копии). Из-за чего нельзя было посредством
      TDataSetLayout без последствий сделать копию представления листалки.
   P* Выделен класс TInternalTableBrowserLayout, для того, чтобы можно было
      скопировать представление листалки из одной в другую.
    Изменены: TableBrowser, SonarDBIntf.
    22.02.2013 А.Б.Хах
 P* Код задачи: 27262. Добавлены перегруженные варианты функции
    GetSelectStrByTime для двух граничных значений.
    Изменен: SDBUtils.
    20.02.2013 М.В.Пекшева
                                --- * ---

DSP v3.6.86 от 19.02.2013
-------------------------

  + Код задачи 27284. Добавлена установка локали текущего потока.
    Изменены: SVCLCommon_cnstr0.
    18.02.2013 А.Б.Хах
 P* Код задачи 25739. Для подсчета MD5 используется MD5AdvApi32 вместо uMD5.
    Изменены: PasswordHash, uGetFileHash.
    Добавлены: MD5AdvApi32.
    Удалены: uMd5.
    18.02.2013 А.В.Шаров
  - Исправлена ситуация в службе сообщений, когда счетчик времени при долгой
    непрерывной работе программы (более 49 суток) мог переполниться.
    Изменены: MessageService.pas
    18.02.2013 М.А.Зайкин
 P* Код задачи 27286. Устранено появление песочных часов при работе с
    базами Sqlite.
    Изменены: uConnectToSQLite.
    15.02.2013 И.В.Ковалев
  - Под HyTech, при выходе в справочник из пустого поля, набор данных листалки
    выбора оставался закрытым.
    Изменены: SdbVcl
    15.02.2013 Д.А.Бондаренко
  - Код задачи 27276. Обработчик добавляющий поля в список заказанных полей
    набора данных отрубал другие обработчики, что приводило к тому, что
    стандартный обработчик листалки не срабатывал и поля из списка визуализации
    не добавлялись в список заказанных полей. Что, в свою очередь, приводило к
    тому, что все слияния удалялись.
    Изменены: DBFieldsLayout, DBGridLayout, TableBrowser.
    14.02.2013 А.Б.Хах
  - Код задачи 27041. Загруженные запросы на повтояряемость группы полей
    или с группировкой ("в группе по") работали неверно: если нижняя
    граница количества повторений - одно- или двухзначное число, запрос
    возвращал пустую выборку; если трёх- и более значное, вместо этого
    числа использовалось другое.
    Изменены: ReqFactory.
    14.02.2013 Д.И.Кобрусев
                                --- * ---

DSP v3.6.85 от 14.02.2013
-------------------------

  * Код задачи 27106. Для параметра проектной конфигурации "Частота обновления
    данных на экране" указана единица измерения.
    Изменены: frame_fconfig.xml
    13.02.2013 Д.А.Бондаренко
  > Код задачи 21586.
   P* Имя таблицы теперь есть у любой части структурной части объекта БД.
   P* Описатели полей структурной части объекта БД теперь являются не просто
      описателями полей из соответствующих частей объекта БД, а являются
      обертками над ними и именование полей в описателе объекта БД совпадает с
      таковым в самом объекте БД.
   P+ Добавлена функция GetTableNameByFieldName.
   P* Регистрация структурной части объекта производится на объекте описателя БД
      (это позволяет держать ссылки на ввиде интерфейсов описателя).
    Изменены: DBObjectSpec, DBObjectPartSpecs.
    13.02.2013 А.Б.Хах
  * Добавлена возможность при выходе в раздел загружать представления.
    Изменены: ChoiceForm, Sections.
    Добавлен: LoadFormByLayout.
    12.02.2013 М.В.Пекшева
  - Код задачи 27090. При удалении лишних слияний удалялись слияния, необходимые
    для полей в визуализации.
    Изменены: TableBrowser, DBFieldsLayout.
    12.02.2013 А.Б.Хах
  - Код задачи: 27170. После закрытия диалога выбора файла экранная форма теряла
    фокус.
    Изменен: forms.
    12.02.2013 М.В.Пекшева
  * Код задачи 27090. Теперь перед/после сохранения/загрузки листалки или формы
    листалки осуществляется удаление лишних слияний.
    Изменены: DBFieldsLayout, DBGridLayout, SDBGridColumnsLayoutDialog, SDBGrid,
      SonarDBIntf, ReqEdit, TableBrowser, MissedValues, SQLMultiSel.
    12.02.2013 А.Б.Хах
  * Код задачи: 27183. Реализовано выравнивание текста в полях в соответствии с
    настройкой выравнивания этого поля в мете.
    Изменены: DBCtrls, SControls.
    11.02.2013 М.В.Пекшева
 P* Код задачи 26025. Добавлена проверка fDBMS для соединения TSonarDB_Connection.
    Изменены: SdbVcl
    11.02.2013 М.А.Зайкин
 P> Код задачи 26025
    * Выполнена адаптация к изменению в интерфейсе соединения.
    * Добавлена рассылка и обработка событий app_PrepareConnection, ev_CustomConnection_CloseConnection.
    Изменены: SonarDBIntf, SdbVcl, SonarDBkbmMW, SonarDBJava, sdboracle
    11.02.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.84 от 08.02.2013
-------------------------

  - Код задачи 26930. При дублировании записи, если в список предустановок
    попадало поле, не содержащееся в наборе данных, происходила ошибка.
    Изменены: SDBVCLUtils
    08.02.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.83 от 08.02.2013
----------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  07.02.2013 М.А.Степанов
  ----------------------------------------------------------

  * Код задачи: 26864. Добавлена возможность обновления из каталога в
    локальной сети района, в который обновления скачиваются автоматически.
    Изменены: UpdateApp, CheckAppVersion.
    07.02.2013 М.А.Степанов

    Адаптация: Если не будет компилироваться из-за несовместимости
    интерфейса RunUpdate, CanUpdate, CheckVersionCompatible, удалить
    параметры в которых передаются ключи для каталога обновлений, каталог
    задавать в обработчике события app_GetAppUpdateDirectory.
                                   * * *

  * Код задачи 25666. Изменен препросмотр результата выполнения отчетов
    (взят из 2.6).
    Изменены: Renders, texteditor, form_TextEditor.xml, SVclCommon.dpk,
      svclcommon.py.
    Добавлены: JvPrvwDoc, JvPrvwRender, PreviewConst, PreviewDocForm,
      PreviewDocForm, SPrvwRender.
    08.02.2013 С.А.Барсуков
                                --- * ---

DSP v3.6.82 от 06.02.2013
----------------------------

  - Неправильно обрабатывались горячие клавиши загрузки обстановки в новую
    вкладку (Ctrl+Shift+F10). Для них добавлены скрытые элементы меню.
    Изменены: dm_WindowsMenu.xml, StdMainForm
    06.02.2013 Д.А.Бондаренко
 P- Не освобождалась память из под созданного экземпляра объекта TOpenDialog в
    методе TDBFileInputControl.OpenClick.
    Изменен: DBFileInputControl.
    06.02.2013 М.В.Пекшева
  > Код задачи 26915.
    - Форма выбора представления не работала на новой структуре Layouts.
   P* СУБД-зависимые части формы выбора представления выделены в
      соответствующие модули пакетов HyTech и CommonSQL.
    Добавлены: Frame_ChoicePresentation_Layout.xml,
      Frame_ChoicePresentation_LayoutHT.xml
    Изменены: Presentation, SQLLayoutManager, LayoutManagerHt,
      form_ChoicePresentation.xml
    06.02.2013 Д.А.Бондаренко
  * Код задачи 24699. Получение кол-ва записей для узла отчета теперь
    выполнятеся без выполнения лишнего запроса.
    Добавлены: RecordCounter.
    Изменены: commenus, SonarDBIntf, DataSetLayoutSQLConvertor,
      DataSetRequestBuilder, DeskMenu_storage, OraRwfExec, OraSQLSupport,
      SonarDBkbmMW, SonarDBJava, sdboracle.
    05.02.2013 А.Б.Хах
                                --- * ---

DSP v3.6.81 от 05.02.2013
----------------------------

  * Код задачи 27146. Подключена новая карточка Хранилища.
    Изменены: frame_DSKSTRG.xml
    05.02.2013 Д.А.Бондаренко
  - Не работал регистронезависимый инкрементный поиск по булевскому полю.
    Изменен: ReqConv.
    04.02.2013 М.В.Пекшева
  - Код задачи: 27119. В трехзвенном приложении при выходе в листалку в
    поле выбора лишний раз выполнялся запрос.
    Изменены: ChoiceForm, SonarDBkbmMW, SonarDBJava, SDBOracle.
    04.02.2013 М.А.Степанов
  * Код задачи 27140. Убрана надпись "Идёт загрузка" при загрузке данных в
    бинарные поля.
    Изменены: DBInputCustomBLOB
    04.02.2013 Д.А.Бондаренко
                                --- * ---

DSP v3.6.80 от 01.02.2013
----------------------------

 P- Код задачи 27109. Фоновое применение прав к локальному меню листалки могло
    приводить к Несанкционированному доступу.
    Изменены: SVCLCommon_cnstr
    01.02.2013 Д.А.Бондаренко
  - Код задачи 27090. При изменении представления листалки не удалялись ненужные
    слияния.
    Изменены: DBGridLayout, SDBGridColumnsLayoutDialog, SDBGrid.
    01.02.2013 А.Б.Хах
  - Код задачи 27077. Не верно работали отчеты. В некоторых случаях дублировались
    данные.
    Изменены: OraRwfExec.
    01.02.2012 С.А.Барсуков
  * Код задачи 27066. Команда меню Сервис->Открыть таблицу... (Ctrl+Alt+T)
    теперь доступна только пользователям с уровнем доступа 0 и 1.
    Изменены: StdMainForm
    31.01.2013 Д.А.Бондаренко
  > Код задачи 27080:
     - Не сохранялся отчет с шаблоном в хранилище.
    P* Переимеована функция сохранения архива, выполнена адаптация модулей.
    Изменены: commenus, ReportTemplateContainer, DeskMenu_storage, FormH_DskStrg
    31.01.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.79 от 31.01.2013
-------------------------

 P* Код задачи 24699. Добавлены функции TryGetINeedCalcRecordCount и
    TryGetTotalRecordCount и часть кода переведена на их использование.
    Изменены: SonarDBIntf, DeskMenu_cache, OraRwfExec.
    31.01.2013 А.Б.Хах
  * Код задачи 27080. Добавлен контроль содержимого архива при загрузке из потока.
    Изменен: ReportTemplateContainer
    31.01.2013 М.А.Зайкин
  - При попытке отредактировать достаточно длинное поле блочным редактором для
    последнего строилось поле ввода, выходящее за пределы формы, которой это
    поле ввода контекстно принадлежит.
    Изменен: TableBrowser.
    30.01.2013 М.В.Пекшева
  * Код задачи 27057. Поле проектной конфигурации "Время ожидания ответа от
    сервера", в карточке теперь показывается с тысячными разделителями.
    Изменены: frame_kbmmwconfig.xml.
    30.01.2013 А.Б.Хах
  - Код задачи 27057. В фабрике описателя поля, из целых типов полей учитывались
    только indInteger, а из вещественных - только indFloat.
    Изменены: MemoryDataSource.
    29.01.2013 А.Б.Хах
  - Код задачи 26980. При проверке необходимости обновления также учитываются пункты меню
    с установленным признаком 'НеВыбирать'. При кешировании - такие пункты не отбираются.
    29.01.2013 М.А.Зайкин
  * Произведена замена компонента для TDBEditFrame, отвечающего за выбор файла или
    папки. Теперь данную функциональность реализует "наш " компонент, а не
    компонент из библиотеки JVCL.
    Изменены: DBInputMethods, DBObjectChoice.
    Добавлены: DBFileInputControl, ArrowedBitBtn.
    28.01.2013 М.В.Пекшева
  - Код задачи: 26901. При сохранении запроса в хранилище могла возникать
    ошибка: "Индекс для объекта типа tGrid вне границ."
    Изменены: DB.
    28.01.2013 М.А.Степанов
                                --- * ---

DSP v3.6.78 от 25.01.2013
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  24.01.2013 М.В.Пекшева
  ----------------------------------------------------------

 P* Теперь в модуле SVCLCommonSQL_cnstr подключается модуль SVCLCommon_cnstr, а в
    модуле SVCLOracle_cnstr подключается модуль SVCLCommonSQL_cnstr.
    Изменены: SVCLOracle_cnstr, SVCLCommonSQL_cnstr.
    24.01.2013 М.В.Пекшева

    Адаптация: Пару подключаемых модулей SVCLCommon_cnstr.pas,
      SVCLCommonSQL_cnstr.pas заменить на подключение модуля
      SVCLCommonSQL_cnstr.pas. В двухзвенке достаточно подключить модуль
      SVCLOracle_cnstr.pas.
                                   * * *

 B- Код задачи 26998. Для условия запроса вида условие на значение параметра,
    wSize = 0, и в случае кода кодификатора (после вычитания 1) размер значения
    в условии запроса становился равным 65534, что в дальнейшем приводило к
    прописи по памяти и свалу всего приложения.
    Изменены: VCLReq, SDBDataSets, deskmenuexec, oradeskmenu, uParamValue.
    24.01.2013 А.Б.Хах
  - Код задачи 26786. Горячие клавиши расширений листалки могли срабатывать,
    даже если активной была другая листалка.
    Изменены: frame_calcrecordcount.xml, frame_codegrid.xml,
      frame_TableBrowserLayout.xml, menu_UsersPlugin.xml,
      frame_TableBrowserMissedValues.xml, frame_TableBrowserComplement.xml,
      frame_LocalMenuEx_TableBrowser.xml
    24.01.2013 Д.А.Бондаренко
  > Код задачи 26778
    - Неправильно рассчитывалась ширина разделителя с меткой (длинный текст
      метки обрезался по краям).
   P* Общая часть поддержки разделителя меню обстановок с меткой выделена в
      модуль DeskMenuCommon.
    Изменены: DeskMenuCommon, DeskMenu_build, deskmenu
    24.01.2013 Д.А.Бондаренко
 >Код задачи 26914:
  P+ Реализован класс TReportTemplateContainer для поддержки работы с архивом отчета по-шаблону.
  P* Выполнена адаптация модулей к использованию класса TReportTemplateContainer.
     Добавлены: ReportTemplateContainer
     Изменены: SVclCommon.dpk, commenus, DeskMenuDBC, DeskMenu_exec, DeskMenu_storage, FormH_DskStrg
     24.01.2013 М.А.Зайкин
 P* Метод TSonarConnection.DoGetNextSequenceValue объявлен как виртуальный.
    Изменен: SConnection.
    23.01.2013 М.В.Пекшева
  + Код задачи 26914. Добавлен запрос на перезапись существующего в хранилище шаблона.
    Изменены: DeskMenu_storage
    22.01.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.77 от 22.01.2013
-------------------------

 B* Код задачи 26987. Подключена новая карточка Меню обстановок.
    Изменены: frame_DESKMENU.xml
    22.01.2013 Д.А.Бондаренко
 B+ Код задачи 26914. Добавлена возможность загрузки RWF-отчета из архива 7z в хранилище,
    добавлена возможность сохранения RWF-отчета в архив 7z в хранилище.
    Изменены: commenus, DeskMenuCommon, DeskMenuDBC, DeskMenu_exec, DeskMenu_storage
    21.01.2013 М.А.Зайкин
 B+ Добавлен модуль uCreateArchive. Выполнена адаптация модулей по работе с архивами.
    Добавлены: uCreateArchive
    Изменены: DeskMenu_exec, FormH_DskStrg, SVclCommon.dpk
    18.01.2013 М.А.Зайкин
 B* Код задачи 26897: При выборе шаблона отчета *.RTF или *.XLS используется один фильтр.
    Изменены: frame_SelectionReportAndTemplateFiles.xml
    18.01.2013 М.А.Зайкин
                                --- * ---

DSP v3.6.76 от 22.01.2013
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  18.01.2013 А.Б.Хах
  ----------------------------------------------------------

BP- Из-за циркулярных зависимостей не компилировался DSP.
    Изменены: FieldValueUtils, SDBUtils.
    18.01.2013 А.Б.Хах

    Адаптация: Если не будет компилироваться из-за ненахождения GetSelectStr
      (варианта, работающего с FieldValue), то подключить модуль SDBUtils.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  16.01.2013 М.А.Степанов
  ----------------------------------------------------------

  * Код задачи: 26862. Алгоритм предустановки при добавлении записи кода
    кодификатора являющегося уникальным ключом (код в DESKMENU) сделан СУБД
    независимым.
    Модуль SetupCodes переименован в CodeIncrementHandler и вынесен в SonarVCL\Common.
    Удалены: SetupCodes.
    Добавлены: CodeIncrementHandler.
    16.01.2013  М.А.Степанов

    Адаптация: Если не будет компилироваться из-за ненахождения модуля SetupCode,
    удалить его использование, т.к. нужная функциональность подключается в SVCLCommon_cnstr.
                                   * * *

BP* Код задачи 26424: Подключены горячие клавиши для закрытия окна выбора файлов
    отчета с шаблоном. Добавлена проверка наличия библиотеки 7z.dll.
    Изменены: FormH_DskStrg, frame_SelectionReportAndTemplateFiles.xml
    17.01.2013 М.А.Зайкин
BP* Код задачи 26424: В модуль FileCtrl внесены изменения, для позиционирования на заданную
    папку при вызове функции SelectDirectory
    Изменены: FileCtrl
    17.01.2013 М.А.Зайкин
 B+ Код задачи 26868. Добавлены контроли доступности/заполненности полей в
    карточке Меню обстановок.
    Изменены: DeskMenuDBC, FormH_DeskMenu
    21.01.2013 Д.А.Бондаренко
 B- Код задачи 26790. Под Windows XP не сохранялись обстановки, в названии
    которых присутствовали специальные символы.
    Изменены: sonarsys, DeskTop
    17.01.2013 Д.А.Бондаренко
 B> Код задачи 26423.
    + Добавлена возможность загрузки/сохранения обстановок, запросов и отчётов
      в хранилище меню обстановок.
    + Добавлены команды меню Отчёты->Создать и Отчёты->Загрузить из хранилища.
    * Удалена команда загрузки обстановки в новую вкладку. Вместо неё добавлена
      проверка состояния клавиши Shift.
    * Поле Ресурс в карточке Меню обстановок теперь скрывается и очищается при
      недоступности.
    * В карторче Хранилища Изменено сообщение об очистке бинарного поля.
   P+ Добавлена регистрация класса TTBXButton.
    Добавлены: DeskMenuCommon, DeskMenu_storage
    Изменены: SVclCommon.dpk, SVCLCommonSQL.dpk, commenus, DeskTop,
      DockingDesktop, ReqDesigner, rwfdesigner, StdMainForm, FormH_DeskMenu,
      FormH_DskStrg, SVCLCommonSQL_cnstr, tblib_registration,
      dm_ReportsMenu.xml, dm_WindowsMenu.xml, frmReqTree.xml, rwf_form.xml,
      frame_DESKMENU.xml, frame_DSKSTRG.xml
    17.01.2013 Д.А.Бондаренко
 B* Код задачи 26424:
    P* Для загрузки отчета с шаблоном в хранилище подключена форма выбора файлов.
    P* При сохранение отчета с шаблоном из хранилища происходит разархивация в указанную папку.
    Добавлены: frame_SelectionReportAndTemplateFiles.xml
    Изменены: DBInputMethods, DeskMenu_exec, FileCtrl, FormH_DskStrg
    17.01.2013  М.А.Зайкин
 P* Код задачи: 26853. Изменен способ получения следующего номера
    последовательности таблицы. Теперь номер получается через обработку события
    TEvent_SonarConnection_GetNextSequenceValue.
    Изменены: SConnection, SonarDBJava, SDbOracle.
    21.01.2013 М.В.Пекшева
 P* SVCLCommon_Cnstr.hnd_CreateForm: добавлена установка Event.Done, так
    как если вдруг где-то порядок подключения обработчиков будет перепутан и
    первым вызовут данный обработчик то будут непонятные ошибки т.к.
    получиться что форму создадут дважды.
    Изменены: SVCLCommon_Cnstr.
    21.01.2013 М.А.Степанов
  - Код задачи: 26924. При подгрузке запросов с проекцией,
    где последняя таблица проекции отсутствовала в БД,
    выдавалось исключение "Загрузка экземпляра tLimitReq не найдена подсхема",
    теперь вместо исключение выдается сообщение о ненахождении нужной таблицы.
    Изменены: ReqFactory.
    21.01.2013 М.А.Степанов
 B* Код задачи 26971. Теперь в случае конфликта предустановок, помимо
    конфликтующего значения, выдается и расшифровка, если это возможно.
    Изменены: RecordControl, ObjectDescriptions, SVCLCommon_cnstr.
    21.01.2013 А.Б.Хах
 B- Код задачи 26968. Конфликты предустановок, которые были заданы на уровне
    скроллируемого RecordController'а (читай листалки), не отрабатывались, т.к.
    конфликты отрбатываются только при добавлении записи (т.е. на уровне
    редактируемого RecordController'а (читай, карточки)).
    Изменены: RecordControl.
    21.01.2013 А.Б.Хах
 B- Код задачи: 26929. При открытии листалок с вещественными числами могла
    возникать утечка памяти.
    Изменены: FMTBcd.
    20.01.2013 М.А.Степанов
BP* Код задачи 26552. Введено явное понятие для предустановки - предустановка
    не терпящая конфликтов. В случае, если значение такой предустановки не
    совпадет со значением любой другой предустановки, то будет запрещено
    вводить или дублировать запись с выдачей соответствующего сообщения.
    Изменены: RecordControl.
    18.01.2013 А.Б.Хах
 B+ Код задачи 26905. Подключена карточка DM_ALIAS.
    Добавлены: frame_DM_ALIAS.xml
    Изменены: SVCLCommonSQL_cnstr
    18.01.2013 Д.А.Бондаренко
  * Код задачи 24673. Листалка с дубликатами: в случаях, когда набор
    данных карточки и листалка с дубликатами для разных таблиц,
    кнопка "Перейти к ..." становится недоступной.
    Изменены: CompoundErrorHandle
    18.01.2013 Е.В.Михайлов
                                --- * ---

DSP v3.6.75 от 16.01.2013
-------------------------

 B* Код задачи 26841. Возвращение фокуса в компонент справочника после
    выбора из списка перенесено в обработчик по умолчанию события
    app_DBObjectChoice_EllipsisClick.
    Изменены: DBObjectChoice
    16.01.2013 Е.В.Михайлов
 B* Отменены изменения по задаче 26863.
    Изменены: frame_DESKMENU.xml
    16.01.2013 Д.А.Бондаренко
 B* Код задачи 26863. Подключена новая карточка Меню обстановок.
    Изменены: frame_DESKMENU.xml
    15.01.2013 Д.А.Бондаренко
  * Код задачи 26815. Теперь при выборе поля связи имена подлитых полей
    указываются квалифицированные, т.е. с указанием имени таблицы.
    Изменены: ReqFieldViewer.
    14.01.2013 А.Б.Хах
  - Код задачи: 26812. При открытии карточки на добавление, не проверяется
    открыта ли уже карточка на данную запись.
    Изменены: form_DataChange.
    14.01.2013 М.А.Степанов
                                --- * ---

DSP v3.6.74 от 14.01.2013
-------------------------

 P* Код задачи 26494. В группу функций GetSelectStr добавлен
    необязательный параметр (если параметров 2 - то 2 необязательных
    параметра), управляющий трансляцией в sql граничного значения. Для
    функций, в которые передается набор данных (DataSet) или поле (TField)
    значение этого параметра по-умолчанию соответствует трансляции в sql в
    виде параметра, в остальных случаях - в виде значения.
    Изменены: SDBUtils.
    11.01.2013 И.В.Ковалев
                                --- * ---

DSP v3.6.73 от 11.01.2013
-------------------------

 B- Код задачи 26769. При вводе в разделе не устанавливаются обработчики
    препросадки мастера, если был подменен набор данных раздела.
    Ошибка проявляется в карточке "Лица": при вводе в разделе "Розыск"
    не происходит препросадки записи в карточке.
    Изменены: MasterDetailHandlers
    11.01.2013 Е.В.Михайлов
  - Код задачи: 26242. Если развернуть окно текстовых бин.данных по F5
    подождать закрытия соединения на сервере по бездействию, отредактировать
    текст, сохранить, затем снова отредактировать и попытаться сохранить, то возникала
    ошибка 'Редактируемая запись была изменена другим пользователем.'.
    Изменены: SonarDBkbmMW.
    11.01.2013 М.А.Степанов
 P* Код задачи: 26776. При возникновении ошибок при закрытии сессии при
    уничтожении соединения могла неосвобождаться память.
    Изменены: SonarDBkbmMW, kbmMWJavaDBServer, SonarDBJava.
    10.01.2013 М.А.Степанов
  * Для утилиты extract_dbd.py обеспечена возможность запуска в зависимости
    от архива dbd_utils_lib.zip.
    Изменен: extract_dbd.
    10.01.2013 М.В.Пекшева
  + Код задачи: 26589. Добавлено ограничение видимости записей по
    категории доступа.
    Изменены: AuthUtils, ScrollingSynchronizer, DataSetInternalRequests,
      DataSetRequestBuilder, kbmMWAuthorization, SonarDBkbmMW,
      kbmMWSonarServiceConsts, kbmMWJavaDBServer, SonarDBJava.
    09.01.2013 М.А.Степанов

DSP v3.6.72 от 09.01.2013
-------------------------

  - Код задачи 26568. При открытии нескольких листалок, связанных в цепочку,
    листалки, начиная с 4ой, не открывались. (предыдущее исправление откачено,
    реализовано по другому).
    Изменены: MasterDetail, MasterDetailHandlers, uIdleOpenTable.
    29.12.2012 М.А.Степанов
BP* Код задачи 26685. Общая часть карточки (MemoryDataSource во внешних ссылках)
    проектной конфигурации вынесена в отдельный модуль данных.
    Добавлены: dm_config.xml.
    Изменены: frame_fconfig.xml, frame_kbmmwconfig.xml.
    28.12.2012 А.Б.Хах
 B* Код задачи: 26685. Добавление системных настроек Java сервиса "Время
    ожидания ответа от сервера"
    Добавлены: frame_kbmmwconfig.xml, SonarkbmMWJavaSrvPrjConfig,
      SonarkbmMWJavaSrvSettings.
    Изменены: SVCLkbmMW_cnstr.
    26.12.2012 Д.А.Илюшкин
  - Код задачи 26568. При открытии нескольких листалок, связанных в цепочку,
    листалки, начиная с 4ой, не открывались.
    Добавлены: uIdleOpenTable.
    Изменены: MasterDetail, MasterDetailHandlers, SDBVCLUtils, TableBrowser,
      TableBrowserForms, TableDataSource, TextBox.
    28.12.2012 А.Б.Хах
                                --- * ---

DSP v3.6.71 от 28.12.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  27.12.2012 Д.А.Бондаренко
  ----------------------------------------------------------

 P* Код задачи 21738. Изменён интерфейс создания расширений листалки. Функция
    GetTableBrowserPlugIn теперь создаёт объект нужного типа, если он ещё не
    был создан. Конструктор класса TTableBrowserPlugIn сделан виртуальным.
    Изменены: AuthFormH, LayoutManager, TableBrowser, SVCLCommonSQL_cnstr,
      FullInfo, SVCLHT_cnstr, SVCLkbmMW_cnstr.
    27.12.2012 Д.А.Бондаренко

    Адаптация: Конструкторы классов, наследуемых от TTableBrowserPlugIn нужно
      объявить как перекрытые. Вместо кода типа
        plugIn := GetTableBrowserPlugIn(Browser, TMissedValuesPlugIn);
        if not Assigned(plugIn) then
          TMissedValuesPlugIn.Create(Browser);
      теперь следует писать
        GetTableBrowserPlugIn(Browser, TMissedValuesPlugIn);
                                   * * *

 P- Ошибка при проверке версии программы по таблице Settings.
    Изменены: DBSettings, UpdateApp.
    27.12.2012 А.Б.Хах
  - Код задачи 26440. В генераторе отчета для мемо поля указаны флаги
    "Не обрезать справа" и "Форматировать". Если в содержимом поля есть переводы
    строк, то в конце к содержимому поля добавляется #0.
    Ошибка проявляется в Tasks при выводе отчета Заявки: для тех записей,
    в которых в описании заявки были переводы строк, в поле TEXT выгоняется как
    содержимое этого поля, так и содержимое всех последующих полей.
    Изменены: Type2Str
    27.12.2012 Е.В.Михайлов
  - Не отрабатывалась ситуация изменения значения метки для контроллеров типа
    TDBCheckBox в случае, когда TCaptionLayout равен CaptionLayout_Absent.
    Изменены: SControls, DBEditFrame.
    27.12.2012 М.В.Пекшева
 P- Пустое значение, возвращённое функцией GetDataSetFields (если "заказаны"
    все поля), могло приводить к EAV.
    Изменены: DBGridLayout, ReqEdit
    26.12.2012 Д.А.Бондаренко
                                --- * ---

DSP v3.6.70 от 26.12.2012
-------------------------

  + Код задачи 26682. Добавлена возможность запуска алгоритмов с помощью
    меню обстановок.
    Добавлены: DeskMenu_algorithms
    Изменены: DeskMenuDBC, DeskMenu_exec, FormH_DskStrg, SVCLCommonSQL.dpk
    25.12.2012 Д.А.Бондаренко
                                --- * ---

DSP v3.6.69 от 25.12.2012
-------------------------

  > Код задачи 26639.
   P* Устранено дублирование обработчиков TEnsureFieldsPresent и TDSHFieldsFilter.
   P* Добавлен перегруженный вариант функции SelectByReqStr, в которую можно
      передать список полей, которые должны попасть в набор данных.
   P+ Добавлены функции [Try]ReadBLOBSettingFromDB, возвращающие содержимое
      BLOB поля по ключу.
    Перенесены: SVCLCommon\DBSettings -> SVCLCommonSQL\DBSettings,
      SVCLCommon\UpdateApp -> SVCLCommonSQL\UpdateApp.
    Добавлены: JvCsvData, JvCsvParse.
    Изменены: DBFieldsLayout, SDBUtils, DBSettings, uCachedLoadSchemaDef.
    25.12.2012 А.Б.Хах
                                --- * ---

DSP v3.6.68 от 25.12.2012
-------------------------

 P- Код задачи 26684. Неверно строились слияния для слитого датасета
    объекта БД.
    Изменены: DBObjects.
    25.12.2012 А.Б.Хах, Д.И.Кобрусев
  * Добавлен новый вид TCaptionLayout - CaptionLayout_Absent. Он может быть
    установлен для контроллеров типа TDBCheckBox. Его выбор говорит о том, что
    метка будет пострена для контролера, а не для TDBEditFrame.
    Изменены: SControls, DBEditFrame, DBInputMethods.
    24.12.2012 М.В.Пекшева
                                --- * ---

DSP v3.6.67 от 24.12.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  24.12.2012 М.А.Степанов
  ----------------------------------------------------------

  + Код задачи: 26318. Добавлена проверка начала регламентных работ.
    Изменены: pyutils, SVclCommon.dpk, DBServiceCheck,
      SonarDBkbmMW, SVCLkbmMW_cnstr, kbmMWSonarServiceConsts,
      kbmMWJavaDBServer, kbmMWJavaDBService, svclkbmmw.dpk, kbmMWCustomJavaService.
    Добавлены: AppAutoCloseProgress, frame_AppAutoCloseProgress.xml, kbmMWDBServiceShutdownCheck.
      SVCLkbmMW_cnstr0.
    21.12.2012 М.А.Степанов

    Адаптация: Если не компилируется из-за ненахождения метода ReconnectOnCloseByTimeOut,
    то переименовать его в ReOpenSession.
                                   * * *

  * Код задачи: 26318. Улучшено ожидание окончания регламентных работ.
    Изменены: SonarDBkbmMW, kbmMWDBServiceShutdownCheck.
    24.12.2012 М.А.Степанов
  > Код задачи 26663.
    + Добавлено локальное меню для перехода по вкладкам карточек.
    * В локальном меню рабочего стола изменены горячие клавиши (Page Up и
      Page Down поменялись местами).
    Добавлены: menu_PageControl.xml
    Изменены: form_DataChange, form_StdMainForm.xml
    24.12.2012 Д.А.Бондаренко
 B- Код задачи 26355. Не верно работали отчеты со связью узлов "в списке"
    (kvit.rwf).
    Изменены: OraRwfExec, ReqConv.
    24.12.2012 С.А.Барсуков
  - Код задачи 26679. При открытии подотчёта имя файла подотчёта обрабатывалось
    в неправильной кодировке.
    Изменены: RWFExec
    21.12.2012 Д.А.Бондаренко
                                --- * ---

DSP v3.6.66 от 21.12.2012
-------------------------

  * Код задачи 26610. Установка пароля пользователям теперь производится с
    помощью локального меню листалки таблицы USERS.
    Добавлены: menu_UsersPlugin.xml
    Изменены: AuthFormH, SVCLkbmMW_cnstr
    20.12.2012 Д.А.Бондаренко
  - Код задачи 26587. При отсутствии описателя, спец. настройка полей по
    описателю не осуществляется.
    Изменены: DBSchemaUtils, sdboracle.
    20.12.2012 А.Б.Хах
                                --- * ---

DSP v3.6.65 от 20.12.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  18.12.2012 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 26587. Теперь загрузка описателя производится кешировано.
    Добавлены: file_hash, HexUtils, uGetFileHash, uMD5, uCachedLoadSchemaDef.
    Перемещены: SonarVCL\Common\uConnectToSQLite -> Common\uConnectToSQLite.
    Изменены: apps.py, common_utils.py, comparing_structure.py, convert2to3.py,
      dbd_to_ddl.py, generator_ddl.py, upgrade_db.py, , DBD2Schema,
      DBSchemaUtils, uConnectToSQLite, PasswordHash, DBSettings, SonarDbIntf,
      DeskMenu_build, DeskMenu_cache, SonarDBkbmMW, SonarDBJava, sdboracle.
    18.12.2012 А.Б.Хах

    Адаптация: Функции HexToRaw и RawToHex вынесены в модуль HexUtils.
    Функции подсчета MD5 вынесены в модуль uMD5.
                                   * * *

 P* Код задачи 26587. Изменено имя справочника типов ресурсов.
    Изменены: DeskMenuDBC.
    19.12.2012 А.Б.Хах
  - При инициализации полей записи конфигурации значение атрибута
    Attr[attr_NotStored] затиралось. Из-за чего опция 'Использовать строчные
    буквы' начала получать свое значение из файла проектной конфигурации.
    Изменены: Config, CnfHnd.
    18.12.2012 М.В.Пекшева
  + Добавлена утилита, позволяющая извлекать описатель напрямую из БД Oracle.
    Добавлен: extract_dbd.py
    17.12.2012 С.Н.Штуркин, М.В.Пекшева
  + Код задачи: 26382. При авторизации на сервере приложений на сервер передается
    имя схемы, т.е. теперь снова можно работать на одном сервере приложений с разными
    БД.
    Изменены: kbmMWJavaDBService, SonarDBJava.
    17.12.2012 М.А.Степанов
  + Код задачи 26536. Добавлено соообщение о невозможности выполнить элемент
    меню обстановок, если его тип не поддерживается.
    Изменены: Common/DeskMenuDBC, DeskMenu_exec
    14.12.2012 Д.А.Бондаренко
  - Код задачи 26608. Проявление: Выход из карточки в справочник по полю
    типа байт. При некоторых значениях поля возникала ошибка вида: "'6E' -
    некорректное значение целого числа", вместо "6E" было могло быть
    другое значение.
    P?: Это происходило для значений, шестнадцатеричное представление
        которых содержит буквы. То, что вместо "6E" - это значение поля в
        шестнадцатеричном виде.
    P: При конвертации параметров запроса в SQL тип indByte
       преобразовывался в ftInteger (надо в ftString).
    Изменены: ReqConv.
    14.12.2012 Д.И.Кобрусев
  - Код задачи 26596. Проявление: В "Торе": открыть на ввод карточку
    нарезки адм. участков, выбрать адм. участок с другим, чем у текущего
    пользователя, терр. орагном, выбрать нас. пункт, и нажать Insert в
    листалке модификаторов номера дома. Карточка модификатора на
    открывалась, карточка нарезки запрещалась ("засеривалась").
    P: Отключён контроль прав при переходе набора данных в режим
       редактирования, если оно происходит в рамках препросадки записи.
    Изменены: RowCommandAccessHandlers.
    14.12.2012 Д.И.Кобрусев
  > Код задачи 26421.
    * Алгоритмы работы с Меню обстановок, набор констант, определяющих тип и
      принадлежность элементов Меню обстановок, адаптированы к новой структуре
      базы данных и справочникам (только для баз SQL).
    + Подключена карточка DSKSTRG и обработчики карточек DESKMENU и DSKSTRG.
   P+ Для упрощения дизайнирования карточек добавлен общий для SonarVCL\Common
      и SonarVCL\CommonSQL модуль dm_Globals, аналогичный dm_Globals из Leg.
    Перемещены: SonarVCL/Common/frame_DESKMENU.xml в SonarVCL/CommonSQL/
    Удалены: DeskMenu_trigger
    Добавлены: dm_Globals.xml, frame_DSKSTRG.xml, HTDeskMenuDBC, FormH_DskStrg,
      FormH_DeskMenu, DependentFieldsEnable, DataSetFieldValueChangeNotifier,
      CommonViewEditFormHandler, form_index.ini
    Изменены: oradeskmenu, deskmenuform, deskmenuexec, deskmenu,
      AutoLoadDesktop, AuthHyTechSft, AuthHyTech, DBArchiver,
      SVCLCommonSQL_cnstr, DeskMenu_exec, DeskMenu_cache, DeskMenu_build,
      SVCLCommon_cnstr, DeskMenuDBC, form_index.ini, SVCLHt.dpk, SVCLCommonSQL,
      SVclCommon.dpk
    13.12.2012 Д.А.Бондаренко
  - Код задачи: 26588. Если во время выполнения фонового обновления
    происходила ошибка, то следущее обновление происходило без ожидания.
    Изменены: DeskMenu_cache.
    13.12.2012  М.А.Степанов
                                --- * ---

DSP v3.6.64 от 13.12.2012
-------------------------

 P* Код задачи 25738. TEnsureFieldsPresent перенесен в интерфейсную часть
    модуля DBFieldsLayout.
    Изменены: DBFieldsLayout, ChoiceForm.
    13.12.2012 И.В.Ковалев
 P* Код задачи 25738. При вызове TSDBGrid.RemoveSelection добавлено
    обновление статусной строки листалки.
    Изменены: CommonForms.
    13.12.2012 И.В.Ковалев
                                --- * ---

DSP v3.6.63 от 12.12.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  12.12.2012 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 26522. Наведен порядок в каталоге запуска программы: данные
    приложения (кеши и прочее) хранится в APPDATA, результат выполнения отчетов
    и других алгоритмов - в OUT, временные файлы, как и раньше, в TEMP.
    Изменены: CheckOneApp, SonarSys, Streams, ht_init, SelKeyIn, temptab,
      MessageService, ReportXLS, ReportUtils, DeskMenu_cache, DeskMenu_exec,
      MissedValues, TableBinDataCache, RVHunSpell.
    12.12.2012 А.Б.Хах

    Адаптация: Вместо функции GetTempDirRelName исппользовать константу stTempRelDir.
    Вместо вызова функций GetTempDirName, CreateTempDir, GetTempDir вызывать
    GetLocalDirName(stTempRelDir), CreateLocalDir(stTempRelDir),
    GetLocalDir(stTempRelDir), соответственно.
                                   * * *

 P* Сервис Java: Из guid идентифицирующего запрос убираются скобки.
    Изменены: kbmMWJavaDBService.
    12.12.2012 М.А.Степанов
 P* Код задачи 26522. Для функции GetTempFileName оба параметра теперь имеют
    пустые умолчательные значения, т.е. в большинстве случаев её можно вызывать
    без параметров.
    Изменены: sonarsys, Streams, htdataio, WPPARSER, OBJECTS, joinacc,
      DBInputCustomBLOB, ReportUtils, embdObj, RWFExec, texteditor, DeskMenu_exec,
      SonarDBkbmMW, SonarDBJava, sdboracle.
    11.12.2012 А.Б.Хах
  - При выставлении значений параметров неверно высталялся тип в случае, когда
    значение было равно Null. В результате чего происходила ошибка:
    [AnyDAC][Phys][Ora]-335. Parameter [P_$_0] data type is unknown.
    Изменен: ReqConv.
    11.12.2012 М.В.Пекшева
                                --- * ---

DSP v3.6.62 от 11.12.2012
-------------------------

 P* Функция GetParamValue вынесена в модуль uParamValue.
    Изменен: ObjectDescriptionsGen.
    Добавлен: uParamValue.
    11.12.2012 М.В.Пекшева
                                --- * ---

DSP v3.6.61 от 10.12.2012
-------------------------

  * Код задачи 26466. Если в отчете стоит флаг "Графический препросмотр", то
    результат выполнения отчета конвертируется в RTF и открывается в соответствующей
    программе.
    Изменены: ReportUtils, texteditor.
    10.12.2012 С.А.Барсуков
 P- Модуль JclCharsets неявно включался в пакет jcl.dpk - исправлено
    Изменены: jcl.dpk
    08.12.2012 С.Н.Штуркин
 P* Код задачи 25738. TSQLMultiselectRowsHandler вынесен в интерфейсную
    часть.
    Изменены: SQLMultiSel.
    08.12.2012 И.В.Ковалев
 P> Код задачи 25738. Перенесены изменения из dsp 4:
 P* Код задачи: 23037. ChangeRowSelection вынесен в public,
    добавлен метод RemoveSelection, и событие ev_sdbgrid_RemoveSelection:
    разотмечание всех отмеченных строк.
    Изменены: SDBGRID.
    08.12.2012 И.В.Ковалев
                                --- * ---

DSP v3.6.60 от 08.12.2012
-------------------------

  * Код задачи 26528. Теперь перед закрытием главной формы закрываются все вкладки.
    Изменены: StdMainForm.
    07.12.2012 А.Б.Хах
                                --- * ---

DSP v3.6.59 от 07.12.2012
-------------------------

  - Код задачи 26481. Не удавалось найти поле для запроса по умолчанию, по
    которому можно установить связь для запросов типа "в списке".
    Изменены: ReqUtils, htDescr.
    07.12.2012 А.Б.Хах
 P- Код задачи 25738. Поля кодификатора, даты и времени не настраивались
    должным образом.
    Изменены: MemoryDataSource.
    07.12.2012 А.Б.Хах
 P* Сервис Java: Добавлена передача guid для идентификации запроса.
    Изменены: kbmMWJavaDBService.
    07.12.2012 М.А.Степанов
  * В поле контактов окна О программе в начало добавлен перевод строки.
    Изменены: frame_About_Contacts.xml
    07.12.2012 Д.А.Бондаренко
                                --- * ---

DSP v3.6.58 от 06.12.2012
-------------------------

 P* Функция ReplaceStrPairs перенесена из модулей DeskMenu_build и MessageService
    в модуль uReplaceStrPairs.
    Изменены: DeskMenu_build, MessageService.
    06.12.2012 М.В.Пекшева
  - Код задачи 26483. Не выполнялось делегирование прав на элементы меню
    пользователям-подчиненным.
    Изменены: DeskMenu_cache
    06.12.2012 М.А.Зайкин
                                --- * ---

DSP v3.6.57 от 06.12.2012
-------------------------

 P- При траняляции запроса в sql неверно передавалось в параметр для
    ROWID пустое значение, в результате происходило исключение
    ORA-01410: ROWID неверен.
    Изменены: ReqConv.
    06.12.2012 И.В.Ковалев
  - Код задачи 25666. Редактор отчетов: неверно редактировались поля "Изображение".
    Изменены: rwfdesigner.
    06.12.2012 С.А.Барсуков
  * Код задачи 26420. Запрос "ОСК созвучно" выполнялся не по полю ОСК и не
    учитывалась регистронезависимость поля ОСК и "Звучание".
    Изменены: ReqConv.
    05.12.2012 А.Б.Хах
 P* Код задачи 26471. В запросах sql по ROWID добавлено использование
    параметра sql.
    Изменены: ReqConv.
    05.12.2012 И.В.Ковалев
 P* Код задачи 26471. При использовании функции RequestRecByKey
    в запросе sql используется параметр.
    Изменены: DataSetInternalUtils.
    05.12.2012 И.В.Ковалев
                                --- * ---

DSP v3.6.56 от 05.12.2012
-------------------------

  - Код задачи 26451. Неверно отрабатывал контроль дублирования уникальных
    полей для объектов БД: во-первых, проверялись уникальные не вводимые поля
    или не редактируемые поля, во-вторых, для объектов БД сейчас отключена
    проверка уникальных полей.
    Изменены: CompoundErrorCheck.
    05.12.2012 А.Б.Хах
 P- Код задачи 25073. Установка поддержки кодификаторных операций зависела от
    активности листалки.
    Изменены: SQLCodeViewHandler, HtCodeView.
    05.12.2012 А.Б.Хах
  - Код задачи 25219. При отключённом авторазмере колонок в листалке,
      если попытаться изменить размер крайней правой колонки, выходящей за
      пределы видимой области, увеличивается размер соседней колонки слева.
    Изменены: JvDBGrid
    05.12.2012 Е.В.Михайлов
 P- Код задачи 25073. Поля кодификатора заказывались ПОСЛЕ открытия набора
    данных, что приводило к ошибке.
    Изменены: GridCodeView, TableBrowser.
    03.12.2012 А.Б.Хах
 P* Функция FieldHasCaseInsensitiveIndex удалена, т.к. регистронезависимость
    поддержана на уровне описателя и следует пользоваться соответствующими
    функциями оттуда.
    Изменены: SonarDBIntf, OraSQLSupport.
    03.12.2012 А.Б.Хах
  - Код задачи 26405. Одинарные кавычки в строковых значениях не экранировались
    и приводили к ошибкам вида ORA-00911: invalid character при выполнении
    ограничений по строковым полям.
    Изменены: OraSQLWork
    03.12.2012 Д.А.Бондаренко
                                --- * ---

DSP v3.6.55 от 03.12.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  03.12.2012 Д.А.Бондаренко
  ----------------------------------------------------------

 P* Код задачи 25899. Переименованы процедуры RequeryDataSet и RequeryTable.
    Изменены: AuthFormH, SonarDbIntf, TableBrowser, SQLMultiSel, SdbVcl,
      SonarDBkbmMW, SonarDBJava, sdboracle.
    03.12.2012 Д.А.Бондаренко

    Адаптация: заменить вызовы RequeryDataSet на SendRequeryDataSet,
      заменить вызовы RequeryTable на RequeryDataSet.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  30.11.2012 Д.А.Бондаренко
  ----------------------------------------------------------

 P* Код задачи 25899. Процедура RequeryTable перенесена в SonarDBIntf, удалены
    процедуры AddRequest и SetNamedRequest.
    Изменены: SDBUtils, SonarDbIntf, SQLMultiSel
    30.11.2012 Д.А.Бондаренко

    Адаптация: заменить вызовы AddRequest, SetNamedRequest модуля SDBUtils на
      соответствующие варианты процедуры AddDataSetRequest из SonarDBIntf.
      Для вызова RequeryTable - подключить модуль SonarDBIntf
                                   * * *

 P* Код задачи 26428. Модули инициализации AnyDAC для работы с SQLite теперь
    подключаются в CommonDB_cnstr.
    Изменены: CommonDB_cnstr, DBD2Schema, DeskMenu_cache, SonarDBkbmMW,
      SonarDBJava, sdboracle, SVCLOracle_cnstr
    30.11.2012 Д.А.Бондаренко
  * Код задачи 26181. Добавлена проверка дублирования уникальных полей таблиц.
    Изменены: DBSchemaUtils, CompoundErrorCheck.pas, form_CompoundError.xml,
      SDBDataSets.
    30.11.2012 А.Б.Хах
 P+ Код задачи 25603. Добавлена процедура HideHintMessages, позволяющая убрать
    все показаные всплывающие подсказки заданной формы.
    Изменены: HintMessage
    30.11.2012 Д.А.Бондаренко
  - Код задачи 25790. Исправлен запрос для типа поля indCode в условии
    в синхронизаторе TSkipTableScrollSynchronizer. Проявление ошибки:
    если открываем карточку по полю кодификатора из листалки раздела, то
    текущая запись всегда позиционируется на начало набора данных.
    Изменены: ScrollingSynchronizer
    30.11.2012 Е.В.Михайлов
 P* Код задачи 26415. Подключено использование параметров для
    кодификаторных запросов.
    Изменены: ReqConv.
    29.11.2012 И.В.Ковалев
  - Код задачи 26417. При использовании параметров неверно работали
    запросы на ОСК созвучно.
    Изменены: ReqConv.
    29.11.2012 И.В.Ковалев
 P* Код задачи 26181. Добавлена функция IsFieldChanged, возвращающая True, если
    поле набора данных изменилось. Функция сравнивает Value и OldValue поля.
    Изменены: DataSetUtils, DBObjectChoice, SDBUtils, SonarDBkbmMW, sdboracle.
    29.11.2012 А.Б.Хах
                                --- * ---

DSP v3.6.54 от 29.11.2012
-------------------------

  - Код задачи 26415. Ошибка '"" - некорректное значение целого числа' при
    использовании параметров в кодификаторных запросах.
    P:Отключено использование параметров для
    кодификаторных запросов.
    Изменены: ReqConv.
    29.11.2012 И.В.Ковалев
 P- При подсчете количества записей в связанной листалке
    под 2-звенной архитектурой
    не передавались параметры sql-запроса.
    Изменены: sdboracle.
    29.11.2012 И.В.Ковалев
 P- Изменен интерфейс процедуры SetupSqlParameters: устранена
    передача экземпляра интерфейса для избежания ошибки с
    уничтожения объекта, связанного с интерфейсом.
    Изменены: ReqConv, OraRwfExec, SonarDBkbmMW,
    SonarDBJava, sdboracle.
    29.11.2012 И.В.Ковалев
                                --- * ---

DSP v3.6.53 от 29.11.2012
-------------------------

  * Коды задач 25229, 25240, 25241, 25242. Поддержано использование
    параметров sql-запросов при инкрементном поиске, связях листалок по
    текущей записи, формах ввода, при выполнении отчетов rwf.
    Изменены: sonarsys, reqlimit, reqlimfactory, SDBDataSets,
    DataSetLayoutSQLConvertor, OraRwfExec, ReqConv,
    SonarDBkbmMW, SonarDBJava, sdboracle.
    29.11.2012 И.В.Ковалев
  > Код задачи 26408.
    - Возникало EAV при получении OldValue у поля TSonarDB_Record, когда она
      была в состоянии dsBrowse.
    - Возникало EAV при уничтожении TSonarDB_Record при вводе записи параметров
      отчета RWF.
    Изменены: SDBDataSets.
    28.11.2012 А.Б.Хах
                                --- * ---

DSP v3.6.52 от 28.11.2012
-------------------------

  - Код задачи 26395. Проверка совпадения сортировки по полю в отчете и в наборе
    данных (листалки) осуществлялась через TField.FieldNo, а для этого
    необходимо было получить Field, которого в наборе данных в общем случае
    может и не быть. Теперь проверка осуществляется по имени поля.
    Изменены: OraRwfExec.
    27.11.2012 А.Б.Хах
  * Код задачи 25589. Теперь при попытке обращения к записи, удалённой другим
    пользователем, после сообщения об этом операция прерывается (ранее
    операция применялась к следующей доступной записи).
    Изменены: TableBrowser
    27.11.2012 Д.А.Бондаренко
                                --- * ---

DSP v3.6.51 от 27.11.2012
-------------------------

 P* TSonarDBkbmMW_Connection: метод RequestService вынесен в секцию public,
    добавлена возможность передачи параметров. Добавлена возможность
    вызова функции java сервиса через указание в имени функции kbmMW
    сервиса префикса 'JAVA_'.
    Изменены: SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBServer.
    26.11.2012 М.А.Степанов
  - Код задачи 26346. Происходила ошибка после удаления подлитого поля, по
    которому был произведен инкр. поиск.
    Изменены: DBGridLayout, SDBGrid.
    26.11.2012 А.Б.Хах
  - Код задачи 26260. Исправлено отображение в панели статуса индикатора о наличии сообщений.
    Изменены: MessageService
    26.11.2012 М.А.Зайкин
 P+ Код задачи 26208. Добавлено событие ev_TableBrowser_AllowInplaceEditor для
    проверки допустимости блочного редактирования в листалке.
    Изменены: TableBrowser
    26.11.2012 Д.А.Бондаренко
  - Код задачи 25840. При выборе значения булевского поля, например, при вводе
    ограничения для запроса, поле всегда устанавливалось в Нет.
    Изменены: SControls
    26.11.2012 Д.А.Бондаренко
  - Код задачи: 25555. Опечатка в наименовании кнопки в диалоге
    выбора принтера.
    Изменены: form_SelectPrinter.xml
    26.11.2012 Е.В.Михайлов
  - Исправлена ошибка подключения к SQLite базе.
    Изменены: DeskMenu_cache, MessageService, uConnectToSQLite
    26.11.2012 М.А.Зайкин
 P* Для подключения к базе SQLite используется модуль uConnectToSQLite.
    Изменены: TableBinDataCache
    26.11.2012 М.А. Зайкин
                                --- * ---

DSP v3.6.50 от 23.11.2012
-------------------------

 P+ Код задачи 24842. В фабрику описателя поля таблицы добавлено свойство
    IsNotNull - обязательноcть ввода поля.
    Изменены: MemoryDataSource.
    23.11.2012 А.Б.Хах
  * Код задачи 24842. Для контроллера выбора имени файла или каталога добавлен
    режим работы - выбор файла, с указанием полного пути к нему.
    Изменены: DBInputMethods.
    23.11.2012 А.Б.Хах
                                --- * ---

DSP v3.6.49 от 23.11.2012
-------------------------

  * Код задачи 26355. Путь к stdlib.zip теперь добавляется в sys.path.
    P: Добавлена возможность указания путей, которые будут
    Изменены: pyutils.
    23.11.2012 А.Б.Хах
  + Код задачи: 26338. Добавлена функция GetMinMaxInListSelectStr -
    получение строки запроса, где значение поля минимально(максимально)
    в выборке.
    Изменены: SDBUtils
    23.11.2012 Е.В.Михайлов
                                --- * ---

DSP v3.6.48 от 23.11.2012
-------------------------

 P* Для подключения к базе SQLite используется модуль uConnectToSQLite.
    Изменены: DeskMenu_cache
    23.11.2012 М.А.Зайкин
 P- Добавлено обнуление интерфейсной переменной в tFDOraBuilder.OraGetFromKey
    Изменены: OraRwfExec
    22.11.2012 Д.А.Бондаренко
  + Код задачи 26260. Добавлена поддержка всплывающих сообщений.
    Добавлены: MessageService, form_Messages.xml
    Изменены: SVclCommon.dpk, StdMainForm, form_StdMainForm.xml
    22.11.2012 М.А.Зайкин
 P* Код задачи 26138. Текстовое поле с контактами для окна О программе выделено
    в отдельный ресурс.
    Добавлены: frame_About_Contacts.xml
    Изменены: About, form_index.ini, frame_About.xml
    22.11.2012 Д.А.Бондаренко
  - Код задачи 26355. При выполнении локального отчета по-шаблону не
    передавался датасет.
    Изменены: DeskMenu_exec
    22.11.2012 М.А.Зайкин
 P+ IDataSetSafeRefresh добавлен в список реализуемых интерфейсов для
    TSonarDBJava_DataSet
    Изменены: SonarDBJava
    22.11.2012 Д.А.Бондаренко
  + Добавлен модуль uConnectToSQLite.
    Добавлены: uConnectToSQLite
    Изменены: SVclCommon.dpk
    22.11.2012 М.А.Зайкин
 P* Код задачи 25899. Устранено, где это возможно, получение интерфейсов набора
    данных с целью получения идентификатора записи, добавления запроса,
    обращения к информации о слияниях.
    Изменены: AuthCommon, AuthFormH, AuthHandlers, AuthRoleElemRights,
      CompoundErrorCheck, CompoundErrorHandle, DBGridColumnsLayout, DBObjects,
      form_DataChange, ScrollingSynchronizer, Sections, SelectShowHandler,
      SonarDbIntf, TableBrowser, DataSetInternalUtils, DeskMenu_cache,
      DeskMenu_exec, MissedValues, deskmenu, deskmenuexec, DBRecordBrowser,
      ReportVisualiser, AuthOracle, oradeskmenu
    21.11.2012 Д.А.Бондаренко
 P* Код задачи 25899. Устранено, где это возможно, получение интерфейсов с
    целью обращения к имени таблицы набора данных или вызова SafeRefresh.
    Изменены: AuthFormH, AuthHandlers, ChoiceCheck, DBObjects,
      ScrollingSynchronizer, TableBrowser, TextBox, DataSetInternalUtils,
      AuthHyTech
    21.11.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.47 от 21.11.2012
-------------------------

 P- Код задачи 25849. Каждый раз при синхронизации перестраивался слитый набор
    данных объекта БД, что приводило к тому, что синхронизация, по сути, не
    работала.
    Изменены: DBObjects, DBObjectSpec.
    20.11.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.46 от 20.11.2012
-------------------------

  * Код задачи 26281. Карточки. Добавлена отработка препросаженной записи -
    запись удаляется или о ней выдаётся предупреждение (в зависимости от
    настройки объекта).
    Изменены: RecordControl, SonarDBkbmMW, SDBOracle.
    20.11.2012 Д.И.Кобрусев
 P* Код задачи 25849. Расставлены Assertion'ы на случай, если SetMasterReader
    вызовут в контектсе BeginReferences/EndReferences.
    Изменены: Classes.
    19.11.2012 А.Б.Хах
  * Код задачи 25954. Изменено сообщение об отсутствующей записи
    в справочнике.
    Изменены: ChoiceCheck
    19.11.2012 Е.В.Михайлов
 P* Код задачи 26039. SelectAllData перенесено из ISonarDataSet в
    ISonarSQLDataSet.
    Изменены: SonarDbIntf, SonarParameters, DeskMenu_cache, MissedValues,
    OraRwfExec, ReportSupp, SdbVcl, SonarDBkbmMW, kbmMWSQLDataSetWrapper,
    sdboracle
    19.11.2012 И.В.Ковалев
 P- Код задачи 25849. Валидация структурной части объекта теперь осуществляется
    при открытии объекта БД, а не при установки свойства DBObjectSpec.
    Изменены: DBObjects, kbmMWJavaDBServer.
    16.11.2012 А.Б.Хах
  - Код задачи 25849. Теперь ReadConent в режиме неизолированной загрузки
    разрешает ссылки отложено, что позволяет ContentLoader'у разрешать ссылки, в
    загружаемых им компонентах, на объекты, которые расположены в том же
    контейнере, что и ContentLoader.
    Изменены: ComponentUtils, Classes.
    16.11.2012 А.Б.Хах
  - Код задачи 25849. Если по каким-то причинам, на момент загрузки MemoryDataSource
    не было ссылки на соединение, то происходило EAV. Теперь если ссылки на
    соединение нет, то восстанавливаются только те поля MemoryDataSource, которые
    не основаны на описателе. Если нет ни одного поля в MemoryDataSource при
    открытии - выдается исключение.
    Изменены: MemoryDataSource.
    16.11.2012 А.Б.Хах
 P* Код задачи: 26293. TSonarDBkbmMW_DataSet, TSonarDBJava_DataSet:
    Реализован метод OpenEmpty.
    Изменены: SonarDBkbmMW, SonarDBJava.
    16.11.2012 М.А.Степанов
 P* Код задачи: 26258. Если при установке соединения возникают ошибки, то
    соединение разрывается.
    Изменены: SonarDBkbmMW, SonarDBJava, kbmMWJavaDBServer.
    16.11.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.45 от 16.11.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  16.11.2012 М.А.Зайкин
  ----------------------------------------------------------

  * Код задачи 26260. Обновлены модули пакетов JCL, JVCL
    Добавлены: JvDesktopAlert, JvDesktopAlertForm, JvLabel
    16.11.2012 М.А.Зайкин
 P* Выполнен перенос модуля sevenzip из пакета seven_zip в JCL.
    Изменены: JCL, SVCLCommonSQL
    Удалены: пакет seven_zip
    16.11.2012 М.А.Зайкин

    Адаптация: Там, где использовался пакет seven_zip нужно использовать JCL
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  15.11.2012 М.А.Зайкин
  ----------------------------------------------------------

 P* Код задачи 26250. Выполнены переименования: app_GetFactoryByObject -> app_CreateFactoryByObject,
    TEvent_GetFactoryByObject -> TEvent_CreateFactoryByObject, GetFactoryByObject() -> CreateFactoryByObject()
    Изменены: AdvancedConstrainsFactory, CompoundErrorFactory, DBInputMethods, dowreqfactory, DsLimit, Factory,
    grprojfactory, InDataFactory, recreqfactory, ReportSupp, reqfactory, reqlimfactory, RequestXMLUtils,
    ReqUtils, rwfdesigner, rwffactory, Sections, SdbVcl, TableBrowser, TableDataSource, TextBox, tchreqfactory
    15.11.2012 М.А.Зайкин

    Адаптация:
      заменить вызовы функций: GetFactoryByObject -> CreateFactoryByObject
      заменить имя события: app_GetFactoryByObject -> app_CreateFactoryByObject
      заменить тип структуры: TEvent_GetFactoryByObject -> TEvent_CreateFactoryByObject
                                   * * *

DSP v3.6.44 от 15.11.2012
-------------------------

 P* Код задачи 26168. В карточке проектной конфигурации адаптировано
    переименование флагов визуализации полей.
    Изменены: frame_fconfig.xml
    15.11.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.43 от 15.11.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  15.11.2012 Д.А.Бондаренко
  ----------------------------------------------------------

 P* Код задачи 26168. Переименованы флаги визуализации поля: GetDisplayable ->
    GetShowInGrid, GetCanBeDisplayed -> GetShowInDetails.
    Изменены: DBDItems, DBSchemaIntf, FlagsConvert, htdescr, FieldViewer,
      MemoryDataSource, StdMainForm, TableBrowser, DBRecordBrowser
    15.11.2012 Д.А.Бондаренко

    Адаптация: заменить вызовы методов, обращения к свойствам:
      GetDisplayable -> GetShowInGrid, GetCanBeDisplayed -> GetShowInDetails,
      Displayable -> ShowInGrid, CanBeDisplayed -> ShowInDetails.
                                   * * *

 P* Для проектов со старой авторизацией обработчик
    TFHSetUserPasswordButton по умолчанию не строится.
    Изменены: AuthFormH.
    15.11.2012 М.А.Степанов
  * Код задачи: 26160. Если в таблице USERS не было поля 'Заблокиров.' при
    авторизации происходило исключение.
    Изменены: kbmMWAuthorization.
    15.11.2012 М.А.Степанов
  * При загрузке и сохранении запроса установлено расширение *.REQ.
    Изменены: ReqDesigner
    15.11.2012 М.А.Зайкин
 P+ Код задачи 26169. Добавлена возможность указать DataSet-у, что Post
    должен сохранить зпись, даже если она не изменилась - процедура
    SetDataSetForceModified.
    Изменены: DataSetUtils, SonarDBkbmMW.
    14.11.2012 Д.И.Кобрусев
 B- Код задачи 26170. В карточке редактирования, открытой из ограниченной
    запросом листалки, не запрещалось для редактирования поле, по которому
    ограничена листалка. Ошибка проявлялась в частности для листалок разделов.
    Изменены: SDBVCLUtils
    15.11.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.6.42 от 14.11.2012
-------------------------

  - Код задачи: 26250. Не освобождалась память при сохранении запроса.
    Изменены: RequestXMLUtils
    14.11.2012 М.А.Зайкин
  * Утилита hst2dbd больше не собирается в apps.py.
    Изменен: apps.py.
    14.11.2012 М.В.Пекшева
  * Код задачи: 26250. Сохранение xml-запроса выполняется с форматированием.
    Изменены: RequestXMLUtils
    14.11.2012 М.А.Зайкин
                                 --- * ---

DSP v3.6.41 от 14.11.2012
-------------------------

  + Код задачи 26040. Меню обстановок кешируется с учетом прав пользователя
    Изменены: DeskMenu_cache, kbmMWAuthorization, OldAuthSDBConst, OraLogin, DSPCommon.dpk, SVclCommon.dpk
    Перемещены: SonarVCL\Common\CodeUtils -> Common\DB\CodeUtils
    13.11.2012 М.А.Зайкин
                                 --- * ---

DSP v3.6.40 от 13.11.2012
-------------------------

  + Код задачи 26197. Добавлена проверка существования кеша
    при построении локального меню таблицы.
    Изменены: DeskMenu_cache, DeskMenu_build
    13.11.2012 М.А.Зайкин
                                 --- * ---

DSP v3.6.39 от 13.11.2012
-------------------------

 B- Код задачи: 26212. Если в логине пользователя присутствовали русские буквы,
    то на сервере приложений некорректно определялся текущий пользователь,
    в результате чего функции для работы с ФИАС некорректно устанавливали текущего
    пользователя при добавлении записей в SO_UL, SO_NASPN и пр.
    Изменены: kbmMWJavaDBService.
    13.11.2012 М.А.Степанов
 P* Убрана зависимость DeskMenu_cache от DeskMenu_exec
    Изменены: DeskMenu_cache, DeskMenu_exec
    13.11.2012 М.А.Зайкин
 B- Код задачи 26171. Ошибка при инкрементном поиске:
    при добавлении нового поля в представление, в строку
    поиска по этому полю добавляется текст из ранее
    выполнявшегося поиска по другому полю.
    Изменены: SDBGrid
    13.11.2012 Е.В.Михайлов
  - Код задачи 26192. Не учитывалась возможность попытки ввода пустого
    старого пароля.
    Изменены: Login
    13.11.2012 Д.А.Бондаренко
  * Код задачи 26192. При неудачной попытке ввода/смены пароля курсор теперь
    возвращается на верхнее поле ввода пароля.
    Изменены: Login
    12.11.2012 Д.А.Бондаренко
 P* Код задачи: 26071. Добавлена регистрация класса TDBObject.
    Изменены: SVCLCommon_Registration.
    12.11.2012 М.А.Степанов
 P- При сборке пакета Apps происходила ошибка нехватки ресурсов при сборке
    утилиты HST2DBD.
    Изменены: apps.py, hst2dbd.py.
    12.11.2012 М.В.Пекшева
 P* TSonarDBJava_Connection: Проверка и поиск записи пользователя
    производятся в обработчике по умолчанию app_OpenConnection, так можно
    использовать св-во UserData в проектных обработчиках app_OpenConnection.
    Изменены: SonarDBJava.
    12.11.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.38 от 12.11.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT> <BRANCH>
  12.11.2012 А.Б.Хах
  ----------------------------------------------------------

  - Код задачи 25994. Не производилось клонирование компонента (а при блочном
    редактировании выполняется клонирование DBEditFrame'а карточки), который
    загружен TContentLoader (или чем-то подобным).
    Изменены: Classes, ComponentUtils, TableBrowser.
    12.11.2012 А.Б.Хах

    Адаптация: Функция CloneComponentWithRefs переименована в CloneComponent.
                                   * * *

BP- Код задачи: 26190. Функции SelectByReqStr, CheckByReqStr: если
    выполнение функций происходило в контексте загрузки формы то могло
    произойти исключение EAccessViolation.
    Изменены: SDBUtils.
    10.11.2012 М.А.Степанов
 B- Код задачи: 26167. При открытии карточек со слитым вводом
    могло возникать исключение AccessViolation.
    P: TRowCommandUserRightAccessChecker.CheckAccess: для
       наборов данных с пустым именем таблицы проверка прав не производится.
    Изменены: RowCommandAccessCheckers.
    10.11.2012 М.А.Степанов
 B- При проверке прав на изменения данных подчиненность пользователей
    учитывалась некорректно.
    Изменены: kbmMWAuthorization.
    10.11.2012 М.А.Степанов
 B- Код задачи 26182. Удалялось подлитие таблицы из-за того, что в подливаемой
    таблице не было первичного ключа, тогда как слияние может производится по
    уникальному полю. Временно эта часть проверки отключена.
    Изменены: LayoutValidation.
    10.11.2012 А.Б.Хах
BP- Код задачи 26167. Ошибка: доступ к элементу массива за пределами индекса.
    При открытии карточки пользователем с уровнем доступа 10, появлялась
    ошибка "Неверный тип Variant".
    Изменены: kbmMWAuthorization
    10.11.2012 Е.В.Михайлов
 B> Код задачи 26046.
    * Не разрешается просадка записи в пользователях системы, до тех пор, пока
      пользователь не установит пароль для нового пользователя.
    * При дублирвоании записи таблицы Users не дублируются поля Логин и ХешПароль.
    Изменены: AuthFormH, AuthHandlers, SVCLkbmMW_cnstr.
    10.11.2012 А.Б.Хах
  - Код задачи 25768. В форме ввода при выходе из поля выбора из
    справочника в листалку справочника в случае, когда первичный ключ в
    справочнике строковый, значение строкового поля заполнено максимально,
    не происходило позиционирование на нужную запись в листалке.
    Изменены: DataSetInternalRequests, SDBDataSets.
    10.11.2012 И.В.Ковалев
                                 --- * ---

DSP v3.6.37 от 09.11.2012
-------------------------

  - Код задачи 26165. Поля бинарных данных не попадают в листалку, даже если для
    них выставлен флаг "в оперативной визуализации".
    Изменены: TableBrowser.
    09.11.2012 А.Б.Хах
  * Код задачи: 26162. Добавлено сохранение логина в файле конфигурации.
    Изменены: kbmMWSonarLoginDialog.
    09.11.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.36 от 09.11.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT> <BRANCH>
  08.11.2012 М.А.Степанов
  ----------------------------------------------------------

 B+ Код задачи: 26046, 26030, 26043. Добавлена авторизация с использованием
    хеша пароля, добавлен учет прав пользователя на таблицы.
    Изменены: SDBCONST, AuthConst, AuthFormH, Login, kbmMWSonarLoginDialog, SonarDBkbmMW,
      SVCLkbmMW_cnstr, kbmMWJavaDBServer, SonarDBJava, svclkbmmw.dpk.
    Добавлены: ChangePasswordMenu, dm_ChangePasswordMenu.xml, kbmMWAuthorization.
    08.11.2012 М.А.Степанов

    Адаптация: Удалить из проекта проверку логина/пароля в модуле MainForm,
      использовать авторизатор TkbmMWAuthorization, либо сделать свой.
                                   * * *

 B* Код задачи: 26059. Добавлена проверка длины пароля залогинившегося
    пользователя.
    Изменены: AuthFormH, Login, kbmMWSonarLoginDialog.
    09.11.2012 М.А.Степанов
 B- Код задачи 26130. Заголовок, при его наличии у пункта меню-разделителя
    теперь отображается.
    Изменены: DeskMenu_build
    09.11.2012 М.А.Зайкин
 B- Код задачи 26146. Проявление: В "Торе" авторизоваться, потом снова
    авторизоваться, на этот раз неудачно (ввести неправильое имя
    пользователя и/или пароль), потом авторизоваться удачно. После этого
    при попытке открыть карточку элемента нарезки адм. участков
    происходила ошибка "Несанкционированный доступ".
    P: TSonarDB_Record на проектную конфигурацию не освобождалась при
       освобождении соединения (от которого она зависит).
    Изменены: SDBUtils.
    09.11.2012 Д.И.Кобрусев
 B> Код задачи 25939.
    P* Процедура LoadReportByTemplate вынесена в интерфейсную часть.
    P* Создана overload процедура ExecuteRWFReportByTemplate
       для загрузки отчета из потока
     - Исправлена ошибка с получением потока элемента хранилища при поиске по алиасу
    Изменены: DeskMenu_exec, ReportUtils.
    09.11.2012 М.А.Зайкин
 B- Код задачи 26155. Подключен обработчик, задающий путь для представлений карточек.
    Изменены: LayoutManager, SVCLCommonSQL_cnstr, SVCLHT_cnstr, HTEditFormLayoutPath.
    09.11.2012 А.Б.Хах
 P* Код задачи 26144. В классе TkbmMWJavaDBQuery добавлен метод Execute2,
    который поддерживает выполнение sql и pl/sql блоков с возвратом
    параметров кроме возврата параметров во фразе returning
    sql-предложений (для этого случая текст sql-предложения нужно
    поместить в блок begin end)
    Изменены: kbmMWJavaDBQuery, kbmMWJavaDBService.
    09.11.2012 И.В.Ковалев
 P- При загрузке описателя маскировалось исключение при получении атрибута таблицы
    'access_level'.
    Изменен: DBD2Schema.
    09.11.2012 М.В.Пекшева

DSP v3.6.35 от 09.11.2012
-------------------------

 B- Код задачи 26099. Не освобождение памяти при создании кэша DESKMENU.
    Изменены: kbmMemTable.
    09.11.2012 С.А.Барсуков
 B- Код задачи 26122. Для кеширования таблицы Layouts создавалась таблица в
    SQLite базе, в которой первичный ключ был типа TEXT, что приводило к
    проблемам.
    Изменены: BinDataCache.
    08.11.2012 А.Б.Хах
 B- Код задачи 26063. В запросе на сравнение полей регистронезависимые строковые
    поля теперь сравниваются регистронезависимо.
    Изменены: ReqConv.
    08.11.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.34 от 08.11.2012
-------------------------

 B- Код задачи 26062. Для запросов "в группе по" регистронезависимые строковые
    поля, участвуют в группе и в функционалах регистронезависимо.
    Изменены: ReqConv.
    08.11.2012 А.Б.Хах
BP* Код задачи 26062. Для запросов группа полей повторяется, не повторяется и
    уникально регистронезависимые строковые поля в группе участвуют
    регистронезависимо.
    Изменены: ReqConv.
    08.11.2012 А.Б.Хах
 B- Код задачи: 26072. Неверно формировалось глобальное меню - добавлялись пункты меню,
    относящиеся к локальному меню таблицы.
    Изменены: DeskMenu_build, SVCLCommon_Registration, SVCLHT_Registration
    07.11.2012 М.А.Зайкин
                                 --- * ---

DSP v3.6.33 от 07.11.2012
-------------------------

 B- Код задачи 26097. Флаги "в оперативной визуализации" и "детальный просмотр"
    были перепутаны местами.
    Изменены: DBD2Schema.
    07.11.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.32 от 07.11.2012
-------------------------

 P- Код задачи: 26067. При загрузке описателя в приложение для уровней доступа
    таблицы изменены умолчания - теперь выставляется 254.
    Изменен: DBD2Schema.
    07.11.2012 М.В.Пекшева
                                 --- * ---

DSP v3.6.31 от 07.11.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  06.11.2012 М.А.Зайкин
  ----------------------------------------------------------

 P* Созданы процедуры инициализации меню обстановок:
    InstallDeskMenuLocal, InstallDeskMenuExec.
    В SVCLCommonSQL_cnstr добавлен вызов этих процедур.
    Перенесена переменная isNeedRebuildByTime из модуля DeskMenu_build в DeskMenu_cache.
    В DeskMenu_build: в интерфейсной части оставлены только объявления BuildDeskMenu, InstallDeskMenuLocal
    В DeskMenu_exec: обработчик hnd_GetReadStreamByName убран из интерфейсной части.
    Удалены: DeskMenu_cnstr
    Изменены: DeskMenu_build, DeskMenu_exec, DeskMenu_cache, SVCLCommonSQL_cnstr, SVCLCommonSQL.dpk
    06.11.2012 М.А.Зайкин

    Адаптация: если не будет компилироваться, из списка uses удалить DeskMenu_cnstr.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  02.11.2012 А.Б.Хах
  ----------------------------------------------------------

 P- Код задачи 26044. Соединение, переданное в конструкторе объектов гл. меню
    TDeskMenuMenu и TReportsMenu, могло быть уничтожено. Теперь ссылка на
    соединение есть только с момента входа пользователя и до его выхода.
    Изменены: DeskMenu_menu, commenus.
    02.11.2012 А.Б.Хах

    Адаптация: Для TDeskMenuMenu и TReportsMenu вызывать обычные конструкторы с
      одним параметром - AOwner.
                                   * * *

  - Создание кеша меню обстановок происходило в папке exe-файла.
    Теперь создается в текущей папке.
    Изменены: DeskMenu_cache
    07.11.2012 М.А.Зайкин
  - Код задачи 26060. Сортировка по регистронезависимым строковым полям
    производилась регистрозависимо.
    Изменены: ReqConv.
    06.11.2012 А.Б.Хах
 P- В деструкторе MemoryDataSource'а происходило обнуление интерфейса уже
    освобождённого объекта TableSpec при вызове деструктора MemoryDataSet'а
    Изменены: MemoryDataSet, MemoryDataSource
    06.11.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.30 от 02.11.2012
-------------------------

 P- В проектах под HyTech происходила ошибка загрузки ресурса при открытии
    карточки DeskMenu.
    Изменены: deskmenuform
    02.11.2012 Д.А.Бондаренко
  * Код задачи 26049. Подключены новые карточки.
    Добавлены: frame_RIGHTS.xml
    Изменены: frame_RPT_MAIN.xml, SVCLCommon_cnstr
    02.11.2012 Д.А.Бондаренко
  * Код задачи 25590. При формировании предустановок для добавления записи
    теперь не учитываются ограничения из временных запросов листалки.
    Изменены: SDBVCLUtils, TempRequests
    02.11.2012 Д.А.Бондаренко
  * Код задачи: 26000. Путь по умолчанию для сохранения/загрузки обстановок,
    отчетов и пр. определен как: <каталог запуска>\FORMS.
    Изменены: SVCLCommonSQL_cnstr.
    02.11.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.29 от 02.11.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  02.11.2012 М.В.Пекшева
  ----------------------------------------------------------

 P* В модуле OraLogin.pas теперь в качестве параметров функции LoginToOracleDb
    передаются также TNS-имя соединения и имя схемы.
    Изменен: OraLogin.
    02.11.2012 М.В.Пекшева

    Адаптация: при вызове функции LoginToOracleDb в проекте помимо прочих параметров
      следует передавать TNS-имя соединения и имя схемы.
                                 --- * ---

DSP v3.6.28 от 01.11.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  01.11.2012 М.А.Степанов
  ----------------------------------------------------------

 P* Код задачи: 26000. При попытке сохранения обстановки
    выдавалась ошибка 'Для опции "dir" требуется указать аргумент.'
    P: Функции GetDatabasePath, GetDatabaseSubDir, событие
       app_GetDatabasePath удалены. Добавлена функция GetStorageDir
       для получения пути для хранения файлов обстановок отчетов и пр.
       и соответствующее событие app_GetStorageDir,  по умолчанию
       (для не Hytech проектов) функция возвращает каталог запуска.
    Изменены: commenus, DeskTop, ReqDesigner, SDBVCLUtils, DesignDialogs.
     SVclHtUtils.
    01.11.2012 М.А.Степанов

    Адаптация: если не будет компилироваться, то при открытии диалога на сохранение,
       открытие файла обстановки, отчета и пр. вместо GetDatabaseSubDir
       следует для получения пути для  файла использовать функцию
       GetStorageDir. Для получения файла отчета, запроса и пр. ранее
       бравшегося из подкаталога в БД Hytech следует использовать
       специальные функции получения потока которые для проектов на Oracle
       будут брать нужное из БД.
                                   * * *

 P* Переработано формирование локального меню таблицы
    Изменены: DeskMenu_build.
    01.11.2012 М.А.Зайкин
 P* Код задачи 25950. Подключения вещей не зависящих от HyTech вынесено из
    SVCLHT_cnstr в SVCLCommon_cnstr.
    Перенесены:
      SonarVCL\HyTech\CnfParam -> SonarVCL\Common\CnfParam,
      SonarVCL\HyTech\SnsParam-> SonarVCL\Common\SnsParam.
    Изменены: CnfHnd, GridCodeView, SVCLCommon_cnstr, SVCLHT_cnstr.
    01.11.2012 А.Б.Хах
  - Код задачи: 26021. Ошибка в дизайнере запросов: при загрузке запроса
    из файла показывался диалог выбора режима загрузки запроса, независимо
    от того, пуст список запросов или нет.
    Изменены: ReqDesigner, DataSetInternalRequests, ReqApi
    01.11.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.6.27 от 01.11.2012
-------------------------

  * Код задачи 24862. Сообщение о превышении максимального количества записей
    в отчёте теперь выдаётся только для отчётов по выборке (ранее могло
    выводиться для отчётов по одной записи).
    Изменены: ReportUtils, DeskMenu_exec, OraRwfExec
    31.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.26 от 01.11.2012
-------------------------

  * Код задачи 25963. Показ окна "О программе" вынесен из HyTech'ой части.
    Изменены: About, SVCLCommon_cnstr, SVCLCommonSQL_cnstr, SVCLHT_cnstr, SVCLHTUtils.
    31.10.2012 А.Б.Хах
  - Код задачи: 26011. При загрузке описателя в приложение в случае, когда по полю
    построены два индекса: уникальный и копмпозитный неуникальный, создавалось
    два объекта tpSubSchemaField для данного поля.
    Изменен: DBD2Schema.
    31.10.2012 М.В.Пекшева
  - Код задачи 26013. Исправлена ошибка 'Список полей для набора данных пуст'
    Изменены: DeskMenu_exec
    31.10.2012 М.А.Зайкин
                                 --- * ---

DSP v3.6.25 от 31.10.2012
-------------------------

 P* В SVCLCommon_cnstr подключена инициализация DeskMenu
    Изменены: SVCLCommon_cnstr.pas
    31.10.2012 М.А.Зайкин
 P* Подключаемая форма frame_deskmenu.xml переименована в frame_DeskMenuHT.xml
    Изменены: deskmenuform.pas
    31.10.2012 М.А.Зайкин
  * Код задачи 24862. Исполнитель RWF учитывает ограничения на максимально кол-во записей
    для листалок.
    Изменены: RWFExec, OraRwfExec.
    31.10.2012 С.А.Барсуков
  * Код задачи 25951. Удален пункт гл. меню "Открыть меню обстановок". Добавлен
    пункт гл. меню "Обновить меню обстановок", который проверяет актуальность кеша.
    Добавлены: DeskMenu_menu, dm_DeskMenuMenu.xml.
    Изменены: StdMainForm, dm_ServiceMenu.xml.
    31.10.2012 А.Б.Хах
  * Код задачи 26007. Подключена карточка Меню обстановок (вынесена из общей
    части Легенды)
    Добавлены: frame_DESKMENU.xml
    Изменены: SVCLCommon_cnstr
    31.10.2012 Д.А.Бондаренко
 P- Код задачи 23518. Исправлены ошибки, допущенные при переносе опции
    проектной конфигурации из пакета kbmmw в общую часть SQL.
    Изменены: SonarDBkbmMW, kbmMWSonarCommonDataSet, SonarDBJava
    31.10.2012 Д.А.Бондаренко
  + Код задачи 24862. Для отчётов по выборке добавлен вывод преупреждения о
    превышении максимального количества записей.
    Изменены: DeskMenu_exec, SVCLCommonSQL.dpk
    30.10.2012 Д.А.Бондаренко
 P* Код задачи: 25287. При мультивыборе удаление, добавление записей производятся
    в одной транзакции.
    Изменены: SQLMultiSel, GridMultiSel.
    30.10.2012 М.А.Степанов
  - Код задачи: 25991. Ошибка: утечка памяти при открытии файла запроса
    на лица (Sfift+F9).
    Изменен: ReqDesigner
    30.10.2012 Е.В.Михайлов
  - Код задачи: 25958. Ошибка: "Исключение EAccessViolation" при открытии
    файла запроса (Sfift+F9) старого формата (не XML).
    Изменен: RequestXMLUtils
    30.10.2012 Е.В.Михайлов
 P* Ветвь для поддержки нового DeskMenu слита с основной.
    29.10.2012 А.Б.Хах

<Изменения для поддержки нового DeskMenu>
  * Код задачи 19334. Адаптирована функция построения локального меню таблицы.
    30.10.2012 М.А.Зайкин
 P* Функции загрузки/сохранения xml-запросов выделены в отдельный модуль.
    Добавлены: RequestXMLUtils.pas
    Изменены: DeskMenu_exec, ReqDesigner
    30.10.2012 М.А.Зайкин
 P* Обработчик  события  app_GetProjectNameForDeskMenuCachedLimit (получение
    имени проекта) вынесен на уровень приложения (ТОР)
    29.10.2012 М.А.Зайкин

 P* Код задачи 25915. Кеш deskmenu сделан паразитом, висящим на соединении. Из
    проекта Тор выделен обработчик, который проверяет актуальность кеша раз в 30 мин.
    Изменены: DeskMenu_build, DeskMenu_cache, DeskMenu_cnstr.
    29.10.2012 А.Б.Хах
</Изменения для поддержки нового DeskMenu>

  - Код задачи: 25903. При загрузке карточки RIFLING в Торе выдавался
    хинт: 'Поле НаселПункт отсутствует в ведущей таблице'.
    P: Пока сделано так: если не удается получить ITableSpec из ведущего
       источника то сообщение об отсутствии поля не выдается.
    Изменены: Requests, DsLimit.
    30.10.2012 М.А.Степанов
  * Код задачи: 25907. В трехзвенной архитектуре не протоколировались
    исключения происходящие при изменении данных.
    Изменены: SonarDBJava.
    30.10.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.24 от 30.10.2012
-------------------------

  - При загрузке описателя в приложение наличие поля access_level в таблице
    dbd$tables теперь опционально.
    Изменен: DBD2Schema.
    30.10.2012 М.В.Пекшева
                                 --- * ---

DSP v3.6.23 от 29.10.2012
-------------------------

 P* Код задачи 25915. Ряд изменений, облегчающих построение гл. меню в проекте.
    Изменены: AuthCommon, StdMainForm, AutoLoadDesktop, SVCLHT_cnstr.
    29.10.2012 А.Б.Хах
  - Код задачи 25422. Адаптация изменения способа хранения бинарных данных под Oracle.
    Изменены: RWFExec, OraRwfExec.
    29.10.2012 С.А.Барсуков
                                 --- * ---
DSP v3.6.22 от 27.10.2012
-------------------------

  * Код задачи 25598. Подключен визуализатор процесса поиска свободных значений.
    Изменены: MissedValues, SonarDBIntf.
    27.10.2012 А.Б.Хах
  - Код задачи 25598. При получении выборки, по которой осуществляется поиск
    свободных значений, учитывались только основные запросы, тогда как нужно
    учитывать ещё и инкр. поиск и пр.
    Добавлены: frame_TableBrowserMissedValues.xml.
    Перемещены: SVCLCommon\MissedValues -> SVCLCommonSQL\MissedValues,
      SVCLCommon\MissedValuesUtils -> SVCLCommonSQL\MissedValuesUtils.
    Изменены: frame_TableBrowser.xml, SonarDBIntf, TableBrowser, MissedValues,
      svclcommonsql.py, SVCLCommonSQL_cnstr.
    27.10.2012 А.Б.Хах
  * Код задачи: 25882. Реализована поддержка уровней доступа для таблиц, а так же
    добавлена загрузка этой информации в приложение.
    Изменены: DBD2Schema, DBObjectSpec, DBDItems.
    26.10.2012 М.В.Пекшева
  - Код задачи: 25787. При загрузке обстановки с ведущей-подчиненной листалками
    могла возникать ошибка "Тип границы запроса не совпадает с типом поля ..".
    Изменены: ReqConst, Requests, Tchinfrq, DsLimit.
    26.10.2012 М.А.Степанов
  - Код задачи 25794. Максимальная длина вводимого числа для полей типа LongInt
    не ограничивалась согласно описателю.
    Изменены: SControls.pas
    26.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.21 от 26.10.2012
-------------------------

  + Код задачи 25869. Добавлена предустановка поля ИмяФайла при загрузке файла в
    поле бинарных данных.
    Изменены: DBInputCustomBLOB
    25.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.20 от 25.10.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  24.10.2012 Д.А.Бондаренко
  ----------------------------------------------------------

    * Код задачи 23518. Изменена структура проектной конфигурации. Из HyTech-
      зависимой части настроек в общую часть вынесены опции Имя станции и
      Частота обновления данных. Изменены диалоги настроек.
      Перемещены: frame_DBMSParams.xml, dm_ConfigMenu.xml
      Добавлены: CommonDB_Globals, HTNetCnfHandlers, dm_DBParamsMenu.xml
      Изменены: dm_ConfigMenu.xml, frame_DBMSParams.xml, DSPCommon.dpk,
        SVCLHt.dpk, ht_init, netcnf, advappc, cnfdef, CnfHnd, Config,
        EditFormLayout, fconfig, MainFormStatusBar, StdMainForm,
        SVCLCommon_cnstr, TableBrowser, TextBox, AuthHyTech, HTMenus,
        htSQLOLE, OldAuthHyTech, password, SVCLHT_cnstr0.

    Адаптация: Имя станции в сети (ранее - DbParameters.Start.StationName)
      теперь хранится в глобальной переменной DBStationName в модуле
      CommonDB_Globals пакета DSPCommon. Также имя станции доступно в записи
      FConfigure по имени ИмяСтанции. Частота обновления данных (ранее -
      DbParameters.Misc.RefreshInterval) доступно в записи FConfigure по имени
      ЧастотаОбн.
                                   * * *

 P* Код задачи 23518. Для не-HyTech проектов добавлены упрощённые обработчики
    событий конфигурации.
    Добавлены: StationNameDialog
    Изменены: SVclCommon.dpk, SVCLCommon_cnstr, HTNetCnfHandlers
    24.10.2012 Д.А.Бондаренко
 P* Код задачи 25598. Добавлена функция BuildTotalReq, которая позволяет по
    набору данных сформировать итоговый запрос.
    Изменены: DataSetInternalUtils, DataSetLayoutSQLConvertor,
      DataSetRequestBuilder, SVCLCommonSQL_cnstr, SonarDBkbmMW, SonarDBJava,
      sdboracle, oradeskmenu.
    24.10.2012 А.Б.Хах
  - Код задачи 25532. При работе с MemoryDataSource свойства полей не
    настраивались в соответствие с описателем.
    Добавлены: MemoryDataSet
    Изменены: MemoryDataSource, SVclCommon.dpk
    23.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.19 от 23.10.2012
-------------------------

 P* Код задачи: 25834. Для AnyDAC В явном виде задана кодировка cp1251.
    Изменен: SDbOracle.
    23.10.2012 М.В.Пекшева
  - Код задачи 25833. Не инициализировалось поле проектной конфигурации,
    определяющее максимальное количество записей в листалке.
    Изменены: SQLConfig, SVCLCommonSQL_cnstr
    23.10.2012 Д.А.Бондаренко
  * Код задачи 25814. В полях редактирования бинарных данных запрещено
    перетаскивание панелей инструментов мышью.
    Изменны: frame_DBInputBLOB.xml, frame_InputCustomBLOB.xml
    22.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.18 от 22.10.2012
-------------------------

 P+ Код задачи: 25003, 24826. Добавлены модули для проверки совместимости
    версии приложения с версией БД и для запуска автоматического обновления
    программы.
    Добавлены: UpdateApp, VersionUtils, CheckAppVersion.
    19.10.2012 М.А.Степанов
 P- Код задачи 25281. При преобразовании метаописатель dbd -> экземпляр
    TSchemaDef устанавливались алиасные поля, совпадающие и именем поля
    схемы.
    Изменены: DBD2Schema.
    19.10.2012 И.В.Ковалев
 P* Код задачи 23518. Опция, определяющая максимальное количество записей в
    листалке, вынесена в общую для соединений SQL часть.
    Удалены: OraConfig
    Добавлены: SQLConfig, SVCLCommonSQL_Globals
    Изменены: SVCLCommonSQL.dpk, svcloracle.dpk, kbmMWConfig, sdboracle
    18.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.17 от 16.10.2012
-------------------------

 P- Код задачи 25730. Функция sdb_get_vcl_field_data для строковых полей,
    если длина значения - максимальная возможная для этого поля,
    прописывала по памяти.
    Проявлялось: Функция GetFieldByKey для таких ключей (строковых,
      максимальная длина значения) приводила к ошибке "Несанкционированный
      доступ", или "Неверная операция с указателем", или другой.
    Изменены: SDBDataSets.
    15.10.2012 Д.И.Кобрусев
 P* Код задачи 24922. Добавлена возможность заменять текст инкрементного поиска
    в обработчиках события ev_sdbgrid_IncrementTextChanged.
    Изменены: SDBGrid
    12.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.16 от 12.10.2012
-------------------------

 P* Добавлен метод TSonarDBJava_Connection.RequestService, позволяет вызвать
    произвольную функцию java-сервиса.
    Изменены: SonarDBJava, kbmMWJavaDBService.
    12.10.2012 М.А.Степанов, Д.И.Кобрусев.
                                 --- * ---

DSP v3.6.15 от 11.10.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  11.10.2012 А.Б.Хах
  ----------------------------------------------------------

    * Код задачи 25559. RecoverRequests переименован в SafeRecoverRequests и теперь
      выдает "желтый хинт", если возникли ошибки при восстановлении запроса, а не
      исключение.
      Изменены: DBInputMethods, reqfactory, rwffactory, Sections, TableBrowser,
        TableDataSource, TextBox, uRecoverRequests, DataSetLayoutSQLConvertor,
        ReportSupp, SdbVcl.

    Адаптация: Там где использовалась RecoverRequests использовать
      SafeRecoverRequests.
                                   * * *

                                 --- * ---

DSP v3.6.14 от 10.10.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  10.10.2012 А.Б.Хах
  ----------------------------------------------------------

   P* Код задачи 25559. Функция RecoverRequests вынесена в отдельный модуль
      uRecoverRequests.
      Добавлен: uRecoverRequests.pas.
      Изменены: SonarDbIntf, TableBrowser, TableDataSource, TextBox, ReportSupp,
        SdbVcl.

    Адаптация: Подключить модуль uRecoverRequests или заменить использование
      SonarDBIntf на uRecoverRequests, если использование SonarDBIntf не нужно.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  10.10.2012 А.Б.Хах
  ----------------------------------------------------------

   P* Код задачи 25559. Поддержка т.н. желтого хинта перенесена из SControls в
      отдельный модуль HintMessage.
      Добавлен: HintMessage.pas.
      Изменены: AuthFormH, ChoiceForm, DBObjectChoice, FieldValidator,
        LayoutValidation, SControls, SectionPageControl, Sections,
        SelectShowHandler, SVCLCommon_cnstr, SVCLkbmMW_cnstr.

    Адаптация: Подключить модуль HintMessage или заменить использование
      SControls на HintMessage, если использование SControls не нужно.

      Часть функциональности была "спрятана" в implementation (есть ощущение,
      что в interface модуля SControl она была помещена "прозапас". Если её
      использование где-то понадобиться, то следует "вынести" в interface модуля
      HintMessage необходимые вещи.
                                   * * *

 P* Добавлено протоколирование исключений происходящих на внутреннем kbmMW
    сервере, т.к. перестали протоколироваться после изменения механизма
    протоколирования исключений.
    Изменены: kbmMWServer.
    09.10.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.13 от 09.10.2012
-------------------------

  - Код задачи 25585. Если в поле ввода текста содержался текст, начинающийся с
    буквы "я", то вместо него показывался мусор.
    Изменены: controls.
    09.10.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.12 от 09.10.2012
-------------------------

  - В части скриптов запуска утилит для описателя не был указан путь к zip-архиву
    как путь относительно вызываемого модуля.
    Изменены: xml_to_dbd, dbd_to_xml, upgrade_db, dbd_check, dbd_to_ddl,
      dbd_to_json, json_to_dbd.
    09.10.2012 М.В.Пекшева
 P* Код задачи: 24168. Адаптированы изменения в java-сервисе, при выполнении
    sql-запросов вместо индексов параметров передаются их имена.
    !ВНИМАНИЕ!: После этих изменений, для работы с трехзвенными
    приложениями нужны новый java-клиент (tor-kbmmw-service-0.0.1.jar) и новая
    серверная часть.
    Изменены: kbmMWJavaDBQuery.
    08.10.2012 М.А.Степанов
  * В скриптах работы с описателем изменен способ получения пути к архиву
    dbd_utils_lib.zip - теперь путь формируется на основе полного пути к
    вызываемому модулю.
    Изменены: xml_to_dbd, dbd_to_xml, upgrade_db, dbd_check, dbd_to_ddl,
      dbd_to_json, json_to_dbd, convert2to3.
    08.10.2012 М.В.Пекшева
  - Код задачи 25604. JoinInfo и SortInfo вставленные в TDataSetLayout
    сохранялись дважды под одним и тем же именем, что при загрузке приводило к
    исключению.
    Изменены: SonarDBIntf.
    08.10.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.11 от 08.10.2012
-------------------------

  - Код задачи 25548. Неверно срабатывал алгоритм определения того, что в
    таблице есть только одно редактируемое поле - внешний ключ.
    Изменены: SDBVCLUtils.
    08.10.2012 А.Б.Хах
  * Код задачи 25577. Отключено построение пункта "Полная информация".
    Изменены: FullInfo.
    05.10.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.10 от 05.10.2012
-------------------------

 P* Код задачи: 25562. Флаг регистрозависимости перенесен в отдельный класс для
    строк TStringTypeSpec.
    Изменены: DBD2Schema, DBDItems, DBSchemaIntf, DBSchemaUtils, HTDESCR,
      SDBConst, ReqEditor, ReqConv.
    05.10.2012 М.В.Пекшева
 P* Код задачи 25581. Добавлена функция GetReadStreamByName и событие приложения
    app_GetReadStreamByName для загрузки отчетов/подотчетов и картинок для отчетов.
    Изменены: rwdata, RWFExec.
    05.10.2012 С.А.Барсуков
                                 --- * ---

DSP v3.6.9 от 05.10.2012
------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  04.10.2012 А.Б.Хах
  ----------------------------------------------------------

   P* Код задачи 25155. Свойство фабрики TTableBrowserFormFactory.FormHandler
      переименовано в TableBrowserForm.
    Изменены: TableBrowser, rwfdesigner.

    Адаптация: Переименовать FormHanlder в TableBrowserForm.
                                   * * *

  > Код задачи 25514.
    - После закрытия блочного редактора не уничтожался
      склонированный DBEditFrame, который в нем использовался.
   P- В случае если у tADataSetLimit нет MasterDataSource и кто-то
      для какого-то набора данных запросил GetDataSetFields, то происходило EAV.
    Изменены: TableBrowser. DsLimit.
    04.10.2012 А.Б.Хах
  + Код задачи 25155. При загрузке представления листалки или обстановки теперь
    производится проверка соответствия представления и структуры БД. Слияния,
    сортировки и поля в визуализации, в которых участвуют поля или таблицы,
    удаленные из структуры, удаляются.
    Добавлен: LayoutValidation.
    Изменены: DBGridLayout, SonarDbIntf, TableBrowser, svclcommon.dpk.
    04.10.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.8 от 04.10.2012
------------------------

  - При генерации в скрипте, написанном на Python, исключения с текстом в кодировке
    UTF-8 не отображались ни текст исключения, ни стек вызовов.
    Изменен: PythonEngine.
    03.10.2012 М.В.Пекшева
 P+ К путям поиска питона в скрипте запуска утилиты convert2to3 был добавлен
    архив dbd_utils_lib.zip.
    Изменен: convert2to3.
    03.10.2012 М.В.Пекшева
 P+ К путям поиска питона в скриптах запуска был добавлен архив
    dbd_utils_lib.zip.
    Изменены: xml_to_dbd, dbd_to_xml, upgrade_db, dbd_check, dbd_to_ddl,
              dbd_to_json, json_to_dbd.
    03.10.2012 М.В.Пекшева
                                 --- * ---

DSP v3.6.7 от 03.10.2012
------------------------

  * Код задачи: 25216. При неудачной попытке установить соединение
    с сервером приложений выдается соответствующее сообщение.
    Изменены: SonarDBkbmMW.
    02.10.2012 М.А.Степанов
 P* Функция IsContextExists перенесена в Contexts.pas
    Изменены: Contexts, SVCLUtils
    02.10.2012 Д.А.Бондаренко
  - Код задачи 25510. При формировании XML-представления запроса двойная
    кавычка в значении строкового поля приводила к ошибке вида XML parse error.
    Проявление: ошибка при контроле СУК таблицы COMPANY проекта Вега.
    Изменены: SDBUtils, XMLUtils
    02.10.2012 Д.А.Бондаренко
  * Код задачи: 25073. Добавлен перенос поддерева кодификатора при
    изменении кода кодификатора.
    Изменены: SVCLkbmMW_cnstr, SQLAppTriggers.
    02.10.2012 Д.А.Бондаренко, М.А.Степанов
  - Код задачи 25426. Т.к. закрытие вкладки осуществляется фоново (из-за
    ProcessMessages), то на одну и ту же вкладку могло быть построено несколько
    обработчиков, закрывающих её (нарп. если зажать горячую клавишу), и второе
    закрытие приводило к ошибке.
   P: Теперь повторное построение обработчика не допускает TSafeCloseAction и
      функция IsSafeCloseActionPending. Все действия по закрытию глобальных
      объектов следует выполнять через них.
    Изменены: MultitabbedDesktop, SVCLUtils.
    02.10.2012 А.Б.Хах
                                 --- * ---

DSP v3.6.6 от 02.10.2012
------------------------

  - Код задачи 25441. При подсчете общего количества записей, записи удаленные
    из выборки (Del), считались дважды: первый раз явно при подсчете кол-ва,
    второй раз непосредственно при удалении записи (поскольку удаление из
    выборки в 3х - это удаление из набора данных).
    Изменены: SonarDBkbmMW.
    01.10.2012 А.Б.Хах
  - Код задачи 25476. Неверно указывалась имя поля, при "заказе" полей для набора
    данных, содержащих отмеченные записи. Указывалось имя в таблице, для которой
    инициирован мультивыбор, а должно было - имя поля в таблице, в которой он
    осуществляется. Отголоски проблемы, исправленной в 25433.
    Изменены: SQLMultiSel.
    01.10.2012 А.Б.Хах
  > Код задачи 25290.
   P- На таблице с составным ключом, если одна часть ключа не является внешним
      ключом, а вторая - зафиксирована (например, листалка открыта из раздела),
      попытка редактировать запись вызывала Access Violation
      Изменены: SDBVCLUtils
   P* Переведено на русский язык значение константы SMaskEditErr
      Изменены: Consts
    01.10.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.6.5 от 28.09.2012
------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  27.09.2012 А.Б.Хах
  ----------------------------------------------------------

  > Код задачи 25452.
   P+ Добавлен новый вид триггеров - Flush-триггер, который
      срабатывает непосредственно перед изменением данных, и уже после того, как
      отработают все остальные виды триггеров.
   P* RegisterTrigger для таблицы переименован в RegisterTableTrigger,
      RegisterTrigger для всех таблиц переименован в RegisterGeneralTrigger.
    Изменены: AppTriggers, CompoundErrorCheck, UTriggerContainer, SQLAppTriggers.

    Адаптация: Адаптировать переименование функций RegisterTrigger: для
      триггеров на конкретные таблицы использовать RegisterTableTrigger, для
      общих триггеров использовать RegisterGeneralTrigger.
                                   * * *

  - Код задачи 25468. Получение описания записи для показа в карточке, в
    поле выбора из списка (также вызывается и в других местах). Если среди
    связанных по смысловым полям таблиц была такая, в которой есть
    смысловые поля-ссылки на другие таблицы, и нет смысловых полей-не
    ссылок, происходила ошибка: "Недопустимый идентификатор".
    Проявлялось в "Торе" при получении описания адмучастка.
    Изменены: ObjectDescriptionsGen.
    28.09.2012 Д.И.Кобрусев
 P- Функция CheckByReqStr не работала для TSonarDBJava_Connection.
    Изменены: SonarDBJava.
    28.09.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.4 от 26.09.2012
------------------------

  - Код задачи 25443. Из-за пересечения имени схемы и имени таблицы (имя схемы -
    TASKS, и таблица - TASKS) возникала ошибка.
    Изменены: SQLAppTriggers.
    26.09.2012 А.Б.Хах
  * В утилите hst2dbd добавлено выставление флага регистронезависимости для доменов.
    Изменен: hst2dbd_utils, dbd_const.
    26.09.2012 М.В.Пекшева
 P* Адаптация в скриптах обслуживания описателя в связи с переносом функционала
    по преобразованию описателя в формате SQlite в набор словарей и списков в
    модуль dbd_image.
    Изменены: dbd_to_ddl, common_utils, dbd_to_xml.
    26.09.2012 М.В.Пекшева
                                 --- * ---

DSP v3.6.3 от 25.09.2012
------------------------

  > Код задачи 25433.
    - При получении перечня кодов ключа, изначально выбранных, выборка
      осуществлялась не в той таблице.
    - При получении выборки записей, которые будут удалены, добавлялось только
      ограничение по "или" на коды ключа записей, которые будут удалены, а
      фиксирующие ограничения не применялись.
    Изменены: SQLMultiSel.
    25.09.2012 А.Б.Хах
  * К описателю добавлено понятие версии его структуры.
    Изменены: dbd_const.
    25.09.2012 М.В.Пекшева
  * В структуре описателя появилась таблица dbd$const, содержащая в себе
    информацию о версии описателя.
    Изменены: dbd_const, dbd_image.
    25.09.2012 М.В.Пекшева, М.А.Зайкин
  * Для описателя появилась возможность представлять его в виде XML.
    Изменены: dbd_to_json, json_to_dbd.
    Добавлены: dbd_image, dbd_to_xml, xml_to_dbd.
    25.09.2012 М.В.Пекшева, М.А.Зайкин
 P* Код задачи: 25288. Убраны события deLayoutChanged при настройке полей
    при открытии датасета.
    Изменены: SonarDBkbmMW.
    25.09.2012 М.А.Степанов
  * В утилитах upgrade_db и dbd_to_ddl изменен порядок генерации триггеров - теперь
    они генерируются в любом случае.
    Изменены: upgrade_db, dbd_to_ddl.
    25.09.2012 М.В.Пекшева
  - Строки в модуле sql_proc.py были не в кодировке Unicode, поэтому не выполнялись
    заросы в утилитах обслуживания описателей.
    Изменены: sql_proc.
    25.09.2012 М.В.Пекшева
                                 --- * ---

DSP v3.6.2 от 25.09.2012
------------------------

  - Код задачи 25414. Применение флагов обязательности и "ReadOnly" (а именно
    смена цвета шрифта) в DBEditFrame приводило к тому, что в Дизайнере
    сохранялись свойства конкретного шрифта и сбрасывался ParentFont.
    Изменены: DBEditFrame.
    24.09.2012 А.Б.Хах
  > Код задачи 25389. Ввод в листалке, в которой поле типа код
    кодификатора зафиксировано запросом:
    - При определении, нужен ли мультивыбор, запрос на равенство кода
      нулевому значению не считался фиксирующим.
    - Если должен был производиться мультивыбор, происходила ошибка:
      "Произошла внутренняя ошибка программы".
    Изменены: FieldValueUtils, gridmultisel, HandleRowCommands,
      MultiChoice, SDBVCLUtils, SQLMultiSel, VCLReq.
    24.09.2012 Д.И.Кобрусев
  - В утилите upgrade_db при конвертации данных исключения записывались в файл
    протокола в неверной кодировке, в результате чего происходила ошибка.
    Изменен: upgrade_db.
    24.09.2012 М.В.Пекшева
 P- Код задачи 25410. DeCAL. Если в контейнер занести Variant, не
    освобождалась память.
    Изменены: DeCAL.
    22.09.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.6.1 от 21.09.2012
------------------------

  - Код задачи 25406. При открытии карточки (видимо, любой) происходила
    ошибка "Индекс списка вне границ" (карточка не открывалась).
    P: К этой ошибке приводила конвертация запроса по физическому номеру.
    Изменены: ReqConv.
    21.09.2012 Д.И.Кобрусев
 P- Код задачи: 25288. При первом обновлении текстового окна происходило
    его перестроение.
    Изменены: TextBox.
    21.09.2012 М.А.Степанов
  - В утилите convert2to3.py при конвертации данных пропускались пустые ссылки.
    Изменен: convert_utils.
    21.09.2012 М.В.Пекшева
  * Код задачи: 25365. Добавлен учет регистронезависимых индексов:
    Если для поля есть регистронезависимый индекс, то: инкрементный поиск ищет
    регистронезависимо, в запросе во всех условиях сравнение также идет
    регистронезависимо, в редакторе запросов нельзя задать для них условие
    'совпадает с учетом регистра'.
    Изменены: ReqEditor, ReqConv.
    19.09.2012 М.А.Степанов
                                 --- * ---

DSP v3.6.0 от 20.09.2012
------------------------

  - Код задачи 25380. При первом открытии TTableBrowser'а в Дизайнере у него нет
    вообще никакого представления и соответственно, не "заказано" ни одно поле.
    Поэтому открыть такую листалку невозможно. Чтобы этого избежать, в этой
    ситуации выполняется построение представления по умолчанию.
    Изменены: TableBrowser
    20.09.2012 А.Б.Хах
 P* Код задачи 25363. Флаг регистрозависимости перенесен к доменам.
    Изменены: dbd_const, dbd_to_json, json_to_dbd, DBD2Schema, DBDItems,
      DBSchemaIntf, htdescr.
    20.09.2012 М.В.Пекшева
  - При обновлении данных при помощи утилиты upgrade_db не строились индексы,
    поскольку не верно получались их детали.
    Изменен: upgrade_db.
    20.09.2012 М.В.Пекшева
 P* Обновлены скрипты в папке Python утилиты HST2DBD.
    Изменены: dbd_impexp_common, check_descriptor, dbd_const.py
    20.09.2012 М.В.Пекшева
  + Код задачи 25073. Добавлена поддержка поля СБК при работе с кодификатором.
    Добавлены: SQLAppTriggers
    Изменены: CodeUtils, SVCLJavaDB_cnstr, svclkbmmw.dpk
    20.09.2012 Д.А.Бондаренко
 P* В ряде скриптов для описателя возвращены обычне строки вместо юникодных.
    Изменены: dbd_to_json, check_descriptor.
    19.09.2012 М.В.Пекшева
 P* Из модуля конвертации данных из HyTech в Oracle выделена общая часть
    и вынесена в отдельный модуль.
    Изменены: convert2to3, upgrade_db, common_utils.
    Добавлен: convert_utils.
 P* Вся работа с метаданными Oracle вынесена в отдельный модуль sql_proc.
    Добавлены: sql_proc.
    Изменены: comparing_structure, upgrade_db.
    19.09.2012 М.В.Пекшева
 -  Для поля типа 'BYTE' последовательности больше не строятся, т.к. в Oracle
    ему соответствует тип RAW, кот. не является итерируемым.
    Изменены: dbd_to_ddl, upgrade_db.
    19.09.2012 М.В.Пекшева
 P- Код задачи 25172. При получении списка индексов для таблицы не учитывалось, что
    индексы для таблицы могут быть не заданы.
    Изменены: comparing_structure, upgrade_db.
    19.09.2012 М.В.Пекшева
 P- Если при запуске утилите указывалось имя пользователя маленькими буквами, то
    ни одна таблица не находилась.
    Изменены: comparing_structure.py
    19.09.2012 А.Б.Хах, М.В.Пекшева
 P* Код задачи 25333. Поддержка кодификаторных операций переведена на
    использование TCodeValue вместо массива байт, в качестве хранилища значения
    кода.
    Изменены: CodeUtils, GridCodeView, DataSetRequestBuilder,
      DataSetInternalRequests, SQLCodeViewHandler, HtCodeView.
    19.09.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.77 от 19.09.2012
-------------------------

  - Код задачи 25077. После инкремента теперь работают кодификаторные
    операции, добавляющие записи в выборку, а каждый новый инкр. поиск отменяет
    все кодификаторные операции.
    Изменены: DataSetRequestBuilder, OraUsrReq, SQLIncrSearchHandler.
    17.09.2012 А.Б.Хах
  * Код задачи 25160. Поддержана регистронезависимость полей на уровне описателя.
    Изменены: dbd_const.py, dbd_to_json.py, json_to_dbd.py, dbd_to_ddl.py,
      DBD2Schema, DBDItems, DBSchemaIntf, htdescr.
    17.09.2012 М.В.Пекшева, А.Б.Хах
 P- Код задачи: 25228. При открытии обстановки с ведущим-подчиненным
    окном, подчиненное окно обновлялось дважды.
    Изменены: MasterDetailHandlers.
    17.09.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.76 от 17.09.2012
-------------------------

 P* Код задачи 25172. В скриптах DBDUtils теперь везде используются юникодные
    строки. Удалены все префиксы u в строковых литералах.
    Изменены: check_descriptor, check_means, json_common, dbd_to_json,
      json_to_dbd, common_utils, comparing_structure, convert2to3, dbd_to_ddl,
      generator_ddl, upgrade_db.
    14.09.2012 А.Б.Хах
 P+ Код задачи 25166. Добавил функцию для просмотра бинарных данных
    файла-документа DoViewBlobFile, которая пытается открыть файл на редактирование,
    а в случае неудачи на просмотр, с запретом выполнения исполняемых файлов.
  * Изменил реакцию на нажатие кнопки "Открыть во внешнем редакторе" (TDBInputCustomBLOB)
    на вызов функции DoViewBlobFile.
    Изменены: DBInputCustomBLOB
    14.09.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.75 от 14.09.2012
-------------------------

  - Код задачи 25210. Добавлен запрет фонового обновления набора данных листалки
    при интерактивном изменении (во время рассылки события
    ev_TableBrowser_PerformRowCommand).
    Проявление: при вставке записи в листалке, расположенной в
    редактируемой карточке, происходит валидация полей при открытии
    карточки.
    Изменены: TableBrowser
    14.09.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.74 от 13.09.2012
-------------------------

  * Код задачи: 25228. Изменена периодичность фонового обновления окна
    текстовых данных, используются такие же параметры как и для листалки, т.е.
    берутся из опций, по умолчанию 60 сек.
    Изменены: TextBox.
    13.09.2012 М.А.Степанов
 P> Код задачи: 25228. Трехзвенная архитекура:
    * Добавлена возможность принимать от сервера BigDecimal,
    * Поля типа NUMBER по умолчанию конвертируются в ftFMTBCD.
    - Исправлена ошибка в FMTBCD.pas: При конвертации строки в вариант
      типа FMTBCD, например функцией VarAsType('0.0000000000001',
      VarFMTBcd), значения с числом знаков после запятой больше 8
      округлялись, хотя использование StrToBCD к такому не приводит.
    Изменены: kbmMWJavaDBQuery, kbmMWCustomJavaService, FMTBcd.
    13.09.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.73 от 13.09.2012
-------------------------

  * Код задачи 25285. Для трехзвенных программ синхронизация времени с сервером отключена.
    Изменены: SVCLkbmMW_cnstr, TimeSync.
    13.09.2012 С.А.Барсуков
  - Код задачи 25218. В карточках запросы на полях выбора из списка,
    ссылающиеся на другие поля этой же карточки, при вводе работали
    неверно: обычно результатом была пустая выборка.
    Изменены: DBObjectHandlers, ReqConv, SVclCommon.dpk.
    Добавлены: AutoAssignableFields.
    13.09.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.72 от 12.09.2012
-------------------------

  * Код задачи 25208. Добавлен запрет редактирования заголовка окна листалки в
    диалоге настройки представления таблицы, если листалка расположена не в
    форме типа TTableBrowserForm.
    Изменены: SDBGridColumnsLayoutDialog, DBGridLayout,
    form_DBGridLayout.xml
    12.09.2012 Е.В.Михайлов
 P+ Код задачи 25011. Добавлены событие ev_DataSetInternalRequests_CreateIncrSearchFieldRequest
    и функция SliceString.
    Изменены: DataSetRequestBuilder, SonarSys.
    11.09.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.71 от 11.09.2012
-------------------------

  - Код задачи 24780. В GUI приложениях не протоколировались исключения.
    Изменены: forms.
    11.09.2012 С.А.Барсуков
 P- Под HyTech при перемещении по записям с помощью DBNavigator'а не
    срабатывало событие ev_RecordController_PrepareRecord.
    Изменены: SdbVcl
    11.09.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.70 от 07.09.2012
-------------------------

  - Код задачи: 25071. При добавлении текстовых бин.данных текст
    в окне исчезал на какое то время.
    P: Также после добавления записи курсор мог не перейти на новую
       добавленую запись (не проявлялось т.к. добавление как правило
       производится в пустом наборе данных и добавленая запись получалась единственной).
    Изменены: SonarDBkbmMW, SonarDBJava.
    07.09.2012 М.А.Степанов
  - Код задачи 25212. Если пользователь инициировал появление блочного редактора
    и до его появления выполнил какие-то действия, то показ блочного редактора
    отменяется.
    Изменены: TableBrowser.
    07.09.2012 А.Б.Хах
  - Код задачи 24985. При экспорте листалки в буфер обмена терялось название
    таблицы и не работало переименование столбцов.
    Изменены: ExportUtils, SDBGridColumnsLayoutDialog
    05.09.2012 Д.А.Бондаренко
 P* Ветвь DSP v3.5.63_dbd интегрирована в основную.
    05.09.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.69 от 05.09.2012
-------------------------

 B* Код задачи 24114. Поиск по тексту обобщен для работы с БД Oracle.
    Изменены: SVclCommon.dpk, DBGridSearch, DbMemoSearch, SVCLCommon_cnstr,
    ReqConv, SdbVcl, SVCLHt.dpk.
    05.09.2012 С.А.Барсуков
                                 --- * ---

DSP v3.5.68 от 05.09.2012
-------------------------

 B- Код задачи 25151. При вычислении общего количества записей набора данных
    с исключёнными строками происходило переполнение.
    Изменены: SonarDBkbmMW, sdboracle
    05.09.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.67 от 05.09.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  04.09.2012 Д.И.Кобрусев
  ----------------------------------------------------------

  - Код задачи 25056. Проявление: В 3-звенной программе, если структура БД
    HyTech (с меню обстановок) отличается от стурктуры основной БД
    (Oracle). В листалке есть подлитое поле из таблицы, которой нет в БД
    HyTech. При инекрементном поиске по такому полю происходила ошибка:
    "Несанкционированный доступ".
    P: Ряд функций, анализирующих структуру БД, работают по структуре БД
       HyTech.
    P* Устранено, где возможно, использование модуля SDBAPI - ознченные
       функции сосредоточены в нём.
    P* Изменён интерфейс функций  nNewRequest, nNewRequestTrans,
       CreateTransInfo, CreateRootReq, CreateRequest, LoadRequestRF,
       CheckLoadReq, addReqDescr, CreateMutliFieldTransferReq - добавлен
       параметр схема данных.
    Изменены: AccessCategoryUtils, AuthFormH, AuthHandlers, Config,
      DataSetRequestBuilder, DBInputMethods, DsLimit, enterrecord,
      fconfig, GridCodeView, grproj, MultiChoice, OldAuthSDBVCLUtils,
      OraRwfExec, PyReq, ReportUtils, reqapi, SDBAPI, SDBUtils, SdbVcl,
      SDBVCLUtils, SelectShowHandler, SVCLCommon_cnstr, SVCLCommon_cnstr0,
      usrutil.

    Адаптация: Если не будет компилировать из-за того, что не
    соответствует интерфейс одной из функций: nNewRequest,
    nNewRequestTrans, CreateTransInfo, CreateRootReq, CreateRequest,
    LoadRequestRF, CheckLoadReq, addReqDescr, CreateMutliFieldTransferReq,
    адаптировать изменение интерфейса (передать схему данных).
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  03.09.2012 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 25074. Добавлен пункт меню Сервис->Открыть меню обстановок.
    Изменены: SDBVCLUtils, StdMainForm, deskmenuform, SVCLHT_cnstr, dm_ServiceMenu.xml.
    03.09.2012 А.Б.Хах

    Адаптация: Функция SetupDeskMenuForm заменена на InstallDeskMenuForm,
    которая вызывается в SVCLHT_cnstr. Т.е. теперь не нужно вызывать её явно в
    проекте, нужно просто подключить SVCLHT_cnstr, если он не был подключен
    ранее.
                                   * * *

 P+ Код задачи 25101. Добавлена поддержка контекстов.
    Изменены: SVclCommon.dpk.
    Добавлены: Contexts.
    05.09.2012 Д.И.Кобрусев
BP* Код задачи 25069. При нажатии клавиши обработка сообщения CM_DIALOGCHAR
    теперь вызывается только при нажатой клавише Alt.
    Изменены: ComCtrls, controls
    04.09.2012 Д.А.Бондаренко
 B- Код задачи 25069. При попытке начать инкрементный поиск в листалке
    срабатывали горячие клавиши вкладок главной формы.
    Изменены: ComCtrls
    03.09.2012 Д.А.Бондаренко
  * Код задачи 24910. В ситуации, когда тип поля параметра отчета не
    совпадает с типом поля первичного ключа в базе Oracle, в запросах
    условия на параметр запроса отбрасывались.
    Изменены: rwfdesigner, rwdata, rwffactory.
    03.09.2012 И.В.Ковалев
 P- Код задачи 25140. В функции DataExists добавлено отключение оптимизации
    (свойство Optimized),  так как при вставке записи разделы не всегда могут
    быть пустыми. Проявление ошибки: В "Легенде" при вставке записи в карточке
    "Журнал водворений в ИВС" изменяем лицо - в разделе с не пустыми данными
    не отображается "галочка".
    Изменены: Sections
    03.09.2012 Е.В.Михайлов
 B- Код задачи 25100. Не обновлялись связанные листалки после закрытия карточки.
    Изменены: form_DataChange, RecordControl, SonarDbIntf, SVCLDBFormH.
    31.08.2012 А.Б.Хах
 B- Код задачи: 25075. Трехзвенный Tasks: в том случае, если в заявках
    было две работы по контакту, и одну из них пытались отредактировать, то
    возникала ошибка: 'Компонент с именем "Text" уже существует.'.
    P: Вызов Requery для серверного набора данных приводил в ошибке.
    Изменены: kbmMWJavaDBQuery.
    31.08.2012 М.А.Степанов
BP+ Код задачи 25141. Из ветви адаптировано добавление поддержки
    интерфейсов ITableSpec, IFieldSpec для TSonarDB_Record.
    Изменены: DSPCommon.dpk, SDBDataSets, SVCLCommon_cnstr0.
    Добавлены: FlagsConvert.
    31.08.2012 М.В.Пекшева (исходные изменения), Д.И.Кобрусев (адаптация)
                                 --- * ---

DSP v3.5.66 от 30.08.2012
-------------------------

 B* Код задачи 25099. Теперь, если введен неправильный код кодификатора в поле
    инкрементного поиска, то результат выполнения запроса - пустая выборка.
    Изменены: ReqConv.
    30.08.2012 А.Б.Хах
 B* Код задачи 24936. Перегруппированы пункты локального меню листалок.
    Изменены: LayoutManager, frame_calcrecordcount.xml, frame_TableBrowser.xml,
      frame_TableBrowserComplement.xml, frame_LocalMenuEx_TableBrowser.xml
    30.08.2012 Д.А.Бондаренко
 B* Код задачи 25081. При обновлении выборки (вызванное в частности,
    обработчиком мастер-деталь) производится выдача запроса пользователю о том,
    что текст был изменен.
    Изменены: TextBox.
    30.08.2012 А.Б.Хах
  * Код задачи 25054. Поле, являющееся первичным ключом, больше не
    предустанавливается при операции добавления значением из запроса или
    инкрементного поиска.
    Изменены: SDBVCLUtils, TableBrowser.
    29.08.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.65 от 29.08.2012
-------------------------

  - Код задачи 25049. Для "мемо" полей поиск по маске работал в предположении, что
    данные хранятся в верхнем регистре.
    Изменены: ReqConv.
    29.08.2012 С.А.Барсуков
  - Код задачи 25063. При двойном клике по выделенной ячейке, после того как
    показалась карточка, производилась попытка показать блочный редактор.
    Изменены: TableBrowser.
    28.08.2012 А.Б.Хах
  * Код задачи 24780. Изменен механизм протоколирования исключений.
    Изменены: sonarsys, SysUtils, LogPrint, JclDebug,
    Jdbinit, Lib.dpk.
    Добавлены: ExtraDebugInfo, ThirdParty\Log4Delphi\*.
    28.08.2012 С.А.Барсуков
                                 --- * ---

DSP v3.5.64 от 27.08.2012
-------------------------

  * Код задачи 24816. Теперь, если после обновления текущей записи, перед
    показом карточки, оказывается, что запись удалена, то выдается
    соответствующее сообщение.
    Изменены: TableBrowser.
    27.08.2012 А.Б.Хах
  - Код задачи: 24994. Ошибка: заполнение полей пустой карточки данными
    текущей записи в листалке при препросадке записи в момент добавления
    в разделе.
    Исправлено: при принудительном изменении данных отключается контроль СУК.
    Изменены: CompoundErrorCheck, SDBUtils
    24.08.2012 Е.В.Михайлов
  - Код задачи 24927. Если поле "Ответств." в БД имеет тип, отличный от
    LongInt, запросы, использующие глобальный параметр "КодПользов" (код
    текущего пользователя) работали некорректно: значением этого параметра
    был неправильный код (как правило, несуществующего пользователя).
    Изменены: AppTriggers, AuthCommon, OldAuthHyTech, OraLogin,
      RowCommandAccessCheckers, SDBConst.
    24.08.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.63 от 23.08.2012
-------------------------

  > Код задачи 24904.
    - Событие ev_RecordController_PrepareRecord теперь не
      рассылается для наборов данных у которых выставлен ControlsDisabled.
   P- Даже после того, как изменение данных прошло успешно,
      возвращалось состояние набора данных на момент начала Post.
    Изменены: RecordControl, SonarDBkbmMW.
    23.08.2012 А.Б.Хах
  * Код задачи 24444. В логических элементах управления (TSDBCheckBox,
    TJvDBComboBox, TSDBRadioGroup)
    изменения в связанном наборе данных происходили только после изменения фокуса,
    теперь непосредственно после изменения состояния элемента.
    Изменены: DBInputMethods, SControls
    22.08.2012 Е.В.Михайлов
  - Код задачи 24437. Для Memo-полей при сохранении записи пустое значение
    заменяется на пробел.
    Изменены: AppTriggers, SonarDBJava, SDBDataSets.
    22.08.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.62 от 21.08.2012
-------------------------

 P- Код задачи 24937. Если объекту TSonarDB_Table установить соединение не
    типа TSonarDB_Connection, функция ExtracTSonarDB_Connection для этого
    объекта, всё равно, возвращала это соединение.
    Изменены: SdbVcl.
    21.08.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.61 от 21.08.2012
-------------------------

 P+ Код задачи 22668. Добавлена поддержка справочной системы формата *.chm
    Добавлены: HTMLHelpViewer
    Изменены: vcl.dpk
    21.08.2012 Д.А.Бондаренко
  - Код задачи 24917. В редакторе бинарных данных не были указаны заголовки
    на кнопках панели инструментов.
    Изменены: frame_DBInputBLOB.xml, frame_InputCustomBLOB.xml
    21.08.2012 Д.А.Бондаренко
  - Код задачи 24909. Если первичный ключ таблицы - строковый, в карточках
    ссылки на эту таблицу расшифровывались (т.е. описание записи в
    "смысловом поле" получалось) неправильно: описание было всегда
    пустым; в принципе, теоретически, там могло оказаться описание другой
    записи.
    Изменены: ObjectDescriptionsGen.
    20.08.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.60 от 20.08.2012
-------------------------

  * Код задачи 24834. При входе в программу раскладка переключается на
    английскую, а после входа - на русскую.
    Изменены: KeyBoardLayouts, Login
    17.08.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.59 от 17.08.2012
-------------------------

 P* Код задачи: 24867. Функция SearchLinkedTables переименована и вынесена
    в интерфейс.
    Изменены: SectionUtils.
    17.08.2012 М.А.Степанов
  - Код задачи: 24818. Ошибка в карточке при вставке:
    при переходе в раздел до просадки записи, возможно появление в листалке
    раздела записей, у которых значение поля-ключа равно 0. Исправлено - если поле
    первичного ключа таблицы мастера имеет значение Null до просадки записи,
    то в условие запроса по ключевому полю для детайл таблицы проставляется 'Null'.
    Изменены: ReqConv
    17.08.2012 Е.В.Михайлов
 P* Код задачи 24803. Проверка заполненности поля выделена в классовую процедуру
    TRequiredFieldValidator.ValidateField. Ею следует пользоваться в других
    валидаторах в случае необходимости проверить обязательность заполнения поля.
    Изменены: FieldValidator.
    16.08.2012 А.Б.Хах
 P+ Код задачи 24830. Добавлена рассылка сообщения app_PrepareInputController -
    для настройки InputController в TDBEditFrame.
    Изменены: DBEditFrame
    16.08.2012 Е.В.Михайлов
  - Код задачи 24843. Сворачивание и разворачивание окна, при определенных
    условиях приводило к тому, что одна колонка увеличивалась в размерах, а все
    остальные уменьшались до минимальных размеров.
    Изменены: SDBGrid.
    15.08.2012 А.Б.Хах
  - Код задачи: 22810. Ограничения вида "ОСК созвучно" работали некорректно.
    Изменены: ReqConv.
    15.08.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.58 от 15.08.2012
-------------------------

  - Код задачи 24416. При выполнении отчета RWF в ситуации, когда тип поля
    параметра отчета не совпадает с типом поля первичного ключа в базе
    Oracle, при вводе параметров отчета это поле не воспринималось как
    ссылка на таблицу, соответсвенно в форме ввода не было элемента,
    позволяющее выбрать значение параметра из листалки таблицы.
    Изменены: rwdata.
    15.08.2012 И.В.Ковалев
  * Код задачи 24815. Теперь при регистрации Java сервиса путь к jre/bin
    добавляется в переменную окружения PATH. Сделано для того, чтобы MSVCR71.dll,
    необходимый для работы jvm.dll был найден в jre/bin.
    Изменены: kbmMWJavaDBServer, kbmMWJavaDBService.
    15.08.2012 А.Б.Хах
  * Код задачи 24718. При попытке открыть листалку для таблицы, в которой не
    задано ни одного поля для оперативной визуализации теперь выдаётся
    соответствующее сообщение.
    Изменены: StdMainForm
    14.08.2012 Д.А.Бондаренко
  > Код задачи 24807.
   P* Блочное редактирование теперь осуществляется на уровне
      листалки с соблюдением всего протокола (в т.ч.
      app_TableBrowser_PerformRowCommand).
   P* Применена новая схема клонирования DBEditFrame'а с учетом всех внешних
      ссылок.
    - Исправлены ошибки с авторазмером: теперь он используется в режиме
      "включить/выключить".
    * Не производится попыток перейти правее последней колонки и левее первой.
    - При переходе Tab'ом не устанавливался фокус внутрь блочного редактора.
    Изменены: ComponentUtils, Classes, HandleRowCommands, TableBrowser, svclcommon.dpk.
    Удалены: SDBGridInplaceEditForm.
    14.08.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.57 от 13.08.2012
-------------------------

  * Код задачи: 24820. Трехзвенная архитектура (KBMMW): При удалении
    записи в лог-файл попадало исключение 'Запись не найдена.'.
    Изменены: kbmMWCustomDataset.
    11.08.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.56 от 10.08.2012
-------------------------

  * Код задачи: 24765. Трехзвенная архитектура (KBMMW): уменьшен трафик
    между программой и сервером приложений.
    !ВНИМАНИЕ: для работы требуется новая версия серверной и клиентской
     части java-приложения.
    P: Изменен алгоритм открытия набора данных,
       с целью уменьшения трафика вызывается функция сервера которая
       выполняет запрос и возвращает и описание курсора и массив прочитанных
       записей.
    Изменены: kbmMWJavaDBQuery, kbmMWJavaDBService.
    10.08.2012 М.А.Степанов
  * Код задачи: 24681. Трехзвенная архитектура (KBMMW): Реализовано
    удаление записи из выборки.
    Изменены: SVCLCommonSQL.dpk, SonarDBkbmMW, SVCLkbmMW_cnstr,
      kbmMWSonarCommonDataSet, SVCLOracle_cnstr.
    Добавлены: SQLRestoreExcludedRowsHandler.
    10.08.2012 М.А.Степанов
 P* Код задачи 245897. TScrollingSynchronizer.DoBeforeScroll сделан виртуальным.
    Изменены: ScrollingSynchronizer.
    09.08.2012 А.Б.Хах
  - Код задачи: 24785. Ошибка: В листалке после 100-й записи для булевских полей
    отображалось пустое значение вместо "Да" и "Нет". Исправлено: включено на время
    выполнения подкачки и передачи новых данных стандартное поведение IsNull
    в методе TkbmMWJavaDBQueryService.DoPerformMoreData.
    Изменены: kbmMWJavaDBServer
    09.08.2012 Е.В.Михайлов
  - Код задачи 24786. Редактор отчетов rwf: в поле типа итог невозможно
    было указать поле для функционалов Сумма, Среднее, Максимум, Минимум,
    Разных.
    Изменены: rwfdesigner, rwdata, itog_frm.xml, rwf_field.xml
    09.08.2012 И.В.Ковалев
                                 --- * ---

DSP v3.5.55 от 09.08.2012
-------------------------

  - Код задачи 24659. Блочное редактирование теперь осуществляет через карточку
    (со всеми вытекающими из этого бонусами): помимо того, что изменение данных
    производится в наборе данных карточки, будут работать алгоритмы валидации
    введенных данных (кроме явно завязанных на элементы управления в карточке).
    Добавлено: SDBGridInplaceEditForm.
    Изменены: ComponentUtils, form_DataChange, frame_TableBrowser.xml, SDBGrid,
      SDBVCLUtils, SVCLUtils, TableBrowser.
    08.08.2012 А.Б.Хах
 P- Код задачи 24659. Возвращены утерянные при обновлении версии JVCL правки.
    Добавлены: JvComCtrls.pas.orig, JvListView.pas.orig, JvMaskEdit.pas.orig.
    Изменены: JvComCtrls, JvListView, JvMaskEdit.
    08.08.2012 А.Б.Хах
  * Код задачи: 24707. В листалках добавлен запрет на добавление BLOB
    полей в список сортировки, визуализации.
    Изменены: DBGridLayout.
    08.08.2012 М.А.Степанов
  - Код задачи 24774. Ошибка при сохранении запроса в задоченной таблице в карточке.
    Изменены: ReqEdit
    07.08.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.54 от 02.08.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  01.08.2012 А.Б.Хах
  ----------------------------------------------------------

  - Код задачи 24579. Алгоритм контроля СУК работал неправильно из-за того, что
    атрибут набора данных, добавленный при дублировании на клиенте, не
    переносился на набор данных на сервере, на уровне которого проверяется
    наличие дубликатов. Теперь все атрибуты клиентского набора данных переносятся
    на серверный набор данных.
    Добавлены: uVariantToString, CompoundErrorCheck, CompoundErrorHandle, AttrsToStr.
    Изменены: CompoundError, SVCLCommon_cnstr, SVCLHT_cnstr0, SonarDBkbmMW,
      kbmMWSonarServiceConsts, kbmMWJavaDBServer, SonarDBJava.

    Адаптация: Из модуля CompoundError выделены 2 модуля: CompoundErrorHandle и
    CompoundErrorCheck, поэтому адаптация заключается в подключении нужного модуля.
                                   * * *

 P* Удален лишний пробел в названии поля проектной конфигурации для порогового
    значения даты.
    Изменены: cnfdef.
    02.08.2012 А.Б.Хах
  - Код задачи: 24716. Трехзвенная архитектура (KBMMW): В Легенде,
    в карточке события при нажатии на кнопку 'Дополнительно' возникала
    ошибка 'Компонент с именем "CalcField" уже существует.'
    P: При открытии набора данных вызов метода BindFields
       происходил два раза, в результате происходила попытка повторного создания
       вычислимых полей.
    Изменены: SonarDBkbmMW.
    01.08.2012 М.А.Степанов
  * Код задачи 24438. Ограничения вида "ОСК созвучно" теперь не используют
    хранимые процедуры базы данных Легенды.
    Изменены: ReqConv
    31.07.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.53 от 31.07.2012
-------------------------

 P- При передачи строки в метод TPythonEngine.VariantAsPyObject строка
    обрезалась по символ перед символом с кодом 0. В результате например
    невозможно было корректно получить содержимое BLOB-поля набора данных
    в виде строки.
    Изменены: PythonEngine.
    30.07.2012 И.В.Ковалев
                                 --- * ---

DSP v3.5.52 от 30.07.2012
-------------------------

  - Код задачи: 24739. Трехзвенная архитектура (KBMMW): При добавлении
    записи происходила ошибка: 'Внутренняя ошибка ...'.
    Изменены: kbmMWJavaDBQuery.
    30.07.2012 М.А.Степанов
  * Код задачи 24733. Поле ROWID теперь запрещено для автоматически
    отрисовываемых карточек не только для Oracle, но и для KBMMW.
    Изменены: SVCLCommonSQL_cnstr, SVCLOracle_cnstr
    30.07.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.51 от 30.07.2012
-------------------------

  - Код задачи 24621. Добавил установку свойства FetchOptions.RecordCountMode
    := cmFetched для однонаправленных наборов данных, иначе при достижении Eof,
    неверно подсчитывалось количество записей.
    Ошибка проявлялась в 2-х зв. Легенде для Оракла при печати отчета
    "Полная сводка на человека": не печатались свойства лица.
    Изменены: sdboracle
    30.07.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.50 от 30.07.2012
-------------------------

 P* Код задачи: 24658. Трехзвенная архитектура (KBMMW): При
    редактировании в блоке where конструкции update указываются все поля.
    Изменены: SonarDBJava.
    27.07.2012 М.А.Степанов
  + Код задачи 22921. При задании значений параметров отчёта добавлена
    автоустановка незаполненных полей даты/времени.
    Изменены: EnterRecord
    26.07.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.49 от 26.07.2012
-------------------------

 P- Устранена попытка использования интерфейса освобожденного объекта.
    Изменены: OraRwfExec.
    25.07.2012 А.Б.Хах
  - Код задачи 24484. Устранена ошибка "Операция не применима к закрытому
    набору данных." при печати протокола в карточке "Реестр задержанных".
    Изменены: OraRwfExec.
    25.07.2012 Е.В.Михайлов
  * Код задачи 24595. Подключена новая карточка системных настроек проектной
    конфигурации.
    Изменены: frame_fconfig.xml.
    25.07.2012 А.Б.Хах
 P> Код задачи 24685. Конвертация значений параметров запросов в формат SQL:
    - Если для типа параметра конвертация не поддерживается, функция
      возвращала "мусор".
    + Поддержана конвертация для типа LargeInt.
    Изменены: DataSetInternalUtils.
    25.07.2012 Д.И.Кобрусев
  - Код задачи 24567. При редактировании отчёта в карточке Параметры поля
    выпадающие списки отображались "обрезанными" снизу на среднем и крупном
    шрифте Windows 7.
    Изменены: itog_frm.xml, repparam_frm.xml, rwf_field.xml, value_frm.xml
    24.07.2012 Д.А.Бондаренко
  - Код задачи 24580. Теперь, если поля листалки, по которому осуществляется
    связь с текстом, в наборе данных листалки нет, то выполняется его
    принудительное обновление.
    Изменены: TableBrowser.
    24.07.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.48 от 24.07.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  23.07.2012 А.Б.Хах
  ----------------------------------------------------------

  - Код задачи 24462. Для загрузки визуальных компонентов, вместо
    TContentLoader'а следует использовать TControlLoader. В нем проблема с
    TabOder'ом решена.
    Добавлены: ControlLoader.
    Изменены: Classes, ContentLoader, SVCLCommon_Registration, SVCLCommon

    Адаптация: Во всех местах, где TContentLoader использовался для загрузки
    визуальных компонентов (с последующим размещением их на другом компоненте)
    следует использовать TControlLoader, который сам является фреймом и размещает
    компоненты в себе. Более того, свойство TContentLoader.ComponentParent больше
    недоступно в дизайнере и в тех местах, где оно использовалось, Дизайнер будет
    выдавать ошибку.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  21.07.2012 Д.И.Кобрусев
  ----------------------------------------------------------

 P* Код задачи 24648. Изменены интерфейсы методов
    TSonarDataSetInternalRequests.PositionOnMainKeyValue и
    ISonarDataSet.PositionOnMainKeyValue: значение ключа (единственный
    параметр) теперь имеет тип Variant (было: Pointer).
    Изменены: DataSetInternalRequests, DBObjectChoice, SDBDataSets,
      sdboracle, SdbVcl, SonarDbIntf, SonarDBJava, SonarDBkbmMW.

    Адаптация: Если не будет компилироваться из-за несоответствия
    интерфейса указанных методов, передавать им значение ключа в
    Variant-е. Обычно, его можно получить у TField-а, но если это по
    каким-то причинам невозможно, значение можно конвертировать в Variant
    с помощью функции sdb_value_as_variant.
                                   * * *

  - Код задачи: 24641. Трехзвенная архитектура (KBMMW): При блочном
    редактировании в листалке происходил AccessViolation. Также исправлено:
    при фоновом обновлении записи, запись в листалке меняла свое положение.
    Изменены: SonarDBkbmMW, kbmMWSonarCommonDataSet, SonarDBJava.
    20.07.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.47 от 19.07.2012
-------------------------

  - Код задачи: 24563. Трехзвенная архитектура (KBMMW): не работало
    добавление/редактирование бинарных данных (BLOB).
    Изменены: RecordControl, kbmMWJavaDBQuery, kbmMWJavaDBService,
    kbmMWCustomJavaService.
    18.07.2012 М.А.Степанов
 P* Код задачи 24563. Теперь на уровне набора данных sdboracle и sdbkbmmw, для
    совместимости с HyTech, осуществляется переименование полей бинарных данных.
    Изменены: SDBDataSets, DataSetInternalUtils, OraConsts, ReqConv, SonarDBkbmMW,
      SonarDBJava, sdboracle.
    17.07.2012 А.Б.Хах
  - Код задачи 24556. При закрытии вкладки с отчётом фокус ввода не возвращался
    на вкладку листалки.
    Изменены: MultitabbedDesktop
    17.07.2012 Д.А.Бондаренко
 P- Код задачи: 24562. Устранен потенциальный AccessViolation.
    Изменены: SonarDBkbmMW.
    16.07.2012 М.А.Степанов
  - Код задачи: 24562. При возникновении ошибки при изменении данных на
    уровне сервера приложений она не показывалась на экран.
    Изменены: SonarDBJava.
    16.07.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.46 от 16.07.2012
-------------------------

 P* Добавлена установка схемы Oracle по умолчанию в параметры сессии Oracle.
    Изменены: SonarDBJava.
    16.07.2012 М.А.Степанов
  * Код задачи: 24419. Трехзвенная архитектура (KBMMW): Реализована
    возможность чтения всех записей из выборки: в RWF, в поиске свободных
    значений обрабатываются все записи выборки.
    P: 'однонаправленость' реализована через удаление старых записей при
       чтении новой порции данных.
    Изменены: SonarDBkbmMW, MissedValues.
    16.07.2012 М.А.Степанов
  - Код задачи 24523. При переходе в задоченную вкладку по горячей клавише
    фокус ввода оставался на месте.
    Изменены: SectionList
    13.07.2012 Д.А.Бондаренко
  * Код задачи 24522. В полях ввода даты по Ctrl+K теперь открывается календарь.
    Изменены: DBInputMethods
    13.07.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.45 от 13.07.2012
-------------------------

  * Код задачи 24557. При фильтрации меню обстановок главный пункт меню
    теперь не скрывается, деже если скрыты все его подпункты.
    Изменены: DeskMenu
    13.07.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.44 от 12.07.2012
-------------------------

  - Код задачи 24585. При выполнении отчета из главного меню - ошибка:
    "Не удалось извлечь подсхему. Объект для обработки не задан."
    Изменены: ReportUtils.
    12.07.2012 С.А.Барсуков
  * Код задачи: 24582. Под Oracle при удалении записи не было
    старта-финиша транзакции.
    Изменены: SDBOracle, SonarDBkbmMW.
    12.07.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.43 от 12.07.2012
-------------------------

  * Код задачи 24547. Теперь при выполнении интеллектуального обновления текущей
    записи обновление связанных окон не производится.
    Изменены: RecordControl.
    12.07.2012 А.Б.Хах
 P- Код задачи: 24576. Трехзвенная архитектура (KBMMW): При удалении
    записи могло возникать исключение 'Неверная операция с указателем'.
    Изменены: SonarDBJava.
    12.07.2012 М.А.Степанов
  - Код задачи 24548. При применении запроса из локального меню обстановок не
    обновлялось окно связанного текста.
    Изменены: TableBrowser, MasterDetailHandlers.
    11.07.2012 А.Б.Хах
  - Код задачи 24548. При восстановлении полной выборки терялась связь с текстом.
    Изменены: TableBrowser.
    10.07.2012 А.Б.Хах
  - Код задачи: 24483. Трехзвенная архитектура (KBMMW): Если при
    добавлении записи возникала ошибка (например ошибка нарушения
    уникальности составного ключа), то попытка изменить данные и вновь
    произвести добавление ни к чему не приводила.
    P: При возникновении ошибок при добавлении записи
       состояние набора данных не приводилось к состоянию до добавления,
       в результате при повторной попытке добавления, уже c измененными данными,
       на сервер отправлялись старые неизмененные данные и вновь возникала ошибка.
    Изменены: SonarDBkbmMW.
    10.07.2012 М.А.Степанов
  * Код задачи 24517. При вводе препросадка записи производится, только
    если нужен её первичный ключ.
    Проявление: В "Легенде" начать ввод записи адмнадзора, выйти из
    карточки (через поле выбора) в таблицу решений суда и начать там ввод
    новой записи. При этом запись адмнадзора препросаживалась и оставалась
    в БД, даже если выйти из карточки по Esc.
    Изменены: MasterDetail, SVCLCommon_cnstr0.
    Добавлены: DBObjectHandlers.
    10.07.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.42 от 09.07.2012
-------------------------

  * Код задачи 15015. Редактор отчетов: в списке параметров не отображались
    параметры проектной конфигурации.
    Изменены: rwfdesigner, ReqUtils.
    09.07.2012 С.А.Барсуков
  * Код задачи 24454. Теперь при вводе пароля пользователя используется одна
    форма ввода для всех 4х(!) случаев: 2 для HyTech, 1 для Oracle, 1 для 3хзвенки.
    Изменены: Login, kbmMWSonarLoginDialog, OraLogin, frame_EnterPassword.xml.
    Удалены: OldAuth_frame_EnterPassword.xml, frame_EnterLogin.xml,
      frame_OracleConnection.xml.
    09.07.2012 А.Б.Хах
  * Код задачи 24539. Текст разделителя в меню обстановок сделан жирным.
    Изменены: DeskMenu
    09.07.2012 Д.А.Бондаренко
  - При работе в Дизайнере попытка установить TContentLoader.Active в False
    вызывала ошибку Несанкционированный доступ.
    Изменены: ContentLoader
  - При работе в Дизайнере в TSection_RequestLimited.Loaded могла возникать
    ошибка Несанкционированный доступ.
    Изменены: Sections
 P- Попытка авторазмера TCaptionedPanel вызывала Несанкционированный доступ,
    если не задан CaptionControl.
    Изменены: SVCLCommon_cnstr
    09.07.2012 Д.А.Бондаренко
  - Код задачи 24530. При удалении параметров запроса в редакторе запросов
    выводилось сообщение в неверной кодировке.
    Функция MessageBox заменена на MessageDlg.
    Изменены: ReqApi.
    09.07.2012 Е.В.Михайлов
  * Код задачи 23512. При регистрации станции контролируется часовой пояс.
    Изменены: ht_init.
    09.07.2012 С.А.Барсуков
  - Код задачи: 24546. В отчете RWF печаталось на одну запись больше чем есть
    в таблице источнике данных отчета (в двухзвенке в ней все значения
    полей были пустые, в трехзвенке там были значения полей последней
    записи).
    Изменены: OraRwfExec.
    09.07.2012 М.А.Степанов
  - Код задачи 24507. Адаптирована работа контроля составного уникального ключа
    к 3хзвенной схеме.
    Добавлены: CompoundErrorFactory.
    Изменены: CompoundError, SonarDBkbmMW, kbmMWSonarServiceConsts, SonarDBJava.
    06.07.2012 А.Б.Хах, М.А.Степанов
  - Код задачи 24509. Контроль уникальности составного ключа производился при удалении
    записи.
    Проявление: При попытке удалить запись из таблицы, в которой есть составной ключ,
      происходила ошибка нарушения его уникальности ("такая запись уже есть", точный текст
      разный для разных таблиц).
    Изменены: CompoundError.pas
    06.07.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.41 от 05.07.2012
-------------------------

 P- Код задачи 24470. Событие о настройке фрейма тех. данных не рассылалось,
    если фрейм тех данных уже был в карточке.
    Изменены: form_DataChange.
    04.07.2012 А.Б.Хах
  - Код задачи 24498. Возникала ошибка при редактировании инт. записи посредством
    DBObjectChoice'а: ошибка происходила при получении OldValue.
    Изменены: SDataSet, SDBDataSets, DBObjects, SDBVCL.
    04.07.2012 А.Б.Хах
  * Код задачи: 24493. Запрос типа 'в списке' не работал если поле
    связи не визуализировалось в ведущей листалке.
    Изменены: DSLimit.
    03.07.2012 М.А.Степанов
  * Код задачи: 24493. Трехзвенная архитектура (KBMMW): При фоновом
    обновлении записи могло происходить  исключение 'Ошибка при обновлении
    записи: наборы полей не совпадают.'
    Изменены: SonarDBkbmMW, SonarDBJava.
    03.07.2012 М.А.Степанов
 P- При обновление библиотек JCL и JVCL была утеряна правка JvDBDatePickerEdit.
    Добавлены JvDBDatePickerEdit.pas.orig.
    Изменены: JvDBDatePickerEdit.
    02.07.2012 А.Б.Хах
 B- Код задачи 24409. При генерации запроса для получения описания для записи
    нарушался порядок многоуровневых слияний (left join), что приводило к
    ошибке вида [AnyDAC][Phys][Ora] ORA-00904: недопустимый идентификатор.
    Изменены: ObjectDescriptionsGen
    02.07.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.40 от 02.07.2012
-------------------------

  * Код задачи: 23974. Трехзвенная архитектура (KBMMW): Изменение данных:
    добавлена обработка закрытия соединения из-за бездействия пользователя.
    Изменены: SonarDBkbmMW, SonarDBJava.
    02.07.2012 М.А.Степанов
 P+ Код задачи 24489. Добавлена процедура SetAsBoolean.
    Изменены: DataSetUtils.
    02.07.2012 А.Б.Хах
  - Код задачи 24469. get_FieldSize для indCode и indRecordId возвращал длину
    при виз-ии, тогда как set_FieldSize выставлял физ. размер. Из-за этой
    асимметричности, последовательность загрузка-сохранение-загрузка приводила
    к тому, что физ. размер становился равен длине при виз-ии. Теперь
    get_FieldSize для indCode и indRecordId возвращает физ. размер.
    Изменены: htDescr.
    02.07.2012 А.Б.Хах
  * Код задачи: 23974, 24354. Трехзвенная архитектура (KBMMW): Добавлена
    обработка закрытия соединения из-за бездействия пользователя,
    если соединение было закрыто, то при попытке сделать какую либо операцию
    с БД оно автоматически открывается заново, при этом если есть открытая
    листалка в которой еще не все записи из выборки прочитаны, то ее надо
    обновить(Alt-F7), т.к. 'дочитать' эти записи уже невозможно, при попытке выдается
    соответствующее сообщение.
    Изменены: SVCLCommon_cnstr, TableBrowser, SonarDBkbmMW,
      SVCLkbmMW_cnstr, kbmMWSonarCommonDataSet, kbmMWSonarServiceConsts,
      kbmMWJavaDBServer, kbmMWJavaDBService, SVCLJavaDB_cnstr.
    29.06.2012 М.А.Степанов
 P- Код задачи 24458. Вызов TJvDockVSNETPanel.DoShowControl не приводил ни к
    каким действиям из-за того, что весь код был завязан на тип потомка. Теперь
    этот метод объявлен виртуальным и перекрыт для потомка, а в предке
    выполняется все необходимые действия.
    Добавлен: JvDockVSNetStyle.pas.orig.
    Изменены: JvDockVSNetStyle.
    29.06.2012 А.Б.Хах
 P* Код задачи 24458. Обновлены библиотеки JCL и JVCL.
    Добавлены JclCharsets.
    Изменены: SDBGrid, JclXXX, JvCLXXX.
    Удалены: JclSysUtils.pas.patch.
    29.06.2012 А.Б.Хах
 B- Код задачи 24408. При попытке применить к листалке запрос неподдерживаемого
    типа блокировалось фоновое переоткрытие набора данных, что приводило к
    ошибке "Несанкционированный доступ по адресу..." и невозможности
    редактирования запроса
    Изменены: SDBGrid, TableBrowser
    29.06.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.39 от 28.06.2012
-------------------------

 P* FieldValueUtils: Добавлена функция EmptyFieldValue.
    Изменены: FieldValueUtils.
    28.06.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.38 от 27.06.2012
-------------------------

  - Код задачи: 24441. Выполнение отчета: при большом обьеме данных в
    отчете, отчет показывался некорректно.
    Изменены: form_TextEditor.xml, texteditor.
    27.06.2012 М.А.Степанов
  * Код задачи 24439. Обновление выборки листалки блокируется до тех пор пока
    открыта карточка на эту листалку. Если за время, пока карточка была на
    открыта, мастер текущей листалки обновлялся, то при закрытии карточки
    производится обновление выборки.
    Изменены: RecordControl, form_DataChange.
    25.06.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.37 от 25.06.2012
-------------------------

  * Код задачи: 24435, 24420. Под Oracle поиск в листалке искал только в
    тех записях что уже загружены(для только что загруженой листалки это
    первые 100 записей). Поиск адаптирован к ситуации когда точное кол-во
    записей заранее неизвестно (под Oracle), т.е. теперь по визуализатору
    процесса не видно когда закончится поиск.
    Не работало выделение найденого цветом: исправлено.
    P: Удален метод INeedCalcRecordCount.CalcRecordCount, т.к. больше не
       используется.
    Изменены: DBGridSearch, SonarDbIntf, SonarDBkbmMW, SDBoracle.
    22.06.2012 М.А.Степанов
  > Код задачи 21572. Изменения в TSkipTableScrollSynchronizer:
 P* Добавлена возможность запросить полный набор данных на скроллируюмую таблицу,
    чтобы синхронизация всегда осуществлялась через него и им можно было бы
    пользоваться из вне.
 P* Действия по синхронизации выделены в процедуру DoDirectSynchronizationToTable
    и параметризованы для использования в потомках.
    Изменены: SonarDBIntf, SCrollingSynchronizer.
    22.06.2012 А.Б.Хах
 P+ Код задачи 24107. Добавлена возможность указывать ключевое поле редактируемого
    набора данных для синхронизатора TSkipTableScrollSynchronizer.
    Изменены: ScrollingSynchronizer
    22.06.2012 Е.В.Михайлов
 P- Дважды освобождался TTriggerContainer - исправлено.
    Изменены: SConnection.
    21.06.2012 А.Б.Хах
  - Код задачи: 24434. В отчете RWF печаталось не больше 100 записей из таблицы.
    Изменены: OraRwfExec.
    21.06.2012 М.А.Степанов
  * Код задачи 24379. Добавлена поддержка разделителей с меткой: для элементов
    меню с полем Раздел = 7(Разделитель меню) теперь отображается текст,
    указанный в поле ИмяЭлемент.
    Изменены: DeskMenu.
    21.06.2012 А.В.Соса
  * Код задачи 22622. Проверка составного ключа осуществляется теперь на
    триггерное событие, т.е. после того как все проверки пройдут.
    Добавлены: uUpdateRowState.
    Изменены: CompoundError, sdboracle, SDBVCL, SConnection.
    21.06.2012 А.Б.Хах
  - Код задачи 24433. Заспрос типа "в списке" не проходил валидацию из-за
    отсутсвия ссылки на описатель таблицы.
    Изменены: DsLimit.
    21.06.2012 А.Б.Хах
  - Код задачи: 24273. Трехзвенная архитектура (KBMMW): Неосвобожение
    памяти при закрытии программы после редактирования объектов учета.
    Изменены: kbmMWSonarCommonDataSet, SonarDBJava, SVCLJavaDB_cnstr.
    20.06.2012 М.А.Степанов
  - Код задачи 22608. Лишняя перекодировка SOemToAnsi делала невозможной связь
    листалок по текстовым полям. Теперь эта перекодировка применяется только для
    Параметров запроса, Полей проектной конфигурации и Значений.
    Изменены: ReqConv
    20.06.2012 Д.А.Бондаренко
  - Код задачи 24425. Не верно получалось имя поля, по которому происходит связь:
    для поиска имени поля использовался номер поля (FieldNo) в наборе данных и
    описатель, что неверно, т.к. теперь в наборе данных только визуализируемые
    поля (а не все, как раньше). Теперь имя поля для запроса извлекается из
    самого имени поля набора данных (с учетом того, что оно может быть
    квалифицированным, т.е. подлитым).
    Изменены: DBFieldsLayout, DsLimit.
    20.06.2012 А.Б.Хах
  - Код задачи: 24273. Трехзвенная архитектура (KBMMW): Неосвобожение
    памяти при закрытии программы с открытой листалкой.
    Изменены: SonarDBkbmMW, kbmMWGlobal.
    20.06.2012 М.А.Степанов
  + Код задачи 24166. Реализация алгоритма установки полей ОСК Созвучно
    и Звучание.
 P* Адаптация после конвертации модуля SndName в кодировку ANSI.
    Изменены: sndname, SdbApi, AppTriggers, ReqConv
    20.06.2012 Е.В.Михайлов
  - Код задачи 24080. Теперь имена полей в SQL-запросе на получение набора
    данных, по которому будет построено описание, указываются квалифицированные.
    Благодаря этому набор данных осуществляет корректную настройку полей
    опираясь на описатель.
    Изменены: ObjectDescriptionsGen, QualifiedName, DBGridLayout.
    19.06.2012 А.Б.Хах
  * Код задачи 24166. Выполнена автоматическая конвертация модуля sndname.pas в
    кодировку ANSI.
    Изменены: sndname.pas
    19.06.2012 Е.В.Михайлов
  - Код задачи 22643. Неправильно рассчитывалась ширина листалки, что приводило
    к изменению ширины формы после переоткрытия набора данных.
    Изменены: TableBrowser
    19.06.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.36 от 18.06.2012
-------------------------

  * Код задачи 23950. Теперь при открытии карточки записи, уже открытой в другой
    карточке пользователю выдается сообщение.
    Изменены: form_DataChange.
    18.06.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.35 от 18.06.2012
-------------------------

 P* Код задачи: 24318, 24317. Поддержан SafeRefresh для
    TSonarDBkbmMW_DataSet, транзакции в TSonarDBkbmMW_Connection используют
    функциональность TSonarConnection.
    Изменены: SonarDBkbmMW, kbmMWSonarCommonDataSet, SonarDBJava.
    18.06.2012 М.А.Степанов
 P* Модули kbmMemTable обновлены до версии v7.16.00.
    Изменены: kbmList, kbmMemTable, kbmMemTypes.
    18.06.2012 М.А.Степанов
 P* Задача: 24374. Адаптация к изменениям параметров вызова
    фунции GenerateObjectDescription.
    Изменены: ObjectDescriptionsGen, ObjectDescriptions
    15.06.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.34 от 14.06.2012
-------------------------

  - Код задачи 24400. При интеллектуальном обновлении не учитывалось, что бывают
    наборы данных (напр. TADMemTable, используемый в TMemoryDataSource), которые
    не поддерживают SafeRefresh.
    Изменены: RecordControl.
    13.06.2012 А.Б.Хах
  * Код задачи 23835. В случае перевода обработчика мастер-деталь в режим
    слитого ввода отрабатывается ситуация, когда набор данных находится уже в
    режиме редактирования, т.е. мастера переводятся в режим редактирования. Это
    нужно напр. при докировании разделов.
    Изменены: MasterDetailHandlers, RecordControl.
    13.06.2012 А.Б.Хах
  * Код задачи 24047. При применении запроса мастер-деталь, если в мастере не
    было поля связи, фоновое обновление детали могло происходить повторно после
    обновлении мастера. Теперь фоновое обновление детали происходит только если
    мастер уже не нуждается в обновлении.
    Изменены: ReqEdit, TableBrowser
    13.06.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.33 от 09.06.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  08.06.2012 Д.А.Бондаренко
  ----------------------------------------------------------
  > Код задачи 24048.
    - Удаление из визуализации подлитого поля, задействованного в связи
      "мастер-деталь" приводило к ошибке вида "MergeInfo для таблицы с
      алиасом "..." не найден".
    * Слияния в мастерах, незадействованные в запросе детали теперь
      удаляются при редактировании запроса.
    * Атрибут TDataSet attr_ProtectedAliases и поле
      TGridInfo.ProtectedAliases удалены.
    Изменены: DBFieldsLayout, DBGridColumnsLayout, DBGridLayout, ReqEdit,
      SDBGridColumnsLayoutDialog, SonarDbIntf

    Адаптация: Вместо защиты слияний путём добавления алиасов в атрибут
    датасета attr_ProtectedAliases теперь следует заказывать нужные поля
    с помощью обработчиков события ev_DataSet_GetDataSetFields.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  07.06.2012 Д.И.Кобрусев
  ----------------------------------------------------------

  > Код задачи 24365. Функции и события получения описания записи:
    * Изменены параметры события app_GetObjectDescription и функции
      TryGetObjectDescription: запись идентифицируется по ключу (было: по
      физ. номеру).
    * Удалено событие ev_Connection_GetObjectDescription.
    * Удалены функции GetObjectDescriptionDef, TryGetObjectDescriptionByKey.
    Изменены: AuthHandlers, ChoiceCheck, ObjectDescriptions.

    Адаптация: Если не будет компилироваться из-за того, что:
    * неизвестен какой-то из параметров события app_GetObjectDescription
      (запись TEvent_GetObjectDescription) - адаптировать изменение
      параметров;
    * неизвестен идентификатор ev_Connection_GetObjectDescription -
      устанавливать обработчик на событие приложения
      app_GetObjectDescription (или, если очень надо, возродить событие
      ev_Connection_GetObjectDescription).
                                   * * *

  - Код задачи 24384. Открытие набора данных листалки теперь производится до
    показа формы, чтобы она была показана по центру главной формы уже с новыми
    размерами.
    Изменены: HandleRowCommands.
    09.06.2012 А.Б.Хах
 P* Код задачи 24376. Проверка корректности выбора в поле выбора из справочника. Из БД
    вычитываются только нужные поля.
    Изменены: ChoiceCheck.
    09.06.2012 Д.И.Кобрусев
  * Код задачи 23558. Добавлено скрытие пунктов листов, для которых не задано
    имя файла в меню обстановок, и пункты, все видимые подпункты которых
    являются разделителями.
    Изменены: deskmenu.
    08.06.2012 А.Б.Хах
 P+ Добавлен модуль FieldValueUtils, содержит обертку(record) TFieldValue
    над значением поля(variant) и его типом, и функции для работы с TFieldValue,
    рекомендован к применению так как позволяет защитится от null значений:
    например вместо integerValue = dataset.FieldByName('имяполя').OldValue
    (здесь может произойти исключение если OldValue содержит null), можно писать:
    fieldValue = GetFieldOldValue(dataset, 'имяполя'), при этом методы
    TFieldValue.AsInteger и пр. работают также как и методы TField.AsInteger, т.е.
    для null значений возвращают нулевые значения.
    Изменены: SDBUtils.
    Добавлены: FieldValueUtils.
    08.06.2012 М.А.Степанов
  - Код задачи: 24355. Трехзвенная архитектура (KBMMW): в Легенде при изменении
    организации происходила ошибка "'' - некорректное значение целого числа.".
    Изменены: NativeStrConversion, SVclCommon.dpk, SonarDBkbmMW,
    kbmMWJavaDBServer, SonarDBJava.
    08.06.2012 М.А.Степанов
  - Задача: 24368. Происходила утечка памяти для полей типа indByte.
    Исправлено: вернул использование DataSize для определения размера поля.
    Изменены: ObjectDescriptionsGen
    07.06.2012 Е.В.Михайлов
  - Задача: 24000. Ошибка при редактировании карточки: отводится мало места для
    отображения ключа в элементе выбора из справочника.
 P- Исправлено неверное вычисление значения размера поля для визуализации
    для типов indCode и indRecordId
    Изменены: htDescr, DBDItems, MemoryDataSource
    07.06.2012 Е.В.Михайлов
  * Код задачи 24325. Исправлены ошибки масштабирования: не работал Ctrl+"+" на
    вкладке с тех. информацией и при масштабировании формы объекта учета с
    задоченной вверху панелью с информацией о связи появлялось пустое место.
    Изменены: forms, FormResizer.
    06.06.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.32 от 05.06.2012
-------------------------

  - Код задачи: 24356. Трехзвенная архитектура (KBMMW):
    в Легенде при попытке ввода в O_VESCH, возникала ошибка:
    'Ошибка при построении запроса: ..'.
    Также: для объектов учета, при добавлении не расчитывался главный
    ключ.
    Изменены: CodeUtils, SDBDataSets, SDBUtils.
    05.06.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.31 от 05.06.2012
-------------------------

  > Код задачи: 24345, 24352, 24353. Трехзвенная архитектура (KBMMW):
    ошибки при добавлении:
    - Добавленая запись не появлялась в листалке.
    - Нулевые кодификаторы обрезались, в результате в БД пытались просадить NULL.
    - При добавлении, если у главного ключа есть алиас, то происходила ошибка.
    - Возникающие при добавлении ошибки не показывались на экране.
    Изменены: SonarDBkbmMW, kbmMWJavaDBServer, SonarDBJava.
    05.06.2012 М.А.Степанов
  - Код задачи 24335. Теперь для булевских полей по умолчанию строится
    TBooleanController, который правильно рассчитывает ширину контрола
    (TCommonController это делал неправильно, и теперь он вообще не
    обрабатывает булевские поля).
    Изменены: DBInputMethods.
    04.06.2012 А.Б.Хах
  - Код задачи: 24343. Трехзвенная архитектура (KBMMW): Мемо-поля
    отправлялись на сервер в некорректной кодировке.
    Изменены: kbmMWJavaDBQuery.
    04.06.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.30 от 01.06.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  01.06.2012 Д.И.Кобрусев
  ----------------------------------------------------------

  > Код задачи 21615. Поле выбора из списка:
    * В карточке, открытой на просмотр или редактирование, расшифровка
      (описание) "старой" ссылки (которая в БД) показывается, даже если
      запись, на которую она ссылается, не удовлетворяет ограничениям,
      наложенным на это поле.
    - Если ввести ключ в поле ввода ключа, не выходя в таблицу, не
      отрабатывались поля "НеВыбирать" и "НеПоказыв.".
   P* Изменены параметры события ev_DBObjectChoice_GetObjectDescription:
      * дбавлен флаг "контролировать значение ключа" (DoCheck);
      * удалён флаг "запись не найдена" (Abort); добавлено исключение
        EDBObjectChoice_InvalidKey, которое взводится, если запись не
        найдена.
   P* Изменён способ получения описания записи: удалены объекты получения
      описания (TObjectDescripter), добавлены события получения описания
      (ev_Connection_GetObjectDescription, app_GetObjectDescription).
    Изменены: AuthHandlers, DBInputMethods, DBObjectChoice,
      ObjectDescriptions, SVCLCommon_cnstr.
    Добавлены: ChoiceCheck.

    Адаптация: Если не будет компилироваться из-за того, что:
    * неизвестен идентификатор TObjectDescripter преобразовать его
      перекрытие в обработку события ev_Connection_GetObjectDescription
      или app_GetObjectDescription, см. модуль ObjectDescriptions;
    * неизвестен идентификатор tEvent_DBObjectChoice_GetObjectDescription.Abort -
      адапитровать его удаление: теперь вместо взведения этого флага
      взводится исключение EDBObjectChoice_InvalidKey.
                                 --- * ---

DSP v3.5.29 от 01.06.2012
-------------------------

  * Трехзвенная архитектура (KBMMW): Имя пользователя сохраняется в конфигурации.
    Изменены: kbmMWConfig, kbmMWSonarLoginDialog.
    01.06.2012 М.А.Степанов
  * Код задачи: 24303. Изменен способ передачи даты/времени, дата/время
    передаются без конвертации из UTC в локальное(из локального в UTC),
    дата/время в параметрах тоже передается как int64.
    Изменены: kbmMWJavaDBQuery, kbmMWJavaDBService, SonarDBJava, kbmMWCustomJavaService.
    01.06.2012 М.А.Степанов
  - Код задачи: 24330. Трехзвенная архитектура (KBMMW): при чтении мемо-полей
    возникала ошибка.
    Изменены: SonarDBJava.
    01.06.2012 М.А.Степанов
  - Задача: 24341. Ошибка при редактировании карточки: иногда наблюдается пустое
    значение в поле описания при выборе из справочника.
    Изменены: ObjectDescriptionsGen
    01.06.2012 Е.В.Михайлов
  - Задача: 24336. Ошибка при открытии карточки: неверное завершение SQL предложения.
    Изменены: ObjectDescriptionsGen
    31.05.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.28 от 31.05.2012
-------------------------

 P* Задача: 24324. Оптимизация модуля ObjectDescriptionsGen: вернул обнуление
    интерфейсов в функции GenerateObjectDescription.
    Изменены: ObjectDescriptionsGen
    31.05.2012 Е.В.Михайлов
 P* Код задачи: 24330. Добавлены варианты функций GetSelectStr для Int64.
    Изменены: SDBUtils.
    31.05.2012 М.А.Степанов
  - Код задачи: 24330. Трехзвенная архитектура (KBMMW): чтение indLargeInt
    не поддерживалось.
    Изменены: kbmMWJavaDBService, SonarDBJava.
    31.05.2012 М.А.Степанов
 P* Задача: 24324. Оптимизация модуля ObjectDescriptionsGen: устранение лишних
    запросов к БД.
    Изменены: ObjectDescriptionsGen
    31.05.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.27 от 30.05.2012
-------------------------

 P* Код задачи 24211. Вынес реализацию предустановки значения полей типа
    date в текущую дату в модуль DatePreset.
 P+ Добавил реализацию события app_FieldPresets_NeedPresetDefaultDate:
    проверка необходимости предустановки по умолчанию поля типа Date в текущую дату.
    Добавлены: DatePreset
    Изменены: SVCLCommon_cnstr, SVCLCommon.dpk
    29.05.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.26 от 29.05.2012
-------------------------

  - Код задачи 24299. Ошибка: в конструкторе запросов <Не удалось извлечь соединение с БД.
    Объект для обработки - экземпляр класса "TADMemTable">.
    Исправлено: добавил функцию TryExtractConnection перед установкой обработчика события
    ev_SonarConnection_FinishTransaction в кострукторе TDataSetRecordController.
    Изменены: RecordControl
    25.05.2012 Е.В.Михайлов
  - Код задачи 24293. Ошибка: при редактировании карточки не происходит добавления
    новой записи связанного набора данных, если вводим значение в поле связанного
    набора данных, в котором нет записей. Исправлено: выход из процедуры
    IntelligentRefresh, если набор данных в сосотоянии dsInsert.
    Изменены: RecordControl
    24.05.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.25 от 23.05.2012
-------------------------

  - Код задачи 21823. TSDBRadioGroup: Достаточно длинные значения NoCaption
    отображались не полностью (обрезались справа).
    Изменены: SControls.
    23.05.2012 А.В.Соса
 B* Код задачи 23943. Изменён внешний вид диалога "О программе" -
    убрана рамка вокруг текстового поля Contacts.
    Изменены: frame_About.xml.
    23.05.2012 А.В.Соса
                                 --- * ---

DSP v3.5.24 от 23.05.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  22.05.2012 А.В.Соса
  ----------------------------------------------------------

  > Код задачи 24123.
    * TDBEditFrame: добавлено свойство ReadOnly. При невозможности либо
      запрете редактирования поля содержимое TDBEditFrame теперь всегда
      отображается с текстом серого цвета, в т.ч. в Дизайнере.
    * Изменена реализация TTableDataSource.ReadOnly (ред. от 12.05.2012):
      теперь ReadOnly находится в TDataSource. TDataLink.CanModify учитывает
      значение этого свойства.
    * TTableBrowser: Добавлено свойство ReadOnly, "пробрасывающее" ReadOnly
      источника данных. Запрет редактирования теперь вместо
      TableBrowser.Grid.ReadOnly устанавливается в TableBrowser.ReadOnly.
    Изменены: DBEditFrame, DB, DBCtrls, SonarDbIntf, TableDataSource, sdboracle,
      SonarDBkbmMW, SonarDBJava, SdbVcl, TableBrowser, AuthFormH, ChoiceForm,
      Sections, HandleRowCommands.
    22.05.2012 А.В.Соса

  * Адаптация: вместо свойства ReadOnly грида, находящегося внутри TTableBrowser,
    следует использовать ReadOnly самого TTableBrowser.
                                 --- * ---

DSP v3.5.23 от 22.05.2012
-------------------------

  * Код задачи 23971. В исполнителе RWF убраны завязки на Oracle.
    Изменены: OraRwfExec, SVCLCommonSQL.dpk, svcloracle.dpk, SVCLOracle_cnstr.pas.
    Добавлены: SVCLCommonSQL_cnstr.
    22.05.2012 С.А.Барсуков
                                 --- * ---

DSP v3.5.22 от 22.05.2012
-------------------------

 P- Трехзвенная архитектура (KBMMW): не все было внесено в предыдущем изменении.
    Изменены: SonarDBJava.
    22.05.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.21 от 22.05.2012
-------------------------

  * Код задачи: 24263. Трехзвенная архитектура (KBMMW): некорректно
    проверялась заполненость полей, некорректно устанавливались значения
    полей типа 'время'.
    Изменены: SonarDBkbmMW, kbmMWJavaDBQuery, SonarDBJava.
    22.05.2012 М.А.Степанов
BP* Код задачи 23943. Добавлена возможность перекрыть отображение диалога
    "О программе" в проектах - событие app_ExecuteAboutDialog.
    Изменены: About, frame_About.xml.
    21.05.2012 А.В.Соса
  - Код задачи 24227. При изменении запроса в дизайнере удалялся старый запрос,
    но ссылка на него оставалась в списке запросов TDBObjectChoice. Также
    производилась попытка добавить nil в список этот запросов.
    Изменены: DBInputMethods.
    18.05.2012 А.Б.Хах
  * Код задачи 24219. Теперь при изменении текущей записи (вызванное алгоритмом,
    или ещё каким-то образом) незамедлительно применяется к открытым записям
    (в карточке или листалке), причем с учетом изменений, проделанных в карточке,
    т.е. производится слияние.
    Добавлены: SConnection.
    Изменены: DBObjects, RecordControl, SonarDBIntf, SDBVCL, SDBOracle.
    Удалены: RecordSync.
    18.05.2012 А.Б.Хах
  - Код задачи: 24255. Трехзвенная архитектура (KBMMW): При добавлении в
    пустой листалке возникала ошибка: 'There must be at least one field'.
    Изменены: SonarDBkbmMW, kbmMWSonarServiceConsts, kbmMWJavaDBServer.
    18.05.2012 М.А.Степанов
 P* Код задачи 23861. Оптимизировал код для классов TSBlobData,
    TObjectBlobData, TSonarDB_BlobData.
    Изменены: BlobStream, DBObjects, SdbVcl.pas
    18.05.2012 Е.В.Михайлов
  * Код задачи: 24244. Трехзвенная архитектура (KBMMW): при открытии
    карточки O_ADRESS происходила ошибка: 'Компонент с именем "НАЗВАНИЕ" уже
    существует.'.
    Изменены: kbmMWJavaDBQuery, SonarDBJava.
    17.05.2012 М.А.Степанов
  * Код задачи: 24244. Трехзвенная архитектура (KBMMW): при открытии карточки
    объекта учета могло происходить замедление.
    Изменены: DBObjects, kbmMWConfig, SonarDBkbmMW, SVCLkbmMW_cnstr,
      kbmMWSonarCommonDataSet, kbmMWJavaDBServer, SonarDBJava.
    17.05.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.20 от 16.05.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  16.05.2012 А.Б.Хах, Д.И.Кобрусев
  ----------------------------------------------------------

 P* Код задачи: 24219. Удалены СУБД-зависимые объекты БД.
    Изменены: DBObjects, SVCLCommon_cnstr0, SDBVCL, SVCLHT_cnstr0,
      SVCLHT_registration, SVCLOracle_cnstr.
    Удалены: HTDBObjects, OraDBObjects, OraDBObjectsGen.
    16.05.2012 А.Б.Хах, Д.И.Кобрусев

  * Адаптация: Вместо СУБД-зависимых объектов БД следует использовать
    СУБД-независимый TDBObject.
                                   * * *

  * Код задачи: 20655. Удален параметр конфигурации "строка инициализации
    принтера".
    Изменены: SDBConst, CnfHnd, frame_fconfig.xml, imp_prn.
    16.05.2012 М.А.Степанов
 P+ Код задачи 24230. Добавлена процедура ArrayAppend.
    Изменены: SonarSys.
    16.05.2012 Д.И.Кобрусев
 P- Код задачи 24230. Объект БД реагировал на изменение данных в другом объекте
    БД и пытался просадить свою запись.
    Изменены: DBObjects.
    16.05.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.19 от 16.05.2012
-------------------------

  - Код задачи 24231. Запуск отчёта (RWF) из главного меню прерывался с
    ошибкой "Несанкционированный доступ".
    Изменены: DeskMenuExec, ReportUtils.
    15.05.2012 Д.И.Кобрусев
 P+ Код задачи 23861. OldValue для Blob полей возвращал то же, что и Value.
    Добавил эти изменения в модуль BlobStream из модуля SdbVcl.pas, так как
    при переносе кода они были утеряны.
 P- Убрал лишнюю проверку в модуле DBObjects.
    Изменены: BlobStream, DBObjects
    15.05.2012 Е.В.Михайлов
 P* TSonarDBkbmMW_Table.FetchMaxRecords устанавливается только
    если SQL запрос генерируется автоматически.
    Изменены: SonarDBkbmMW.
    15.05.2012 М.А.Степанов
 P- Иправлены ошибки допущеные при реализации задачи 23984.
    Изменены: SDBOracle.
    15.05.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.18 от 15.05.2012
-------------------------

  - Устранена ошибка вывода сообщения при отсутствии полей для поиска
    свободных значений: сообщение выводится в неверной кодировке,
    далее выводится форма выбора поля с пустым списком.
    Изменены: MissedValues
    15.05.2012 Е.В.Михайлов
  * Код задачи 24002. При покидании последнего поля ввода инкр. поиска фокус мог
    передаваться на колонку, которая не видна из-за горизонтального скроллинга.
    Теперь эта колонка делается видимой.
    Изменены: SDBGrid.
    14.05.2012 А.Б.Хах
 P- Код задачи 24216. Вынес из модулей SDBVCL и DBObjects общую часть
    реализации классов TSonarDB_BlobData и TBlobStream.
    Добавлены: BlobStream
    Изменены: SDBVCL, DBObjects, SVCLCommon.dpk
    14.05.2012 Е.В.Михайлов
  + Код задачи 20853. Реализация поиска свободных значений по полю.
    Добавлены: MissedValues, MissedValuesUtils
    Изменены: TableBrowser, frame_TableBrowser.xml, SVCLCommon.dpk
    14.05.2012 Е.В.Михайлов
  - Код задачи 24197. Ошибка ORA-01756: нет завершающей кавычки в запросе
    "подчинено или равно" текущему значению из ведущей листалки если
    ведущая листалка пустая.
    Изменены: ReqConv.
    14.05.2012 И.В.Ковалев
                                 --- * ---

DSP v3.5.17 от 12.05.2012
-------------------------

  + Код задачи 24123. TTableDataSource: добавлено свойство ReadOnly.
    TDBEditFrame теперь отображается с учётом значения этого свойства.
    P: ISonarDataSet: добавлено свойство ReadOnly, предназначенное, чтобы
       "пробрасывать" ReadOnly наборов данных в TTableDataSource.
    Изменены: DBEditFrame, RecordControl, SonarDbIntf, TableDataSource, SdbVcl,
      SonarDBkbmMW, SonarDBJava, sdboracle.
    12.05.2012 А.В.Соса
                                 --- * ---

DSP v3.5.16 от 11.05.2012
-------------------------

 P- Код задачи 24195. Поддержана работа MemoryDataSource в запросах мастер-деталь.
    Исправлены недочеты в TSRadioGroup, TMemoryDataSource.
    Изменены: MemoryDataSource, ReqFieldViewer, ReqUtils, DsLimit, SControls.
    11.05.2012 А.Б.Хах
 P* Код задачи: 23984. В интерфейс ISonarSQLDataSet добавлено св-во
    ForceSQLText: определяет нужно ли генерировать SQL автоматически по
    имени таблицы и layout, если True то не нужно, ForceSQLText
    автоматически устанавливается в True при вызове SetSQLText.
    Изменены: SonarDbIntf, SonarParameters, SonarDBkbmMW, kbmMWSQLDataSetWrapper,
      kbmMWJavaDBServer, kbmMWJavaDBService, SonarDBJava, AuthOracle, sdboracle.
    11.05.2012 М.А.Степанов
  - Код задачи 24193. Неверно задавался DisplayLabel: он был равен имени поля
    подсхемы. Теперь DisplayLabel выставляется в длинное
    имя поля подсхемы, если оно задано, иначе в длинное имя поля схемы, если оно
    задано, иначе имя поля.
    Изменены: SDBDataSets.
    11.05.2012 А.Б.Хах
  - Код задачи 24092. При загрзуке списка разделов не сбрасывался TabStop у
    всех разделов, кроме первого.
    Изменены: SectionList.
    10.05.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.15 от 10.05.2012
-------------------------

  - Код задачи 24045. В "Легенде", в карточке адмпротокола если установить
    категорию нарушителя "Юридическое лицо", а потом сменить на
    "Физическое лицо", при выходе в справочник наказаний он ограничивался
    как для юридического лица.
    P: Удаление из списка запросов не всегда срабатывало, неправильно
       производился поиск: список не сортированный, а искали как в
       сортированном.
    Изменены: SonarRequests.
    08.05.2012 Д.И.Кобрусев
  * Код задачи 24167. Перед выходом в мультивыбор теперь производится препросадка.
    Изменены: HandleRowCommands, MasterDetail, MasterDetailHandlers.
    05.05.2012 А.Б.Хах
  - Код задачи 24158. Редактор запросов. Запрос по дням недели. После
    выбора поля не освобождалась память; но только если было выбрано поле
    таблицы, по которой запрос (не связанной).
    Изменены: EditReqH.
    04.05.2012 Д.И.Кобрусев
  * Код задачи 23948. Поле теперь считается обязательным если у него выставлен
    флаг обязательности по описателю и только, не зависимо от флагов
    редактируемости и вводимости.
    Изменены: SDBDataSets.
    04.05.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.14 от 04.05.2012
-------------------------

  - Код задачи 22805. Запрос по дням недели. Дата "бессрочно" считалась
    обычной датой (31.12.2050, суббота) и попадала в соответствующие
    выборки.
    Изменены: ReqConv.
    04.05.2012 Д.И.Кобрусев
  * Код задачи 24018. Построение нового набора данных для удаления всё таки
    необходимо для SQL-ориентированных СУБД, т.к. возможна ситуация, когда в
    листалке только подлитые поля, и при формировании sql запроса delete AnyDAC'ом
    не будет полей, которые можно указать в блоке where. К тому же, указание
    всех полей в этом блоке помогает при совместном изменении данных: если кто-то
    другой отредактировал запись (хотя бы одно поле изменилось), то при удалении
    произойдет соответствующая ошибка.
    Изменены: SDBVCLUtils.
    03.05.2012 А.Б.Хах
  - Код задачи 24145. Под Ораклом при загрузке обстановок неправильно
    загружались запросы на совпадение по группе полей. Проявлялось, только
    если БД HyTech имела отличную от БД Оракла структуру, а именно: в ней
    не было таблицы, с которой идёт сопоставление.
    Проявление:
      Если список полей в запросе не пуст, происходила ошибка:
        "[AnyDAC][Phys][Ora] ORA-00920: неверен реляционный оператор.", и
        листалка не открывалась.
      Если список полей в запросе пуст, листалка открывалась, но при
        попытке открыть из неё редактор запросов происходила ошибка:
        "Несанкционированный доступ".
    P: Неправильно устанавливались подсхемы, которая соспоставляется и с
       которой идёт сопоставление: они брались из схемы "основной" БД
       (HyTech).
    Изменены: GrProjfactory.
    03.05.2012 Д.И.Кобрусев
  - Код задачи 24138. Если после добавления (успешного), произвести
    редактирование, то возникала ошибка "Часть объекта по таблице XXX не найдена".
    Изменены: DBObjects.
    03.05.2012 А.Б.Хах
  - Код задачи: 24103. Невозможно было ввести значение в пустое поле ввода
    кодификатора для которого флаг 'Нулевое значение' установлен в False.
    Изменены: SControls.
    03.05.2012 М.А.Степанов
 P* Убрал зависимость от TSonarDB_Connection в функции BuildDeskMenu.
    Изменены: DeskMenu.
    03.05.2012 Е.В.Михайлов
  * Код задачи 23970. Алгоритм мультивыбора вынесен в CommonSQL и теперь
    используется для 3-Х.
    Добавлены: SelectReq.
    Изменены: HandleRowCommands, MultiChoice, SDBGrid, SQLIncrSearchHandler,
      SQLMultiSel, gridincrsearch, gridmultisel, SVCLHT_cnstr, SVCLkbmMW_cnstr,
      SVCLOracle_cnstr.
    02.05.2012 А.Б.Хах
  * Код задачи: 24103. При расчете нового значения ключа для ключевого поля с алиасом,
    возникала ошибка: 'Поле .. не найдено'.
    Изменены: SDBOracle.
    02.05.2012 М.А.Степанов
 P* Код задачи: 24101. Трехзвенная архитектура (KBMMW): добавлена возможность
    работы с транзакциями с клиента.
    Изменены: SonarDBkbmMW, kbmMWJavaDBServer, kbmMWSonarServiceConsts.
    02.05.2012 М.А.Степанов
 P* Код задачи: 23984. Трехзвенная архитектура (KBMMW): добавлена
    конвертация параметров запросов определенного вида в параметры sql.
    Изменены: DataSetInternalUtils, SonarDBkbmMW, SonarDBJava, sdboracle.
    02.05.2012 М.А.Степанов
  - Код задачи 24133. Если в кодификатор код - не главный ключ, в листалке
    не работало сворачиваение поддерева.
    Изменены: GridCodeView, DataSetRequestBuilder, SDBConst.
    Добавлены: CodeTableInfo.
    02.05.2012 Д.И.Кобрусев
  - Код задачи 24121. Кодификаторы. Если смысловое поле имеет в струткуре
    дополнительное имя (алиас), листалка такой таблицы не открывалась,
    происходила ошибка: "[AnyDAC][Phys][Ora] ORA-00904: ...: недопустимый
    идентификатор."
    Проявлялось в "Легенде" на таблице "Организации, выносящие решения"
    (S_ORGDCS).
    Изменены: GridCodeView.
    30.04.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.5.13 от 28.04.2012
-------------------------

  - Код задачи 24126. Ошибка : "Нарушение уникальности ключа ..." при
    редактировании таблиц, в которых ключевое поле типа indRecordID.
    P: Причина в реализации алгоритма для типа TSonarDB_BytesField
       в функции GetFieldData.
    Изменены: sdboracle.
    28.04.2012 Е.В.Михайлов
  - Код задачи 24111. Редактор запросов. В запросе на совпадение по группе
    полей при попытке выбрать таблицу происходила ошибка
    "Несанкционированный доступ".
    Изменены: ReqFieldViewer.
    28.04.2012 Д.И.Кобрусев
  > Код задачи 24110:
    - Редактор запросов. При попытке редактировать относительную границу,
      у которой базовая дата задаётся параметром (запроса или глобальным),
      происходила ошибка: "Состояние набора данных отлично от
      редактирования или добавления записи."
    - Если в запросе используются глобальные параметры, но только в
      относительных границах, их значения при исполнении запроса не
      обновлялись.
      Проявление: При исполнении запроса "дата меньше [Текущая дата - N лет]"
        происходила ошибка: "Некорректный аргумент для перевода даты.", но
        только если до этого (с момента запуска программы) не исполнялось
        ни одного запроса с глобальным параметром не в относительной
        границе.
    Изменены: RelLimitForm, ReqConv.
    28.04.2012 Д.И.Кобрусев
 P+ Добавлена возможность включения протоколирования AnyDAC
    Изменены: sdboracle
    28.04.2012 Д.А.Бондаренко
 P* Код задачи: 24081. Трехзвенная архитектура (KBMMW): Улучшена обработка
    возникающих исключений.
    Изменены: kbmMWJavaDBService.
    26.04.2012 М.А.Степанов
 P- Код задачи 23852. Отменены изменения по переделыванию процедуры
    hnd_DBObjectChoice_EllipsisClick в обработчик, а наличие необходимого поля
    в листалке обеспечивается с помощью TEnsureFieldsPresent. В старой схеме
    возникала ошибка, когда выполняется несколько вложенных
    hnd_DBObjectChoice_EllipsisClick.
    Изменены: ChoiceForm, SVCLCommon_cnstr.
    27.04.2012 А.Б.Хах
  - Код задачи 24097. Адаптирована работа мультивыбора под новые условия (в
    наборе данных листалки теперь не все поля присутствуют).
    Изменены: OraMultiSel.
    27.04.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.12 от 27.04.2012
-------------------------

 P* Код задачи 24100. События ev_DataSet_GetDataSetFields и
    app_GetDataSetFields. Добавлен параметр ListedFieldsOnly - нужны ли
    все поля, или только перечисленные.
    Изменены: DBFieldsLayout, SDBGrid, SDBVCLUtils, TableBrowser.
    27.04.2012 Д.И.Кобрусев
 P* Код задачи: 24081. Трехзвенная архитектура (KBMMW): При изменении
    данных в значениях кодификаторов убираются концевые нули.
    Изменены: kbmMWJavaDBQuery, SonarDBJava.
    26.04.2012 М.А.Степанов
 P* Код задачи: 24062. Трехзвенная архитектура (KBMMW): Адаптированы
    изменения в генерации sql: заказываются только нужные поля.
    Изменены: SonarDBkbmMW, kbmMWSonarBinaryStreamFormat,
      kbmMWSonarCommonDataSet, kbmMWJavaDBQuery, SonarDBJava.
    26.04.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.11 от 26.04.2012
-------------------------

  - Код задачи 23852. Поля НеВыбирать/НеПоказывать не обязательно присутствуют в
    таблице вместе, поэтому "заказывать" их нужно только при наличии в таблице.
    Изменены: SelectShowHandler.
    25.04.2012 А.Б.Хах
  - Код задачи 24075. Инкр. поиск адаптирован к тому, что в наборе данных
    листалки содержатся не все поля таблицы.
    Изменены: DataSetInternalRequests, SQLIncrSearchHandler, DataSetRequestBuilder.
    25.04.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.10 от 25.04.2012
-------------------------

  + Код задачи 24077. Поддержана расширенная версия программы - 4 числа
    (как и было) плюс строковый "суффикс".
    Изменены: FileInfo, LogPrint, About.
    25.04.2012 Д.И.Кобурсев
  - Код задачи 24040. Ошибка при просаживании записи вида:
    "[AnyDAC][Phys][Ora] ORA-01407: невозможно заменить
    ("TEST"."O_SOBIT"."N_РЕШЕНИЯ") на NULL.".
    Изменены: SDBDataSets, sdboracle.
    25.04.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.5.09 от 24.04.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  24.04.2012 М.А.Степанов
  ----------------------------------------------------------

 P* Код задачи: 24062. Функциональность общая для Oracle
    и kbmMW вынесена в отдельный пакет.
    Перенесены в CommonSQL:
      OraConsts, OraSQLSupport, OraSQLWork, OraUsrReq, ReqConv, sdb2utils,
      sdbapi2, sdbc2, sdbti.
    Удалены: OraCodeView, OraIncrSearch.(вместо них используется
      SQLCodeViewHandler, SQLIncrSearchHandler).
    Изменены: SonarDBkbmMW, SVCLkbmMW_cnstr, SonarDBJava, SVCLJavaDB_cnstr,
      svclkbmmw.dpk, OraMultiSel,OraRwfExec, sdboracle, svcloracle.dpk
      SVCLOracle_cnstr, vcl.py oradeskmenu.
    Добавлены: CommonSQL\*.*
    24.04.2012 М.А.Степанов

  * Адаптация: Если что-то не будет компилироваться (маловероятно т.к. изменения
    достаточно низкоуровневые), то подключить нужный модуль
    из нового каталога CommonSQL.
                                   * * *

  > Код задачи 24073:
    - В случае отсутствия слияний в мастере, при выборе поля из мастера
      происходило исключение EAV.
    - Проверка (есть ли в наборе данных поле подходящее по типу) теперь
      производится по описателю (по всем полям основной и подлитых таблиц).
    Изменены: ReqFieldViewer, ReqUtils.
    24.04.2012 А.Б.Хах
  - Код задачи 23966. Поскольку теперь изменение данных происходит в наборе
    данных, отличном от набора данных листалки, то и следить за добавлением
    записи нужно в редактируемом наборе данных.
    Изменены: gridmultisel.
    24.04.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.08 от 24.04.2012
-------------------------

  * Код задачи: 24010. Трехзвенная архитектура (KBMMW): Не работало
    удаление записи.
    Изменены: SonarDBkbmMW, kbmMWJavaDBServer, SonarDBJava.
    23.04.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.07 от 23.04.2012
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  23.04.2012 А.Б.Хах
  ----------------------------------------------------------

 P* Код задачи 23852. Теперь в наборе данных листалки есть только поля,
    участвующие в визуализации.
    Добавлены: DBSchemaUtils, ScrollingSynchronizer, request_SkipTable.xml.
    Изменены: DBFieldsLayout, reqlimit, ChoiceForm, DBGridColumnsLayout,
      GridCodeView, HandleRowCommand, MasterDetail, MultiChoice, ReqFieldViewer,
      ReqUtils, DsLimit, ReqEdit, SDBGrid, SDBGridColumnsLayoutDialog,
      SDBVCLUtils, SonarDBIntf, SVCLCommon_cnstr, TableBrowser, gridmultisel,
      OraMultiSel, ReqConv, sdboracle.
    23.04.2012 А.Б.Хах

  * Адаптация: Если где-то необходимо (действительно необходимо) обеспечить
    наличие определенного поля в листалке, то можно воспользоваться событием
    ev_DataSet_GetDataSetFields/app_GetDataSetFields и "заказать" наличие этого
    поля.
    Если же где-то, набор данных листалки использовался для изменения данных, то
    впредь так делать не следует, следует получить набор данных для изменения
    данных напр. с помощью PrepareRowCommandDataSet.
                                   * * *

  * Код задачи 23852. Адаптирована работа НеВыбирать/НеПоказывать в условиях,
    когда в наборе данных листалки присутствует только поля из визуализации.
    Изменены: SelectShowHandler.
    23.04.2012 А.Б.Хах
  - Код задачи 23989. Проявление: В "Легенде" не вводились связи в
    разделах карточек объектов учёта.
    P: Так происходило из-за того, что связи можно вводить только в
       разделах, а проверка не идентифицировала подменяющие наобры данных
       как построенные разделами.
    P* IsSectionDataSet (определение, был ли набор данных построен разделом):
       Если набор данных был подменён при построении карточки, а исходный был
       построен разделом, новый также считается построенным разделом.
    Изменены: Sections.
    20.04.2012 Д.И.Кобрусев
 P* Текст сообщения "Опреация прервана" заменен на
    "Операция прервана"
    Изменены: SysConst.
    20.04.2012 И.В.Ковалев
                                 --- * ---

DSP v3.5.06 от 18.04.2012
-------------------------

P!* Код задачи 23905. Добавлен модуль ReportUtils с реализацией СУБД
    независимых функций вызова RWF отчетов.
    В модули OraRwfExec и rwfhtexec перенесен СУБД зависимый код.
    Модуль OraRwfExec перенесен из ..\SonarVCL\Svcl в ..\SonarVCL\Oracle.
    Модуль itext_tools перенесен из ..\SonarVCL\Hytech в ..\SonarVCL\Common.
    Изменены: SVclCommon.dpk, SVCLHt.dpk, svcloracle.dpk, SVcl.dpk,
    deskmenuexec, OraRwfExec,itext_tools, rwfhtexec, oradeskmenu
    Добавлены: ReportUtils
    18.04.2012 Е.В.Михайлов
  - Код задачи: 23997. Поддержка трехзвенной архитектуры: При попытке
    ввести фабулу в O_OPF, возникает исключение '..невозможно вставить NULL
    в.. '.
    Изменены: MasterDetailHandlers, kbmMWSonarLoginDialog, SonarDBkbmMW,
      SonarDBJava, svclkbmmw.dpk.
    18.04.2012 М.А.Степанов
  > Код задачи 23580:
    + Установка технических полей при вводе и редактировании.
   P+ Замена NULL-ов "нулевыми" значениями - вынесена из общей части
      "Легенды".
    Изменены: SVCLCommon_cnstr0.
    Добавлены: AppTriggers.
    18.04.2012 Д.И.Кобрусев
 P* LoginTo_kbmMWServer: Сообщение о успехе вынесено в вызывающий код.
    Изменены: kbmMWSonarLoginDialog.
    17.04.2012 М.А.Степанов
  * Код задачи: 23553. Поддержка трехзвенной архитектуры: адаптировано
    появление интерфейсов ISonarSQLDataSet.
    Изменены: ObjectDescriptionsGen, SonarDBkbmMW, SVCLkbmMW_cnstr, kbmMWJavaDBQuery
      SonarDBJava, SVCLJavaDB_cnstr.
    Добавлены: kbmMWSQLDataSetWrapper, SQLParameterWrapper.
    13.04.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.05 от 16.04.2012
-------------------------

P!* Модули, относящиеся к RWF перенесены из каталога SonarVCL\Hytech в
    SonarVCL\Common, исполнитель RWF для Hytech выделен а отдельный модуль
    rwfhtexec.
    Изменены: SVclCommon.dpk, SVCLHt.dpk, rwfdesigner, GRCONST, RWFExec,
    rwffactory, deskmenuexec, HTMenus, PCONST, svclcommon.dpk, svclht.dpk.
    Добавлены: commenus, rwfhtexec.
    13.04.2012 С.А.Барсуков
  - Код задачи 23940. Ошибка в карточке редактирования: при нажатиии на
    кнопку "Отмена" навигатора не откатываются изменения в Фабуле и
    в любых других полях редактирования подчиненных наборов данных.
    Добавил вызов метода Cancel подчиненного набора данных в событии
    AfterCancel главного набора данных.
    Изменены: form_DataChange, RecordControl, MasterDetailHandlers.
    13.04.2012 Е.В.Михайлов
 P> Код задачи: 23553.
    * Поддержка трехзвенной архитектуры: адаптирован уход
      от Glassfish.
    - При изменении записи с поля типа кодификатор возникала ошибка
      'Запись изменена другим пользователем'.
    Изменены: SOnarVCL\KBMMW\*.
    13.04.2012 М.А.Степанов
 P- При генерации SQL-запроса для получения описания неправильно раставлялись
    алисы для таблиц при их повторном слиянии.
    Изменены: ObjectDescriptionsGen
    12.04.2012 М.В.Пекшева
 B- Код задачи 23817. Проявление: В "Легенде" открыть карточку лица, выйти
    в раздел "Адмнадзор", начать ввод записи адмнадзора, выйти в список
    решений суда и там нажать Insert - происходила ошибка: "Поле ...
    обязательно для заполнения" (где было указано одно из обязательных
    полей адмнадзора), и карточка решения суда не открывалась.
    P: При препросадке не проверяется обязательность полей.
    Изменены: RecordControl.
    11.04.2012 Д.И.Кобрусев
 B- Код задачи 23799. Под Oracle неверно определялся размер
    визуализации текстовых полей.
    P* TpSchemaField.GetFieldLength: для типов indASCII, indMemo, indStr,
       indBinary результат увеличивается на единицу (ранее это делалось в
       DBDItems.GetSizeByType).
    Изменены: DBDItems, htDescr.
    11.04.2012 А.В.Соса
                                 --- * ---

DSP v3.5.04 от 10.04.2012
-------------------------

  - Код задачи 23939. В рамках задачи 22626 был добавлен контроль типов
    операднов (проверялось, что типы числовые). Теперь контроль типов отключен,
    т.к., как оказалось, он не был зайдествован ранее.
    Изменены: arifmop.
    10.04.2012 А.Б.Хах
  - Код задачи 23937. В задаче в разделе "Постановка" есть ссылка на постановку,
    по Alt+F возникала ошибка: "Операция не применима к закрытому набору данных."
    P- При вызове простой (посредством Requery) прямой синхронизации
       для закрытого набора данных под Hytech возникало исключение. Теперь в такой
       ситуации набор данных открывается, как и при синхронизации по RecID.
    Изменены: SDBVCLUtils.
    10.04.2012 А.В.Соса
 P- OraMultiSel.pas: В функции EvalAdded при добавления записей вместо поля
    датасета, полученного из PrepareDataSetForAdding, использовалось поле
    исходного, что могло привести к ошибкам при добавлении записей посредством
    мультивыбора.
    Изменены: OraMultiSel.
    10.04.2012 А.В.Соса
  - Устранена ошибка утечки памяти.
    Изменены: ObjectDescriptionGen
    10.04.2012 М.В.Пекшева
 P* Удалены функции FieldToStr, GetRegExpStr из интерфейса ISQLSupport в виду
    невостребованности.
    Изменены: SonarDbIntf, OraSQLSupport
    09.04.2012 М.В.Пекшева
  * Код задачи 23854. Получение описание объекта по смысловым полям осуществляется
    посредством прямой генерацией SQL-запроса, содержащего в выборке только нужные
    поля.
    Изменены: ObjectDescriptions.
    Добавлены: ObjectDescriptionsGen.
    09.04.2012 М.В.Пекшева
 P+ Код задачи 23853. Добавлена возможность исполнять напрямую SQL-запросы через DataSet
    с пустым именем в качестве имени таблицы.
    Изменены: SonarDbIntf, SonarDBkbmMW, SonarSQLConvertor, kbmGlassfishServer,
    SonarDBGlassfish, AuthOracle, AuthGenProc, SetupPackages, OraDBObjects,
    OraDBObjectsGen, OraMultiSel, ReqConv, sdbapi2, sdboracle, SVCLOracle_cnstr,
    OraRwfExec.
    Добавлены: SonarParameters, OraSQLSupport, OraSQLWork.
    09.04.2012 М.В.Пекшева
 P- KBMMW: Значения полей типа кодификатор показывались некорректно.
    Изменены: SonarDBkbmMW, kbmGlassfishServer, SonarDBGlassfish.
    06.04.2012 М.А.Степанов
 P* Код задачи: 23553. Доработки и исправления ошибок в поддержке наборов
    данных KBMMW.
    Изменены: kbmGlassfishClient, SonarDBkbmMW, SVCLkbmMW_cnstr, kbmGlassfishServer,
      kbmMWGlassfish, SonarDBGlassfish.
    05.04.2012 М.А.Степанов
BP+ Код задачи 23907. RecordController. Добавлены метод препросадки
    текущей записи  PrepostData и признак идущей препросадки PrepostState.
    Изменены: MasterDetailHandlers, RecordControl.
    04.04.2012 Д.И.Кобрусев
BP+ Код задачи 23908. Выбор значения поля из списка. Добавлено событие
    подготовки листалки выбора.
    Изменены: SVCLCommon_cnstr, SVclCommon.dpk.
    Добавлены: ChoiceForm.
    04.04.2012 Д.И.Кобрусев
  - Легенда на Glassfish: При работе на WindowsXP программа зависала после
    ввода пароля.
    Изменены: kbmMWServer.
    04.04.2012 М.А.Степанов
                                 --- * ---

DSP v3.5.03 от 03.04.2012
-------------------------

  - Код задачи 23861. Производилась синхронизация разных записей разных наборов
    данных, открытых на одну и ту же таблицу.
    Изменены: RecordSync, SDBVCL.
    03.04.2012 А.Б.Хах
  - Код задачи: 23803. Окно выбора таблицы (Ctrl-Alt-T): Инкрементный
    поиск в листалке не был регистронезависимым.
    Изменены: DSIncrSearch.
    02.04.2012 М.А.Степанов
  * Код задачи 22626. Поддержаны новые типы данных indLargeInt - 64-битное целое,
    indFMTBcd - двоично-десятичный код и indBcd - двоично-десятичный код,
    хранящийся в Currency.
    02.04.2012 А.Б.Хах
  - Код задачи 22626. Внесены исправления AnyDAC по работе с Bcd числами под
    Oracle.
    Изменены: uADPhysOraclWrapper.
    30.03.2012 А.Б.Хах
 P* Код задачи 22626. Модуль arifmop обработан DelFor'ом.
    Изменены: arifmop.
    А.Б.Хах 28.03.2012
 Р* Исправления в обработке ошибок триггеров уровня приложения.
    Изменены: SdbOracle
    28.03.2012 Д.А.Бондаренко
 P* Изменения в механизме триггеров уровня приложения: теперь триггеры на
    добавление/редактирование вызываются из перекрытого метода DoPost
    набора данных.
    Изменены: DB, SdbOracle
    27.03.2012 Д.А.Бондаренко
  * Код задачи 21803. Перенесена из 2.6 следующая функциональность:
    если в таблице есть единственное редактируемое поле-ссылка на другую
    таблицу, то при открытии карточки в такой таблице открывается карточка
    той таблицы, на которую ссылается это поле.
    Изменены: SDBVCLUtils, form_DataChange, HandleRowCommand.
    23.03.2012 А.В.Соса
 P* Модуль SysUtils по умолчанию теперь собирается без отладочной информации.
    Изменены: SysUtils
    20.03.2012 Д.А.Бондаренко

DSP v3.5.02 от 19.03.2012
--------------------------

  - Код задачи 23779. Адаптирована работа мультивыбора при подмене и разделов 1 к 1
    (в т.ч. задоченных) редактируемого набора данных.
    Изменены: HandleRowCommands, MasterDetailHandlers, MultiChoice, SDBVCLUtils,
      Sections, gridmultisel, SdbVcl, OraMultiSel.
    16.03.2012 А.Б.Хах
 B- Код задачи 23805. При попытке сохранения записи после дублирования в
    insert-запрос попадало поле ROWID, что приводило к ошибке
    [AnyDAC][Phys][Ora] ORA-01747: неверные спецификации для... В процессе
    подготовки к дублированию записи теперь исключаются все поля, для
    которых невозможно получить описатель.
    Изменены: SDBVCLUtils
    14.03.2012 Д.А.Бондаренко
                                 --- * ---

DSP v3.5.01 от 12.03.2012
--------------------------

  - Код задачи 23768. Неверно производилась настройка обработчика мастер-деталь
    для случаев отличных от листалки: текстовые поля, и т.п.
    Изменены: MasterDetailHandlers, TableBrowser.
    12.03.2012 А.Б.Хах
                                 --- * ---

DSP v3.5.00 от 11.03.2012
--------------------------

  * Код задачи 23473. Изменение данных теперь производится в наборе данных,
    отличном от того, что в листалке. К новой схеме адаптирован обработчик
    мастер-деталь.
    Добавлен: SObjectList.
    Изменены: AuthFormH, DBObjects, form_DataChange, MasterDetailHandlers,
      RecordControl, SDBVCLUtils, SVCLCommon_cnstr, deskmenuform.
    11.03.2012 А.Б.Хах
  - Код задачи 23648. Не работал контроль дублирования составного ключа таблицы.
    Добавил вызов PrepareDataSet для рассылки события ev_CustomConnection_PrepareDataSet.
    Изменены: SdbOracle, SonarDbIntf
    02.03.2012 Е.В.Михайлов
  + В ITriggerContainer добавлена возможность регистрации триггеров для всех таблиц.
    Изменены: UTriggerContainer
    01.03.2012 Д.А.Бондаренко
 P- Код задачи 23701. Теоретически возможно, что Screen.ActiveForm = nil, поэтому перед вызовом
    Repaint это проверяется. Обстоятельств, при которых это так получить не
    удалось, однако пару раз на компьютере Архиповой это происходило.
    Изменены: SProgress.
    01.03.2012 А.Б.Хах
 P* Отменены изменения по подмене редактируемого набора данных.
    Изменены: AuthFormH, form_DataChange, SDBVCLUtils, SVCLCommon_cnstr, deskmenuform.
    24.02.2012 А.Б.Хах
 P- Код задачи 23593. При добавлении записи в SQL-запрос могло попадать подлитое
    BLOB-поле, что приводило к ошибке "[AnyDAC][Phys][Ora] ORA-00911: неверный символ".
    Изменены: SDBOracle.
    24.02.2012 А.В.Соса
  + Добавил поддержку Blob полей в объекты
    Изменены: DBObjects
    21.02.2012 Е.В.Михайлов
  * Внес исправления, связанные с определением значения поля Расширение
    для просмотра содержимого Blob полей в форме редактирования
    Изменены: DBInputCustomBLOB
    21.02.2012 Е.В.Михайлов
  * Код задачи 23597. Изменены умолчания параметров проектной конфигурации:
    частота обновления данных (RefreshInterval) теперь по умолчанию 60 секунд,
    количество записей в листалке - 1000.
    Изменены: netcnf, config, OraConfig, SDBOracle, kbmMVConfig, SonarDBkbmMV.
    20.02.2012 А.В.Соса
  - Код задачи 23572. В Легенде в поле МестоРожд нельзя было ввести более 20
    символов: в SetupFieldDef неверно устанавливался размер полей типа indASCII.
    Изменены: SDBDataSets.
    13.02.2012 А.В.Соса
  - Устранена утечка памяти (не освобождался TCustomRichViewEdit.FDropTarget при
    работе в Дизайнере).
    Изменены: RVEdit.pas
    13.02.2012 Д.А.Бондаренко
 B* Код задачи 23562. Поля таблицы "список таблицы" теперь доступны только для
    чтения.
    Изменены: TableChoice, SoanrDBIntf, SVCLCommon_cnstr.
    10.02.2012 А.Б.Хах
  + Добавлена поддержка триггеров.
    Изменены: UTriggerContainer, SDBUtils, SdbOracle, DBObjects,
    AuthHyTech, OldAuthHyTech.
    10.02.2012 Е.В.Михайлов
  * Код задачи 22291, 21960. Добавлено свойство TTableDataSource.NoIdleOpen
    (нужно ли при загрузке открывать набор данных сразу, а не фоново).
    Изменены: TableDataSource.
    09.02.2012 А.В.Соса
 P- Код задачи: 23553. Исправлены ошибки при работе с БД на KBMMW.
    Изменены: HTDescr, SonarDBkbmMW, SonarSQLConvertor, SonarDBGlassfish.
    09.02.2012 М.А.Степанов
 P* Адаптировано обновление библиотеки Hunspell.
    Изменены: RVHunSpell.pas
    09.02.2012 Д.А.Бондаренко
P!+ Код задачи: 23553. Внесена поддержка трехзвенной архитектуры
    на основе kbmMW и Glassfish.
    Изменены: htdescr, SysUtils, DataSetSynchronizer, DBObjects, DBObjectSpecs,
    SDBVCLUtils, SonarDbIntf, StdMainForm, HTDBObjects, OraDBObjects.
    Добавлены: SonarVCL\KBMMW\*., ThirdParty\kbmMW\*.*.
    08.02.2012 М.А.Степанов
  - Код задачи: 23551. В карточках объектов учета в Легенде показывались
    не все поля.
    P: SetupFieldDef: обрабатывались не все типы полей, а
       вызывающий код не всегда это учитывал (например в TDBObject).
    Изменены: SDBDataSets.
    08.02.2012 М.А.Степанов
  - Код задачи 23535. При первом получении редактором TDBInputMemo фокуса
    ввода курсор устанавливался на начало текста, при этом сдвигая сам текст.
    Изменены: DBInputCustomBLOB.pas
    08.02.2012 Д.А.Бондаренко
  * Визуализатор прогресса пакета AnyDAC заменён на визуализатор из SonarVCL.
    Удалены: uADGUIxFormsfAsync.pas, uADGUIxFormsfAsync.dfm,
      uADGUIxFormsfOptsBase.dfm, uADGUIxFormsfOptsBase.pas
    Изменены: SVCLCommon.dpk, anydac.dpk, LibUtils.pas, SProgress.pas,
      SVCLCommon_cnstr.pas, sdboracle.pas
    Добавлены: SADProgress.pas
    07.02.2012 Д.А.Бондаренко
 B- Код задачи 23591. Проявление: В "Легенде" начать ввод события и в
    карточек нового события попытаться принять решение. При принятии
    карточки решения происходила ошибка: "[AnyDAC][Phys][Ora] ORA-00001:
    нарушено ограничение уникальности..."
    P: При добавлении новой записи не менялся SQL-запрос на
       редактирование, а в нём содержится значение RowId.
       В описанной ситуации объект пытался занести данные не в ту запись,
       которую пользователь вводил в карточке, а в ту, которая была
       текущей при открытии карточки.
    Изменены: OraDBObjects.
    22.02.2012 Д.И.Кобрусев
 B- Код задачи 23632. Проявление: В "Легенде" в разделе "Изъятые вещи"
    карточки адмпротокола при вводе можно выбрать адмпротокол (должно
    быть: выбора нет, поле всегда устанавливается в тот, в карточке
    которого находимся).
    P: Определение, какие поля фиксирует запрос (GetDefaultFieldsFromReq).
       Если встречался подзапрос на связанное поле или с любым условием
       кроме "равно", обработка прерывалась (и последующие подзапросы не
       обрабатывались).
    Изменены: VCLReq.
    17.02.2012 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.334 от 01.02.2012
--------------------------

  - устранена ошибка обновления записей в гриде при корректировке нескольких
    записей и перемещении с помощью навигатора в форме редактирования
    Изменены: SDBVCLUtils.
    31.01.2012 Е.В.Михайлов
                                 --- * ---

DSP v3.0.333 от 27.01.2012
--------------------------

  - Код задачи 22596. При попытке отредактировать значение числового поля,
    отображаемое с разделителями разрядов ( ` ), если не стереть разделители,
    выдавалось сообщение об ошибке.
  - Код задачи 21705. Для целочисленных полей не устанавливалось ограничение
    на длину числа при редактировании.
    Изменены: SControls, DBCtrls.
    27.01.2012 А.В.Соса
  * Код задачи 23500. Частота фонового обновления листалки теперь берется из
    параметров конфигурации.
    Изменены: TableBrowser.
    26.01.2012 А.Б.Хах
  ! обновил библиотеку компонентов AnyDac
    Изменены: модули AnyDac.
    26.01.2012 Е.В.Михайлов
  - устранил попадание в лог файл информации об исключительной ситуации
    при удалении записи в гриде (исключительная ситуация возникает при
    последующем обновлении удаленной записи)
    Изменены: SDBOracle.
    26.01.2012 Е.В.Михайлов
  * обеспечил непосредственное удаление записи в гриде после Ctrl+Del,
    раньше запись удалялась при обновлении строки по таймеру
    Изменены: SDBVCLUtils.
    25.01.2012 Е.В.Михайлов
  - Код задачи: 22583. Редактор запросов: После загрузки запроса из файла,
    могло возникать исключение AccessViolation при редактировании запроса.
    Исправлено: изменен способ реализации задачи 19701, так что ее тоже
    нужно проверить.
    Изменены: ReqDesigner.
    25.01.2012 М.А.Степанов, А.В.Соса.
  * Код задачи 23391. Теперь вместо объекта БД для СУБД Oracle строится
    СУБД-независимый объект БД.
    Изменены: SVCLOracle_cnstr.
    23.01.2012 А.Б.Хах
 P+ Код задачи 23391. Добавлена СУБД-независимая реализация объекта БД.
    Добавлены: DBObjects.
    Изменены: sonarsys, SDBDataSets, SonarDBIntf, SVCLCommon.dpk,
      SVCLCommon_cnstr, SDBVCL, SDBOracle.
    23.01.2012 А.Б.Хах
 P* Код задачи 23391. Тип TSonarDB_DataChange_Operation перенесен в SDataSet,
    т.к. теперь используется на уровне SonarVCL/Common в DBObjects.
    Изменены: SDataSet, SDBVCL, AuthHyTech, SVCLHTUtils.
    20.01.2012 А.Б.Хах
 P* Код задачи 23391. Модуль DBObjects переименован в HTDBObjects.
    Изменены: SVCLHT.dpk, SVCLHT_cnstr0, SVCLHT_registration.
    20.01.2012 А.Б.Хах
 P+ Код задачи 23470. Добавлена возможность отключать синхронизатор
    редактируемого и скроллируемого наборов данных.
    Изменены: SDBVCLUtils.
    18.01.2012 А.Б.Хах
                                 --- * ---

DSP v3.0.332 от 16.01.2012
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  20.12.2011 А.Б.Хах
  ----------------------------------------------------------

 P* Код задачи 22745. Теперь в качестве Target в app_PrepareRowCommand всегда
    строится новый набор данных на ту же таблицу.
    Добавлены: DataSetSynchronizer.
    Изменены: AuthFormH, form_DataChange, SDBVCLUtils, SVCLCommon.dpk,
      SVCLCommon_cnstr, deskmenuform, sdbvcl, sdboracle.
    20.12.2011 А.Б.Хах

  * Адаптация: Изменены интерфейсы функций CreateDataViewForm,
    CreateFormByCommand и CreateDataChangeForm: теперь следует передавать два
    набора данных: один скроллируемый (чаще всего тот, что в листалке), другой -
    редактируемый (тот, что в карточке).
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  19.12.2011 А.Б.Хах
  ----------------------------------------------------------

 P* Код задачи 22745. Адаптировано из DSP 4.0:
    Добавлен модуль DataSetUtils: в него перенесены низкоуровневые функции для
    работы с набором данных: GetAsXXX, SetAsXXX и т.п.
    Добавлен модуль DBGridColumnsLayout: в него перенесены TColumnItem,
    TColumnInfo, TGridLayout, ApplyColumns.
    FieldValidator: TDefaultFieldValidator разделен на два.
    Добавлен LoginUtils: в него перенесен обработчик из модуля Login,
    отключающий кнопку "Принять".
    Добавлен модуль TableDataSource: в него перенесен TTableDataSource из SControls.
    Добавлен модуль SDBGridColumnsLayoutDialog: в него перенесена фунция
    ChangeView из DBGridLayout и теперь она называется ChangeColumnsLayout.
    Добавлен модуль SVCLDBFormH: в него перенесены обработчики
    tfhFormModalPostOnCloseHelper, tfhMasterFormCloseHandler,
    tfhDetailDataSetCloseFormHandler из SVCLFormH.
    Добавлен uLoopSense: в него перенесена функция LoopSense из SDButils.

    Адаптация: Адаптировать uses модуля в соответствии с вышеописанными
    перемещениями.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  16.12.2011 А.Б.Хах
  ----------------------------------------------------------

 P* Код задачи 22745. Адаптировано из DSP 4.0:
    TJoinInfo, TJoinItem, TSortInfo, TSortItem, IsMergeField и SameJoinInfo
    перенесены в DBFieldsLayout.
    TQualifiedName, FormQualifiedNameString, QualifiedNameToString,
    StringToQualifiedName и AliasToTableName перенесены в QualifiedName.
    Добавлены: DBFieldsLayout, QualifiedName, Common_Registration.

    Адаптация: Если модуль не будет компилироваться из-за отсутствия функции
    или класса перечисленного выше, то подключить нужный модуль (DBFieldsLayout
    или QualifiedName).

                                   * * *
  * Код задачи 20317. При открытии окна блочного редактирования для
    нередактируемых полей фокус на него не устанавливался, чтобы выделить текст,
    фокус нужно было передать мышью. Теперь фокус устанавливается, и если это
    простой редактор (TSDBEdit), курсор устанавливается в конец текста.
    Изменены: SDBGrid.
  * Код задачи 19327. В локальное меню листалки добавлен пункт "Редактировать
    поле".
    Изменены: TableBrowser, frame_TableBrowser.xml.
    13.01.2012 А.В.Соса
  * Код задачи 22845. В списке полей подсхемы теперь отображается дополнительное
    наименование поля.
    12.01.2012 А.В.Соса
  + Код задачи 23451. Добавлен скроллинг при получении фокуса полем
    инкрементного поиска.
  - Код задачи 21076. При изменении ширины листалки с отключенным авторазмером
    ширины полей инкрементного поиска оставались прежними.
    Изменены: SDBGrid.
  - Код задачи 23456. Когда видна только одна колонка, причём не полностью
    (ширина больше доступной области), поле инкрементного поиска для неё
    отображалось некорректно.
    Изменены: Grids.
    12.01.2012 А.В.Соса
  - Код задачи 22940. Обходится ошибка Oracle, в результате которой для
    запроса select * from (select ...., ROWID order by ...) where rownum <
    ... у разных записей получается одинаковое значение ROWID.
    Изменены: ReqConv.
    11.01.2012 И.В.Ковалев
  * Восстановлено копирование ресурсных файлов пакета AdvRichView
    Изменены: richview.py
    11.01.2012 Д.А.Бондаренко
 P* Код задачи 23213. В запросе на присутствие записей в разделе формы
    ввода/редактирования количество записей увеличено с 1 до 2 по причине
    того, что в ряде случаев для значения 1 план запроса неоптимален, в
    результате прорисовка раздела была медленнее, чем показ листалки в
    этом разделе.
    Изменены: sdboracle.
    11.01.2012 И.В.Ковалев
  * Изменён алгоритм сохранения истории поиска и замены. Теперь история
    обновляется после каждого выполнения операции поиска или замены, а не
    после закрытия диалога, как раньше.
    Изменены: SVCLFormH.pas, SrvaDialogs.pas, form_FindDialog.xml,
      form_ReplaceDialog.xml, form_ViewFindText.pas,  form_MemoFindDialog.xml,
      DbMemoSearch.pas
    28.12.2011 Д.А.Бондаренко
  - Исправлен автоматический перенос панелей инструментов в редакторе документов RTF
    Изменены: Frame_StandardRTFEditor.xml
  - Исправлена ошибка чтения ContentLoader.Active: Класс "TecCopy" не найден при
    запуске редактора текста.
    Изменены: SVCLCommon_cnstr.pas
  - Исправлена работа панелей TBX с клавиатурными командами при отсутствии
    активного компонента на текущей форме.
    Изменены: TB2Toolbar.pas
  > Добавлен просмотр текстовых файлов (главное меню|Файл|Просмотр)
    * Пакет ATViewer обновлён до версии 3.7 и добавлен в ThirdParty
      Изменён: thirdparty.py
    Добавлены: StandardViewer.pas, frame_ATViewer.xml, form_ViewFindText.pas,
      form_ViewFindText.xml, SHDocVw.pas, MSHTML.pas
    Изменены: thirdparty.py, StdMainForm.pas, dm_FileMenu.xml, SVCLCommon.dpk,
    vcl.dpk
  > Добавлено редактирование текстовых файлов (главное меню|Файл|Редактировать текст)
    * Русифицированы диалоги пакета ECEdit
      Изменены: ecCustEditDlg.pas, ecPageSetupBase.pas, ecPageSetupEditor.pas,
      ecPreviewFm.pas
    Добавлены: dm_ecActions.rc, StandardEditor.pas, Frame_ecEditor.xml,
    dm_ecActions.xml
    Изменены: ecedit.py, StdMainForm.pas, dm_FileMenu.xml, SVCLCommon.dpk
  + Добавлено редактирование документов RTF (главное меню|Файл|Редактировать
    документ)
    * AdvRichView обновлён до версии 13.6
    * Адаптировано переименование пакета AdvRichViewActions в RVActions
      Изменён: SVCLCommon.dpk
    * Адаптировано переименование модуля AdvRichViewActions_Registration в RVActions_Registration.
      Изменён: SVCLCommom_cnstr.pas
    * Настроены опции компиляции для отладки
      Изменены: AdvRichView.dpk, RVActions.dpk
    * Диалоги поиска и замены теперь захватывают слово под курсором, даже если оно не выделено.
      Изменён: RichViewActions.pas
    - Окно рисования таблицы (TableSizeDialog) не учитывало заданные координаты
      "всплытия". Исправлено.
      Изменён: RichViewActions.pas
    Добавлены: StandardRTFEditor.pas, Frame_StandardRTFEditor
    Изменены: StdMainForm.pas, dm_FileMenu.xml, dm_RVActions.xml, SVCLCommon.dpk
 P+ Панели TBX теперь обрабатывают клавиатурные команды локально, т.е. в
    контексте формы или фрейма, в котором они содержатся, а не в контексте окна
    верхнего уровня, как раньше
    Изменён: TB2Toolbars.pas
  * В выпадающих списках истории поиска и замены убрана сортировка строк по
    алфавиту. Теперь элементы хранятся в порядке, обратном порядку ввода.
    Добавлен: SrvaDialogs.pas
    Изменены: DBImputCustomBlob.pas, SVCLFormH.pas, form_FindDialog.xml,
    form_ReplaceDialog.xml
  > Добавлена проверка орфографии при редактировании документов и текстовых
    бинарных данных
    + Создан пакет для проверки орфографии с использованием словарей HunSpell
      Добавлен: RVSpell.dpk
    * В dm_RVActions добавлена поддержка проверки орфографии, выполнен переход
      на TSImageList
      Изменены: dm_RVActions.xml
    + В TDBInputMemo добавлена возможность проверки орфографии.
      Изменён: dm_RVActions.xml, DBImputCustomBlob.pas
    * Упрощена загрузка Action'ов в TDBInputMemo. Теперь она осуществляется с
      помощью ContentLoader'а.
      Изменены: Frame_DBInputMemo.xml, DBImputCustomBlob.pas
    * Обеспечена однократная загрузка глобального набора словарей проверки
      орфографии и пользовательского словаря.
      Изменён: RVHunSpell.pas
    * Русифицирован диалог проверки орфографии.
      Изменён: RVCustomSpellFrm.dfm
    Добавлен: SRVSpellChecker.pas
    23.12.2011 Д.А.Бондаренко
  - В карточках не контролировалась заполненность обязательных по
    структуре полей.
    Изменены: SVCLCommon_cnstr0.
    21.12.2011 Д.И.Кобрусев
 P- Код задачи 22745. После вынесения функции GetAsXXX в CompoundError бралась
    функция из DBUtils.
    Изменены: CompoundError.
    19.12.2011 А.Б.Хах
 P* Код задачи 22745. Адаптировано из DSP 4.0: CryptoStreams перемещен из
    SonarVCL/HyTech/Archiver в Lib.
    Изменены: Lib.dpk, SVCLHT.dpk.
    16.12.2011 А.Б.Хах
 P* Код задачи 22745. LicFile и SndName перемещены в Common.
    16.12.2011 А.Б.Хах
  * Код задачи 23335. При активизации приложения выполнялось блокирование всех
    окон, кроме окна визуализатора, что приводило к описанной в задаче проблеме.
    Изменены: SProgress.
    14.12.2011 А.Б.Хах
  * Код задачи 23320. Контроллер для бинарных полей в разделе теперь строится
    только когда в наборе данных только бинарное поле, а не тогда когда нет
    нередактиктируемых полей.
    Изменены: Sections.
    12.12.2011 А.Б.Хах
 P- Код задачи 23284. При показе визуализатора не прорисовывалась кнопка отмены
    и прогресс индикатор.
    Изменены: SProgress.
    08.12.2011 А.Б.Хах
  - Код задачи 23284. При установке свойства Text показывалась строка
    "Обработка...".
    Изменены: LibUtils.
    08.12.2011 А.Б.Хах
  - Код задачи 23283. Обрезалась метка в визуализаторе прогресса в случае
    многострочного текста.
    Изменены: form_Progress.xml
    08.12.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.331 от 29.11.2011
--------------------------

  Внимание! Нужно очень хорошо проверить регистрацию станций.
  28.11.2011 С.А.Барсуков
  ----------------------------------------------------------

  - При одновременном старте нескольких программ мог "провисать" users.lst.
    Изменены: ht_init.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  18.11.2011 Д.И.Кобрусев
  ----------------------------------------------------------

 P* Код задачи 23104. Выбор из списка (TDBObjectChoice). Запрос заменён на
    список запросов.
    Соответственно изменён интерфейс метода TObjectDescripter.GetObjectData.
    Изменены: DBInputMethods, DBObjectChoice, ObjectDescriptions,
      SonarRequests, SVCLCommon_cnstr.

    Адаптация: Требуется, если не будет компилироваться из-за того, что
    неизвестен идентификатор TDBObjectChoice.Request или не совпадает
    интерфейс метода TObjectDescripter.GetObjectData.
                                   * * *

 P+ Код задачи 23178. Добавлено событие TSection.ev_PrepareForm.
    Изменены: SectionList.
    28.11.2011 Д.И.Кобрусев
  - Код задачи 23124. Проявление: В "Легенде" ошибка:  "Неверная операция
    с указателем" при закрытии карточки события.
    P: TDBObjectChoiceController: При освобождении объекта, если у него
       были и control, и запрос, происходила означенная ошибка.
    Изменены: DBInputMethods.
    21.11.2011 Д.И.Кобрусев
  - Код задачи 23122. Проявление: В "Легенде" при открытии карточки
    события происходила ошибка: "Неверный аргумет при операции с variant".
    P: dbIsVariantsEqual (сравнение вариантов). Сравнение массива с пустым
       (varEmpty) вариантом приводило к означенной ошибке.
    Изменены: SonarSys.
    21.11.2011 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.330 от 11.11.2011
--------------------------

  - Код задачи 23015. Проявление: В "Легенде" открыть карточку любого
    объекта учёта, перейти к другой записи (DB navigator-ом),
    отредактировать её. При сохранении происходила ошибка:
    "[AnyDAC][Phys][Ora] ORA-00001: нарушено ограничение уникальности..."
    P: При переоткрытии объекта не менялся SQL-запрос на редактирование, а
       в нём содержится значение RowId.
       В описанной ситуации объект пытался занести данные не в ту запись,
       которую пользователь менял в карточке, а в ту, на которую карточка
       была изначально открыта.
    Изменены: OraDBObjects.
    10.11.2011 Д.И.Кобрусев
 P- Код задачи 22950. В методе CreateController фабрики TBooleanController могла
    возникать утечка памяти.
    Изменены: DBInputMethods.
    07.11.2011 А.В.Соса
                                 --- * ---

DSP v3.0.329 от 26.10.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  19.10.2011 А.Б.Хах
  ----------------------------------------------------------
 P* Код задачи 22732. Часть функциональности модуля SVCLUtils, касающаяся работы
    с компонентами (загрузка/сохранение и т.п.), вынесена в Common/ComponentUtils.
    Добавлен: ComponentUtils.
    Изменены: SVCLUtils, DSPCommon.dpk.
    19.10.2011 А.Б.Хах
                                   * * *

  - Код задачи 22846. Не печатались мемо-поля таблиц в отчетах rwf при
    работе с Oracle.
    Изменены: OraRwfExec.
    25.10.2011 И.В.Ковалев
  * Код задачи 22797. Подключена новая карточка проектной конфигурации.
    Изменены: frame_fconfig.xml.
    25.10.2011 Д.И.Кобрусев
 P* Код задачи 22732. Перечень регистрируемых классов отсортирован.
    Изменены: SVCLCommon_Registration.
    18.10.2011 А.Б.Хах
 P* Код задачи 22732. Удалены лишние модули в секциях uses.
    Изменены: DBGridSearch, FormUtils.
    18.10.2011 А.Б.Хах
  - Код задачи 22864. Неверно задавался алиас для таблицы при слиянии с одной и
    той же таблице более 2х раз.
    Изменены: DBGridLayout.
    17.10.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.328 от 11.10.2011
--------------------------

  - Код задачи: 22661. В Легенде под Оракл в карточках объектов учета при
    входе в раздел 'Примечание' не показывалось поле для ввода текста.
    Изменены: Sections.
    10.10.2011 М.А.Степанов
  * Код задачи: 22697. Поддержка Oracle: Добавлена возможность при
    добавлении записи расчитывать уникальный ключ с использованием
    последовательностей: св-во tSonarDbOracle_Connection.AutoIncPrimaryKey,
    имя последовательности должно состоять из 'SEQ_'+ имя таблицы.
    Изменены: OraConsts, OraDBObjects, SDBOracle.
    10.10.2011 М.А.Степанов
  - Код задачи 22662. В "Легенде" в карточке события нельзя было ввести
    состав группы, возникала ошибка: "[AnyDAC][Phys][Ora] ORA-00911:
    неверный символ."
    P: Предустановка поля "Отвеств.". В слитых DataSet-ах предустановка
       производилась и подлитых полей.
    Изменены: SVCLCommon_cnstr.
    10.10.2011 Д.И.Кобрусев
  * Код задачи 22732. Модуль ReqConv обработан DelFor'ом.
    Изменены: ReqConv.
    07.10.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.327 от 07.10.2011
--------------------------

  - Код задачи 22626. Исправлены ошибки при сохранении описателя: неверно
    сохранялись названия полей, коллекции подсхем и полей схемы были
    отсортированы по имени в ansi кодировке, а не в oem.
    Изменены: CommonDBUtils, HTDescr, HTDescr_LoadStore.
    07.10.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.326 от 07.10.2011
--------------------------

 P* Текст в заголовке окна прерывания выполнения
    запроса изменен на "Подождите, выполняется запрос",
    ранее был "Please wait, application is busy".
    Изменены: uADStanResStrs.
    07.10.2011 И.В.Ковалев
                                 --- * ---

DSP v3.0.325 от 06.10.2011
--------------------------

  - Код задачи 20160. При видимом окне визуализатора процесса другие окна не
    блокировались, что приводило к спецэффектам прорисовки листалки и давало
    возможность, к примеру, закрыть листалку и датасет, по которому в данный
    момент идёт поиск.
    03.10.2011 А.В.Соса
 P- Код задачи 22727. По событию ev_DataSet_EnableControls напрямую
    вызывался метод ResetForActiveRecord. Исправлено: теперь рассылается
    событие ev_RecordController_PrepareRecord (обработчик по умолчанию
    которого вызывает этот метод).
    Проявление: Под Ораклом при переходе в карточке к другой записи, поля,
    запрещённые для изменения обработчиками, снова разрешались (запрет
    терялся).
    Изменены: RecordControl.
    30.09.2011 Д.И.Кобрусев
  * Код задачи 21136. Функции EditOemFile/EditAnsiFile при открытии файла
    учитывают опцию конфигурации "Показывать спец. символы".
    Изменены: form_TextEditor.xml, texteditor, ComCtrls.
    Добавлены: RTFExport.
    30.09.2011 С.А.Барсуков
                                 --- * ---

DSP v3.0.324 от 29.09.2011
--------------------------

  * Код задачи 22670. Поддержана установка sql-параметров из параметров запроса
    сонар. Если параметр запроса сонар начинается с ":", то должен существовать
    sql-параметр с таким же именем.
    Изменены: sdboracle.
    28.09.2011 А.Б.Хах
 P* Адаптированы изменения из DSP-2.6.
    Изменены: ImgUtils, printers2, Renders, WPPARSER, zlib.
    27.09.2011 С.А.Барсуков
                                 --- * ---

DSP v3.0.323 от 27.09.2011
--------------------------

  - Код задачи 22680, 22679. Устранены ошибки допущенные при переводе
    FieldViewer'а на интерфейсы DBSchemaIntf.
    Изменены: ReqFieldViewer.
    26.09.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.322 от 23.09.2011
--------------------------

  - Код задачи 22672. Устранены ошибки допущенные при переводе FieldViewer'а на
    интерфейсы DBSchemaIntf.
    Изменены: FieldViewer, ReqFieldViewer.
    23.09.2011 А.Б.Хах
  - Код задачи 21954. Редактировать параметры находясь во вложенном запросе
    теперь нельзя.
    Изменены: ReqDesigner.
    22.09.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.321 от 21.09.2011
--------------------------

  * Код задачи 22658. Поддержана работа с регулярными выражении при
    выполнении запросов к таблицам Oracle.
    Изменены: reqconv.
    21.09.2011 И.В.Ковалев
  * Код задачи 22648. Если поле выбора из справочника скрыто, оно не
    препятствует сохранению записи, если значение ключа не найдено в
    справочнике.
    Проявлялось: В "Легенде" в карточке вещи. Нельзя было сохранить
    запись, в которой единица измерения не соответствует ограничению для
    антиквариата, даже если вещь - не антиквариат.
    Изменены: DBObjectChoice, SVCLUtils.
    19.09.2011 Д.И.Кобрусев
  - Код задачи 22640. При закрытии редактора текстовых бинарных данных, когда
    для него открыто окно с параметрами поиска по тексту, это окно не
    уничтожалось.
    19.09.2011 Соса А.В.
 P+ Код задачи 22646. Валидация записи. Если валидация поля прекращена с
    пустым сообщением, диалог с сообщением не выдаётся.
    Изменены: FieldValidator.
    16.09.2011 Д.И.Кобрусев
 P- Код задачи 22645. Функция SelectControl. Если компонент, на который
    пытаются установить фокус, был на невидимой панели, а она - на
    вкладке, происходила ошибка: "Cannot focus a disabled or invisible
    window".
    Изменены: form_DataChange, SVCLUtils.
    16.09.2011 Д.И.Кобрусев
  * Код задачи 22605. Теперь текущая схема БД меняется на заданную в соединении
    и теперь больше нет нужды в явном указании имени схемы при обращении к её
    объектам.
    Изменены: sdboracle.
    14.09.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.320 от 13.09.2011
--------------------------

  - Код задачи 22624. Описатель поля получался по сквозному номеру, что неверно
    для подлитых таблиц. Теперь описатель поля получается по имени поля и таблицы.
    Изменены: SdbVcl.
    12.09.2011 А.Б.Хах
  - Код задачи 22618. Если TpSchemaSpecField создавалось и настраивалось (а не
    загружалось посредством Load), то свойство BytesForCode/BytesForIdentifier
    вообще не устанавливалось. Теперь эти свойства устанавливается при установке
    FieldSize.
    Изменены: HtDescr.
    09.09.2011 А.Б.Хах
  - Код задачи 22615. При отмене изменений больше не производится обратная
    синхронизация. А добавление осуществляется не в пустой набор данных (объект),
    а содержащий текущую запись, т.е. при отмене изменений остается текущая
    запись.
    Изменены: SDBVCLUtils.
    09.09.2011 А.Б.Хах
  - Код задачи 22613. Пустая строка в качестве даты/времени приводила к ошибке.
    Теперь она переводится в нулевую дату/время.
    Изменены: NativeStrConversion, CompoundError.
    09.09.2011 А.Б.Хах
 P+ Код задачи 22611. Добавлены вариант функции GetSelectStr, принимающий
    поле, и процедура SetAsString.
    Изменены: SDBUtils.
    08.09.2011 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.319 от 08.09.2011
--------------------------

 P* Код задачи 22553. Удалены явные зависимости от HtDescr в FieldViewer'е и
    в зависимых от него модулях.
    Изменены: DBDItems, DBSchemaIntf, htdescr, SonarDB_cnstr, DBGridLayout,
      FieldViewer, ReqFieldViewer, SDBGrid, SVCLCommon_cnstr0, ReportDesigner,
      ReportVisualiser, SDBVCL.
    07.09.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.318 от 07.09.2011
--------------------------

  * Код задачи: 22500. Окно выбора представления(Окна\Загрузить как
    представление): Изменение выборки таблиц при инкрементном поиске не
    приводило к обновлению списка представлений.
    Изменены: Presentation.
    05.09.2011 М.А.Степанов
  - Код задачи 22581. Контроль дублирования теперь ведется на уровне SVCLCommon
    для любых наборов данных, в т.ч. Oracle'ых View.
    Изменены: CompoundError, SonarDbIntf, SDBVCL, SVCLHT_cnstr0, sdboracle,
      SVCLOracle_cnstr.
    02.09.2011 А.Б.Хах
  - Код задачи 22504. Устранено зацикливание авторазмера колонок путем
    уменьшения допустимой ширины колонок на эмпирически установленную величину.
    Природу этой величины установить пока не удалось.
    Изменены: SDBGrid.
    02.09.2011 А.Б.Хах
 P- sdb_get_vcl_field_data: если получить размер буфера для значения поля
    не удалось, то никакого исключения не взводилось.
    Изменены: SDBDataSets.
    01.09.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.317 от 31.08.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  30.08.2011 А.Б.Хах
  ----------------------------------------------------------
  > Код задачи 22553.
   P* InstallCnfDef перенесен в CnfHnd.
   P* attr_IdleRefresh перенесен в модуль SVCLCommonConsts.
   P* nmFontSize и константы cAutoXXX перенесены из FormResizer в SVCLCommonConsts.
   P* AutoCreateSections перенесен в SectionUtils.

    Добавлены: CnfHnd, SectionUtils, SVCLCommonConsts.
    Изменены: CnfDef, DBInputCustomBLOB, DBInputMethods, enterrecord,
      form_DataChange, FormResizer, FormUtils, MasterDetail, SectionList,
      Sections, TableBrowser, SVCLHT_cnstr.
    30.08.2011 А.Б.Хах
                                   * * *
                                 --- * ---

DSP v3.0.316 от 30.08.2011
--------------------------

 P+ Код задачи 22582. Добавлены варианты функций LoadRequestFromRes без
    имени таблицы.
    Изменены: SDBUtils.
    26.08.2011 Д.И.Кобрусев
  * Код задачи 22547. Поддержано добавление и изменение записей в объектном View.
    Изменены: OraDBObjects, OraDBObjectsGen.
    26.08.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.315 от 26.08.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  23.08.2011 А.Б.Хах
  ----------------------------------------------------------
 P* Код задачи 22553. Удалена функция FindFieldDescr. Вместо неё следует
    использовать TryExtractFieldSpec.
    Изменены: AuthCommon, DBInputMethods, FormUtils, MultiChoice, SDBGrid,
      SonarDbIntf, SVCLCommon_cnstr0, TableBrowser, DBRecordBrowser.
    23.08.2011 А.Б.Хах

    Адаптация: Там где вызывалась FindFieldDescr следует вызывать TryExtractFieldSpec.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  22.08.2011 А.Б.Хах
  ----------------------------------------------------------
  > Код задачи 22553.
    * GetXXXByName - теперь отдельные функции, взводящие
      исключение, если искомый объект не найден. Функции GetXXXByName в
      интерфейсах переименованы в TryGetXXXByName и возвращают False, если
      искомый объект не найден.
    + Добавлены функция IsTableInSchema, IsFieldInTable, IsDomainInSchema,
      проверяющие есть ли таблица/поле/домен с указанным именем в
      схеме/таблице/схеме.
    Изменены: CommonDBUtils, DBDItems, DBSchemaIntf, htdescr, KeysWithID,
      AccessCategoryUtils, CompoundError, DBObjectPartSpecs, DBObjectSpecs,
      MemoryDataSource, SDataSetLayout, SDBUtils, TechDataFrame, SdbVcl,
      SVCLHT_cnstr0, OraDBObjects, OraDBObjectsGen, SVCLOracle_cnstr, OraLogin.
    22.08.2011 А.Б.Хах

    Адаптация: Там где вызывался GetXXXByName вызывать метод интерфейса
    TryGetXXXByName, функцию GetXXXByName или IsXXXInSchema/IsFieldInTable в
    зависимости от того, что требуется в каждом конкретном случае.
                                   * * *

  + Код задачи 21643. В генераторе запросов добавлены пункты локального меню
    "Переместить вверх" и "Переместить вниз".
    Изменены: frmReqTree.xml.
    25.08.2011 А.В.Соса
  * Код задачи 22553. Поддержано извлечение описателя поля из объекта БД.
    Изменены: SVCLCommon_cnstr0, DBObjectSpecs.
    25.08.2011 А.Б.Хах
 P* Код задачи 22553. Там где это возможно, устранено прямое использование
    HtDescr, за исключением FieldViewer и DBGridLayout.
    Изменены: FormUtils, GridCodeView, HandleRowCommands, MultiChoice,
      SDBDataSets, SelectShowHandler, TableBrowser, TableBrowserForms,
      OraCodeView, OraMultiSel, OraDeskMenu.
    24.08.2011 А.Б.Хах
  - Код задачи 22536. Не было реакции на выбор типа поля отчета rwf с
    помощью стрелки вниз (реакция была только на выбор из выпадающего
    списка), как следствие ошибка "Несанкционированный доступ ...".
    Изменены: rwfdesigner.
    23.08.2011 И.В.Ковалев
  - Код задачи 22555. В новом санкционировании при входе пользователя
    происходила ошибка: "[AnyDAC][Phys][Ora]-306. Command text must be not
    empty."
    P: TOraDataSet перед открытием безусловно очищал SQL.
    Изменены: sdboracle.
    22.08.2011 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.314 от 16.08.2011
--------------------------

  - Код задачи 22537. Ошибка при реализации 22370: Не производилась настройка
    подлитых полей.
    Изменены: SDBVCL.
    16.08.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.313 от 15.08.2011
--------------------------

  * Код задачи 18035. При вводе относительного параметра даты в редакторе
    запроса значение даты вводится стандартным полем ввода даты.
    Изменены: RelLimitForm, ReqFormH, frmRelLimit.xml, reqlimit.
    15.08.2011 И.В.Ковалев
                                 --- * ---

DSP v3.0.312 от 15.08.2011
--------------------------

  - Код задачи 22235. Обязательными считаются только поля, обязательные по HST.
    Незаполненные поля, являющиеся вводимыми и обязательными, но не
    редактируемыми, доступны для редактирования.
    Изменены: SDBDataSets, SVCLCommon_cnstr0.
    12.08.2011 А.В.Соса
 P+ Код задачи 22520. Добавлено событие app_PrepareRecordDouble.
    Изменены: SDBVCLUtils.
    12.08.2011 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.311 от 12.08.2011
--------------------------

  - Исправлена ошибка допущенная в задаче 22370 при переносе блока with.
    Изменены: SDBDataSets.
    11.08.2011 А.Б.Хах
 P* Модули s_index, SELKEYIN и transman отформатированы Delfor'ом.
    Изменены: s_index, SELKEYIN, transman.
    11.08.2011А.Б.Хах
 P* Модуль intdata4 отформатирован Delfor'ом.
    Изменены: intdata4.
    11.08.2011 А.Б.Хах
  + Код задачи 22511. Модуль CheckNetWorkDir.pas - запрет запуска программы,
    если рабочий каталог (каталог запуска) расположен на сетевом томе -
    перенесён из DSP 2.6 и подключён в SVCLHT_cnstr0.
    Добавлены: CheckNetWorkDir.
    Изменены: SVCLHT_cnstr0, DSPCommon.dpk.
    11.08.2011 А.В.Соса
  - Код задачи 22417. Если главное окно развёрнуто на весь экран и используется
    классическая тема оформления, при масштабировании оно сдвигалось вверх, так
    что верхняя половина заголовка была не видна.
    Изменены: FormResizer.
    11.08.2011 А.В.Соса
  - Код задачи 22489. Если фактическая ширина выводимого значения числового поля в
    листалке больше назначенной ширины, то при редактировании по F2 под полем
    редактирования отображалось значение поля, причём без учёта выравнивания.
    Изменены: SDBGrid.
    11.08.2011 А.В.Соса
  - Код задачи 22370. Исправлена отработка флагов "незначащие нули",
    "визуализировать ноль", "форматировать".
    Изменены: SDBOracle, SDBVCL, SDBDataSets.
    11.08.2011 А.Б.Хах
  * Код задачи 21856. Отключено логирование для ECompoundError. Отключена
    запись в лог исключения, возникающего при вводе некорректного значения даты.
    Изменены: CompoundError, DBInputMethods.
    09.08.2011 А.В.Соса
                                 --- * ---

DSP v3.0.310 от 09.08.2011
--------------------------

  > Код задачи 22492.
    * Из ControlResizeBugFix перенесены изменения в TWinControl, уменьшающие
      "мерцание" контролов при изменении размеров окна. Из Delphi XE перенесены
      изменения в отрисовке TTabSheet, предназначенные для уменьшения мерцания
      содержимого вкладок.
    * При установке координат контрола в TCaptionedControl.Arrange вызов
      DisableAlign/EnableAlign мог приводить к замедлению при масштабировании.
      Убрано.
    - В методе TDBEditFrame.Arrange лишний раз происходила установка ширины
      контрола, которая не совпадала с вычисляемымой в inherited. Из-за чего
      обязательно выполнялся перерасчёт размеров контролов (AlignControls), что
      приводило к заметному замедлению при масштабировании.
    - Если контрол при применении выравнивания корректировал свои размеры
      (например, используется AutoSize или док меняет свою ширину), то соседние
      контролы не учитывали это изменение при выравнивании. Исправлено.
    - При применении выравнивания попытка установить размер меньший, чем
      ограничения (Constraints) контролу с alClient приводила к тому, что
      следующие контролы того же Parent'а с alClient, alCustom и alNone
      помещались в прямоугольник с ещё меньшими размерами. Проявлялось в
      тех.информации, если нет сдизайнированной карточки.
    * Уменьшены задержки при применении Align'ов (существенные при
      масштабировании).
    Изменены: Controls, ComCtrls, TB2Dock, SControls, DBEditFrame.
    09.08.2011 А.В.Соса
 P+ Код задачи 22480. Добавлено событие ev_DataSet_GetDeletionQuestionText.
    Изменены: SDBVCLUtils.
    08.08.2011 Д.И.Кобрусев
  * Код задачи 22348. Фоновые процессы не работают для невидимых компонентов,
    в т.ч. в дизайнере, что приводило к ошибкам. Теперь в дизайнере фоновые
    процессы работают вне зависимости от видимости компонентов.
    Изменены: IdleVCL.
    08.08.2011 А.Б.Хах
 P* Подключен модуль WaitProc: ожидание открытия таблицы и старта
    транзакции.
    Изменены: SVCLHT_cnstr.
    05.08.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.309 от 05.08.2011
--------------------------

 P* Код задачи 21556. SetSizeAndPos вынесена в public.
    Изменены: FormResizer.
    05.08.2011 А.Б.Хах
  - Код задачи 22475. При попытке удаления из листалки с пустой выборкой
    происходила ошибка: "DataSet: Операция не применима к закрытому набору
    данных".
    Изменены: TableBrowser.
    04.08.2011 Д.И.Коюрусев
 P- Ошибка "Не удалось извлечь соединение с БД" при показе опций
    приложения в ситуации, когда отсутствует соединение с базой данных.
    Изменены: SVCLCommon_cnstr.
    02.08.2011 И.В.Ковалев
                                 --- * ---

DSP v3.0.308 от 02.08.2011
--------------------------

 P* Код задачи: 21861. Исключение EHTDBObjectTablePart_CantFindObjectPart:
    добавлено св-во PartTableName: имя таблицы запись которой не
    обнаружена.
    Изменены: DBObjects.
    01.08.2011 М.А.Степанов
  * Код задачи: 22103. Редактор запросов, список полей: Добавлена пометка
    таблиц с полями связи являющимися главными или уникальными ключами.
    Изменены: ReqFieldViewer, frame_SelectFields.xml, ReqImages.rc.
    Добавлены: imGreenLetterTWithM.bmp, imGreenLetterTWithU.bmp.
    01.08.2011 М.А.Степанов
  - Код задачи: 22428. В листалке кодификаторе при попытке перейти на
    предка которого нет в таблице, листалка становилась пустой.
    Изменены: HtCodeView.
    29.07.2011 М.А.Степанов
 P+ Код задачи 22422. Добавлен ещё один вариант функции GetFieldByKey.
    Изменены: SDBUtils.
    29.07.2011 Д.И.Кобрусев
  * Код задачи: 21875. При потере фокуса окном текстовых данных,
    поле не проверяется на заполненость.
    Изменены: TextBox, DBEditFrame.
    29.07.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.307 от 28.07.2011
--------------------------

  - Код задачи: 22299. Редактор запросов, дерево ограничений: При нажатии
    Ctrl - (возврат к предыдущей ширине колонки), происходила некорректная
    прорисовка узлов.
    P: Исправлено: ширина колонки может быть только оптимальной.
    Изменены: VSTLink.
    28.07.2011 М.А.Степанов
  - Код задачи 22416. В TIdleDetailRequeryHandler Requery выполнялся на закрытый
    набор данных.
    Изменены: MasterDetailHandlers.
    28.07.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.306 от 28.07.2011
--------------------------

 P- Код задачи 22416. Теперь перед Requery выполняется CheckBrowseMode, которых
    раньше выполнялся при установке RecNo.
    Изменены: SDataSet.
    28.07.2011 А.Б.Хах
  * Код задачи: 22396. В листалке кодификаторе, при переходе на предка
    записи (BackSpace), если этот предок в текущей выборке отсутствует, то
    обновление листалки и переход на нужную запись происходили не сразу а
    при фоновом обновлении, также похожая ситуация могла произойти при
    переходе на другую запись в диалоге нарушения уникальности составного ключа.
    P: IDataSetRecID.AddRecByRecID: добавлен параметр
       ASetRecNo: если True, то текущей записью становится добавленая в
       выборку.
    Изменены: AuthHandlers, CompoundError, SDBVCLUtils, SonarDbIntf,
      DBObjects, HtCodeView, SdbVcl, SDBoracle.
    27.07.2011 М.А.Степанов
  * Код задачи 22408. Нажатие Del в поле ввода даты всегда устанавливало пустую
    дату. Теперь Del и BackSpace удаляют по одной цифре либо очищают выделение.
    Значение "БЕССРОЧНО" удаляется полностью.
    Изменены: DBInputMethods.
    27.07.2011 А.В.Соса
  - Код задачи: 22401. Если открыть карточку на добавление, пойти в
    раздел, добавить там записи, и нажать в карточке 'Cохранить', то
    обновление подчиненных листалок и окон текстовых данных не
    происходило. Исправлено: Добавлено фоновое обновление связанных
    листалок при любом закрытии карточки.
    Изменены: form_DataChange, SVCLFormH.
    26.07.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.305 от 25.07.2011
--------------------------

 P* Код задачи 22391. Вставка основного фрейма в форму выделена в
    отдельную процедуру.
    Изменены: form_DataChange, SVCLUtils.
    25.07.2011 Д.И.Кобрусев
 P* Код задачи 22387. TRecordController. Проверка (валидация) записи
    выделена в отдельный метод - ValidateRecord.
    Изменены: RecordControl.
    22.07.2011 Д.И.Кобрусев
 P> Код задачи 22385. Синхронизация DataSet-ов:
    * DataSet-ы, находящиеся в режиме добавления, не обновляются.
    * Переименован класс TRecordSyncronizer -> TRecordSynchronizer.
    Изменены: RecordSync, SdbVcl.
    22.07.2011 Д.И.Кобрусев
 P+ Код задачи 22384. Контроль составного ключа. Добавлена возможность при
    обнаружении дубликатов просто выдавать сообщение, без списка
    дубликатов (флаг TCompoundKey.ShowDuplicatesList).
    Изменены: CompoundError.
    22.07.2011 Д.И.Кобрусев
  - Код задачи: 22361. Листалки кодификаторов: При
    свертывании/развертывании узлов изменения отображались не сразу.
    Изменены: SDBVCL, HtCodeView.
    22.07.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.304 от 21.07.2011
--------------------------

  - Код задачи: 22361. Удаление записи из выборки, инкрементный поиск,
    поиск по мемо-полям: После выполнения операции листалка обновлялась не
    сразу, а при фоновом обновлении.
    Изменены: SDataSet, DBMemoSearch, GridIncrSearch, SdbVcl.
    21.07.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.303 от 18.07.2011
--------------------------

 P* Код задачи: 22349. Из CrimeCommon вынесено добавление поля опций
    МаксЗапЛис (максимальное кол-во записей в листалке, для проектов
    на Oracle).
    Изменены: svcloracle.dpk.
    Добавлены: OraConfig, OraConsts.
    18.07.2011 М.А.Степанов
  - Код задачи: 21660. В редакторе запросов невозможно было выбрать
    значение для поля 'Ответств.'. Исправлено: Удален код явно запрещающий
    выход в листалку USERS в полях выбора, вместо этого недоступность
    листалки USERS реализована через права пользователя. При этом в старом
    санкционировании просмотр таблицы USERS запрещен для неадминистратора.
    Изменены: DBInputMethods, SVCLCommon_cnstr, OldAuthHyTech.
    15.07.2011 М.А.Степанов
 P> Код задачи 22325:
    * переименованы метод TResizeAbstract.SetSize -> SetSizeAndPos и
      событие ev_SetSize -> ev_SetSizeAndPos;
    + добавлен метод TResizeAbstract.SetSize.
    Изменены: FormResizer.
    15.07.2011 Д.И.Кобрусев
  - Код задачи 22010. Исключение "Индекс списка вне границ..." при
    сууммировании по подлитому полю в листалке таблицы Hytech.
    Изменены: SDBVCL, JOINACC.
    14.07.2011 И.В.Ковалев
  - Код задачи 21926. При изменении размеров формы не происходило применение
    новых размеров для контролов, вложенных "глубже" определённого уровня
    (15 для Windows 7 x64).
    Изменены: Controls, TB2Dock.
    Добавлены: TB2Dock.pas.orig.
    14.06.2011 А.В.Соса
  * Код задачи: 20621. Запись в SEANS при закрытии приложения: при
    возникновении исключений закрытие приложения не прерывается, для того
    чтобы при разрыве сети из программы можно было выйти.
    Изменены: StdMainForm.
    13.07.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.302 от 13.07.2011
--------------------------

  * Код задачи 20526. Добавлены диалоги поиска и замены (с историей поиска) для
    использования вместо стандартных диалогов в редакторе текстовых бинарных
    данных.
  - Код задачи 21897. При закрытии диалога поиска в редакторе текстовых
    бинарных данных, если размер шрифта был изменён, фокус передавался другому
    приложению.
    Изменены: DBInputCustomBLOB, RichViewActions.
    Добавлены: form_ReplaceDialog.xml, RichViewActions.pas.orig.
    13.07.2011 А.В.Соса
  - Код задачи 22319. Исправлено масштабирование карточки с сохранённым
    представлением.
    Изменены: FormResizer, EditFormLayout.
    17.06.2011 В.В.Тыщенко
  > Код задачи: 21941.
    - В текстовых окнах фоновое обновление выборки выполнялось как
      повторное выполнение запроса (Requery), заменено на такое же
      обновление как в листалке (SafeRefresh).
    - При возникновении исключения при выполнении фонового процесса
      (например фоновое обновление листалки) следующее выполнение
      данного процесса происходило не через какое то время, а
      сразу же, и если исключения в процессе происходили всегда, то
      из программы фактически невозможно было даже выйти.
    Изменены: IdleMan, DockHelper, TableBrowser, TextBox.
    12.07.2011 М.А.Степанов
 P* Версия Fastreport обновлена до 4.11.4
    Изменены: модули Fastreport, SImageList.
    Удалены: frxExportPdfSecDlg.dfm, frxExportPdfSecDlg.
    Переименованы:  pngimage -> frxpngimage, pnglang -> frxpnglang.
    12.07.2011 И.В.Ковалев
 P* Часть функциональности перенесена в интерфейсную часть.
    Изменены: RwfFactory.
    12.07.2011 И.В.Ковалев
 P* tFDCollection.InsertTechFields сделан виртуальным.
    Изменены: RWDATA.
    12.07.2011 И.В.Ковалев
                                 --- * ---

DSP v3.0.301 от 11.07.2011
--------------------------

  - Код задачи 22304. Без установки RecNo неправильно отрабатывал Resync. Теперь
    установка позиции набора данных производится в TSDataSet.Requery и поэтому
    нет нужды в явном позиционировании после Requery, но перечитывание записей
    (Resync) нужно выполнять в любом случае.
    Изменены: SDBVCL, SDataSet.
    11.07.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.300 от 07.07.2011
--------------------------

  - Код задачи 22304. После обновления выборки, в ряде случаев, осуществлялось
    позиционирование на первую запись, которое раньше приводило к перечитыванию
    записей. Т.к. теперь перечитывание записей осуществляется только когда
    изменилась позиция, то в случае, когда позиция в наборе данных была
    первой и произведено обновление выборки, перечитывание записей не
    происходило - исправлено.
    Изменены: SDBVCL.
    07.07.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.299 от 07.07.2011
--------------------------

 P> Код задачи 22283. Поддержка составных ключей:
    * Расчёт CRC и занесение его в поле вынесены из метода
      TDictionaryCache.CheckKeyDuplicatesCRC.
    + Добавлено событие ev_CompoundControl_CheckKeyDuplicatesCRC.
    + Добавлен вариант метода TDBCRCCounter.Count, считающий по буферу.
    Изменены: CompoundError.
    06.07.2011 Д.И.Кобрусев
  - Код задачи: 21901. Если открыть листалку, начать инкрементный поиск,
    и находясь в окне инкрементного поиска, открыть локальное меню и в нем
    открыть подменю 'Формы', то после этого при неактивном инкрементном
    поиске в подменю 'Формы' элементы были недоступны. Если же до начала
    инкрементного поиска подменю 'Формы' уже открывалось, то происходило
    наоборот: в инкрементном поиске пункты недоступны, вне поиска
    доступны.
    P: Исправлено: Вместо св-ва Tag для хранения физ.номеров в пунктах меню,
       используются атрибуты.
    Изменены: DeskMenu.
    06.07.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.298 от 06.07.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  05.07.2011 А.Б.Хах
  ----------------------------------------------------------
 P+ Код задачи 22261. Добавлена функция Assertion.
    Добавлены: Lib_cnstr.
    Изменены: SonarSys, NativeStrConversion, Lib.dpk.
    05.07.2011 А.Б.Хах

    Адаптация: Для корректной работы функции Assertion (а именно получение имени
    модуля и номера строки, где произошло нарушение условия Assertion'а) в
    проект следует подключить Lib_cnstr.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  05.07.2011 А.Б.Хах
  ----------------------------------------------------------
  - Код задачи 22197. Для составных ключей из SLV_CLN не устанавливался
    SelectionTableName. Теперь SelectionTableName сделан обязательным параметром
    конструктора ключа.
    Изменены: CompoundError, SVCLHT_cnstr0.
    05.07.2011 А.Б.Хах

    Адаптация: Установку свойства TCompoundKey.SelectionTableName следует убрать,
    а устанавливаемое значение передать в конструктор последним параметром.
                                   * * *

 P* Отключено построение экземпляра TADPhysOraclDriverLink для соединения
    Oracle.
    Изменены: SDBOracle.
    06.07.2011 И.В.Ковалев
 P* Версия Anydac обновлена до 5.0.1.1835.
    Добавлена поддержка работы с sqlite.
    Изменены: SDBOracle, модули anydac.
    Добавлены: sqlite3.obj, uadPhysSQLite, uadPhysSQLiteCli,
    uadPhysSQLiteMeta, uadPhysSQLiteWrapper, uAdPhysStatic,
    uADStanCipher.
    05.07.2011 И.В.Ковалев
 P* Код задачи 21839. При чтении параметров InputController'а из фабрики
    применяются блокировки перестроения компонента ввода.
    Изменены: DBInputMethods, DBEditFrame.
    04.07.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.297 от 01.07.2011
--------------------------

 P- Код задачи: 21660. Карточка редактирования граничного значения в
    редакторе запросов: Если в открываемой карточке все поля ввода оказывались
    невидимыми, то возникала ошибка 'Cannot focus..'.
    Изменены: EnterValue.
    01.07.2011 М.А.Степанов
  - Код задачи: 21660. При попытке отредактировать граничное значение в
    редакторе запросов при работе под неадминистратором выдавалось сообщение
    'Нет прав..'.
    P: Обработчик TDSHCheckRowCommandAccess (проверка прав пользователя
       при операциях изменения данных) строился для TSonarDB_Record.
    Изменены: SVCLCommon_Cnstr.
    01.07.2011 М.А.Степанов
  - Код задачи 22088. При сохранении листалки с закрытым набором данных
    возникало исключение EAV.
    Изменены: SDBGrid.
    01.07.2011 А.Б.Хах
  - Код задачи 22211. Отменены изменения задачи 21458. Для задачи 21458: ускорен
    поиск по вычислимым полям: теперь при сканировании набора данных для
    перехода по записям не используется RecNo. Присваивание RecNo приводит к
    перечитыванию всех записей в буферах набора данных.
    Изменены: SDataSet, DBGridSearch.
    30.06.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.296 от 30.06.2011
--------------------------

  - Код задачи 22255. При решении задачи 22180 был забыт вызов inherited, что
    приводило к тому, что текст в полях ввода пропадал после покидания поля.
    Изменены: SControls.
    30.06.2011 А.Б.Хах
  * Код задачи 22013. Для пустого набора данных в номере записи и количестве
    записей показываются нули.
    Изменены: form_DataChange, SDataSet.
    30.06.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.295 от 29.06.2011
--------------------------

  - Код задачи 21750. При щелчке мышью по знаку "+" кодификатора на
    предпоследней строке листалки разворачивался другой узел.
    Изменены: GridCodeView.
    29.06.2011 И.В.Ковалев
  * Код задачи 22193. Изменён размер шрифта по умолчанию в окне полной информации.
    Изменены: frxClass.
    28.06.2011 В.В.Тыщенко
  - Код задачи 19632. В диалоге "Список полей" не работала горячие клавиши
    F4 - "Изменить", Del - "Удалить".
    Изменены: EditReqH, frmFieldsPair.xml.
    28.06.2011 А.В.Соса
  - Код задачи 22255. При решении задачи 22180 был забыт вызов inherited, что
    приводило к тому, что текст в полях ввода пропадал после покидания поля.
    Изменены: SControls.
    30.06.2011 А.Б.Хах
  * Код задачи 22180. Для поля кодификатора: если не установлен флаг "нулевое
    значение", то нулевое значение поля не показывается в редакторе.
    Изменены: DBDItems, DBSchemaIntf, htdescr, SControls.
    28.06.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.294 от 27.06.2011
--------------------------

  - Код задачи 22097. В карточке события возникало исключение о том, что набор
    данных не поддерживает IDataSetWithConnection.
    Изменены: SVCLCommon_cnstr.
    27.06.2011 А.Б.Хах
  - Код задачи 22201. Исправлены размеры DBObjectChoice`ов в автосоздаваемой карточке.
    Изменены: DBEditFrame, DBObjectChoice.
    24.06.2011 В.В.Тыщенко
  > Код задачи 22097.
   P- Исправлена ошибка в условии создания фабрики TDBObjectChoice'а.
   P- Не извлекался ITableSpec из TMemoryDataSource.
    Изменены: DBInputMethods, SVCLCommon_cnstr0.
    24.06.2011 А.Б.Хах
  - Код задачи 22191. При редактировании имени одного из параметров запроса
    (кроме последнего параметра) имя оставалось прежним, а последний параметр
    получал свойства того, имя которого редактировалось.
    Изменены: IntRecDesigner.
    24.06.2011 А.В.Соса
                                 --- * ---

DSP v3.0.293 от 24.06.2011
--------------------------

  * Код задачи 22178. Теперь по умолчанию обновление связанных наборов данных
    производится только если они не находятся в состоянии редактирования.
    Изменены: MasterDetailHandlers, TextBox.
    23.06.2011 А.Б.Хах
  - Код задачи 21137. Не проверялось заполнение обязательных параметров при
    исполнении отчетов, запросов.
    Изменены: enterrecord.
    22.06.2011 И.В.Ковалев
  * Код задачи 22174. Поля, входящие в связи объектов БД, не дублируются
    (задача 21812).
    Изменены: SVCLCommon_cnstr, SDBVCLUtils.
    22.06.2011 А.Б.Хах
 B> Код задачи 22171. Упаковка бинарных данных со сжатием фотографий:
    - Не работала на криптованной БД.
    - Не менялось поле "Размер".
    - Не менялись дата и время изменения.
    Изменены: BinData, PhotoCompress, S_Index.
    23.06.2011 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.292 от 20.06.2011
--------------------------

  - Код задачи 22150. Несанкционированный доступ при попытке показать в
    окне полной информации поле из связанной таблицы.
    Изменены: ReportVisualiser.
    20.06.2011 И.В.Ковалев
 P- Сообщение "...: Нет данных для визуализатора." при попытке обновления
    окна полной информации в случае, когда ведущая листалка еще не
    показывает данные.
    Изменены: DBRecordBrowser.
    20.06.2011 И.В.Ковалев
  - Код задачи 21766. В дизайнере отчетов rwf после редактирования
    поля, от которого зависят другие поля (поля вида "часть значения"),
    зависимые поля удалялись из отчета.
    Изменены: rwfdesigner.
    20.06.2011 И.В.Ковалев
  - Код задачи 21748. В дизайнере отчетов rwf неверный показ полей отчета
    после сдвига поля отчета влево.
    Изменены: rwfdesigner.
    20.06.2011 И.В.Ковалев
                                 --- * ---

DSP v3.0.291 от 17.06.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  09.06.2011 И.В.Ковалев
  ----------------------------------------------------------

 P* Строковые константы модуля DbReg перенесены в класс DBReg_NameSpace.
    Изменены: DBReg, DBCache.

  Адаптация: Если не будет компилироваться nmId,
    nmParentId, nmName, nmTypeCode, добавить префикс DBReg_NameSpace.
    Например,  nmParentId -> DBReg_NameSpace.nmParentId
                                   * * *

  - Код задачи 22078. Добавлено масштабирование полной информации.
    Изменены: DBRecordBrowser.
    17.06.2011 В.В.Тыщенко
  - Код задачи 21965. Сообщение "Поле с именем ... уже существует" при
    изменении параметра запроса, например, установке ему флага
    "Обязательный" и при этом неизменности имени параметра.
    Изменены: IntRecDesigner.
    16.06.2011 И.В.Ковалев
                                   * * *

BP+ Код задачи 22161. Добавлена возможность принудительной упаковки
    бинарных данных. Принудительная упаковка означает, что процедура
    упаковки будет запущена для всех томов, вне зависимости от того,
    упакованы или нет.
    Изменены: BinData, S_Index.
    16.06.2011 Д.И.Кобрусев
BP+ Код задачи 22063. Добавлена возможность производить сжатие фотографий
    одновременно с упаковкой бинарных данных.
    Изменены: BinData, PhtConst, S_Index.
    Добавлены: JpegCompress, PhotoCompress.
    10.06.2011 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.290 от 08.06.2011
--------------------------

  - Код задачи 21662. При масштабировании прыгали панели с одинаковым Align`ом -
    исправлено.
    Изменены: FormResizer.
    07.06.2011 В.В.Тыщенко
  - Код задачи 22062. Ошибка "Индекс списка вне границ" при выполнении
    в таблице Oracle запроса по связям с оганичением.
    Изменены: ReqConv.
    03.06.2011 И.В.Ковалев
 P* Добавлен модуль jvinstalllabel с компонентом для визуализации списка
    выполняемых действий.
    Изменены: JvJVCLUtils, jvcl.dpk
    Добавлены: jvinstalllabel
    02.06.2011 И.В.Ковалев
  - Код задачи 22110. В проектной конфигурации Легенды были недоступны для
    редактирования 2 поля - исправлено.
    Изменены: cnfdef, config, fconfig, SVCLCommon_cnstr.
    01.06.2011 В.В.Тыщенко
  > Код задачи: 21894. Совместное изменение данных (слитый ввод).
    * Изменена проверка наличия данных в подчиненной записи: сделано как в
      DSP 2.6.
   P* IFieldSpec: Добавлен метод GetUseCascadingDelete (флаг каскадного
      удаления, ранее назывался tfDelIfBadRef (удалять неверные ссылки)).
    - Обновление подчиненных наборов данных происходило чаще чем должно,
      проявлялось например так: в карточке SO_OPER при удалении данных из
      поля КодЛица, выдавалось сообщение о необходимости заполнить поле.
      P: TSDetailDataLink: Обновление подчиненных наборов данных происходило на
         LayoutChanged.
    Изменены: DBDItems, DBSchemaIntf, htdescr, MasterDetail,
    MasterDetailHandlers.
    31.05.2011 М.А.Степанов
  * Код задачи 21799. Фоновое обновление связанных листалок теперь производится
    вне зависимости от модальности окон.
    Изменены: SControls, TextBox.
    31.05.2011 А.Б.Хах
  - Код задачи 22096. Неверно производилась настройка формы редактирования
    подзапроса.
    Изменены: ReqDesigner.
    30.05.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.289 от 30.05.2011
--------------------------

  - Код задачи 22108. При загрузке обстановки через ctrl+F10 происходило
    завершение работы с ошибкой Stack Overflow.
    Изменены: Desktop.
    30.05.2011 А.В.Соса
                                 --- * ---

DSP v3.0.288 от 30.05.2011
--------------------------

  - Код задачи 22094. EAV при уничтожении TToolBarForRTF.
    Изменены: DBInputCustomBLOB.
    30.05.2011 А.Б.Хах
  - Код задачи 22074. TDBObjectChoice не растягивался на всю доступную ширину -
    исправлено.
    Изменены: DBObjectChoice.
    30.05.2011 В.В.Тыщенко
  * Код задачи 21161, 21162. Поддержан расчет CRC по составному ключу и проверка
    составного ключа производится вначале по CRC.
 P* Код задачи 21608. Добавлена рассылка событий при проверке составного ключа, расчете CRC и
    формировании запроса для составного ключа. Эти события позволяют
    перекрывать стандартное поведение в проектах.
  * Поддержано автоматическое формирование запроса по структуре объекта БД.
    Теперь можно задавать составной ключ на объект БД не заботясь о том, в
    каких частях объекта находятся поля, учавствующие в составном ключе.
  - Обратная синхронизация теперь реагирует на смену текущей
    записи в наборе данных предназначенном для редактирования (полезно при
    добавлении записи по физ. номеру, используется в кнопке "Перейти к..." при
    контроле уникальности составного ключа).
    Добавлены: NativeStrConversion.
    Изменены: CompoundError, DBObjectSpecs, form_CompoundError.xml, SDBUtils,
      SDBVCLUtils, SVCLHT_cnstr0.
    27.05.2011 А.Б.Хах
  * Код задачи 22057. Бинарные данные. Размер тома увеличен до 700 Мб.
    Изменены: BinData.
    27.05.2011 Д.И.Кобрусев
  - Код задачи: 22090. В редакторе бин.данных можно было редактировать
    нередактируемые поля (проявлялось в крим.учете, карточка KU_IPK_V, поле
    '26. Фабула', при добавлении, метка поле серая, но в поле вводить
    можно).
    Изменены: DBInputCustomBLOB.
    27.05.2011 М.А.Степанов
  * Код задачи 21708. Вместо значения fsStayOnTop свойства FormStyle теперь
    используется значение pmExplicit свойства PopupMode (во избежание
    отображения модальных окон поверх окон других приложений).
    Изменены: SVCLUtils, DeskTop, form_CompressionProgress.xml,
    form_DecompressionProgress.xml, form_ReportDesigner.xml, rwf_form.xml.
    25.05.2011 А.В.Соса
 P- Код задачи 22085. Если у поля (TField) снималась обязательность
    (свойство Required), когда карточка уже была построена, цвет метки не
    менялся (оставался синим).
    Изменены: DB, DBEditFrame.
    25.05.2011 Д.И.Кобрусев
 P* Код задачи: 22006. SDBUtils: Добавлена функция GetDisplayText: обертка
    на св-вом поля DisplayText.
    Изменены: SDBUtils.
    23.05.2011 М.А.Степанов
  * Код задачи 22051. Для отлавливания момента изменения выборки и смены записи
    теперь используются события TDataLink'а: DataSetChanged и DataSetScrolled
    соответственно, которые происходят до ev_DataSource_DataChange. Что
    устраняет ошибку описанную в задаче.
    Изменены: MasterDetail, gridincrsearch, SVCLHT_cnstr, SVCLOracle_cnstr.
    19.05.2011 А.Б.Хах
 P* Код задачи: 21287. SDBUtils.CreateDBRec: добавлен параметр ATableName,
    позволяет создать запись с определенными полями из таблицы.
    Изменены: SDBUtils.
    19.05.2011 М.А.Степанов
  - Код задачи 21956. При отмене изменений в редакторе запросов больше не
    задается вопрос о неиспользуемых параметрах.
    Изменены: ReqDesigner.
    18.05.2011 А.Б.Хах
  * Код задачи 22025. Изменена ширина фрейма тех.данных.
    Изменены: DBEditFrame, frame_TechData.xml.
    18.05.2011 А.Б.Хах
 P- Код задачи 22048. Объекты БД под HyTech. Если поле объекта изначально
    обязательно для заполнения, а потом обязательность снималась (свойство
    Required устанавливалось в False), при просадке записи всё равно
    контролировалась заполненность этого поля.
    Изменены: DBObjects.
    17.05.2011 Д.И.Кобрусев
 P* Код задачи 22033. Отключение масштабирования сохраненной формы производится
    при помощи ResizeFlags.
    Изменены: EditFormLayout.
    17.05.2011 А.Б.Хах
  * Код задачи 22032. Показ панели с кнопкой "Добавить запись" откладывается с
    помощью фоновости до момента показа формы.
    Изменены: Sections.
    16.05.2011 А.Б.Хах
  - Код задачи 20107. При закрытии вкладки пропадал фокус - исправлено.
    Теперь перед покиданием вкладки фокус запоминается, а при возвращении на
    неё - восстанавливается.
    Изменены: MultitabbedDesktop, SDockManager.
    13.05.2011 А.В.Соса
                                 --- * ---

DSP v3.0.287 от 13.05.2011
--------------------------

 P* Код задачи 21844. Установка пути к stdlib.zip в качестве значения
    PYTHONHOME перенесена из модуля PythonEngine в PyUtils, в обработчик события
    app_PreparePythonEngine.
    Изменены: PythonEngine, PyUtils.
    12.05.2011 А.В.Соса
  * Код задачи 21857. Из проектной конфигурации убрано поле nmAlwaysShowTabs
    ("Всегда показывать вкладки").
    Изменены: cnfdef, SVCLCommon_cnstr, frame_fconfig.xml.
    11.05.2011 А.В.Соса
  * Код задачи 22008. Во время восстановления полной выборки производилась
    лишняя сортировка.
    Изменены: SDBVCL.
    11.05.2011 А.Б.Хах
  + Код задачи 22015. Добавлено удаление временной таблицы средствами htSQL.
    Изменены: htSQLDDLConstruction, gaDropStm.
    11.05.2011 В.В.Тыщенко
  - Код задачи 21993. При освобождении TJoiner`а (если в нём были дубликаты таблиц)
    портились склонированные от него TJoinResult`ы - адаптировано.
    Изменены: htSQLCondition, htSQLCustom, htSQLSelect.pas.
    11.05.2011 В.В.Тыщенко
  * Код задачи 21844. Добавлена установка значения переменной PYTHONHOME, чтобы
    избежать поиска каталога с библиотеками Python (в случае, когда приложение
    запускается из сетевого каталога, поиск может приводить к задержкам).
    Изменены: PythonEngine.
    10.05.2011 А.В.Соса
                                 --- * ---

DSP v3.0.286 от 06.05.2011
--------------------------

 P> Код задачи 21967:
    + Добавлены функции GetReqParamRec, TryGetReqParamRec.
    * Код задачи 21967. TSonarDB_Record. Соединение требуется, только если
      задано имя таблицы.
    Изменены: SDBDataSets, SDBUtils.
    04.05.2011 Д.И.Кобрусев
  + Код задачи 21826. Добавлен признак того, что DBObjectChoice находится в
    процессе фонового получения описания (смыслового поля).
    Изменены: DBObjectChoice.
    03.05.2011 А.Б.Хах
  + Код задачи 21271. В htSQL добавлена поддержка функции "Год из даты".
    Изменены: htSQLCondition, htSQLCustom, htSQLDataSet, htSQLDMLConstruction,
      gaAdvancedSQLParser, gaCreateStm.
    03.05.2011 В.В.Тыщенко
 P* Код задачи 21651. Событие ev_RecordController_DataSetScrolled переименовано
    в ev_RecordController_PrepareRecord и происходит теперь в виде реакции на
    событие ev_DataSet_AfterScroll.
    Изменены: AuthFormH, FormRecNotify, MasterDetail, MasterDetailHandlers,
      Presentation, RecordControl.
    29.04.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.285 от 29.04.2011
--------------------------

  - Код задачи 21950. При попытке прервать процесс форма с сообщением "Вы
    дествительно хотите прервать работу?" показывалась  под
    прогресс-индикатором, а не поверх.
    Изменены: form_Progress.xml
    29.04.2011 И.В.Ковалев
 P* Код задачи: 21846. Добавлен вариант GetSelectStrByDate для двух
    граничных значений.
    Изменены: SDBUtils.
    28.04.2011 М.А.Степанов
  - Убрана утечка памяти, происходившая если название поля набора данных в
    запросе указано неверно.
    Изменены: CompoundError.
    27.04.2011 А.Б.Хах
  * Код задачи 21120. Кнопка "Категория доступа" и её обработка удалены.
    Удалены: form_KtgAccess.xml.
    Изменены: TechDataFrame, frame_TechData.xml.
    27.04.2011 А.Б.Хах
  * Код задачи 21915. Механизм переименования полей объектов БД теперь
    воздействует и на объекты БД Oracle.
    Изменены: DBObjectSpecs, OraDBObjects.
    27.04.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.284 от 25.04.2011
--------------------------

  * Код задачи 21860. Если при валидации не указана базовая часть, то выдается
    исключение.
    Изменены: DBObjectSpecs.
    25.04.2011 А.Б.Хах
 P+ Код задачи 21860. Добавлена возможность задавать правила переименования
    полей структурной части объекта БД.
    Изменены: DBObjects, DBObjectSpecs.
    25.04.2011 А.Б.Хах
  - Код задачи 21491. В окне редактирования текстовых бинарных данных не
    работала вставка символа табуляции по нажатию Tab - исправлено.
    22.04.2011 А.В.Соса
 P* Код задачи 21860. Теперь структурная часть объекта может содержать в себе
    другие структурные части, т.е. в Дизайнере вместо TContentLoader'а можно
    использовать TComponentLoader при описании структуры объекта.
    Изменены: DBObjects.
    20.04.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.283 от 15.04.2011
--------------------------

  * Код задачи: 21847, 21600: В крим.учете, в карточке KU_IPK_V при выборе
    вещи могло выдаваться сообщение о необходимости заполнить поле 'Причина
    заполнения карты'.
    P: Валидация записи перенесена в обработчик события
       ev_DataSet_BeforePost т.к. UpdateRecord, во первых: иногда
       вызывается просто чтобы обновить поля в наборе данных и никто не
       ожидает что в нем будут происходить исключения, во вторых: иногда
       обязательные поля устанавливаются на событие ev_DataSet_BeforePost.
    Изменены: RecordControl.
    14.04.2011 М.А.Степанов
  - Код задачи 21814. В случае, если набор данных открывается фоново, то на
    момент показа формы DBEditFrame'ы ещё не построили свои компоненты ввода,
    поэтому фокус с вкладки передать некуда. Теперь перемещение фокуса
    производится после открытия набора данных.
    Изменены: form_DataChange.
    13.04.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.282 от 13.04.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  11.04.2011 А.Б.Хах
  ----------------------------------------------------------
  > Код задачи 20715:
   P* TStdMainForm теперь является потомком TForm.
   P- Если при очистке рабочего стола задоченные окна не удалялись из списка
      DockClients (а такое могло быть, если сама форма, где дочатся окна
      удаляется), то происходило повторное освобождение объекта.
    Изменены: StdMainForm, DockingDesktop.
    11.04.2011 А.Б.Хах

    Адаптация: Теперь у StdMainForm нет свойства MainForm, она сама и есть
    главная форма приложения. В головном модуле приложения следует писать так:
    begin
      Application.Initialize;
      Application.MainFormOnTaskBar := True;
      Application.CreateForm(TMainForm, form);
      Application.Run;
    end;
    где TMainForm имя класса главной формы проекта.
                                   * * *

  - Код задачи 21841. В случае, если бинарные данные отсутствуют в первой записи
    набора данных TDBInputCustomBLOB не строил компонент ввода вообще.
    Изменены: DBInputCustomBLOB.
    13.04.2011 А.Б.Хах
  - Код задачи 21840. Не вызывался Insert при добавлении: неверно был выставлен
    try/except.
    Изменены: SDBVCLUtils.
    13.04.2011 А.Б.Хах
  - Код задачи 21813. В TJvDBCombobox производилось обращение к FPaintControl из
    WndProc после его уничтожения.
    Добавлены: JvDBCombobox.pas.orig.
    Изменены: JvDBCombobox.
    12.04.2011 А.Б.Хах
  * Код задачи 21812. Теперь при дублировании записи не дублируются уникальные
    ключи.
    Изменены: SDBVCLUtils.
    12.04.2011 А.Б.Хах
 !* Добавлена очистка области памяти при освобождении.
    Добавлены: stripxml.
    11.04.2011 С.А.Барсуков
                                 --- * ---

DSP v3.0.281 от 11.04.2011
--------------------------

 P- Код задачи 21808. Объект БД для СУБД HyTech (THTDBObject). При смене
    текущей записи в объекте не происходило события ev_DataSet_AfterScroll.
    Изменены: DBObjects.
    08.04.2011 А.Б.Хах (внёс Д.И.Кобрусев)
 P> Код задачи 21806:
    * Переименованы событие и процедура его рассылки:
      PrepareForm -> PrepareFormWindow,
      app_PrepareForm -> app_PrepareFormWindow,
      TEvent_PrepareForm -> TEvent_PrepareFormWindow.
    + Добавлено событие подготовки карточки app_PrepareForm.
    Изменены: SDBVCLUtils, SVCLCommon_cnstr, SVCLUtils, TableBrowserForms.
    08.04.2011 Д.И.Кобрусев
 P+ Код задачи 21805. Добавлены функции ExtractDBObjectSpec и
    TryExtractDBObjectSpec и событие app_ExtractDBObjectSpec.
    Изменены: DBObjectSpecs, SVCLHT_cnstr0, SVCLOracle_cnstr.
    08.04.2011 Д.И.Кобрусев
  - Код задачи 21687. Получение отображаемого названия поддержано в объектах БД.
    Изменены: DBObjectSpecs, SDBVCLUtils, DBObjects.
    07.04.2011 А.Б.Хах
  * Код задачи 21741. Убран пункт меню Сервис/Отчеты.
    Изменены: dm_ReportsMenu.xml.
    07.04.2011 А.В.Соса
  * Код задачи 20636. В генераторе отчётов RWF исправлен порядок табуляции на
    формах ПАРАМЕТРЫ ПОЛЯ\ШРИФТ и ПАРАМЕТРЫ ПОЛЯ\ПОЗИЦИЯ.
    Изменены: font.xml, position.xml.
    07.04.2011 А.В.Соса
                                 --- * ---

DSP v3.0.280 от 07.04.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  01.04.2011 А.В.Соса
  ----------------------------------------------------------
 P* Код задачи 20429. Пакет sax переименован в xmlsax, поскольку совпадение
      имени пакета и имени модуля в нём вызывает проблемы при компиляции;
    пакет Common переименован в DSPCommon.

    Адаптация: заменить имя пакета sax на xmlsax, common - на dspcommon.

  * Код задачи 21561. Теперь добавленная в объект БД запись сразу появляется в
    листалке.
    Добавлено: OraDBObjectsGen.
    Изменены: SDBVCLUtils, OraDBObjects, sdboracle.
    07.04.2011 А.Б.Хах
  - Код задачи 21680. В Легенде для СУБД Oracle, если не выбрано конкретное
    значение из таблицы, на которую TDBEditFrame ссылается, в нём отображалось
    значение "0".
    Изменены: SdbOracle.
    07.04.2011 А.В.Соса
  * Код задачи 21702. Использование каталога DSK для файлов обстановок
    заменено на использование каталога WDS.
    Изменены: DeskTop.
    07.04.2011 А.В.Соса
  - Код задачи 20833. Изменён алгоритм фонового обновления связанных листалок.
    Изменены: cnfdef, MasterDetailHandlers, SControls.
    06.04.2011 В.В.Тыщенко
  > Код задачи 20429.
    + Добавлен пакет PkIECtrl (ImageEn версии 3.1.2) для поддержки отображения
      TIFF и других форматов изображений. TDBInputImage теперь является потомком
      TImageEnDBView (вместо TJvDBImage).
    * В функции IsGraphic (перенесена из DBInputMethods в DBInputCustomBLOB)
      теперь вместо JvJVCLUtils.GetGraphicClass используется
      ImageEnIO.FindStreamFormat.
    * Дополнен список расширений поддерживаемых графических файлов.
    + Добавлено локальное меню для изображений, пункты "Крупнее", "Мельче",
      "Развернуть на весь экран", "Следующая страница", "Предыдущая страница"
      в этом меню и на панели инструментов.
    * Из метода TDBEditFrame.set_DataSource убран явный вызов
      UpdateInputController.
    - В функции TBLOBController.DoCreateControl при невозможности определения
      типа содержимого контрол не создавался; в результате, например, в случае
      пустого поля даже после перехода к другой записи данные не отображались.
   P* Пакет sax переименован в xmlsax,
   P* Пакет Common переименован в DSPCommon.
    * Заменены картинки для кнопок на тулбаре во фрейме ввода текстовых и
      бинарных данных; TImageList заменены на TSImageList.
    Удалены: sax.dpk, common.dpk.
    Добавлены: xmlsax.dpk, dspcommon.dpk, каталог ThirdParty\ImageEn;
      document-open-2.png, document-save-4.png, edit-copy.png, edit-cut.png,
      edit-delete-4.png, edit-paste.png, edit-rename.png, edit-undo-7.png,
      editdoc.png, go-next-view-page.png, go-previous-view-page.png,
      utilities-run.png, view-fullscreen-3.png, zoomin.png, zoomout.png.
    Изменены: ThirdParty.py, SVclCommon.dpk,  DBInputCustomBLOB, DBInputMethods,
      DBEditFrame, frame_DBInputBLOB, frame_DBInputImage_Clipboard,
      frame_InputCustomBLOB, frame_TextBox, sax.py, common.py, sonardb.dpk,
      SVCLHT.dpk, svcl.dpk, svcloracle.dpk, images.rc.
    01.04.2011 А.В.Соса
                                 --- * ---

DSP v3.0.279 от 31.03.2011
--------------------------

  > Код задачи 21603.
    * Переведено на русский язык значение константы SmkcSpace.
    * Сразу после открытия окна изменения представления фокус теперь находится
      в списке полей для визуализации.
    - В случае нажатия пробела на узле дерева, соответствующем таблице, ключ
      связи с этой таблицей добавлялся в список полей для визуализации либо,
      если он в этом списке уже есть, происходило исключение. Теперь при этом
      никаких действий не выполняется.
    Изменены: Consts, DBGridLayout, form_DBGridLayout.xml.
    30.03.2011 А.В.Соса
                                 --- * ---

DSP v3.0.278 от 29.03.2011
--------------------------

  - Код задачи 21597. 8-мизначное время не помещалось в поле ввода.
    Изменены: frame_TechData.xml.
    29.03.2011 А.Б.Хах
  - Код задачи 21692. Под Oracle при вызове пункта меню "Загрузить как представление"
    происходило переполнение стека - исправлено.
    Изменены: Presentation, SDataSetLayout, SonarDbIntf.
    25.03.2011 В.В.Тыщенко
  - Код задачи 21593. Невозможно было открыть форму DESKMENU на просмотр - исправлено.
    Изменены: DeskMenuForm.
    25.03.2011 В.В.Тыщенко
  - Код задачи 21659. Действия по отмене добавления раздела-карточки
    перевешены на другое событие.
    Изменены: Sections.
    24.03.2011 В.В.Тыщенко
                                 --- * ---

DSP v3.0.277 от 24.03.2011
--------------------------

  > Код задачи 21325.
   P+ Добавлена функция, проверяющая был ли набор данных построен разделом.
   P+ Добавлено событие app_RowCommandDBSchemaAccessChecker_CheckAccess.
    Изменены: Sections, RowCommandAccessCheckers.
    24.03.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.276 от 24.03.2011
--------------------------

  - Код задачи 21688. Теперь строится ли фрейм тех. данных или нет не зависит от
    открытости набора данных, для которого его строят.
    Изменены: TechDataFrame, DBObjectSpecs.
    23.03.2011 А.Б.Хах
  - Код задачи: 21690. При попытке показа списка таблиц для ограничения
    вида 'совпадает по списку полей' возникало исключение 'Компонент с
    именем "PanelButtons" не найден'.
    Изменены: ReqFieldViewer, frame_SelectFields.xml.
    23.03.2011 М.А.Степанов
  - Код задачи: 21679. Под Oracle в таблицах некорректно показывались мемо-поля
    Изменены: SDBOracle.
    23.03.2011 М.А.Степанов
  - Код задачи 21682. Обеспечивается открытость подмененного набора данных для
    операций добавление, дублирование и удаление.
    Изменены: SDBVCLUtils.
    23.03.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.275 от 22.03.2011
--------------------------

  - Код задачи 20101. В Легенде Oracle - если нет нужного view, то провисала
    память, конкретнее - объект БД.
    Изменены: SDBVCLUtils.
    22.03.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.274 от 21.03.2011
--------------------------

  * Код задачи 20101. Для старого санкционирования не создается авторизатор.
    Изменены: SVCLOracle_cnstr.
    18.03.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.273 от 18.03.2011
--------------------------

  - Код задачи 21376. Не учтён момент, что у формы ввода изначально могут быть
    вкладки - исправлено.
    Изменены: SectionPageControl.
    17.03.2011 В.В.Тыщенко
  - Код задачи 21596. При выполнении дополнения к выборке срабатывал фоновый
    обработчик, обновляющий выборку, что приводило к полной выборке при любом
    дополнении.
    Изменены: SDataSetLayout, SVCLHT_cnstr.
    17.03.2011 А.Б.Хах
  - Код задачи 21376. Форма меняет свои размеры только при добавлении первой
    и удалении последней вкладки.
    Изменены: Sections, SectionPageControl, FormResizer.
    17.03.2011 В.В.Тыщенко
  - Код задачи 21641. Неверно высчитывались исходные размеры DBEditFrame`ов для
    автосоздаваемых форм - исправлено.
    Изменены: DBEditFrame, DBInputMethods.
    16.03.2011 В.В.Тыщенко
 P+ Код задачи 21119. Добавлена функция CreateDataSet.
    При синхронизации объектов БД в HyTech больше не производится смена базовой
    части.
    Изменены: DBObjectSpecs, SonarDBIntf, DBObjects, SVCLHT_cnstr0, SVCLOracle_cnstr.
    16.03.2011 А.Б.Хах
 P+ Код задачи 21164. Объекты БД. Добавлены функции получения имени поля
    объекта по имени части и имени поля части и наоборот.
    Изменены: DBObjectPartSpecs.
    14.03.2011 Д.И.Кобрусев
  * Код задачи 21545. Теперь на уровне поля ввода осуществляется обрезка строк
    слева и справа.
    Изменены: SControls.
    14.03.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.272 от 14.03.2011
--------------------------

  - Код задачи 21620. Исправлено размещение контролов внутри DBEditFrame`а.
    Изменены: DBEditFrame.
    14.03.2011 В.В.Тыщенко
  - Код задачи 21402. Замедление после сворачивания большого количества
    узлов кодификатора. Ускорение достигнуто за счет ускорения трансляции
    запросов в sql.
    Изменены: ReqConv.
    11.03.2011 И.В.Ковалев
  - Код задачи 21495. Изменён алгоритм расчёта взаиморасположения метки и
    элемента ввода в DBEditFrame`е.
    Изменены: DBEditFrame, DBInputMethods, SControls.
    11.03.2011 В.В.Тыщенко
                                 --- * ---

DSP v3.0.271 от 10.03.2011
--------------------------

  - Код задачи 21595.
   P: Из-за использования события ev_DataSet_BeforeScroll синхронизация наборов
      данных для скроллирования и редактирвоания происходила до того, как запись
      в скроллируемом изменилась, что приводило к отставанию редактируемого
      набора данных на одну запись.
   P: Синхронизация частей объекта из-за кеширования выполнялась
      только при открытии. Теперь при синхронизации скроллирования сбрасывается
      закешированный индекс.
    Изменены: SDBVCLUtils, DBObjects.
    09.03.2011 А.Б.Хах
 P+ Код задачи 20907. Функция получения значения сетевого адреся по
    значению поля ExtractNetAddr.
    Изменены: KeysWithID, SonarSys.
    09.03.2011 Д.И.Кобрусев
  * По требованию директора из статусной линии удалено упоминание об отсутствии
    авторизации
    Изменены: MainFormStatusBar
    05.03.2011 С.Н.Штуркин
                                 --- * ---

DSP v3.0.270 от 03.03.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  25.02.2011 А.Б.Хах
  ----------------------------------------------------------
 P* Код задачи 21512. Удалена функция GetRecordSetName.

    Адаптация: Вместо GetRecordSetName использовать GetTableName.
                                   * * *

  - Чтобы избежать исключений при попытке отображения имени текущего
    пользователя, используется функция TryGetIConnection.
    Изменены: MainFormStatusBar, SonarDbIntf.
    04.03.2011 С.Н.Штуркин (внёс А.В.Соса)
  + Код задачи 14864. В строку меню добавлены часы (ЧЧ:ММ:СС).
    Изменены: frame_MainMenu.xml, MainFormStatusBar.
    04.03.2011 А.В.Соса
  + Код задачи 18469. При синхронизации времени с сервером выдаётся сообщение
    об этом в статусной строке (Добавлено отображение сообщений, передаваемых
    при помощи StatusMessage и LockStatusLine).
    Изменены: MainFormStatusBar.
    04.03.2011 А.В.Соса
  - Код задачи 21554. Первичная синхронизация теперь производится во всех
    случаях, кроме добавления, поэтому дублирование работает нормально.
    Изменены: SDBVCLUtils, form_DataChange, DBObjects.
    01.03.2011 А.Б.Хах
  - Код задачи 21560. Устранена пропись по памяти: выделялось недостаточно памяти
    под буфер записи.
    Изменены: SDataSet.
    01.03.2011 А.Б.Хах
 P* TMasterDetailDataChangeHandler: При начале редактирования подчиненного
    ведущий тоже переводится в состояние редактирования.
    Изменены: MasterDetailHandlers.
    28.02.2011 М.А.Степанов
 P* Код задачи 21512. Удалены ошибочно оставленные части функции GetRecordsetName.
    Изменены: SDBVCL.
    25.02.2011 А.Б.Хах
  - Код задачи 21375. Устранена попытка обновить закрытый DataSet.
    Изменены: RecordSync.
    25.02.2011 В.В.Тыщенко
  * Код задачи 18191. Изменен текст метки в диалоге поиска в редакторе реестра.
    Изменены: form_Search.xml.
    25.02.2011 А.Б.Хах
  * Код задачи 21414. При загрузке файла обстановки осуществляется проверка на
    существование этого файла.
    Изменены: SonarSys, DeskTop, ResToXML, XMLToRes, bindata, OldBinData,
      RRequest, FormToRes, deskmenuexec.
    25.02.2011 А.Б.Хах
  - Код задачи 21233. При сохранении размера шрифта по умолчанию менялся текущий
    размер шрифта - исправлено.
    Изменены: FormResizer, EnterRecord.
    25.02.2011 В.В.Тыщенко
  + Код задачи 15130. Добавлена статусная строка внизу главного окна,
    отображающая следующую информацию: размер шрифта, имя текущего
    пользователя, имя станции, и сетевой адрес программы.
    Добавлены: MainFormStatusBar, TBXStatusBars.pas.orig.
    Изменены: About, OldAuthHyTech, TBXStatusBars, StdMainForm,
      SVclCommon.dpk, form_StdMainForm.xml.
    25.02.2011 А.В.Соса
  - Код задачи 21544. При новом логировании восстанавливался размер шрифта - убрано.
    Изменены: FormResizer.
    25.02.2011 В.В.Тыщенко
 P* Код задачи 21522. Поддержано сохранение/загрузка схемы данных в новом
    формате при наличии в схеме данных поля типа RecId.
    Изменены: htdescr, SDBCONST.
    25.02.2011 И.В.Ковалев
  - Код задачи 19594. Запрещено добавление/изменение/удаление данных в таблицах с
    ненулевым уровнем защиты средствами OLE DB.
    Изменены: CommonUtils, SDBConst, htSQLCustom, htSQLOLE, htSQLProvider.
    25.02.2011 В.В.Тыщенко
  * Код задачи 21512. Реализована исполнительная часть объектов БД для СУБД Oracle.
    Добавлены: OraDBObjects.
    Изменены: DBObjectSpecs, form_DataChange, SDBDataSets, SVCLCommon_cnstr0,
      DBMemoSearch, DBObjects, SDBVCL, sdboracle.
    25.02.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.269 от 25.02.2011
--------------------------

  * Код задачи 21531. Безусловная передача фокуса в подкомпонент сфокусированного
    компонента приводила к нежелательным эффектам в автоматических карточках,
    т.к. там уже есть собственный алгоритм передачи фокуса и на момент
    срабатывания алгоритма в TCommonViewEditForm фокус уже находился там, где
    было нужно. Теперь обработчик TCommonViewEditForm передает фокус только для
    случая TPageControl'а (собственно, для которого этот код и писался).
    Изменены: form_DataChange, Sections.
    24.02.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.268 от 24.02.2011
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  16.02.2011 А.Б.Хах
  ----------------------------------------------------------
  > Код задачи 21406, 21320.
    Объекты БД разделены на структурную и исполнительную части.
    Структурная часть поддерживает интерфейс ITableSpec.
    В ITableSpec добавлены функции позволяющие получить доступ к флагам подсхемы.
    Теперь в форме изменения данных используется два источника
    данных и два DBNavigator'а - один для скроллируемого набора данных, другой -
    для изменяемого.
    Добавлены: DBObjectPartSpecs, DBObjectSpecs.
    Изменены: DBDItems, DBSchemaIntf, htdescr, form_DataChange, form_DataChange.xml,
      RowCommandAccessCheckers, SDBVCLUtils, Sections, SonarDBIntf, SVCLCommon_cnstr,
      SVCLCommon_Registraction, DBObjects, SVCLHT_registration.
    Удалены: DBObjectParts.
    16.02.2011 А.Б.Хах

    Адаптация: Переименования: TDBObject ->THTDBObject, TDBObjectPart -> THTDBObjectPart,
    TDBObjectPartLink -> THTDBObjectPartLink. Всё, что касается структурной части
    объекта (имя базовой части и т.п.) следует получать через TDBObjectSpec,
    TDBObjectPartSpec, TDBObjectPartLinkSpec.
                                   * * *

  - Код задачи 21421. В HandleDefaultDoubleClick View мог быть = nil.
    Изменены: TB2Item.
    22.02.2011 А.Б.Хах
  + Код задачи 21267. Расширен контрол для выбора файла возможностью выбора каталога.
    Валидация поля в DBEditFrame происходит в постпроцессе выхода из поля (OnExit).
    Изменены: DBInputMethods, DBEditFrame.
    21.02.2011 В.В.Тыщенко
  - Код задачи 20668. Исправлен внешний вид кнопки "Разрешить несовпадение
    имён" в окне выбора полей запроса при крупном масштабе; панель статуса
    теперь имеет тип TTBXStatusBar, кнопка размещена на этой панели.
    Изменены: frame_SelectFields.xml, ReqFieldViewer, tblib_registration.
    18.02.2011 А.В.Соса
  - При построении автоматической формы DataSource_Scrolling.DataSet не
    устанавливался.
    Изменены: form_DataChange.
    17.02.2011 А.Б.Хах
  - Если в CreateDataForm в качестве DataSet_Scrolling передан тот же набор
    данных, что и в качестве DataSet, то их синхронизировать не нужно.
    Изменены: form_DataChange.
    17.02.2011 А.Б.Хах
  - Код задачи 21434. При копировании нумерованных списков из MS Word в
    редактор текстовых бинарных данных вставлялся только текст, без нумерации.
    Изменены: DBInputCustomBLOB.
    17.02.2011 А.В.Соса
  * Код задачи 21493. Кнопка "Принять" окна ввода пароля теперь включена только
    тогда, когда поля ввода логина и пароля не пусты.
    Изменены: Login.
    16.02.2011 А.Б.Хах
  - Код задачи 21441. В некоторых случаях обрезалась метка - исправлено.
    Изменены: SControls.
    16.02.2011 В.В.Тыщенко
 P+ Код задачи 21169. Добавлено событие TRowCommandUserRightAccessChecker.ev_TryGetDefendant.
    Изменены: RowCommandAccessCheckers.
    15.02.2011 Д.И.Кобрусев
  - Если у автоматической формы нет блока разделов, то возможен EAV при её построении -
    исправлено.
    Изменены: form_DataChange.
    15.02.2011 В.В.Тышенко
 P- Код задачи 21486. Адаптация к изменению типа TSubSchema.SubSchemaName.
    Изменены: dbase0, dbase4.
    15.02.2011 В.В.Тыщенко
  * Код задачи 20836. Когда для колонки не задан заголовок, вместо него отображается
    длинное имя поля, если для него достаточно ширины колонки; если недостаточно -
    отображается короткое имя.
    Изменены: SDBGrid, DBGridLayout.
    15.02.2011 А.В.Соса
                                 --- * ---

DSP v3.0.267 от 14.02.2011
-------------------------------

  - Код задачи 21458. Поиск по вычислимым полям производился долго - исправлено.
    Изменены: SDataSet.
    11.02.2011 В.В.Тышенко
  - Код задачи 21420. У пункта меню "Файл->Новый" удалена горячая клавиша.
    Изменены: dm_FileMenu.xml.
    11.02.2011 А.Б.Хах
  - Код задачи 21132. При добавлении записи в таблицу-кодификатор при ряде
    условий менялась текущая запись в листалке, в результате в форме ввода
    оказывалась уже существующая запись, которая прорисовывалась при
    переходе в следующее поле в форме ввода.
    Изменены: GridCodeView.
    11.02.2011 И.В.Ковалев
  + Код задачи 21275. Добавлена возможность получения имени таблицы без исключения.
    Изменены: SonarDBIntf.
    09.02.2011 В.В.Тыщенко
  - Код задачи 21275. Исправлена работа с вычислимыми полями и TSDBGrid`ом, если
    у него отсутствуют заголовки колонок.
    Изменены: SControls, SDBGrid, TableBrowser.
    09.02.2011 В.В.Тыщенко
  P* Функции CreateDataTypeSpec и DataTypeSpecToValues перенесены из DBDItems в
    реализацию фабрики TFieldSpecFactory.
    Изменены: DBDItems, MemoryDataSource.
    09.02.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.266 от 07.02.2011
-------------------------------

  - Код задачи 21433. Ошибка [ANYDAC][PHYS][ORA] ORA-00918: Столбец
    определен неоднозначно при выполнении запроса на повторяемость из
    слитой листалки Oracle. Ошибка внесена при реализации задачи 21018.
    Изменены: ReqConv.
    04.02.2011 И.В.Ковалев
                                 --- * ---

DSP v3.0.265 от 03.02.2011
-------------------------------

 P* Код задачи: 21418. default_NeedShowAboutOnStart не устанавливает
    NeedShow в True, только в False.
    Изменены: SVclHtUtils.
    03.02.2011 М.А.Степанов
  * Код задачи 21332. Теперь при смене представления не изменяется выборка.
    Также для выборки полученной при поиске по тексту больше не строится
    "временный" запрос.
    Изменены: SdbVcl.
    02.02.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.264 от 31.01.2011
-------------------------------

  * Код задачи 21326. Администратору теперь можно всё и сразу.
    Изменены: OldAuthHyTech.
    31.01.2011 А.Б.Хах
  - Код задачи 21361. При условии "совпадает с" выдавалось очень длинное поле
    для маски - исправлено.
    Изменены: EnterValue, ReqEditor.
    31.01.2011 В.В.Тыщенко
  + Код задачи 20577. Добавлен контроллер для выбора файла.
    Изменены: DBInputMethods, SVCLCommon_Registraction.
    31.01.2011 В.В.Тышенко
  * Код задачи 21293. Теперь положение каретки корректно выставляется и при
    передаче фокуса мышью.
    Изменены: DBInputCustomBLOB.
    28.01.2011 А.Б.Хах
  * Код задачи 21360. Если файл запроса поврежден, то выдается соответствующее
    сообщение.
    Изменены: ReqDesigner.
    28.01.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.263 от 28.01.2011
-------------------------------

  - Код задачи 21373. Для окна листалки расcчитывались оптимальные размеры, что
    приводило к её уменьшению.
    Изменены: TableBrowser.
    28.01.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.262 от 27.01.2011
-------------------------------

  - Код задачи 21354. Не производилась настройка окна текстовых бинарных данных
    для правильного докирования.
   P: Все ручные настройки докирования заменены на вызов MakeFormDockable, а
      TTextBoxForm и TTableBrowserForm по умолчанию не пригодны для докирования.
    Изменены: DBInputCustomBLOB, TableBrowser, TableBrowserForms, TextBox,
      TextEditor, HTMenus, FullInfo.
    26.01.2011 А.Б.Хах
  * Код задачи 21342. Добавлено свойство LabelWordWrap в TCaptionedControl,
    изменён алгоритм расчёта размеров компонентов и их расположения.
    Изменены: SControls.
    26.01.2011 В.В.Тыщенко
                                 --- * ---

DSP v3.0.261 от 25.01.2011
-------------------------------

  * Код задачи 19863. Добавлена синхронизация разных наборов данных, открытых
    на одну и ту же таблицу.
    Добавлены: RecordSync.
    Изменены: SDBVCL.
    25.01.2011 А.Б.Хах
 P* Контроль на допустимость операции при добавлении производится до всех
    остальных действий на BeforeInsert (например препросадки записи).
    Изменены: RowCommandAccessHandlers.
    25.01.2011 М.А.Степанов
  - Код задачи 20622. Приложение завершается в любом случае, даже при разрыве
    соединения с БД. Теперь, на завершение работы отводится 60 сек, а не 60
    итераций цикла и время не останавливается при разрыве соединения.
    Изменены: DBServiceCheck.
    25.01.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.260 от 25.01.2011
-------------------------------

  * Код задачи 20502. Изменено построение формы для раздела-свойства в случае,
    если таблица-свойство содержит только бинарные данные.
    Изменены: DBInputCustomBLOB, SectionList, SectionPageControl, Sections,
    TableBrowser, TextBox.
    24.01.2011 В.В.Тышенко
  - Код задачи 21306. Исправлена проблемы с карточкой с задоченными вкладками.
    Изменены: EditFormLayout, FormResizer, SectionPageControl.
    21.01.2011 В.В.Тыщенко
  - Код задачи 21305. Неверно сохранялись размеры SectionList`ов - исправлено.
    Изменены: EditFormLayout.
    21.01.2011 В.В.Тыщенко
  - Код задачи 21298. Производилась смена Position окна в обработчике OnShow,
    что приводило к описанной ошибке.
    Изменены: ReqFieldViewer.
    21.01.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.259 от 20.01.2011
-------------------------------

  - Исключение об отсутствии lzma.dll при разархивации маскировалось неверной
    операцией с указателем.
    Изменены: Archiver.
    20.01.2011 А.Б.Хах
  - EAV при выходе в меню, если не был указан путь к hst.
    Изменены: HTMenus.
    20.01.2011 А.Б.Хах
  + Код задачи 19239. Добавлена проверка заполненности обязательного поля с
    выдачей хинта.
    Изменены: FieldValidator.
    20.01.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.258 от 19.01.2011
-------------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  18.01.2011 С.Н.Штуркин
  ----------------------------------------------------------
  * Поддержаны виртуальные части объектов БД
    Изменены: DBObjects, SVCLCommon_cnstr0, SVCLHT_registration, SVCLHT.dpk
    Добавлены: DBObjectParts
    18.01.2011 С.Н.Штуркин

    Адаптация: если в проекте используются объекты БД, в случае проблем со
    сборкой замените использование класса TDBObjectPart на TDBObjectTablePart.
    Такую замену необходимо произвести также в xml-файлах форм, поскольку
    TDBObjectPart теперь является абстрактным предком табличных (TDBObjectPart)
    и виртуальных (TDBObjectVirtualPart) частей объектов.
                                   * * *

  - Код задачи 21216. Не учитывались Constraint`ы при применении эффективных размеров -
    исправлено.
    Изменены: FormResizer, SectionList.
    19.01.2011 В.В.Тыщенко
  - Код задачи 21246. Не восстанавливалось представление карточки при открытии -
    исправлено. Неверно восстанавливалось исходное состояние карточки - исправлено.
    Изменены: DBEditFrame, EditFormLayout, FormResizer, SectionList, SVCLCommon_cnstr,
    TechDataFrame, frame_TechData.xml.
    18.01.2011 В.В.Тыщенко
  - Код задачи 21122. Не копировалось свойство ControllerClass, поэтому поле
    кодификатора представлялось в виде поля типа массив байт.
    Изменены: DBObjects.
    18.01.2011 А.Б.Хах
  - Код задачи 20530. При сдвиге условия вправо: если условия на разные таблицы,
    то не сдвигать.
    Изменены: ReqEditor.
    17.01.2011 А.Б.Хах
 P* Код задачи: 20892. Удалены константы stHost, stDatabase т.к. сервер и
    БД задаются в командной строке а не в опциях.
    Изменены: OraLogin.
    17.01.2011 М.А.Степанов
                                 --- * ---

DSP v3.0.257 от 17.01.2011
-------------------------------

  - Код задачи 21139. При выборе поля в редакторе запросов флаги подсхемы теперь
    не учитываются.
    Изменены: FieldViewer, ReqFieldViewer.
    17.01.2011 А.Б.Хах
  + Код задачи 20690. Реализован переход по Tab в режиме блочного редактирования.
    Изменены: DBEditFrame, SDBGrid.
    17.01.2011 В.В.Тыщенко
 P- ForcePostData: набору данных выставляется флаг Modified, для того
    чтобы при переходе на другую запись вызвался Post.
    Изменены: SDBUtils.
    14.01.2011 М.А.Степанов
  * Код задачи 21208. Теперь пользователь не имеет прав на элементы меню
    обстановок, уровень которых ниже уровня пользователя.
    Изменены: OldAuthHyTech.
    13.01.2011 А.Б.Хах
                                 --- * ---

DSP v3.0.256 от 13.01.2011
-------------------------------

  * Код задачи 21201. Поддержаны права пользователя на элементы меню обстановок.
    Изменены: htdescr, deskmenu, OldAuthHyTech, password.
    13.01.2011 А.Б.Хах
  * Код задачи 20641. Поддержан инкрементный поиск по полю типа Code.
    Изменены: oraincrsearch, ReqConv.
    12.01.2011 И.В.Ковалев
 P- Функции построения запросов (GetSelectStr): в XML тип св-ва Data для
    числовых границ был 'shortint' (это не приводило к ошибкам только из-за
    особенностей релизации ObjectXMLToBinary).
    Изменены: SDBUtils.
    11.01.2011 М.А.Степанов
  * Код задачи 20717. Добавлено имя для автосоздаваемого SectionList`а.
    Изменены: form_DataCahnge.
    11.01.11 В.В.Тыщенко
  * Код задачи 18244. Теперь при увеличении ширин компонентов, содержащих
    списки полей в окне настройки представлений будут увеличиваться ширины полей
    "Таблица".
    Изменены: form_DBGridLayout.xml.
    30.12.2010 А.Б.Хах
 P* Код задачи: 21226. Добавлен контроль прав при переводе набора данных в
    режим редактирования (контроль нужен "на всякий случай" т.к. по идее
    проверка прав должна быть проведена до вызова Edit и должны быть
    выставлены  соответствующие флажки даталинкам).
    Изменены: RowCommandAccessHandlers, TableBrowser, TextBox.
    30.12.2010 М.А.Степанов
 P> Код задачи 19339.
    + Добавлена возможность выполнить "защиту" элементов слияния посредством
      указания алиасов в атрибуте attr_ProtectedAliases экземпляра TDataSet,
      чтобы "защищённые" слияния не разрывались при изменении представления.
    - В tTable.AddTable при создании групповой записи подливаемая таблица
      добавлялась с пустым алиасным именем вместо заданного параметром Alias.
    Изменены: DBGridLayout, SdbVcl, table.
    30.12.2010 А.В.Соса
  * Пустые (не содержащие ни одного видимого элемента) выпадающие меню теперь
    не отображаются.
    Изменены: TB2Item, TBX.
    Добавлены: TB2Item.pas.orig, TBX.pas.orig, TB2Toolbar.pas.orig.
    30.12.2010 А.В.Соса
  - Код задачи 21191. Устранено "застревание" курсора в поле ввода номера записи,
    а также устранён спецэффект с нажатием кнопки сохранить из поля ввода номера
    записи.
    Изменены: form_DataCahnge.
    28.12.2010 А.Б.Хах
  - Код задачи 21095. Теперь можно отредактировать значение булевского поля с
    первого клика, а также, при отмене изменений, произведенных в записи, вместе
    с перемещением "пимпочки" перемещается и фокус.
    Изменены: DBEditFrame, DBInputMethods, SControls.
    28.12.2010 А.Б.Хах
  - Код задачи 21156. Для правильного докирования окна полной информации
    флаги выставляются посредством функции MakeFormDockable.
    Изменены: FullInfo.
    28.12.2010 А.Б.Хах
  > Код задачи: 21200. Контроль составного ключа:
    - При нахождении дубликатов возникало исключение "Попытка добавить не
      существующий запрос...".
    - Контроль составного ключа производился и при удалении тоже.
    Изменены: CompoundError, SDBVCL, SDBUtils.
    28.12.2010 М.А.Степанов
  - Код задачи 21223. При закрытии формы ввода с вложенным разделом происходило
    исключение - исправлено.
    Изменены: ExtCtrls.
    28.12.2010 В.В.Тыщенко
  - Код задачи 21217. Функция FindAliasField возвращала индекс поля начиная с 1.
    Изменены: password, htdescr.
    27.12.2010 А.Б.Хах
  - Код задачи 21207. Увеличина минимальная высота ScrollBox`ов. Исправлено
    поведение TSplitter`а.
    Изменены: form_DataCahnge, FormResizer, ExtCtrls.
    27.12.2010 В.В.Тыщенко
  * Код задачи 21192. Обеспечена автоматическая передача фокуса в поле
    редактирования текстовых бинарных данных при открытии новой формы.
    Изменены: DBEditFrame, DBInputCustomBLOB, DBInputMethods, form_DataCahnge,
      SDBGrid, SVCLUtils, TextBox.
    24.12.2010 А.Б.Хах
  - Код задачи 20858. ParentFont у части фрейма тех. информации был выставлен в False,
    в связи с чем последняя отражалась некорректно - исправлено.
    Изменены: frame_TechData.xml.
    24.12.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.255 от 23.12.2010
-------------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  21.12.2010 А.Б.Хах
  ----------------------------------------------------------
 P* Код задачи 21196. В стандартную форму приложения добавлено соединение и
    действия по LogOut при закрытии формы.
    Изменены: StdMainForm, OraLogin.
    21.12.2010 А.Б.Хах

    Адаптация: Перекрыть метод CreateDBC в потомке TStdMainForm и вернуть в нем
    "основное" соединение с БД. Удалить обработчик, установленный на закрытие
    формы, который осуществляет выход пользователя (LogOut) из БД. Удалить
    обработчик события app_DataBaseConnection.
                                   * * *

  - Код задачи 21197. Не было реакции на смену DataSet`а у просмотрщика бинарных
    данных - исправлено.
    Изменены: DataSourceInspector, DBInputCustomBLOB.
    22.12.2010 В.В,Тыщенко
  - Перечислители TFieldSpecEnumerator, TTableSpecEnumerator,
    TDomainSpecEnumerator начинали обработку соотвтствующих последовательностей,
    начиная со второго элемента - исправлено.
    Изменены: DBSchemaIntf.
    21.12.2010 С.Н.Штуркин
                                 --- * ---

DSP v3.0.254 от 21.12.2010
-------------------------------

<Новое санкционирование>

  14.12.2010 А.Б.Хах
  ----------------------------------------------------------
 B* Код задачи 21088. Для проверки дублирования теперь можно передавать запрос.
    Можно передать свое сообщение, которое будет показано в окне о дублировании,
    для любого контроля составного ключа.
    Изменены: AuthCommon, AuthHandlers, CompoundError, SonarDBIntf, DBObjects,
      DBRecordBrowser, SDBVCL, SDBOracle.
    14.12.2010 А.Б.Хах

    Адаптация. Функции GetPhysNum и AddRecByPhysNum интерфейса ISonarDataSet
    переименованы в GetRecId и AddRecByRecId соответственно, и вынесены в
    отдельный интерфейс IDataSetRecId. Свойство PhysNum удалено.
                                   * * *

  * Код задачи 20432. Произведен возврат "старого" санкционирования.
    20.12.2010 А.Б.Хах
  - Код задачи: 21128. Применение прав на алгоритмы: при проверке прав на
    пункты меню могли исчезать меню построеные по таблице DESKMENU.
    Изменены: StdMainForm, SVCLCommon_cnstr.
    15.12.2010 М.А.Степанов
  * Код задачи: 20671. Применение прав: Поведение в случае если все пункты
    в подменю недоступны сделано таким же как и в случае если их нет, т.е.
    выводится: (Пусто).
    Изменены: DeskMenu.
    14.12.2010 М.А.Степанов
 B- Код задачи 21108. Проявление: В "Легенде" при выходе из карточки
    абстрактной части объекта учёта в раздел "Лицо" происходила "Не удалсь
    извлечь сведения о параметрах поля записи IntRec."
    P: Если при выходе в раздел строился объект БД, основывающийся на
       поданном DataSet-е, происходила означенная ошибка.
    Изменены: Sections.
    13.12.2010 Д.И.Кобрусев
                                 --- * ---

DSP v Санкц.-18 от 10.12.2010
-----------------------------

  - Код задачи 20929. Поправлена часть фрейма тех. данных, которая добавляется в
    таблицы санкционирования.
    Изменены: frame_AuthTechData.
    08.12.2010 А.Б.Хах
                                 --- * ---

DSP v Санкц.-17 от 08.12.2010
-----------------------------

DSP v Санкц.-16 от 01.12.2010
-----------------------------

 P- Код задачи 20972. Проверка наличия у пользователя прав на таблицу
    получала имя таблицы через интерфейс ISonarDataSet.
    Изменены: RowCommandAccessCheckers.
    01.12.2010 Д.И.Кобрусев
 P- Код задачи 20946. Настройка фрейма тех. информации получала имя
    таблицы через интерфейс ISonarDataSet.
    Проявление: Карточки, построенные на объект БД не открывались,
      происходила ошибка: "Набор данных TDBObject не поддерживает
      интерфейс ISonarDataSet."
    Изменены: AuthFormH.
    01.12.2010 Д.И.Кобрусев
                                 --- * ---

DSP v Санкц.-15 от 30.11.2010
-----------------------------

 P* Адаптированы изменения в субъектах права: если запрещен просмотр в
    таблице, то запрещено и редактирование.
    Изменены: Sections, RowCommandAccessHandlers.
    29.11.2010 М.А.Степанов
                                 --- * ---

DSP v Санкц.-14 от 19.11.2010
-----------------------------

  - Код задачи 20869. По непонятным причинам, при слиянии изменений из основной
    ветви были потеряны изменения, проделанные по задаче 20678.
    Изменены: SDBGrid.
    19.11.2010 А.Б.Хах
  * Код задачи: 20817. Открытие списка таблиц (Ctrl-Alt-T): пункт доступен
    только если есть право на него, добавлена фильтрация списка в
    соответствии с правами пользователя.
    Изменены: dm_ServiceMenu.xml, StdMainForm, TableChoice,
    rightsimpl.sql, rightsintf.sql, SVCLOracle_cnstr.
    Добавлены: AuthOraChoiceTable.
    18.11.2010 М.А.Степанов
  * Санкционирование под Oracle: вместо поля Логин используется
    СистПароль.
    Изменены: AuthGenProc, rightsimpl.sql.
    18.11.2010 М.А.Степанов
  * Код задачи: 20848. Не применялись права на редактирование таблицы.
    P: Изменена константа actsubj_Edit.
    Изменены: AuthConst.
    18.11.2010 М.А.Степанов
                                 --- * ---

DSP v Санкц.-13 от 16.11.2010
-----------------------------

  * Код задачи 20830. Выдача сообщения о пустоте роли теперь выдается при
    закрытии формы (нажата кнопка сохранить или Enter).
    Изменены: AuthFormH, AuthHandlers.
    16.11.2010 А.Б.Хах
  - Код задачи: 20827. В карточках исчез список разделов.
    Изменены: SectionList, Sections.
    15.11.2010 М.А.Степанов
 P* Код задачи: 20816. Применение прав: при открытии карточки на просмотр
    применяется субъект "просмотр в листалке".
    Изменены: RowCommandAccessCheckers.
    13.11.2010 М.А.Степанов
  * Код задачи 20831. Изменена последовательность перехода в карточке ролей.
    Изменены: frame_Role.xml
    15.11.2010 А.Б.Хах
                                 --- * ---

DSP v Санкц.-12 от 13.11.2010
-----------------------------

  * Поле содержащее логин пользователя теперь называется "СистПароль" (ранее
    было "Логин").
    Изменены: SDBConst.
    13.11.2010 А.Б.Хах
  * Код задачи: 20816. Применение прав: удалена обработка субъекта
    "просмотр в карточке", вместо него используется субъект "просмотр в
    листалке".
    Изменены: AuthConst, RowCommandAccessCheckers, Sections.
    13.11.2010 М.А.Степанов
                                 --- * ---

DSP v Санкц.-11 от 13.11.2010
-----------------------------

  + Код задачи 19500. Карточка роли. Добавлена проверка при вводе и
    редактировании, что роль не пуста (содержит или элементарные права,
    или подроли).
    Изменены: AuthHandlers.
    12.11.2010 Д.И.Кобрусев
  * Код задачи 20762. Увеличена ширина карточки роли.
    Изменены: frame_Role.xml.
    11.11.2010 Д.И.Кобрусев
  * Код задачи: 20329. Применение прав: пункты меню листалки "Выбрать"
    и "Ограничения" соответствуют одному субъекту права, добавлена
    отработка прав на пункты меню:
    Файл/Редактировать, Файл/Новый, Файл/Просмотр,
    Сервис/Архивация протокола программы, Сервис/Удалить временные файлы,
    Сервис/Сохранённые выборки.
    Изменены: dm_FileMenu.xml, dm_ServiceMenu.xml, frame_TableBrowser.xml,
    dm_HTMiscMenu.xml.
    09.11.2010 М.А.Степанов
                                 --- * ---

DSP v Санкц.-10 от 09.11.2010
-----------------------------

 P* Код задачи 20732. Добавлена возможность перекрывать методы проверки,
    есть ли такое-то право у пользователя.
    Изменены: AuthCommon.
    02.11.2010 Д.И.Кобрусев
  + Код задачи 20696. Контроль целостности таблиц санкционирования.
    Добавлена проверка наличия записей локального администратора в БД
    регионального (все такие записи удаляются).
    Изменены: AuthHyTechSft.
    25.10.2010 Д.И,Кобрусев
  * Код задачи 20643. Контроль целостности таблиц санкционирования.
    Изменено требование переустановить БД: теперь при этом удаляется
    содержимое всех ролей разработчика, и проверка прерывается.
    Изменены: AuthHyTechSft.
    22.10.2010 Д.И,Кобрусев
 P- Код задачи 20681. Проверка несвязанных абстрактных частей объектов
    действия. Не освобождалась таблица.
    Ошибка не проявлялась; очевидно, благодаря автоматическому закрытию
    объектов по БД.
    Изменены: AuthHyTechSft.
    15.10.2010 Д.И.Кобрусев
  * Код задачи 20638. Карточка роли. При вводе применение
    предустанавливается в "специальная".
    Изменены: AuthHandlers.
    12.10.2010 Д.И.Кобрусев
  - Код задачи 20616. Проверка целостности таблиц санкционирования.
    Проверка названий объектов действия. Если название в абстрактной части
    объекта обрезалось из-за недостаточного размера поля, в протокол
    писалось, что все эти названия исправлены, хотя реально они не
    исправлялись.
    Изменены: AuthHyTechSft.
    11.10.2010 Д.И.Кобрусев
  - Код задачи 20627. Проверка целостности таблиц санкционирования.
    Проверка названия объектов действия. Если производилась корректировка
    названия хотя бы одного объекта-алгоритма или объекта-таблицы,
    происходила ошибка: "Ошибка HyTech. Операнд устарел".
    Изменены: AuthHyTechSft.
    11.10.2010 Д.И.Кобрусев
  > Код задачи 20605. Проверка целостности таблиц санкционирования:
    - Проверка вида объектов действия. Если на абстрактную часть объекта
      действия не ссылалась ни одна конкретная, проверка считала вид этого
      объекта считался некорректным и не исправляла. Теперь проверяются
      только объекты у которых ровно одна конкретная часть (если нет ни
      одной или есть несколько - это нарушения целостности, которые
      обрабатывают другие проверки).
    - Проверка вида объектов действия. Вид исправлялся только у
      объектов-алгоритмов.
    - Проверка названия объектов действия. Если на абстрактную часть
      объекта ссылались несколько конкретных, проверка исправляла его
      название несколько раз, в протокол писалось о нескольких
      исправленных объектах, а при следующей проверке название снова
      считалось некорректным. Теперь проверка не обрабатывает такие
      объекты.
    Изменены: AuthHyTechSft.
    08.10.2010 Д.И.Кобрусев
                                 --- * ---

DSP v Санкц.-9 от 06.10.2010
----------------------------

 P+ Код задачи 20580. Добавлены константы roletype_Report,
    roletype_LocalReport.
    Изменены: AuthConst.
    06.10.2010 Д.И.Кобрусев
 P+ Код задачи 17639. Добавлена процедура контроля целостности таблиц
    нового санкционирования.
    Изменены: SVCLHT.dpk.
    Добавлены: AithHyTechSft.
    04.10.2010 Д.И.Кобрусев
  * Код задачи: 20329. Изменена отработка прав на "просмотр в листалке",
    изменен способ запрета пунктов меню (главного  и локального в
    листалке): пункты скрываются если на них нет прав. Добавлена отработка
    новых прав: Главное меню Сервис/Конфигурация/*, Отчеты/*,Отчеты (RWF)/*,Архивация/*
    Окна/Загрузить,Загрузить во вкладку, Сохранить. Локальное:
    Дублировать, Связь с текстом, Копировать в буфер обмена Windows,
    Изменить параметры, Выбрать, Полная информация.
    Изменены: DBInputMethods, dm_WindowsMenu.xml,  frame_TableBrowser.xml,
      SControls, SDBGrid, SectionList, SectionPageControl, Sections,
      StdMainForm, SVCLCommon_cnstr, SVCLCommon_Registration, TableBrowser,
      dm_ArchivationMenu.xml, dm_ConfigMenu.xml, dm_ReportsMenu.xml,
      HTMenus, frame_LocalMenuEx_TableBrowser.xml.
    01.10.2010 М.А.Степанов
                                   --- * ---

DSP v Санкц.-8 от 01.10.2010
----------------------------

  * Код задачи 20448. Карточка роли. В листалку подролей добавлено поле вида роли.
    Изменены: frame_Role.
    30.09.2010 Д.И.Кобрусев
  * Код задачи 20419. Полностью переделан алгоритм сбора прав роли, старый
    работал очень медленно.
    Изменены: AuthHyTech.
    24.09.2010 Д.И.Кобрусев
                                 --- * ---
</Новое санкционирование>

DSP v3.0.254 от 20.12.2010
--------------------------

  - Код задачи 21185. Не учитывались Margins при расчёте оптимальных размеров - исправлено.
    Изменены: FormResizer, form_RegValueEditor.xml.
    20.12.2010 В.В.Тыщенко
  - Код задачи 20705. В листалке отключена реакция на Shift+Ins.
    Изменены: SDBGrid.
    20.12.2010 В.В.Тыщенко
  - Код задачи 20957. Не учитывалась длина заголовка формы при масштабировании -
    исправлено.
    Изменены: FormResizer, SVCLFormH, JvCaptionButton.
    20.12.2010 В.В.Тыщенко
  * Код задачи 21098. При валидации записи, если не прошла валидация поля, то
    производится передача фокуса на это поле.
    Изменены: FieldValidator.
    17.12.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.253 от 17.12.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  14.12.2010 А.Б.Хах
  ----------------------------------------------------------
 B* Код задачи 21088. Для проверки дублирования теперь можно передавать запрос.
    Можно передать свое сообщение, которое будет показано в окне о дублировании,
    для любого контроля составного ключа.
    Изменены: AuthCommon, AuthHandlers, CompoundError, SonarDBIntf, DBObjects,
      DBRecordBrowser, SDBVCL, SDBOracle.
    14.12.2010 А.Б.Хах

    Адаптация. Функции GetPhysNum и AddRecByPhysNum интерфейса ISonarDataSet
    переименованы в GetRecId и AddRecByRecId соответственно, и вынесены в
    отдельный интерфейс IDataSetRecId. Свойство PhysNum удалено.
                                   * * *

  - Код задачи 20914. Не ограничивалась высота автосоздаваемой формы, из-за чего
    она после масштабирования не помещалась на экран - исправлено. Не производилось
    изменение позиции формы выбора поля в редакторе запросов после масштабирования -
    исправлено.
    Изменены: form_DataCahnge, ReqFieldViewer.
    17.12.2010 В.В.Тышенко
  - Код задачи: 21153. При сохранении ведущей записи не обновлялись
    подчиненные листалки.
    Изменены: MasterDetail.
    17.12.2010 М.А.Степанов
  - Код задачи 21141. В поля фрейма тех. информации не загружались сохраненные
    настройки полей.
    Изменены: TechDataFrame.
    16.12.2010 А.Б.Хах
  * Код задачи 20668. В окне выбора полей запроса добавлено локальное меню
    с действием "Разрешить несовпадение имён" в дереве полей и таблиц;
    изменён способ скрытия строки заголовка (фрейм с деревом и т.п. вставляется
    в пустую форму без строки заголовка).
    Удалены: frmSelectFields.xml
    Добавлены: frame_SelectFields.xml
    Изменены: ReqFieldViewer.
    16.12.2010 А.В.Соса
  - Исправлена ошибка в адаптации к TSImageList, из-за которой не загружалась
    форма frmJoinDesigner.
    Изменены: frmJoinDesigner.
    16.12.2010 А.В.Соса
  * Код задачи 20810. Команды в локальном меню редактора запросов приведены в
    соответсвие с командами на панели инструментов.
    Изменены: frmReqTree.xml.
    15.12.2010 А.Б.Хах
  * Код задачи 20541. При обновлении ведущей листалки инкрементный поиск теперь
    сбрасывается.
    Изменены: TableBrowser, SDBGrid.
    15.12.2010 А.Б.Хах
  - Код задачи 21148. В случае, если дублирующие записи не найдены, то запрос на
    дублирование не освобождался.
    Изменены: CompoundError.
    15.12.2010 А.Б.Хах
  - Код задачи 21126. Технические поля, которых нет в таблице, не показываются.
    Изменены: TechDataFrame.
    15.12.2010 А.Б.Хах
  - Код задачи 21121. Исправлена процедура AssignObjRef: не снимался обработчик на
    закрытие наблюдаемого при его замене.
    Изменены: SonarCore.
    15.12.2010 В.В.Тыщенко
  - Код задачи 19260.
 P: Если функция GetNetAddrDir вернула False, то контроль составного ключа на
    таблицу Users не будет установлен, а функция GetNetAddrDir работает только
    когда соединение уже установлено.
    Изменены: SVCLHT_cnstr0.
    15.12.2010 А.Б.Хах
  - Код задачи 21040. Если в пути к файлу запроса был пробел, то происходила
    ошибка и сохранить запрос было нельзя.
    Изменены: ReqDesigner, frmReqSave.xml, frmReqLoad.xml.
    15.12.2010 А.Б.Хах
  * Код задачи 20671. Меню строящееся по таблице DESKMENU: Если в меню нет
    пунктов то вместо "Empty" выводится "Пусто".
    P: Изменена константа STBXAutoEmptyItemCaption: русифицирована.
    Изменены: TBXConsts.
    14.12.2010 М.А.Степанов
  - Авторазмер колонок некорректно срабатывал при изменении представления
    (минимизировались ширины большинства колонок) в случаях, когда при этом
    требовалось перестроить датасет (т.е. изменялся набор слияний).
    Изменены: SDBGrid, TableBrowser.
    14.12.2010 А.В.Соса
  * Код задачи 21097. Убран запрет оптимизации размеров для диалоговых форм.
    Изменены: forms, form_CompressionOptions.xml, form_DecompressionOptions.xml.
    13.12.2010 В.В.Тышенко
  + Создан TSImageList - cписок изображений с возможностью загрузки их по
    идентификатору ресурса. Добавлена поддержка загрузки графических ресурсов
    в формате PNG. TSImageList теперь используется вместо TJvImageList.
  * Функция LoadBitMap перенесена в модуль SImageList и теперь работает
    через событие app_LoadBitMapData.
    Добавлены: SImageList.pas.
    Удалены: JvImageList.pas.
    Изменены: DBGridLayout, DBInputMethods, DBObjectChoice, SVclCommon.dpk,
      form_DBGridLayout.xml, frame_InputCustomBLOB.xml, frame_SectionList.xml,
      frame_SectionPageControl.xml, frmIntRec.xml, frmJoinDesigner.xml,
      frmReqTree.xml, frmSelectFields.xml, form_ReportCreateDialog.xml,
      form_ReportDesigner.xml, form_SelectDataSet.xml, sortdialog.xml,
      nodes.xml, IntRecDesigner, JoinDesigner, ReqDesigner, ReqFieldViewer,
      SectionList, SectionPageControl, SValidators, SVCLCommon_Registration,
      SVCLFormH, DesignDialogs, ReportComponents, ReportDesigner,
      ReportVisualiser, jvcl.dpk, jvcl_registration.
    10.12.2010 А.В.Соса
 B- Код задачи 21108. Проявление: В "Легенде" при выходе из карточки
    абстрактной части объекта учёта в раздел "Лицо" происходила "Не удалсь
    извлечь сведения о параметрах поля записи IntRec."
    P: Если при выходе в раздел строился объект БД, основывающийся на
       поданном DataSet-е, происходила означенная ошибка.
    Изменены: Sections.
    13.12.2010 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.252 от 10.12.2010
--------------------------

  - Код задачи 21018. Запрос на повторяемость с сортировкой мог приводить
    к ошибке [AnyDAC][Phys][Ora] ORA-03113: принят сигнал конца файла по
    коммуникационному каналу.
    P: для обхода ошибки вместо конструкции group by в запросах
    используется аналитическая функция.
    Изменены: ReqConv.
    09.12.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.251 от 09.12.2010
--------------------------

  * Изменён файл WindowsXP.Manifest для работы с python 2.7.
    Изменены: WindowsXP.Manifest.
    09.12.2010 В.В.Тыщенко
  - Д.И.Кобрусев: Если базовый набор данных объекта БД оказывался слитым, то при
    попытке создания полей объекта происходило исключение - теперь поля объекта
    строятся только для основной (на "подлитой") части базового набора данных
  - С.Н.Штуркин: При построении полей объекта БД флаг обязательности сбрасывается
    для зависимых полей *частей*, являющихся *деталями* в *связях*
    Изменены: DBObjects.
    08.12.2010 А.Б.Хах
  * Код задачи 20850. Запросы из меню обстановок навешиваются штатным образом,
    и относятся теперь к категории "временных" запросов.
    Изменены: TempRequests, deskmenuexec, SVCLCommon.dpk, svcl_cnstr.
    Удалены: OraExtReq.
    08.12.2010 А.Б.Хах
  * Код задачи 20499. Для полученной при поиске выборки строится "временный"
    запрос. И он не пропадает при всяком обновлении выборки, а удаляется в
    только строго определенных местах.
    Добавлено: TempRequests.
    Изменены: DBInputCustomBLOB, MasterDetailHandlers, SonarDBIntf, StdMainForm,
      SVCLUtils, TableBrowser, DBMemoSearch, ReportDesigner.
    08.12.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.250 от 07.12.2010
--------------------------

 P* Код задачи: 21039. Добавлено событие app_GetProjectNameForDeskMenuLimit:
    получение имени проекта по которому ограничивается DESKMENU.
    Изменены: DeskMenu.
    07.12.2010 М.А.Степанов
  - Код задачи 21037.
   P: В TSection_RequestLimited.OpenDataSet не инициализировался Result, из-за
      чего, в случае отсутствия соединения, возвращалось "нечто" (в данном
      случае TSectionList, который потом уничтожался).
    Изменены: Sections.
    07.12.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.249 от 07.12.2010
--------------------------

  - Код задачи 21031. При нажатии на кнопку отмены в прогрессе из-под Питона
    показывалось исключение exceptions.RuntimeError: TPythonEngine.SetAttr -
    исправлено.
    Изменены: PyApp.
    07.12.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.248 от 07.12.2010
--------------------------

  - Код задачи 20596. Вызов Locate открывал набор данных до того, как
    установлены все запросы. Это приводило к срабатыванию фонового обработчика,
    который выполняет запросы отложено, из-за чего было видно "моргание"
    листалки.
    Изменены: SVCLCommon_cnstr.
    06.12.2010 А.Б.Хах
  - Код задачи 21003.
   P: В SaveLayout после адаптации задачи 20899 осталось неверное условие.
    Изменены: LayoutManager.
    03.12.2010 А.Б.Хах
 P> Объекты БД:
    - TDBObject.Reset: список листовых узлов графа частей объекта БД собирался
      неверно (выявилось при попытке подключения Денисом OB_D_DOP в абстрактную
      часть Лица) - исправлено
    - DBObject.ExecDataChangeCommand: при добавлении, в случае, если одна часть
      объекта являлась источником ключа для нескольких других (например, A_OBJECT
      для O_LICO и OB_D_DOP), оказывалось, что метод Post для набора данных этой
      части мог вызываться более одного раза - исправлено
    - Проверка наличия данных в поле (TField.IsNull) для полей объекта для
      значений, считающихся у нас пустыми (0 и т.п.), возвращала, что данные
      есть.
    Изменены: DBObjects.
    03.12.2010 С.Н.Штуркин (внёс Д.И.Кобрусев)
 P- Код задачи 20988. Редактор поля типа дата. Введённое значение
    сохранялось в поле после ухода фокуса с видимого элемента, а не до,
    как в других аналогичных компонентах.
    Проявление: При проверке значения поля при помощи объекта-наследника
      TFieldValidator в метод проверки передавалось старое значение
      (которое было в поле, когда пользователь вошёл в редактор поля).
    Изменены: JvDBDatePickerEdit.
    02.12.2010 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.247 от 02.12.2010
--------------------------

  - Код задачи 20955. В TestTypeDataSetField не учитывался случай, когда
    описатель поля получить не удалось.
    Изменены: ReqUtils.
    01.12.2010 А.Б.Хах
 P- Код задачи 20964. Конвертация даты из формата Delphi в наш формат
    конвертировала нулевую дату в ненулевую.
    Изменены: SonarSys.
    01.12.2010 Д.И.Кобрусев
 P- Код азадчи 20946. Установка умолчаний для полей (preset-ов) брала
    имена полей из структуры БД, а не из DataSet-а.
    Изменены: SVCLCommon_cnstr.
    01.12.2010 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.246 от 01.12.2010
--------------------------

  - Для старта Питона требовался python27.zip - убрано.
    Изменены: pyutils, PyCnstrCommon.
    01.12.2010 В.В.Тыщенко
  - Код задачи 20876. Если изменить что-либо в представлении, в колонках вместо
    выравнивания по умолчанию устанавливалось выравнивание по левому краю.
    Изменены: SDBGrid.
    30.11.2010 А.В.Соса
  - Код задачи 20920. Исправлена установка фокуса при показе обстановки.
    Изменены: SVCLCommon_cnstr.
    29.11.2010 В.В.Тыщенко
  * Код задачи 20904. Поддержана корректная работа запросов с объектами БД.
    Изменены: SDBAPI, ReqUtils, DsLimit, SControls, SDataSet, SVCLCommon_cnstr0,
      DBObjects.
    29.11.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.245 от 29.11.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  29.11.2010 В.В.Тыщенко
  ----------------------------------------------------------
   P* Код задачи 20544. Обновлён PythonEngine.
    Изменены: каталог Common\Python.
    29.11.2010 А.Б.Хах, В.В.Тыщенко

    Адаптация: Штатной версией Питона считается версия 2.7.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  26.11.2010 А.Б.Хах
  ----------------------------------------------------------
   P* Код задачи 20893. Изменено событие построения фрейма тех. информации: теперь
      фрейм в обработчиках не строится, а настраивается.
    Изменены: form_DataChange, frame_TechData.xml, TechDataFrame.
    26.11.2010 А.Б.Хах

    Адаптация:
      В тех местах, где фрейм тех. информации строился нужно не строить, а
    настраивать переданный.
                                   * * *

  > Код задачи 20544.
    P+ Реализована дешифрация коротких данных.
    P+ Добавлено получение значения поля как TDate/TTime.
    Изменены: DBDItems, cryptapi, SDBUtils.
    29.11.2010 В.В.Тыщенко, А.Б.Хах
  - Код задачи: 20903. Если листалка должна закрываться по Enter: как
    например листалка выбора таблицы (Ctrl-Alt-T), то по Enter она вначале
    переходила в режим блочного редактирования, и только потом
    закрывалась.
    Изменены: SVCLFormH.
    26.11.2010 М.А.Степанов
  - Код задачи 20665. Неверно читались значения из строковых полей проектной
    конфигурации - исправлено.
    Изменены: fconfig.
    26.11.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.244 от 26.11.2010
--------------------------

  - Код задачи 20900. Восстановлена предустановка полей типа indDate при добавлении
    новой записи.
    Изменены: SVCLCommon_cnstr.
    26.11.2010 В.В.Тыщенко
  > Код задачи 20899.
   P* Для получения и установки имени таблицы применены функции GetTableName и
      SetTableName. Ввиду этого, если интерфейс IDataSetWithConnection не
      поддерживается, то будет взводиться исключение, тогда как раньше код
      "молча" не работал.
   P* Там где это возможно, использование интерфейса ISonarDataSet заменено на
      использование IDataSetWithConnection.
    25.11.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.243 от 25.11.2010
--------------------------

  * Код задачи 20884. Убрано отключение авторазмера колонок при загрузке
    обстановок в случае, если для колонок не хватает места по ширине.
    Изменены: TableBrowser.
    24.11.2010 А.В.Соса
 P- Код задачи 20862. Если в _SetFieldData в качестве данных передавали nil, то
    происходило EAV.
    Изменены: DBObjects.
    24.11.2010 А.Б.Хах
  - Код задачи 20888. При нажатиях кнопок "Удалить данные" и "Загрузить из
    файла" (панели инструментов для изменения бинарных данных) становилась
    активной кнопка отмены изменений, даже если пользователь
    в диалоговом окне отказывался от выполнения действия.
    Изменены: DBInputCustomBLOB.
    23.11.2010 А.В.Соса
  - Код задачи 20887. При переходе по записям лишний раз происходило
    обновление данных в полях ввода.
    Изменены: form_DataChange.
    23.11.2010 А.В.Соса
  - Код задачи 20886. Во время подбора ширин колонок теперь отключается
    обновление листалки.
    Изменены: SDBGrid.
    23.11.2010 А.В.Соса
  > Код задачи 20862.
   P- Не вызывался Loaded загружаемых компонентов.
   P* Поддержана функция ExtractConnection для DBObject.
    Изменены: ContentLoader, SControls, DBObjects.
    23.11.2010 А.Б.Хах, С.Н.Штуркин.
 P* Код задачи 20869. Применение представления сетки производится только если
    изменились слияния.
    Изменены: DBGridLayout, SDBGrid, TableBrowser.
    19.11.2010 А.Б.Хах
  - Код задачи: 20872. Адаптапция из DSP 2.6: Если имя принтера по
    умолчанию было больше 80 символов, то при печати из препросмотра
    возникала ошибка "Не установлен принтер по умолчанию".
    Изменены: Printers2.
    19.11.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.242 от 19.11.2010
--------------------------

  * Код задачи 20222. В локальное меню дизайнера запросов добавлен элемент
    "Показывать опции Oracle", при включенном состоянии которой
    для логических запросов с условием "хотя бы одно из условий
    выполнено", "ни одно из условий не выполнено" можно указать
    опцию "Не выполнять перебор записей". Использование опции
    "Не выполнять перебор записей" в ряде случаев позволяет ускорить
    выполнение запросов под Oracle.
    Изменены: reqapi, reqconst, requests, frmReqTree.xml, ReqDesigner,
      ReqEditor, ReqTree, reqfactory, SVCLCommon_Registration,
      Reqconv.
    Добавлены: frame_Reqoptions.xml
    12.11.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.241 от 12.11.2010
--------------------------

  - Код задачи 19793. Исправлено поведение мультивыбора и листалки-раздела при
    двойном клике.
    Изменены: HandleRowCommands, Sections, SVCLFormH, TableBrowserForms.
    11.11.2010 В.В.Тыщенко
  * Код задачи 20734. Компоненты для предпросмотра бинарных данных перенесены
    в модуль DBInputCustomBLOB.
    Изменены: DBInputMethods, SControls, SVCLCommon_Registration, TextBox,
    frame_DBInputBLOB.xml, frame_DBInputMemo.xml, frame_InputCustomBLOB.xml,
    frame_DBMemoController_Actions.xml, SVCLCommon.dpk.
    Добавлены: DBInputCustomBLOB.
    11.11.2010 В.В.Тыщенко
  - Код задачи 20795. Исправлена ошибка в реализации задачи 20714 (Access
    Violation при загрузке некоторых обстановок, в частности, UTRNO_TO.WDS).
    Изменены: SDBGrid.
    11.11.2010 А.В.Соса
  - Код задачи 20771. Проявление: Утилита редактирования ролей локального
    администратора. Если для пользователя была задана обстановка,
    загружаемая по умолчанию, она частично загружалась - появлялись окна
    под листалки (но не сами листалки) - сразу после появления окна "Добро
    пожаловать...", накрывая это окно. До закрытия этого окна (оно
    модальное) программа не реагировала на мышь и клавиатуру. Чтобы его
    закрыть, надо было перейти в другую программу и потом назад в эту;
    тогда оно оказывалось сверху, и его можно было закрыть, как обычно.
    Изменены: SVCLUtils.
    10.11.2010 А.Б.Хах, внёс Д.И.Кобрусев
 P* Код задачи 20788. THTMiscMenu константы с именами action-ов вынесены в
    интерфейсную часть модуля.
    Изменены: HTMenus.
    10.11.2010 Д.И.Кобрусев
  > Код задачи 20714.
    * При подборе ширин колонок теперь не учитывается текст в заголовке столбца (название поля).
    - При изменении шрифта менялись размеры колонок.
    * Авторазмер теперь использует относительные ширины колонок, которые пересчитываются
      при "ручном" изменении ширины одной из них.
    Изменены: SDBGrid, JvDBGrid.
    09.11.2010 А.В.Соса
                                 --- * ---

DSP v3.0.240 от 09.11.2010
--------------------------

  - Код задачи 20575. Нестабильная ошибка в oracrimesetup,
    проявление которой - утечка памяти в oracrimesetup
    с экземпляром класса TADTimerPool, несанкционированный
    доступ при завершении работы.
    P: Версия AnyDac обновлена до 4.0.4.1545
    Изменены: модули anydac, sdboracle
    02.11.2010 И.В.Ковалев
  - Код задачи 20731. При попытке открыть во внешнем редакторе содержимое BLOB-поля
    когда у таблицы нет поля "Расширение", происходил EAV - исправлено. Изменен
    состав фреймов, отвечающих за работу с BLOB-полями.
    Изменены: TextBox, SControls, frame_InputCustomBLOB.xml, frame_DBInputBLOB.xml.
    01.11.2010 В.В.Тыщенко
  - Код задачи 20718. В работе OLE DB была завязка на структуру базы - убрано.
    Изменены: SVCLCommon.dpk, SVCLCommon_cnstr, SVCLHT.dpk, SVCLHT_cnstr,
    htSQLOLE, OLEDBProv.
    Добавлены: SVCLCommon_cnstr0, SVCLHT_cnstr0.
    27.10.2010 В.В.Тыщенко
  - Код задачи 20720. Не отрисовывалась рамка формы (если форма сожержит компонент
    TDBRadioGroup) - исправлено.
    Изменены: SControls.
    27.10.2010 В.В.Тыщенко
  - Код задачи 20706. При закрытии приложения с активным инкрементным поиском на
    неактивной вкладке происходило исключение 'Cannot focus a disabled or invisible
    window' - исправлено.
    Изменены: SDBGrid, SVCLUtils.
    25.10.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.239 от 19.10.2010
--------------------------

  + Код задачи 20533. Добавлена функциональность по работе с вкладками в
    главном окне приложения.
    Изменены: Desktop, MultiTabbedDesktop, StdMainForm, form_StdMainForm.xml,
    dm_WindowsMenu.xml.
    22.10.2010 В.В.Тыщенко
  - Код задачи 20691. Изменён алгоритм реализации задачи 20691.
    Изменены: DBInputMethods.
    21.10.2010 В.В.Тыщенко
  - Код задачи 20677. Не масштабировался TDBRichViewEdit - исправлено.
    Изменены: DBInputMethods, frame_DBInputMemo.xml.
    20.10.2010 В.В.Тыщенко
  - Код задачи 20691. Происходило исключение "Индекс списка вне границ" при отмене
    изменений в редакторе Memo полей - исправлено.
    Изменены: DBInputMethods.
    20.10.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.238 от 19.10.2010
--------------------------

  - Код задачи 20689. Исправлено поведение DBObjectChoice`а после выбора значения.
    Изменены: DBObjectChoice.
    19.10.2010 В.В.Тыщенко
  - Код задачи 20676. При нажатии на кнопку "Добавить запись" в разделе карточки
    записи происходил EAV - исправлено.
    Изменены: Sections.
    19.10.2010 В.В.Тыщенко
  - Код задачи 20653. При удалении связной таблицы в "Ограничениях на таблицы
    запроса" происходил EAV - исправлено. В выборках внутри условия добавлен
    пункт условия "поле из связи".
    Изменены: ReqDesigner, JoinDesigner.
    19.10.2010 В.В.Тыщенко

                                 --- * ---

DSP v3.0.237 от 18.10.2010
--------------------------

  - Код задачи 20659. Неверно визуализировалось значение булевского поля - исправлено.
    Изменены: SControls.
    18.10.2010 В.В.Тыщенко
  - Код задачи 20678. После применения запроса очищалось представление листалки -
    исправлено.
    Изменены: SDBGrid.
    15.10.2010 В.В.Тыщенко
  - Код задачи 20411. При попытке посчитать сумму полей под Oracle постоянно
    выдавалось сообщение "Функциональность находится в реализации" - исправлено.
    Изменены: StdMainForm, SVCLUtils, TableBrowser, sdboracle.
    15.10.2010 В.В.Тыщенко
  - Код задачи 20600. При отмене всех изменений в TextBox`е выводилось сообщение
    с предложением сохранить данные - убрано.
    Изменены: DB, TextBox, SVCLCommon.dpk.
    Добавлены: DataSourceInspector.
    13.10.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.236 от 13.10.2010
--------------------------

  - Код задачи 20652. Под Oracle не применялось изменение представления - исправлено.
    Изменены: SDBGrid, TableBrowser.
    13.10.2010 В.В.Тыщенко
  - Код задачи 20623. Из-за строки encoding требовалось наличие стандартных
    библиотек (stdlib.zip либо установленного Python'а). В случае их отсутствия
    возникала ошибка. Чтобы stdlib.zip не стал обязательным, было решено
    отказаться от использования строк encoding.
    Изменены: RWFExec, PyUtils.
    11.10.2010 А.Б.Хах
  - Код задачи 20625. Исправлена установка фокуса при показе обстановки.
    Изменены: SVCLCommon_cnstr.
    11.10.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.235 от 08.10.2010
--------------------------

  - Код задачи 19978. Допускалось существование 2х параметров с одинаковым
    именем - исправлено.
    Изменены: IntRecDesigner.
    08.10.2010 В.В.Тыщенко
  - Код задачи 20610. При шифровании пустой строки происходил EAV - исправлено.
    Изменены: cryptapi.
    08.10.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.234 от 08.10.2010
--------------------------

  - Код задачи 20609. Убран потенциальный EAV при загрузке представления без
    списка разделов для формы со списком разделов.
    Изменены: EditFormLayout.
    08.10.2010 В.В.Тыщенко
 P* Код задачи 20595. Использование глобальной переменной SUBD заменено на вызов
    функции GetMainSUBD.
    Изменены: bindata, dbase0, dbase4, dbase5, dbutils, ht_init, OldBinData, phtconst,
    RRequest, restrict, s_index, sdbapi, temptab, transman, password, PySonarDB,
    rwdata, OraUsrReq.
    07.10.2010 В.В.Тыщенко
 P+ Код задачи 20580. Добавлена константа snMENUITEM.
    Изменены: SDBConst.
    06.10.2010 Д.И.Кобрусев
  - Код задачи 20569. Не производилась синхронизация времени - исправлено.
    Изменены: TimeSync.
    06.10.2010 В.В.Тыщенко
  - Код задачи 20569. Исправлена ошибка при открытии одной обстановки с 2х разных
    машин.
    Изменены: dbase5, transman.
    06.10.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.233 от 05.10.2010
--------------------------
  - Код задачи 20527. После исполнения запроса на группировку - "в группе по" -
    в котором используется дерево таблиц (невырожденное, т.е. состоящее не
    только из корня), на выходе из программы не освобождается память.
    Изменены: requests.
    04.10.2010 С.А.Барсуков
  * Код задачи 20550. При наборе текста для инкрементного поиска курсор всегда
    устанавливается в конец поля ввода.
    Изменены: SDBGrid.
    01.10.2010 А.Б.Хах
 P+ Код задачи 20319. К стандартным функциям добавлена MessageDlg, которая
    является оберткой над SonarApp.MessageDlg. Строки в эту функцию нужно
    передавать в кодировке cp866.
    Изменены: RWFExec.
    01.10.2010 А.Б.Хах
  + Код задачи 20534. Добавлена функция, криптующая строку.
    Изменены: CryptAPI.
    01.10.2010 В.В.Тыщенко
  - Код задачи 20519. Панель с кнопками редактирования графических бинарных
    данных была не видна, т.к. накрывалась компонентом, показывающим изображения.
    Изменены: DBInputMethods.
    29.09.2010 А.В.Соса
  + Код задачи 20538. Добавлен запрос о сохранении текста при переходе к
    другой записи.
    Изменены: TextBox, DB.
    29.09.2010 В.В.Тыщенко
  * Код задачи 20539. Поля, у которых отсутствуют флаги оперативного и детального
    просмотра, более не показываются.
    Изменены: FieldViewer.
    29.09.2010 В.В.Тыщенко
  * Код задачи 20511. Текстовые данные и позиция курсора в компоненте
    редактирования текстовых бинарных данных и в окне по F5 синхронизированы.
    Изменены: DBInputMethods, dm_RVActions, frame_DBInputMemo, SDBUtils,
      TextBox, RVEdit.
    27.09.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.232 от 22.09.2010
--------------------------

  - MapToJDBG: Сообщения программы выводились в неверной кодировке - исправлено
    Изменены: MapToJDBG
    20.09.2010 С.Н.Штуркин
  - Код задачи: 20462. Проявление в диалоге проектной конфигурации: если
    сохранить проектную конфигурацию, а затем попытаться её применить, или снова
    сохранить, происходило исключение EDatabaseError с сообщением "Состояние
    набора данных отлично от редактирования или добавления записи." -
    исправлено.
    P: Господа! За что вы не любите метод TDataset.CheckBrowseMode? Хотите
       поговорить об этом? :-) Ведь этот метод гораздо безопаснее вызывать
       вместо TDataset.Post, если вы хотите гарантировать, чтобы проводимые в
       записи изменения были сохранены в наборе данных. Если вызвать Post в
       ситуации, когда набор данных не находится в состоянии добавления или
       корректировки, вы получите исключение с текстом, приводимым выше. А
       CheckBrowseMode выполнит необходимые проверки за вас и, вызовет Post,
       если в этом будет необходимость.
    Изменены: EnterRecord
    20.09.2010 С.Н.Штуркин
                                 --- * ---

DSP v3.0.231 от 15.09.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  14.09.2010 А.Б.Хах
  ----------------------------------------------------------
  * Код задачи 20387. Установка контроля дубликатов в таблице Users производится
    теперь только в HyTech'ой части.
   P: Схема инициализации пакетов приведена в порядок. Теперь при использовании
      cnstr пакета автоматически инициализируются все пакеты, от которых зависит
      используемый.
    Изменены: common.dpk, sonardb.dpk, SonarDB_cnstr, CompoundError,
      FieldValidator, MemoryDataSource, SControls, SDBGrid, SVCLCommon_cnstr,
      SVCLHT, svcloracle.dpk, SVCLOracle_cnstr, svcl_cnstr.
    Переименованы: sonarvcl_cnstr -> SVCLHT_cnstr.
    Удалены: DBCnstr.
    14.09.2010 А.Б.Хах

    Адаптация:
    1. Функциональность DBCnstr перенесена в SonarDB_cnstr. Его явное
    использование в проекте, скорее всего, не нужно (напр., если подключен
    SVCLHT_cnstr, то, по цепочке, будут подключены SVCLCommon_cnstr ->
    SonarDB_cnstr).
    2. Файл sonarvcl_cnstr переименован в SVCLHT_cnstr.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  10.09.2010 Д.И.Кобрусев
  ----------------------------------------------------------

 P- Код задачи 20403. Идентификатор пункта гл. меню "О программе" был
    написан неединообразно с другими: "item_About" (с маленькой буквы).
    Изменены: frame_MainMenu.xml.

    Адаптация: Если подменю гл. меню вставляются перед элементом
    'Item_About', порядок их построения нужно поменять на обратный.
    Например:
      TServiceMenu.Create(MainForm).Setup('Item_About', MainMenu);
      TWindowsMenu.Create(MainForm).Setup('Item_About', MainMenu);
      TFileMenu.Create(MainForm).Setup('Item_About', MainMenu);
    надо заменить на:
      TFileMenu.Create(MainForm).Setup('Item_About', MainMenu);
      TWindowsMenu.Create(MainForm).Setup('Item_About', MainMenu);
      TServiceMenu.Create(MainForm).Setup('Item_About', MainMenu);
                                   * * *

 P- Код задачи 20415. TExceptionsWriter. Не анализировалась блокировка
    протоколирования исключений, в результате чего в поток попадали лишние
    исключения - которые не писались в основной протокол программы.
    Изменены: ExceptionsWriter.
    13.09.2010 Д.И.Кобрусев
 P- Код задачи 20410. В метод AddTable в качестве указателя на номер поля
    нельзя было подавать nil.
    Изменены: Joiner.
    13.09.2010 Д.И.Кобрусев
  + Код задачи 20313. Добавлены действия "Печать" и "Предварительный просмотр".
    Изменены: DBInputMethods, TextBox, frame_DBInputMemo, dm_RVActions.
    13.09.2010 А.Б.Хах
  * Код задачи 20400.
 P: Форма с текстом развернутая на весь экран не уничтожалась после закрытия,
    что приводило к тому, что при поиске источников данных для участия в запросе
    (GetLinkSources) находился источник данных из скрытого окна,
    который не имел набора данных.
    Изменены: DBInputMethods, SonarDBIntf.
    10.09.2010 А.Б.Хах
 P* Версия AnyDac обновлена до 4.0.1.1463
    Изменены: модули anydac
    10.09.2010 И.В.Ковалев
  * В сообщение о невозможности удалить запись в справочнике добавлено
    название таблицы.
    Изменены: dbase4.
    08.09.2010 И.В.Ковалев
  - При соранении экземпляра TTableDataSource в дизайнере происходило
    AccessViolation - исправлено
    Изменены: MemoryDataSource
    07.09.2010 С.Н.Штуркин
  - Код задачи 20374. Теперь временный запрос (Ctrl+F6) удаляется явно только по
    Alt+F7.
    Изменены: TableBrowser.
    06.09.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.230 от 03.09.2010
--------------------------

  - Код задачи 20316. Иногда каталог хранения проектной конфигурации менялся -
    исправлено.
    Изменены: Config.
    03.09.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.229 от 02.09.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  02.09.2010 М.А.Степанов
  -------------------------------------------------------------------

 P* Код задачи: 20361. Убран вызов pyCreateEngine, его необходимо вызывать
    в проекте (в PrjCnstr).
    Изменены: PyCnstrCommon.
    02.09.2010 М.А.Степанов

    Адаптация: Если в проекте используется Python то в PrjCnstr поместить
    код:
      if not PythonOK then
        pyCreateEngine;
                                   * * *

  * Код задачи 20356.
   P: При открытии набора данных применялось представление сетки, а затем она
      показывалась. При показе сетки срабатывал align, её размеры изменялись и
      перерасчитывался размер колонок. Теперь представление применяется после
      показывания сетки.
    Изменены: TableBrowser.
    02.09.2010 А.Б.Хах
 P* Код задачи 20141. Добавлено событие ev_DataSet_CheckBrowseMode.
    Изменены: db.
    02.09.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.228 от 01.09.2010
--------------------------

 P* Код задачи: 20308. В крим.учете Oracle в карточке KU_AUTO при нажатии
    кнопки "Заполнить данные  в  ГИАЦ" и указании что карточка принята
    неуспешно могло выдваться сообщение: "Dataset: состояние набора данных
    отлично от редактирования или добавления записи".
    P: ForcePostData: если набор данных не находится в состоянии изменения
       данных то ничего не делается.
    Изменены: SDBUtils.
    31.08.2010 М.А.Степанов
  + Код задачи 11476. Добавлена возможность изменять заголовок окна TextBox.
    Изменены: TextBox.pas, frame_TextBox.xml.
    Добавлены: frame_InputString.xml.
    31.08.2010 А.В.Соса
  - Код задачи 20328. Неверно высчитывалась формула при сохранении размера
    шрифта на широкоформатном мониторе - исправлено.
    Изменены: enterrecord.
    31.08.2010 В.В.Тыщенко
  + Код задачи 19601. Добавлены визуализаторы процесса поиска по Ctrl+F и Ctrl+D.
    Изменены: DBGridSearch, DBMemoSearch.
    31.08.2010 А.В.Соса
  > Код задачи 18616. Улучшения визуализатора прогресса:
    * Очередь сообщений теперь обрабатывается только на update.
    + При нажатии кнопки "Отмена" визуализатор выдаёт запрос подтверждения
      (Диалог "Вы уверены, что хотите отменить работу?").
    + Добавлено свойство CachedText, аналогичное Text, за исключением того,
      что оно обновляется не чаще трёх раз в секунду.
    * Визуализатор теперь имеет ограничения частоты обновления и проверки
      нажатия кнопки "Отмена".
    * Теперь, если пользователь прерывает работу, то функции Update, UpdateText,
      UpdateRatio, UpdateCurrent, UpdateCachedText возвращают False. Раньше
      в таких случаях происходило исключение EAbort. Такое поведение оставлено
      процедурам UpdateE, SetCurrent, SetRatio, SetText, SetCachedText.
    + Добавлен класс TProgressDelayHelper, обеспечивающий задержку отображения
      визуализатора.
    - Процесс можно было прервать (к примеру, комбинацией Alt+F4) даже при
      запрете такого прерывания (CancelButtonSwitch = False).
    Изменены: libutils, SProgress, VCLProgressHandler, ConsoleStatus, cdtable,
      WAITPROC, APPINVIS, FUNSYS, DBArchiver.
    31.08.2010 А.В.Соса
  * Код задачи 18060. При выходе из поля ввода курсор теперь переходит в его начало.
    Изменены: stdctrls.
    31.08.2010 В.В.Тыщенко
  - Код задачи 20311. Не отмечалась только что добавленная запись - исправлено.
    Изменены: gridmultisel.
    30.08.2010 В.В.Тыщенко
  - Код задачи 20233. Неверно отображался кодификатор - исправлено.
    Изменены: GridCodeView.
    30.08.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.227 от 30.08.2010
--------------------------

  - Код задачи 20320. Не открывалась обстановка с окном полной информации -
    исправлено.
    Изменены: SonarDBIntf, DBRecordBrowser.
    30.08.2010 В.В.Тыщенко
 P> Код задачи 20236:
    + Добавлено событие app_GetDepartCodeInProject.
    + Функция GetDepartCodeInProject вынесена в интерфейс.
    + Добавлен вариант функции GetNetAddrDir, возвращающий описания
      (интерфейсы) таблицы и ключа.
    Изменены: CommonDBUtils, UsrUtil.
    27.08.2010 Д.И.Кобрусев
 P* SDBUtils.AddRequest: исправлено имя запроса.
    Изменены: SDBUtils
    27.08.2010 М.А.Степанов
  - Код задачи 20176. Изменён механизм блокировки перерисовки.
    Изменены: FormResizer.
    26.08.2010 В.В.Тыщенко
  - Код задачи 20310. При крупном размере шрифта Windows меню программы
    невозможно было прочитать - исправлено.
    Изменены: FormResizer, graphics.
    25.08.2010 В.В.Тыщенко
  + Код задачи 20309. Добавлена установка размера для TDBMemo.
    Изменены: DBInputMethods.
    25.08.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.226 от 25.08.2010
--------------------------

  - Код задачи 20312. Неверно сохранялась запись проектной конфигурации -
    исправлено.
    Изменены: EnterRecord.
    25.08.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.225 от 24.08.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  20.08.2010 В.В.Тыщенко
  -------------------------------------------------------------------

 P* Код задачи 20271. Переоткрытие DataSet`а из-за изменения представления
    (сортировки/слияния/запроса) теперь делается фоново. Добавлися интерфейс
    ISDataSetLayout.
    Изменены: DBGridLayout, GridCodeView, MasterDetailHandlers,
    ObjectDescriptions, Presentation, Reqedit, VCLReq, SControls, SDBGrid,
    SDBUtils, SDBVCLUtils, Sections, SonarDBIntf, SonarCore, SonarRequests,
    SVCLCommon.dpk, SVCLCommon_cnstr, TableBrowser, TableBrowserForms, TextBox,
    deskmenu, deskmenuexec, HTCodeView, DBRecordBrowser, ReportDesigner,
    ReportSupp, SDBVCL, OraMultiSel, sdboracle, oradeskmenu, OraRWFExec.
    Добавлены: SDataSetLayout.
    20.08.2010 В.В.Тыщенко, А.Б.Хах.

    Адаптация: DataSet`ы больше НЕ ПОДДЕРЖИВАЮТ интерфейс ISonarRequests.
    Конструкция Supports(DataSet, ISonarRequests, ...) будет возвращать False.
    Получить интерфейс можно с помощью функции GetIRequests.
      Функции GetIXXX из SDBUtils перенесены в SonarDBIntf.

                                   * * *


  - Код задачи 20301. Свойство ControlWidth DBEditFrame'а загружалось, но
    InputController'у не устанавливалось.
    Изменены: DBEditFrame.
    24.08.2010 А.Б.Хах
  - Код задачи 20302. Ошибка[AnyDAC][Phys][Ora] ORA-00903: неверно имя
    таблицы при экспорте в районы из крим. учета для СУБД Oracle.
    Изменены: sdboracle.
    24.08.2010 И.В.Ковалев
  * Код задачи 20288. Перед масштабированием формы запоминается состояние окна
    (WindowState), а после восстанавливается старое значение, т.к. в процессе
    масштабирования состояние окна сбрасывается в wsNormal.
    Изменены: FormResizer.
    20.08.2010 А.Б.Хах
  * Код задачи 20258. При смене записи в ведущем наборе данных, позиция
    ScrollBar'а сбрасывается в начало.
    20.08.2010 А.Б.Хах
  * Код задачи 20226. Теперь при сохранении текстовых бинарных данных позиция
    курсора не сбрасывается.
    Изменены: DBInputMethods, MultitabbedDesktop, StdMainForm, TextBox,
    DeskMenuExec.
    19.08.2010 А.Б.Хах
  - Разделы-уникальные св-ва: при открытии пустого раздела карточка
    показывалась некорректно.
    P: TSection_RequestLimited.OpenDataSet: запрос устанавливается перед
       открытием набора данных.
    Изменены: Sections.
    19.08.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.224 от 18.08.2010
--------------------------

  - Код задачи 20264. Загрузка обстановок теперь осуществляется безопасным, в
    смысле ProcessMessages, образом.
    Изменены: DeskTop, DeskMenuExec.
    18.08.2010 А.Б.Хах
  + Код задачи 19017. Добавлена подсветка текущей строки.
    Изменены: SDBGrid.
    18.08.2010 А.В.Соса
                                 --- * ---

DSP v3.0.223 от 18.08.2010
--------------------------

  * Код задачи 20187. Вход в программу осуществляется безопасно, в смысле
    ProcessMessages.
    Изменены: HTMenus.
    17.08.2010 А.Б.Хах
  - Код задачи 20187. Закрытие окон во время выполнения отчета(в окне полной
    информации) приводило к EAV.
    Изменены: IdleMan, DeskTop, DockingDesktop, MultitabbedDesktop, StdMainForm,
    SVCLCommon_cnstr, SVCLUtils, frxClass, forms.
    17.08.2010 А.Б.Хах
  - Код задачи 20228. Не работал мультивыбор - исправлено.
    Изменены: SonarRequests, SDBVCL.
    17.08.2010 В.В.Тыщенко
  - Код задачи 20252. В листалках таблиц у отрицательных чисел
    отсутствовал минус.
    Изменены: SDBDataSets, SDBOracle.
    13.08.2010 Д.И.Кобрусев
  - Код задачи 20241. Карточки. Поля выбора из списка. Если для выбора
    открывалось представление (несколько связанных листалок), оно не
    закрывалось ни по клавише Enter, ни по двойному щелчку мышью.
    P: Не строились соответствующие обработчики.
    Изменены: SVCLCommon_cnstr.
    13.08.2010 Д.И.Кобрусев
 P* Код задачи 20072. Убраны ненужные применения запросов.
    Изменены: Sections, SelectShowHandler, SonarRequests, TableBrowser,
    deskmenu.
    13.08.2010 В.В.Тыщенко, А.Б.Хах
  - Код задачи 20247. В новом алгоритме авторазмера колонок при открытии таблицы
    размеры подсчитывались неверно.
    Изменены: SDBGrid.pas, frame_TableBrowser.xml.
    12.08.2010 А.В.Соса
  * Обновлены компоненты Toolbar2000 с версии 2.1.8 до 2.2.2,
    TBX с версии 2.1 до 2.1.5p.
    Изменены: tblib.dpk, tblib.py; заменены каталоги TBX и TB2K.
    11.08.2010 А.В.Соса
  - Код задачи 20158. Показывался не весь фрейм тех. информации - исправлено.
    Изменены: form_DataChange.
    11.08.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.222 от 10.08.2010
--------------------------

  + Добавлена процедура подбора ширин колонок по тексту в них; Добавлен пункт
    контекстного меню грида "Подобрать размеры колонок".
    Изменены: SDBGrid, TableBrowser, frame_TableBrowser.xml.
    10.08.2010 А.В.Соса
  - Исправлено (не работало) перемещение колонок.
    Изменены: SDBGrid.
    10.08.2010 А.В.Соса
  * Изменён способ авторазмера колонок: изменение размера колонки, по
    возможности, происходит за счёт соседней; содержимое колонок, размер которых
    изменяется, обновляется во время изменения положения границы между ними, что
    даёт возможность оценить результат во время перетаскивания границы
    Изменены: SDBGrid, JvDBGrid.
    10.08.2010 А.В.Соса
  > Окно изменения представления:
    - При клике по элементу списка визуализации, находящемуся в фокусе, когда
      сам этот список фокуса не имеет, включался режим редактирования активного
      элемента, а должен только передаваться фокус - исправлено
    - Теперь при редактировании названия колонки пользователю не мешают скобки с
      оригинальным именем поля, в поле ввода редактора отображается только
      текущий заголовок колонки.
    + Теперь для колонок можно указать способвыравнивания (влево, вправо, по
      центру)
    + Добавлены пункты контекстного меню списков для выравнивания, а также для
      перемещения элементов списков, перехода к соответствующему элементу в
      дереве и горячие клавиши.
    + Добавлены панели инструментов с теми же пунктами, что в меню. Добавлены
      картинки для этих действий.
    Изменены: DBGridLayout, form_DBGridLayout.xml, SDBGrid.
    10.08.2010 А.В.Соса
  - Код задачи 19721. Ошибка при открытии запроса вида "в группе по" -
    исправлено.
    Изменены: reqfactory, ReqDesigner.
    10.08.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.221 от 10.08.2010
--------------------------

  - Код задачи 20214. Код по настройке TDBObjectChoice выполнялся безусловно, а
    должен выполняться с учетом того, что TDBEditFrame.Control может быть nil.
    Изменены: DBInputMethods.
    09.08.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.220 от 08.08.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  06.08.2010 А.Б.Хах
  -------------------------------------------------------------------

  * Код задачи 20164. Перекрыто закрывание формы по Enter'у для редакторов
    многострочного текста.
   P: Обработчик tfhFormModalCloseHelper разделен на 2: TKeyboardFormCloser и
      TDoubleClickFormCloser. Внутри функции BuildModalTableBrowserForm теперь
      устанавливаются вышеперечисленные обработчики.
    Изменены: DBInputMethods, form_DataChange, HandleRowCommands, ReqDesigner,
      Sections, SVCLCommon_cnstr, SVCLFormH, TableBrowser, TableBrowserForms,
      TableChoice, deskmenuform, rwfdesigner.
    06.08.2010 А.Б.Хах

    Адаптация: В тех местах, где tfhFormModalCloseHelper использовался в паре с
    BuildModalTableBrowserForm нужно просто удалить его создание. В остальных
    местах - использовать функцию InstallFormClosers.

                                   * * *

  - Код задачи 20209. Несанкционированный доступ при открытии листалки
    кодификатора БД HYTECH.
    Изменены: SdbVcl.
    06.08.2010 И.В.Ковалев
  + Код задачи 15131. Реализован автозапуск элемента при входе пользователя в
    программу.
    Изменены: deskmenu, sonarvcl_cnstr, SVclHt.dpk.
    Добавлены: AutoLoadDesktop.
    06.08.2010 В.В.Тыщенко
  - Код задачи 20208. Несанкционированный доступ при выходе в листалку из
    поля выбора из списка для БД HYTECH.
    Изменены: SdbVcl.
    06.08.2010 И.В.Ковалев
  * Код задачи 20179. Набранный текст теперь хранится в DMap'е, индексированном
    по имени поля.
    Изменены: SDBGrid.
    06.08.2010 А.Б.Хах
  + Код задачи 20201. Добавлена поддержка подсчётов оптимальных размеров
    TListView и TTreeView.
    Изменены: FormResizer, SVCLCommon_cnstr.
    06.08.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.219 от 05.08.2010
--------------------------

  * Код задачи 20202. Ввиду того, что интервал бездействия пользователя, по
    прошествии которого выполнялось обновление ведомой листалки, составлял 1/10
    секунды, то при частом нажатии стрелок в ведущей листалке, создавались
    подтормаживания на время выполнения запроса в ведомой листалке.
    Изменены: SControls.
    05.08.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.218 от 05.08.2010
--------------------------

  - Код задачи 20192. При открытии листалки кодификатора убрано лишнее
    открытие таблицы с чтением данных из нее.
    Изменены: GridCodeView, SonarDbIntf, TableBrowserForms, SDBOracle.
    05.08.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.217 от 05.08.2010
--------------------------

  * Код задачи 20196. Выполнение отчета осуществляется теперь отложено на пол
    секунды.
    Изменены: DBRecordBrowser.
    05.08.2010 А.Б.Хах
  - Код задачи 20192. Убрано лишнее открытие набоа данных Oracle с чтением
    записей из него при открытии листалки выбора из списка из формы ввода,
    что приводило к замедлению.
    Изменены: SDBOracle.
    05.08.2010 И.В.Ковалев
  - Код задачи 20197. При показе листалки выбора из списка с полем "Не
    выбирать" устранено лишнее открытие набора данных с чтением записей из
    него, что приводило к замедлению.
    Изменены: SelectShowHandler, SVCLCommon_cnstr.
    05.08.2010 И.В.Ковалев
  - Код задачи 20195. Поле для отображения фотографий в базе Oracle и HyTech
    называлось по-разному - исправлено.
    Изменены: ReqConv, sdboracle.
    05.08.2010 В.В.Тыщенко
  - Код задачи 20178. Модальная форма ввода текстовых бинарных данных накрывала
    окна всех приложений.
    Изменены: DBInputMethods.
    04.08.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.216 от 04.08.2010
--------------------------

  - Код задачи 20179.
  P: Хранение последнего введенного текста в атрибуте поля
     приводило к тому, что под Oracle'ом, после Requery текст сбрасывался, т.к.
     поля пересоздавались из-за переоткрытия набора данных. Поэтому временно
     возвращена предыдущая схема с хранением введенного текста в самих полях ввода.
    Изменены: SDBGrid.
    04.08.2010 А.Б.Хах
  - Код задачи 20185. Возвращён прежний контрол для отображения старых memo-полей.
    Изменены: DBInputMethods.
    04.08.2010 В.В.Тыщенко
  - Код задачи 20175. В TableBrowserForm не применялось представление для таблицы -
    исправлено.
    Изменены: TableBrowser.
    04.08.2010 В.В.Тыщенко
  - Код задачи 20180. Ошибка [AnyDAC][Phys][Ora] ORA-01410: ROWID неверен
    в случае наличия на экране окна полной информации, связанной с пустой
    листалкой при работе с СУБД Oracle.
    Изменены: ReqConv.
    04.08.2010 И.В.Ковалев
  - Код задачи 20183. В пустой листалке Oracle происходило обновление
    записи. При этом на экране показывались песочные часы.
    Изменены: sdboracle.
    04.08.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.215 от 03.08.2010
--------------------------

 P- Код задачи 20166. При попытке построить запрос на повторяемость из
    строки запроса, построенной при помощи йункции GetInListSelectStr,
    происходила ошибка: "Не удалось найти подсхему с именем ."
    Изменены: ReqFactory.
    03.08.2010 Д.И.Кобрусев
  * Код задачи 18943. Изменён алгоритм построения TTableBrowserForm.
    Изменены: TableBrowser, TableBrowserForms.
    03.08.2010 В.В.Тыщенко
  - Код задачи 19704. В дизайнере запросов под Oracle невозможно было
    создать запрос вида "свойство [...] присутствует" - исправлено.
    Изменены: SVCLCommon_cnstr, ReqEditor, Common.dpk.
    Добавлены: CommonDB_cnstr.
    03.08.2010 В.В.Тыщенко
  - Код задачи 19701. В дизайнере запросов при редактировании подзапроса
    была возможность его удалить, что приводило к несанкционированному
    доступу.
    Изменены: ReqDesigner, ReqEditor.
    02.08.2010 И.В.Ковалев
 P+ Код задачи 20157. Добавлен метод tCodeValue.Level.
    Изменены: CodeUtils.
    02.08.2010 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.214 от 02.08.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  09.07.2010 В.В.Тыщенко
  -------------------------------------------------------------------

  - Код задачи 20127. Модифицирован алгоритм получения подсхемы.
    Изменены: htdescr, FieldViewer, AdvancedConstrainsFactory, reqfactory,
    SDBDataSets, SonarDBIntF, TableBrowserForms, SDBVCL, sonarvcl_cnstr.
    29.07.2010 В.В.Тыщенко

    Адаптация: Функцию GetSubSchema переименовать в FindSubSchema.
                                   * * *

  * Код задачи 19481. В качестве редактора текстовых бинарных данных теперь
    используется RichView, со всеми функциями, присущими нормальных текстовым
    редакторам.
    Добавлены: dm_RVActions.xml, frame_DBInputMemo.xml,
      frame_DBMemoController_Actions.xml, AdvRichViewActions_registration.
    Изменены: SysUtils, DBEditFrame, DBInputMethods, dm_WindowsMenu.xml,
      form_DataChange, frame_TextBox.xml, ReqDesigner, SControls,
      SVCLCommon.dpk, SVCLCommon_cnstr, SVCLFormH, SVCLUtils, TableBrowser,
      TBXJoiner, TextBox, AdvRichView_registration, AdvRichViewActions.dpk.
    30.07.2010 А.Б.Хах
  - Код задачи 20124. В некоторых случаях не строилась вкладка
    тех. информации - исправлено.
    Изменены: form_DataChange, TechDataFrame.
    30.07.2010 В.В.Тыщенко
  - Исправлено представление обязательных полей ввода в карточке - теперь
    их метка синяя.
    Изменены: DBEditFrame.
    30.07.2010 В.В.Тыщенко
  - Код задачи 20102. При добавлении записи в таблицу с мультивыбором
    отмечались все записи - исправлено.
    Изменены: gridmultisel.
    30.07.2010 В.В.Тыщенко
 P- Код задачи 20135. HyTech-ный DataSet (TSonarDB_Table). После удаления
    удалённая запись оставалась в выборке и оставалась текущей.
    Изменены: SDBVCL.
    29.07.2010 Д.И.Кобрусев
  - Код задачи 20126. Возникала попытка утсановить фокус на невидимый
    элемент в форме ввода - исправлено.
    Изменены: form_DataChange.
    29.07.2010 В.В.Тыщенко
 P* Код задачи 19917. При трансляции запросов в sql для слияния таблиц
    вместо синтаксиса ansi используется синтаксис Oracle: вместо join
    конструкция <имя поля1> = <имяполя2> в блоке where запроса, вместо
    left join - конструкция <имя поля1> = <имяполя2>(+) в блоке where
    запроса.
    Изменены: ReqConv.
    29.07.2010 И.В.Ковалев
 P* Код задачи 19903. Поддержана возможность использования обзоров
    (view) вместо таблиц при трансляции запросов в sql.
    Изменены: ReqConv, OraMultiSel, sdboracle.
    29.07.2010 И.В.Ковалев
 P* SDBVCL.hnd_GetRecordsetName добавлена проверка на nil св-ва
    TSonarDB_Record.DBRecord.
    Изменены: SDBVCL.
    28.07.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.213 от 28.07.2010
--------------------------

 P* Код задачи: 19367. GetRecordSetName: корректно работает для обьектов
    типа TSonarDB_Record представляющих собой вручную построеную запись.
    Изменены: SDBVCL.
    28.07.2010 М.А.Степанов
 P* Код задачи: 19367. TEnterRecordHandler: добавлено св-во Form, для
    настройки формы.
    Изменены: EnterRecord.
    28.07.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.212 от 27.07.2010
--------------------------

  - Код задачи 20056. При установке фокуса на поле ввода методом FocusControl
    у TField`а активным становилось и поле таблицы - исправлено.
    Изменены: form_DataCahnge.
    27.07.20101 В.В.Тыщенко
  - Код задачи 20051. В листалке-кодификаторе под HyTech неверно
    показывалась первая строчка - исправлено.
    Изменены: SDBVCL, dbase2.
    26.07.2010 В.В.Тыщенко
  - Код задачи 19976. Листалка, в которой по нажатию Ins происходит
    мультивыбор. Если в отдельных записях запрещено редактирование
    некоторых полей, мультивыбор мог появлялся нестабильно (т.е. при
    нажатии Ins иногда появлялся мультивыбор, а иногда - карточка на
    ввод).
    Изменены: HandleRowCommands.
    22.07.2010 Д.И.Кобрусев
  * Код задачи: 18526. Внесены изменения из ветви санкционирования:
    разделы-карточки в режиме вкладки показывают кнопку "Добавить запись"
    если данные в них отсутствуют.
    Изменены: Sections.
    21.07.2010 М.А.Степанов
  * Код задачи 20066. В случае вещественного поля, в полях ввода запятая
    заменяется на точку.
    Изменены: SControls.
    19.07.2010 А.Б.Хах
  * Код задачи 19253. Теперь фоновое обновление не происходит во время
    перетаскивания окон.
    Добавлены: DockHelper.
    Изменены: TableBrowser, TextBox.
    19.07.2010 А.Б.Хах
  * Код задачи 19249. Добавлена предустановка поля "Ответств.".
    Изменены: SVCLCommon_cnstr.
    19.07.2010 А.Б.Хах
  - Код задачи 18588. Обнулялся текст добавлении поля с функционалом в
    редакторе запросов - исправлено.
    Изменены: rwfdesigner.
    18.07.2010 В.В.Тыщенко
  - Код задачи 18383. Невозможно было просмотреть список спецсимволов в
    RWF-дизайнере - исправлено.
    Изменены: rwfdesigner, layout.xml.
    18.07.2010 В.В.Тыщенко
  - Код задачи 19978. Допускалось существование 2х параметров с одинаковым
    именем - исправлено.
    Изменены: IntRecDesigner.
    16.07.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.211 от 16.07.2010
--------------------------

  * Код задачи 18860. После перестроения дерева запросов фокус устанавливается
    на верхний узел.
    Изменены: ReqDesigner.
    16.07.2010 А.Б.Хах
  * Код задачи 20059. TAction.OnUpdate теперь вызывается реже, благодаря
    установке ActionUpdateDelay.
    Изменены: SVCLCommon_cnstr.
    15.07.2010 А.Б.Хах
  - Код задачи 19619. Неверно отрабатывался TransferToTable с подлитыми
    таблицами.
    Изменены: Requests, ReqFieldViewer.
    15.07.2010 А.Б.Хах
  - Код задачи 19603. Терялся фокус при показе представления - исправлено.
    Изменены: SVCLCommon_cnstr.
    13.07.2010 В.В.Тыщенко
  * Код задачи 19336. В меню обстановок неправильно осуществлялась замена
    символов ~ на &.
    Изменены: DBEditFrame, DeskMenu, FormResizer, SonarSys.
    12.07.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.210 от 12.07.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  09.07.2010 В.В.Тыщенко
  -------------------------------------------------------------------

  * Код задачи 20007. Загрузка проектной конфигурации теперь происходит при
    старте программы.
    Изменены: config, enterrecord, HTMenus, sonarvcl_cnstr.
    09.07.2010 В.В.Тыщенко

    Адаптация: В методе открытия БД (TMainForm.OpenDataBase) удалить загрузку
    проектной конфигурации.
                                   * * *

  - Код задачи 19241. Теперь маска при выборе файла обстановки = *.WDS.
    Изменены: DeskMenuForm.
    12.07.2010 А.Б.Хах
  - Код задачи 19990. Невозможно было удалить бессрочную дату - исправлено.
    Изменены: DBInputMethods.
    12.07.2010 В.В.Тыщенко
  - Код задачи 19906. При масштабировании мелькали окна заднего плана - исправлено.
    Изменены: FormResizer.
    12.07.2010 В.В.Тыщенко
  * Код задачи 19439. Теперь текст инкрементного поиска сохраняется в поле и
    применяемое представление не сбрасывает его.
    Изменены: DBGridLayout, SDBGrid.
    12.07.2010 А.Б.Хах
  * Код задачи 19971. Модифицирована работа с буфером обмена.
    Изменены: ClipboardViewer.
    09.07.2010 В.В.Тыщенко
  - Код задачи 19967. При удалении поля из списка визуализации удалялись ВСЕ
    поля списка сортировки, отсутствующие в списке визуализации.
    Изменены: DBGridLayout.
    09.07.2010 А.Б.Хах
  - Поправлена ошибка, допущенная при решении задачи 19963.
    Изменены: TableBrowser.
    09.07.2010 А.Б.Хах
  - Код задачи 19988. При закрытии DataSet`а удалялся и THtCodeViewHandler -
    исправлено.
    Изменены: HtCodeView.
    09.07.2010 В.В.Тыщенко
  * Код задачи 19963. Размер ширины сетки расcчитывается теперь правильнее. Из-за
    этого не нужно сбрасывать авторазмер колонок.
    Изменены: TableBrowser.
    08.07.2010 А.Б.Хах
  - Код задачи 19983. В GetDefaultFieldsFromReq стоял безусловный перевод
    кодировки, что приводило к переводу значений типа Variant в строчки, что
    позже при сравнении двух значений кодификатора, приводило к исключению.
    Изменены: VCLReq.
    08.07.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.209 от 08.07.2010
--------------------------

  * Код задачи 19975. Работа с текстовыми бинарными данными не поддерживалась в
    функции Python'а param.
    Изменены: RWFExec.
    08.07.2010 А.Б.Хах
  + Код задачи 19898. Добавлена поддержка бессрочной даты.
    Изменены: DBInputMethods, JvDatePickerEdit, JvDatePickerEdit.pas.orig.
    08.07.2010 В.В.Тыщенко
  - Код задачи 18188. Убрана смена кодировки на oem.
    Изменены: ReportXLS.
    07.07.2010 А.Б.Хах
  - Код задачи 19965. Убрано взведение исключения при попытке получить значение
    подлитого поля в момент добавления записи.
    Изменены: SdbVcl.
    07.07.2010 А.Б.Хах
 P> Код задачи 19942. Функция добавления поля в схему БД (AddSchField):
    - Если такое поле уже было в схеме, оно уничтожалось.
    * Функция вынесена в интерфейс.
    Изменены: HT_CD1.
    07.07.2010 Д.И.Кобрусев
  - Код задачи 19650. Если в WriteParameters при создании узла реестра
    возникало исключение "Испорченный файл бинарного реестра", то происходил EAV
    и утечки памяти.
    Изменены: Config.
    06.07.2010 А.Б.Хах
  * Код задачи 19908. Команда "Связь с текстом" теперь не доступна для модальных
    форм.
    Изменены: TableBrowser.
    06.07.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.208 от 06.07.2010
--------------------------

  - Код задачи 19945. Добавлено исключение при попытке прочитать данные из
    подлитых полей во время добавления записи. При валидации игнорируются
    подлитые поля.
    Изменены: FieldValidator, SDBVCL.
    06.07.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.207 от 06.07.2010
--------------------------

  - Код задачи 19923. Неверно обрабатывались отмеченные записи - исправлено.
    Изменены: GridMultiSel.
    05.07.2010 В.В.Тыщенко
  * Код задачи 19786. Добавлен перевод кодировки значения поля в
    GetDefaultFieldsFromReq.
    Изменены: VCLReq.
    05.07.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.206 от 05.07.2010
--------------------------

  - Код задачи 19912. Автоинкремент выставлялся только для главных ключей типа
    indCode, сейчас добавлен и для уникальных.
    Изменены: SetupCodes.
    05.07.2010 В.В.Тыщенко
  - Код задачи 19916. Не загружалась обстановка с таблицей-кодификатором -
    исправлено.
    Изменены: GridCodeView.
    02.07.2010 В.В.Тыщенко
  - Код задачи 19902. При установке Parent`а неверно происходила синхронизация
    размера шрифта - исправлено.
    Изменены: controls, fconfig.
    02.07.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.205 от 02.07.2010
--------------------------

  - Код задачи 19901. Не работали +/- в листалках-кодификатарах -
    исправлено.
    Изменены: GridCodeView, HtCodeView, OraCodeView.
    02.07.2010 В.В.Тыщенко
 P* Код задачи: 17633. В целях борьбы с циклическими зависимостями,
    часть кода из FConfig и CnfDef вынесена в SVCLCommon_Cnstr.
    Изменены: CnfDef, FConfig, SVCLCommon_cnstr.
    01.07.2010 М.А.Степанов
 P* Код задачи: 17633. Событие app_OpenRecordInEditForm переименовано в
    app_OpenRecordInForm и теперь происходит и при просмотре записи,
    в параметры добавлена форма в рамках которой происходит событие.
    Изменены: form_DataChange, FormRecNotify, RecordControl, SDBGrid.
    01.07.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.204 от 30.06.2010
--------------------------

  - Проявление (в новом санкционировании): в листалке RTELRIGT открытой
    вне карточки роли после просмотра записи становилось доступно
    редактирование/добавление.
    P: После открытия на просмотр сбрасывался флажок ViewOnly у контролера
       набора данных.
    Изменены: form_DataChange.
    30.06.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.203 от 30.06.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  29.06.2010 В.В.Тыщенко
  -------------------------------------------------------------------

  - Код задачи: 19866. Код текущего пользователя теперь читается из глобальной
    переменной UserPrivateCode, соответствующее поле из проектной конфигурации
    убрано.
    Изменены: sdbconst, cnfdef, password, SnsParam, OraLogin.
    29.06.2010 В.В.Тыщенко

    Адаптация: Заменить получение кода текущего пользователя из проектной
    конфигурации на получение из переменной UserPrivateCode, либо через
    функцию AppFieldInfoProc.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  23.06.2010 В.В.Тыщенко
  -------------------------------------------------------------------

 P* Код задачи: 19844. Из usrutil и ProjectID СУБД-независимые функции вынесены
    в модули CommonDBUtils и KeysWithID.
    Изменены: CommonDBUtils, KeysWithID, batchopr, dbutils, ht_init, intdata,
      intdata4, licfile, SDBAPI, tabconv2, type2str, usrutil, About,
      CompoundError, ProjectID, IntRecDesigner, ReqEditor, SDBDataSets,
      deskmenu, deskmenuexec, htSQLCustom, password, PySonarDB, SonarVCL_cnstr,
      SVCLHTUtils, sonardb.dpk.
    Переименованы: RecordIDs -> SDB_KeyWithID.
    23.06.2010 В.В.Тыщенко

    Адаптация:
      Функции по работе с главными ключами разнесены по модулям KeysWithID,
    SBD_KeyWithID и объединены в классы TKeyWithID, TKeyWithID_Long, TSDB_KeyWithId.
      Функции по работе с идентификатором проекта перенесены в модуль CommonDBUtils.
                                   * * *

  - Код задачи 19869. Регистронезависимоть меток была односторонней.
    Изменены: ReportXLS.
    29.06.2010 А.Б.Хах
 P* Изменен текст ошибки в GetRefTableDescr в ситуации, когда не удалось
    найти описатель схемы.
    Изменены: Sdbapi.
    29.06.2010 И.В.Ковалев
 P* В функцию GetRefTableDescr добавлена реакция на передачу параметра, не
    являющегося TASubd, TSchemaDef.
    Изменены: Sdbapi.
    29.06.2010 И.В.Ковалев
 P* Поддержана работа GetRefTableDescr для экземпляра TSchemaDef.
    Изменены: Sdbapi.
    28.06.2010 И.В.Ковалев
  + Добавлена функция по распаковке главного ключа типа Longint.
    Изменены: KeysWithID.
    24.06.2010 В.В.Тыщенко
  - Коды задач 19858, 19859. Происходило некорректное сохранение представления -
    исправлено.
    Изменены: TableBrowser.
    23.06.2010 В.В.Тыщенко
 P* Код задачи 19840. Добавлена поддержка пользовательского запроса,
    содержащего sql-запрос Oracle.
    Изменены: OraUsrReq, ReqConv.
    23.06.2010 И.В.Ковалев
 P- В наборе данных Oracle неправильно устанавливались
    граничные значения для полей типа Longint и Integer.
    Изменены: sdboracle.
    21.06.2010 И.В.Ковалев
 P* В наборе данных Oracle добавлена возможность получения
    результата по указанному sql-запросу.
    Изменены: sdboracle.
    21.06.2010 И.В.Ковалев
 P* TCodeValue: Добавлен метод GetAsRawString.
    Изменены: CodeUtils.
    21.06.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.202 от 21.06.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  18.06.2010 В.В.Тыщенко
  -------------------------------------------------------------------

  * Код задачи: 19815. Функции, отвечающие за определение какое поле в таблице
    устанавливается из сетевой привязки, вынесены в СУБД-независимую часть.
    Изменены: batchopr, usrutil, DBGridLayout, DBInputMethods, DBObjectChoice,
      HandleRowCommands, MemoryDataSource, SControls, SDBUtils, SonarDBIntf,
      SVCLCommon_cnstr, TableBrowser, DBRecordBrowser, ReportSupp, SDBVCL,
      SonarVCL_cnstr, SVCLHTUtils, OraMultiSel, SDBOracle, common.dpk, lib.dpk,
      sonardb.dpk, common.py, dsp.py, sonardb.py.
    Добавлены: KeysWithID, CommonDBUtils.
    Перенесены: RRequest, ConUtils, TXTTable, TXTWrite, WProcs, code, DBDItems,
      DBSchemaIntf, htDescr, htDescr_LoadStore, SDBConst, htDescrUtils.bin,
      htDescrUtils.dcu.
    18.06.2010 В.В.Тыщенко

    Адаптация:
      Функции определения, какое поле в таблице устанавливается из сетевой
    привязки перенесены в модуль KeysWithID.
      Функции по получению Connection`а (ExtractConnection, TryExtractConnection)
    перенесены в модуль CommonDBUtils.
                                   * * *

  * Удалён модуль ConUtils.
    Изменены: RRequest.
    Удалены: ConUtils.
    21.06.2010 В.В.Тыщенко
 P* TCodeValue: Удалена SetAsPchar добавлена SetAsRawString.
    Изменены: CodeUtils, SDBUtils.
    18.06.2010 М.А.Степанов
 P* TRequestFactory.RecoverRequest: добавлена возможность взвести
    исключение если запрос некорректен, также теперь собирается информация об
    ошибках в запросе.
    Модуль SDBUtils: Добавлена функция для создания ограничения для
    условий с двумя граничными значениями, функции создающие запросы
    взводят исключение если запрос некорректен.
    Изменены: ReqFactory, SDBUtils.
    17.06.2010 М.А.Степанов
  - Код задачи 19688. Исправлена кодировка в имени поля в запросе по группе
    полей при выборе параметра.
    Изменены: ReqEditor.
    16.06.2010 В.В.Тыщенко
  - Код задачи 19459. Теперь в форме ввода показывается хотя бы одна полоса
    области полей.
    Изменены: form_DataChange, FormResizer.
    16.06.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.201 от 15.06.2010
--------------------------

  + Добавлена регистрация модулей, необходимых для работы OLE DB Provider`а.
    Изменены: htSQLOLE.
    15.06.2010 В.В.Тыщенко
  - EAV, если таблица slv_cln пуста.
    Изменены: CompoundError.
    15.06.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.200 от 15.06.2010
--------------------------

  > Код задачи 19779.
    * Алгоритм дублирования теперь учитывает предустановки RecordController'а.
    * Предустановка обязательных для заполнения полей даты теперь производится
      не в Changer'е, а средствами RecordController'а.
    Изменены: Changer, DBDItems, DBSchemaIntf, htDescr, DataSetDataIO,
      RecordControl, SDBVCLUtils, SVCLCommon_cnstr.
    11.06.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.199 от 11.06.2010
--------------------------

  - Код задачи 19800. Ошибка [AnyDAC][Phys][Ora] ORA-00920: неверен
    реляционный оператор при выполнении в листалке таблицы Oracle запроса
    на совпадение по группе полей с ограничением. Ошибка внесена при
    реализации задачи 19677.
    Изменены: ReqConv.
    10.06.2010 И.В.Ковалев
  * Код задачи 19791. Теперь сохранением/применением представления сетки
    занимается TTableBrowser. При закрытии набора данных представление
    сохраняется, а при открытии - применяется. При сериализации TTableBrowser
    или TTableBrowserForm, если есть сохраненное представление, то сериализуется
    оно, иначе - создается новое.
    Изменены: DBGridLayout, FieldValidator, SControls, TableBrowser, SDBGrid,
      SelectShowHandler, SVCLUtils.
    09.06.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.198 от 09.06.2010
--------------------------

  - Код задачи 19787. При вводе записи из листалки таблицы Oracle
    добавляем запись так, чтобы она совпала по составному ключу, который
    указан в таблице SLV_CLN. Далее сообщется о том, что есть дубликаты по
    составному ключу, предлагают к одному из них перейти. при переходе в
    листалке оставалась 1 запись, а должны быть все.
    Изменены: sdboracle.
    08.06.2010 И.В.Ковалев
  - Код задачи 19677. При выполнении запроса из локального меню листалки
    таблицы Oracle значения введенных пользователем параметров не
    воспринимались для пользовательских запросов, например для запроса на
    сравнение полей.
    Изменены: OraExtReq, sdboracle, reqconv, OraUsrReq.
    08.06.2010 И.В.Ковалев
  * Код задачи 19483. Теперь построение кеша, для алгоритма контроля составного
    ключа, производится по мере необходимости, а не при установлении соединения.
    Изменены: CompoundError.
    08.06.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.197 от 08.06.2010
--------------------------

  - Код задачи 19772. Исключение EAccessViolation в утилите oracrimesetup
    при ее запуске с указанием ini-файла с параметрами запуска.
    Изменены: uADStanUtil.
    08.06.2010 И.В.Ковалев
 P* Отменены изменения редакции 13 модуля Classes.
    Изменены: Classes, RTLConsts.
    07.06.2010 А.Б.Хах
  - Код задачи 19768. При загрузке TTableDataSource загрузка запросов должна
    осуществляться не раньше Loaded, т.е. тогда, когда Loaded фабрик запросов
    уже вызван и их можно уничтожать.
    Изменены: SControls.
    04.06.2010 А.Б.Хах
  * Код задачи 19768. Добавлено взведение исключения при попытке удаления
    загружающегося компонента.
    Изменены: Classes, RTLConsts, SonarDBIntf.
    04.06.2010 А.Б.Хах
  - Код задачи 19703. Неверно транслировался в sql-запрос Oracle
    запрос в группе с условием "группа полей повторяется", например
    в выборке События,Изменение решения группа полей ДатаСоверш[События]
    повторяется от значения 2 до значения 2147483647.
    Изменены: ReqConv.
    03.06.2010 И.В.Ковалев
  - Код задачи 19689. Неверно транслировался в sql-запрос Oracle
    запрос в группе по с условием на выборку при отсутствии дерева
    узлов, например запрос
    в выборке * Лица в группе по Фамилия,Имя поле ДатаРожден максимально
    * Лица:
    для свойства [КодОбъекта-Связи(Связь от).Связь к-Адреса(КодОбъекта)]
      все условия выполнены.
    Изменены: ReqConv.
    03.06.2010 И.В.Ковалев
  > Адаптированиы изменения из dsp-26:
    - Код задачи 14891. Неверно контролировалось допустиость вещественных полей.
    - Код задачи 12915. При возникновении исключений в пакетных операция мог
      повреждаться журнал.
    * Код задачи 12817. Если файл Hytech старой версии, то выдается ошибка
      "Устаревшая версия файла HyTech".
    Изменены: htmess.inc, htstruct, httables, Hytech, HYTECH.RC.
    03.06.2010 С.А.Барсуков
  - Код задачи 19750. Не верно работали запросы "не лежит между с гр." и
    "не лежит между без гр." для вырожденных случаев (границы равны).
    Изменены: htSearch.
    03.06.2010 С.А.Барсуков
  - Код задачи 19675. При выполнении запроса в листалке Oracle
    дата-время ДатаИзмен. - ВремяИзмен меньше ДатаПриема - ВремяИзмен
    не более чем на 0 суток
    получалась непустая выборка.
    Изменены: ReqConv.
    03.06.2010 И.В.Ковалев
  - Код задачи 19172. Если в GetLinkedSubSchemasList lTmpCol была пустой, то она
    не освобождалась.
    Изменены: dbutils.
    02.06.2010 А.Б.Хах
  - Код задачи 19714. Неверно транслировался в sql-запрос Oracle
    запрос
    поле Имя совпадает (с уч. рег.) с шаблоном ''.
    Изменены: REQCONV.
    02.06.2010 И.В.Ковалев
  - Код задачи 19654. При получении строкового значения ячейки теперь
    используется свойство Text ячейки. Это исключает проблемы преобразования
    variant'ов в строки.
    Изменены: ReportXLS.
    02.06.2010 А.Б.Хах
  - Код задачи 19667. Неверно транслировался в sql-запрос Oracle
    запрос
    КодОМ подчиненно непосредственно или равно значению 00.00.00.00.00
    Изменены: REQCONV, ORAMULTISEL, SDBORACLE, OraRwfExec.
    02.06.2010 И.В.Ковалев
 P- Код задачи 19741. tJoinResult.AddField если указанное поле уже было
    добавлено ранее, возвращал не его номер (как должен), а число на 1
    меньше.
    Изменены: JoinAcc.
    01.06.2010 Д.И.Кобрусев
  * Код задачи 19679. Запросы по дням недели с 2 граничными условиями
    неверно транслировались в sql-запросы Oracle.
    Изменены: ReqConv.
    31.05.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.196 от 31.05.2010
--------------------------

  + Код задачи 19319. Добавлен модуль JvDBGridFooter.
    Добавлены: JvDBGridFooter.
    29.05.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.195 от 28.05.2010
--------------------------

  + Код задачи 18564. Изменён механизм построения вкладки тех. информации, подключены
    карточки EXP_PRN, RPT_MAIN.
    Изменены: form_DataChange, SVCLCommon_cnstr.
    Добавлены: frame_RPT_MAIN.xml, frame_EXP_PRN.xml.
    28.05.2010 В.В.Тыщенко
  + Код задачи 19319. Добавлен пункт локального меню TTableBrowser`а "Подсчёт суммы".
    Изменены: htdescr, SonarDBIntf, TableBrowser, SdbVcl, sdboracle, jvcl.dpk,
    frame_TableBrowser.xml.
    Добавлены: JvDBGridFooter. <!Внесён 29.05.2010>
    28.05.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.194 от 27.05.2010
--------------------------

  - Код задачи 19639. При открытии таблицы DESKMENU под Oracle происходила ошибка
    "Индекс списка вне границ" - исправлено.
    Изменены: SDBGrid.
    27.05.2010 В.В.Тыщенко
  - Код задачи 19642. В листалке Oracle при выполнении запроса по дням
    недели в результат запроса попадали пустые даты и даты "бессрочно".
    Изменены: ReqConv.
    26.05.2010 И.В.Ковалев
  - Код задачи 19646. Ошибка ORA-01839: для заданного месяца дата неверна
    при выполнении запроса "поле ДатаСоверш меньше поля ДатаРешен на 1
    год" в листалке таблицы Oracle.
    Изменены: ReqConv.
    26.05.2010 И.В.Ковалев
  - Код задачи 19644. Если в редакторе запросов листалки таблицы Oracle
    сделать запрос
    дата-время ДатаИзмен. - ВремяИзмен меньше ДатаПриема - ВремяПрием не более
    чем на 5 суток,
    затем не нажимая кнопку принять, выбрать вместо "дата-время" - "поле",
    запрос станет таким:
    поле ДатаИзмен. меньше поля ДатаПриема не более чем на 5 суток.
    Если далее выполнить запос, вместо запроса по дате выполнялся
    запрос по дате-времени, т.е.
    дата-время ДатаИзмен. - ВремяИзмен меньше ДатаПриема - ВремяПрием не более
    чем на 5 суток.
    Изменены: ReqConv.
    26.05.2010 И.В.Ковалев
  - Код задачи 19641. Для СУБД Oracle неправильно транслировался запрос
    "в выборке Адмпротоколы в группе по КодОбъекта поле ДатаСоверш
    минимально".
    При его выполнении получалась полная выборка.
    Изменены: ReqConv.
    26.05.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.193 от 24.05.2010
--------------------------

  - Код задачи: 19611. При выходе в листалку некоторых полей выбора
    курсор не позиционировался на смысловое поле. Также: если листалку
    ограничить так что она станет пустой, а потом опять сделать полной
    то курсор перемещался на первое поле. Также добавлена визуализация
    наличия фокуса для пустой листалки.
    P: Изменен способ непоказывания пустой строки для пустого набора
       данных: строка закрашивается чтобы ее не было видно.
    Изменены: GridCodeView, SDBGrid, DBGrids.
    24.05.2010 М.А.Степанов
 P* Код задачи 19575. Добавлена возможность указывать Parent для компонент
    загружаемых при помощи TContentLoader`а.
    Изменены: enterrecord, ContentLoader, form_EnterRecord.xml,
    frame_fconfig.xml.
    24.05.2010 С.А.Барсуков
  - Код задачи 19614. Показывалось неверное дополнение к выборке (не учитывался
    запрос администратора) - исправлено.
    Изменены: TableBrowser, SonarVCL_cnstr.
    24.05.2010 В.В.Тыщенко
  - Код задачи 19617. Исправлена работа с функционалами при группировке в запросах.
    Изменены: joinacc.
    24.05.2010 В.В.Тыщенко
  - Код задачи 19617. Несанкционированный доступ при выполнении
    запроса "в группе по" в режиме "значение поля максимально".
    Изменены: joinacc, requests.
    21.05.2010 И.В.Ковалев
  * Код задачи: 19558. При дублировании записи, дублируются только те поля
    которые не предустановлены.
    Изменены: DataSetDataIO.
    21.05.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.192 от 21.05.2010
--------------------------

  - Код задачи: 19607. RWF: При открытии отчета с русскими именами полей
    отчета, поля не отображались в дизайнере и при сохранении отчет
    получался некорректным.
    P: Св-во tARField.Name читалось в кодировке ANSI, но сохранялось и
      редактировалось в кодировке OEM.
    Изменены: RWFDesigner, RWFFactory.
    21.05.2010 М.А.Степанов
 P+ Код задачи 19596. Добавлены функции получения строки запросов на
    повторение GetInListSelectStr.
    Изменены: SDBUtils.
    21.05.2010 Д.И.Кобрусев
  - Код задачи 19444. Исправлено выполнение запроса типа "в группе по".
    Изменены: joinacc, requests.
    21.05.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.191 от 20.05.2010
--------------------------

 P- Объект TEnterRecordHandler мог подгружать фреймы только из ресурсов
    содержащихся в SVclCommon.
    Изменены: enterrecord.
    20.05.2010 С.А.Барсуков
  * Код задачи: 19584. Проявление: в проекте "Заявки": сделать листалку
    LC_CONT сортированую по дате контакта, найти набор записей с одной датой
    контакта, открыть карточку на одну из этих записей, зайти в раздел
    "Работа по заявке", добавить запись: такущая запись в LC_CONT должна
    изменитьcя.
    P: При обновлении набора данных Hytech (Refresh, SafeRefresh), не
       учитывалось возможное изменение позиции текущей записи в выборке
       (такое может произойти если выборка сортированная).
    Изменены: SDBVCL.
    20.05.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.190 от 19.05.2010
--------------------------

 P- Убрано использование модуля RVAL_Rom.pas.
    Изменены: AdvRichViewActions.dpk.
    19.05.2010 В.В.Тыщенко
 P- При работе с бинарными данными не анализировались ошибки записи/чтения
    данных в файлы бинарных данных.
    Изменены: BinData.
    19.05.2010 И.В.Ковалев
  + Код задачи 19271. Добавлена возможность редактировать RTF во встроенном редакторе.
    Изменены: SControls, DBInputMethods, frame_InputCustomBLOB.xml, SVCLCommon.dpk.
    19.05.2010 В.В.Тыщенко
  + Код задачи 19271. Добавлен пакет AdvRichViewActions.
    Изменены: richview.py.
    Добавлены: ThirdParty\RichView\RichViewActions\*.
    19.05.2010 В.В.Тыщенко
 P- Код задачи 19583. Библиотека DeCAL. Метод DContainer.contains, если в
    качестве параметра подать нечто, чего в контейнере нет, прерывается с
    ошибкой "Несанкционированный доступ".
    Изменены: DeCAL.pas.
    19.05.2010 Д.И.Кобрусев
 P* Новая версия библиотеки DeCAL.
    Изменены: DeCAL.pas.
    19.05.2010 Д.И.Кобрусев
  > Код задачи: 19545.
    * Отчеты по шаблону Excel: Добавлена возможность внедрения
      OLE-объектов. Для этого метка должна содержать текст "?OBJECT"
      (например: NAME?OBJECT). Значением в данном случае должен быть путь
      к файлу с внедряемыми данными.
    - Отчеты по шаблону Excel: Если текущий каталог был изменен во время
      работы программы, то при формировании отчета происходили ошибки вида:
      'Не удалось найти ... Проверьте задание имени и местоположения
      файла.'.
    * Отчеты RWF: Добавлена функция Python: bindata_as_file. Функция
      сохраняет бинарные данные из поданого узла во
      временный файл, и возвращает его имя.
    Изменены: RWData.inc, RWData.rc, RWFExec, ReportXLS, SDBConst, DeskmenuExec.
    18.05.2010 М.А.Степанов
  + Код задачи 19271. Добавлено фоновое удаление временных файлов, открываемых во
    внешнем редакторе из формы просмотра мультимедийных BLOB-данных.
    Изменены: SControls.
    17.05.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.189 от 14.05.2010
--------------------------

  * Код задачи 19271. В классах, отвечающих за предпросмотр мультимедийных данных
    сделаны следующие изменения: Добавлена предустановка полей nmOSFileType
    (если есть) и nmExtension. Отключён вывод ошибок при загрузке содержимого поля.
    Изменены: SControl.
    14.05.2010 В.В.Тыщенко
 P* Код задачи: 19532. Внесена функциональность из ветви санкционирования:
    функция CreateFormByCommand, класс TFHOpenEditFormNotifier, в
    CreateDataForm ссылки в пространство имен добавляются и при
    автоматичском построении (помогает при построении спец.фрейма
    тех.информации), RecordController: св-во RecordReadOnly,
    метод CanChangeRecord, событие app_RecordController_ResetForActiveRecord,
    функция SetFieldEnabled для работы в контексте формы.
    При этом:
      Изменена рассылка события app_RecordController_ResetForActiveRecord, оно
      рассылается всегда когда выполняется метод ResetForActiveRecord.
    Изменены: form_DataChange, RecordControl, SDBGrid, SVclCommon.dpk.
    Добавлены: FormRecNotify.
    13.05.2010 М.А.Степанов
  - Код задачи 19510. Проявление: В карточке есть два поля выбора из
    списка, на второе установлен запрос, зависящий от выбора в первом. В
    первом выбирается другое значение, такое, что значение во втором
    перестаёт удовлетворять запросу - во втором текст смыслового поля
    становится пустым, и выдаётся всплывающая подсказка, что значение
    отсутствует в справочнике. После этого в первом поле снова выбирается
    другое значение - такое, что значение во втором снова начинает
    удовлетворять запросу. Во втором поле содержимое смыслового поля
    оставалось пустым.
    P: Поле выбора из списка. При установке свойства Modified действия по
       установке выполняются безусловно (было: только если значение
       свойства меняется, если же оно устанавливалось в значение, равное
       текущему, ничего не делалось).
    Изменены: DBObjectChoice.
    13.05.2010 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.188 от 13.05.2010
--------------------------

  * Код задачи 19271. Для отображения мультимедийных данных больше не требутеся
    присутствие в таблице поля "Тип файла", добавлена предустановка поля "Расширение".
    Изменены: SControls, DBInputMethods, frame_InputCustomBLOB.xml.
    13.05.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.187 от 12.05.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  11.05.2010 М.А.Степанов
  -------------------------------------------------------------------

  > Код задачи: 19452. Проявление (новое санкционирование):
    Если в записи подроли (RTSUBROL) не заполнено поле владельца
    (разработчика) роли, при нажатии Ins в листалке подролей в карточке
    роли в открывающейся листалке мультивыбора такие подроли не отмечены
    (не выбраны).
    * Добавлен еще один вид предустановок: видов теперь три: fpkNonFixed,
      fpkFixed, fpkConstrained. Понадобилось из-за того что мультивыбор
      использует предустановки для определения выборки отмеченых записей, и
      если вручную создать в листалке фиксирующую предустановку то
      мультивыбор может работать некорректно. Поэтому для мультивыбора
      выделен специальный вид предустановки: fpkConstrained.
    * Функции IsDataExists, VCLFieldAlignment вынесены в SonarDBIntf, т.к.
      из-за них появляются циклические зависимости между модулями.
    Изменены: CompoundError, DBEditFrame, DBGridLayout, HandleRowCommands,
    LayoutManager, MasterDetailHandlers, RecordControl, SDBDataSets, SDBGrid,
    SDBUtils, SDBVCLUtils, Sections, SelectShowHandler, SonarDbIntf,
    SVCLCommon_cnstr, TableBrowser, ReportComponents, ReportSupp, SdbVcl,
    sonarvcl_cnstr, sdboracle.
    11.05.2010 М.А.Степанов

    Адаптация: Если не будет компилироваться:
    Из-за TFieldPreset.Create: адаптировать изменение типа последнего
      параметра.
    Из-за IsDataExists, VCLFieldAlignment: убрать из uses SDBVCLUtils,
    добавить SonarDBIntf.
                                   * * *

  + Код задачи 19271. Добавлена возможность просмотра мультимедийных бинарных
    данных.
    Изменены: ThirdParty\RichView, sdbconst, DBInputMethods, SControls,
      SVCLCommon_Registration, SVCLCommon.dpk, frame_DBInputBLOB.xml,
      frame_DBInputImage_Clipboard.xml.
    Добавлены: frame_InputCustomBLOB.xml, frame_DBInputCustomBLOB_RichView.xml.
    12.05.2010 В.В.Тыщенко
 P* Код задачи: 19420. TObjectDescripter.GetObjectData: интерфейсы
    обнуляются перед уничтожением обьекта, иначе в режиме full_debug
    выдавалось сообщение об ошибке.
    Изменены: ObjectDescriptions.
    06.05.2010 М.А.Степанов
  * Код задачи 19216. При создании файла из SLM создаются каталоги.
    Изменены: funsys.
    05.05.2010 С.А.Барсуков
  - Код задачи: 19456. Под Oracle, при переходе по записям листалки связаной
    с текстом, возникало исключение EAccessViolation.
    P: TDBEditFrame: использовано событие deDisabledStateChange,
       позволяющее реагировать на закрытие набора данных, в условиях когда
       ControlsDisabled = True.
    Изменены: DBEditFrame.
    04.05.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.186 от 04.05.2010
--------------------------

  - Поля выбора: Если имя поля ключа в листалке выбора не совпадало с
    именен поля в карточке, происходило исключение "поле .. не найдено".
    Изменены: ObjectDescriptions.
    04.05.2010 М.А.Степанов
  * Код задачи: 19305. Изменен внешний вид фрэйма тех. информации.
    Изменены: frame_TechData.xml, TechDataFrame.
    04.05.2010 М.А.Степанов
  - Код задачи 19438. У TSDBEdit`а не удалялся выделенный текст - исправлено.
    Изменены: DBCtrls.
    04.05.2010 В.В.Тыщенко
  - Код задачи 19435. Для листалки таблицы Oracle невозможно было
    выполнить связь с текстом так, чтобы в связанном тексте были текстовые
    бинарные данные.
    Изменены: SonarDbIntf, TableBrowser, SDBVcl, SDBOracle,
    04.05.2010 И.В.Ковалев
  * Код задачи 19373. При получении описания, когда на DBObjectChoice'е есть
    запрос, к этому запросу добавляется запрос по ключу. В итоге, среди
    удовлетворяющих запросу записей, выбирается только та, которая равна по
    ключу. Если такой записи нет, то описание пусто.
    Изменены: ObjectDescriptions.
    30.04.2010 А.Б.Хах
  * Код задачи 19388. Теперь выделение нужной радио-кнопки при попадании фокуса
    осуществляется при помощи TabOrder'а, а не отлавливанием попадания фокуса на
    фрейм.
    Изменены: SControls.
    30.04.2010 А.Б.Хах
  - Код задачи 19434. Исключение "... отсутствует выражение" при
    выполнениии запроса по группе полей для таблицы Oracle без указания
    полей.
    Изменены: ReqConv.
    30.04.2010 И.В.Ковалев
 P* Код задачи 16556. При выполнении изменения визуализации листалки,
    копировании в буфер обмена и на принтер проверяется, открыт ли набор
    данных.
    Изменены: TableBrowser.
    30.04.2010 И.В.Ковалев
  - Код задачи 19398. Если карточка строилась не автоматическая, то событие
    app_CreateForm не доходило и обработчик не строился. Теперь он строится на
    событие app_PrepareRecordController и контроль дублирования теперь работает
    даже при блочном редактировании.
    Изменены: CompoundError.
    28.04.2010 А.Б.Хах
  > Код задачи 18753.
   P- При архивации убрана завязка на номер поля "Обстановка" в Меню обстановок,
      которая приводила к тому, что обстановки не сохранялись.
   P- При распаковке убрана завязка на номер группы архивированных файлов в
      содержании архива.
    Изменены: DBArchiver.
    28.04.2010 А.Б.Хах
 P* Код задачи: 18962. PrepareRowCommand: если для набора данных в
    контроллере записи (TDataSetRecordController) установлен флаг ViewOnly
    то добавления, удаления, дублирования не происходит.
    Изменены: SDBVCLUtils.
    28.04.2010 М.А.Степанов
  * Код задачи 19303. При загрузке запроса, список источников данных редактора
    помещается в пространство имен, что обеспечивает корректную загрузку
    связанных запросов.
    Изменены: ReqUtils, ReqDesigner.
    28.04.2010 А.Б.Хах
  + Код задачи 18731. Добавлено локальное меню для TTextBox`а.
    Изменены: TextBox, frame_TextBox.xml.
    28.04.2010 В.В.Тыщенко
  > Код задачи 19343. В отчетах rwf поддержаны тип строки "Заголовок
    таблицы", тип поля "Разрыв страницы", опция выполнения "Размер листа",
    адаптированы изменения в исполнении отчетов rwf из
    dsp 2.6:
    - Код задачи 12174. В отчетах для полей типа дата и числовых не работает
      флаг "сжимать пустое".
    - Код задачи 12354. Если в функции Python, вызываемой из отчёта, была
      допущена ошибка в строке, содержащей символ форматирования (например
      "%s"), то вместо сообщения об ошибке вычисления значения ячейки отчёта
      выдавалось сообщение "Нет аргумента для строки форматирования %s".
      Исправлено.
    - Код задачи 12435. В отчетах не печатался заголовок страницы с номером
      ("Страница ...").
    - Код задачи: 12681. tRWFExec.Destroy: снимаются возникающие исключения
      для корректного уничтожения обьекта.
    - Код задачи 12848. Итоги работали неверно: не учитывался вид связи
      между узлами. В результате правильно работали только итоги, в которых
      между узлом итога и управляющим (а также между всеми промежуточными
      между ними) была связь "равно" или "в списке".
      Исправлено: Поддержаны также виды связи "подчинено" и "подчинено или
      равно", для остальных итоги не считаются - взводится ошибка.
    + Код задачи 13055. Отработка опции выполнения отчёта размер страницы.
    - Код задачи 13775. Если в отчёте количество строк типа заголовок формы
      и/или заголовок страницы превышало размер страницы (заданный в опциях
      программы или опциях отчёта), сообщение об ошибке было непонятным для
      пользователя: "Ошибка при форматировании на страницы. Код 215."
    - Код задачи 14182. Несканкционированный доступ при выполнении отчёта с
      подотчётом в следующей ситуации:
      1) подотчёт запускается по записи (не по списку),
      2) в подотчёте есть узел к которому применяется внешнее ограничение,
      3) у этого узла есть подчинённый с типом связи "в списке".
    - Код задачи 14281. В некоторых отчётах на странице печаталось меньше
      строчек, чем надо (следующие переносились на следующую страницу, т.е.
      как бы уменьшался размер страницы).
    + Код задачи 14816. Отработано добавление нового типа строки - заголовок
      таблицы и нового типф поля - разрыв страницы.
    > Код задачи 15177.
      + tRWFExec. Добавлены свойства DefaultResultName и ResultName,
        содержащие название файла результата выполнения отчёта
        соответственно по умолчанию и установленное в ходе выполнения. Кроме
        того, добавлены встроенные питоновские функции getresultname() и
        setresultname(), позволяющие читать и устанавливать название файла
        результата. Если при выполнении отчёта функция setresultname() не
        была вызвана, то свойство ResultName останется пустым.
      * Если в окне функций формы содержится код, то его выполнение будет
        произведено перед выполнением отчёта вне зависимости от наличия в
        отчёте ячеек-формул.
    - Код задачи 15197. Если поле отчёта типа разрыв страницы печаталось при
      смене записи, после первой же "печати" такого поля, отчёт "подвисал" -
      визуализатор процесса останавливался, и ничего не происходило, но
      процесс можно было прервать, часть отчёта (до означенного поля)
      оазывалась напечатанной.
    - Код задачи 17241. Отчет, содержащий поля значение/часть значения, при
      определенных настройках этих полей при пустом значении поля данных
      "подвисал" - визуализатор процесса останавливался, и ничего не
      происходило, но процесс можно было прервать. Проявилось в Пилигриме на
      отчете P1RV_250.
    + Код задачи 17830. Добавлена возможность изменять строку с номером
      страницы.
    - Код задачи 18012. Выполнение отчёта. Печать номера строаницы, если до
      неё не вычислялось ни одной формулы, приводила к ошибке
      "Несанкционированный доступ".
    Изменены: execopt.xml, linekind.xml, rwf_field.xml, rwfdesigner,
      rwdata.inc, rwdata, rwfexec, rwffactory, SVCLHT_Registration.
    27.04.2010 И.В.Ковалев
  * Код задачи 19404. Возвращена схема с RequestStorage. Запросы теперь
    загружаются/сохраняются ещё и при удалении соединения. Если при установлении
    соединения имя таблицы не задано, то запросы загружаются после того как его
    зададут.
    Изменены: SControls, TableBrowser.
    27.04.2010 А.Б.Хах
  * Код задачи 19402. Теперь на "засеренные" поля нельзя перейти по Tab`у.
    Изменены: DBEditFrame.
    27.04.2010 В.В.Тыщенко
 P- LoopSense: добавлена инициализация результата функции.
    Изменены: SDBUtils.
    26.04.2010 М.А.Степанов
 P- Код задачи 16556. При возможности отменить выполнение запроса к Oracle
    исключение EAccessViolation при инкрементном поиске в листалке Oracle,
    пропадание текста, введенного в инкрементном поиске после выполнения
    запроса, соответствующему инкрементному поиску.
    Изменены: SDBGrid.
    26.04.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.185 от 26.04.2010
--------------------------

 P* Код задачи: 19168. Событие app_PrepareRecordController рассылается до
    настроки контроллера, это позволяет добавить предустановки для полей.
    Изменены: RecordControl.
    25.04.2010 М.А.Степанов
 P* Удален FRequestFactories за ненадобностью.
    Изменены: SonarRequests.
    23.04.2010 А.Б.Хах
  - Код задачи 19361. Если TDataSetValueLimit создавался с MasterDataSource =
    nil, то происходило EAV.
    Изменены: DsLimit.
    23.04.2010 А.Б.Хах
  - Код задачи 19381. Нажатие на Enter при активном блочном редактировании
    листалки в карточке приводило к закрытию последней.
    Изменены: SDBGrid.
    23.04.2010 В.В.Тыщенко
  - Код задачи 19382. Неверно считалась ширина поля ввода для кодификатора -
    исправлено.
    Изменены: DBInputMethods.
    23.04.2010 В.В.Тыщенко
  - После отмены блочного редактирования в листалке, набор данных продолжал
    оставаться в состоянии редактирования.
    Изменены: SDBGrid.
    23.04.2010 М.А.Степанов
  - Код задачи 19273. Теперь фабрики запросов не содержат ссылок на сам запрос.
    Запросы сохраняются в фабрики только при отключении соединения и только в
    TTableDataSource. Если при открытии набора данных имя таблицы с момента
    закрытия изменилось, то производится валидация запросов.
    Изменены: AdvancedConstrainsFactory, dowreqfactory, DsLimit, grprojfactory,
      recreqfactory, reqfactory, reqlimfactory, tchreqfactory, SControls,
      SonarDBIntf, SonarRequests, TableBrowser, SDBVCL, oradeskmenu, OraExtReq.
    21.04.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.184 от 21.04.2010
--------------------------

  * Код задачи 14897. Поддержано удаление записи из выборки в листалке
    таблицы Oracle.
    Изменены: SVCLOracle_cnstr, sdboracle, ReqConv, OraUsrReq.
    21.04.2010 И.В.Ковалев
                                 --- * ---

DSP v3.0.183 от 20.04.2010
--------------------------

  - Код задачи 19341. Не для всех полей набора данных существует описатель поля,
    в частности, поле RowId в Oracle его не имеет.
    Изменены: SDBUtils.
    19.04.2010 А.Б.Хах
 P* Код задачи: 19316. Событие app_PrepareRecordController рассылается
    после открытия набора данных, это позволяет устанавливать необходимые
    обработчики в зависимости от таблицы набора данных.
    Изменены: RecordControl.
    19.04.2010 М.А.Степанов
  - Код задачи 19337. Если обновление проектной конфигурации происходило до
    открытия соединения, то возникало исключение "Не удалось извлечь описатель БД".
    Изменены: CompoundError, SDBVCL, SDBOracle, DB.
    19.04.2010 А.Б.Хах
  + Код задачи 18730. Реализован пункт "Дополнить" в локальном меню листалки
    по таблицам HyTech.
    Изменены: SonarVCL_cnstr.
    19.04.2010 В.В.Тыщенко
  * Код задачи 19322. При открытии формы, в которой есть неактивная листалка
    происходила ошибка EAV - исправлено.
    Изменены: SDBGrid.
    16.04.2010 В.В.Тыщенко
  - Код задачи 19276. Неверно расчитывалась позиция начала колонки в листалке -
    исправлено.
    Изменены: Grids.
    16.04.2010 В.В.Тыщенко
  * Код задачи 19317. Убрана пустая строка в листалке при пустой выборке.
    Изменены: DBGrids, TableBrowser, SDBGrid.
    16.04.2010 В.В.Тыщенко
  - Код задачи 19302. Невозможно войти в крим.учеты, если туда уже успела войти
    легенда, если путь к БД содержит русские буквы.
    Изменены: Ht_Init.
    15.04.2009 С.А.Барсуков.
  * Код задачи: 18998. Умолчательное представление листалок: заголовки
    колонок устанавливаются в длинное название поля.
    Изменены: TableBrowser.
    15.04.2010 М.А.Степанов
  > Код задачи: 19301.
    - При изменении запроса в листалке (по Shift-F9), инкрементный поиск
      убирается явно.
    - Под Hytech при изменении представления в листалке убирался
      инкрементный поиск.
    P: EditRequests сделана функцией, теперь она не выполняет Requery для
       набора данных, это нужно делать явно если она вернет True.
       Добавлено событие ev_SonarDB_Table_InternalFilter.
    Изменены: ReqEdit, SDBGrid, TableBrowser, GridIncrSearch, ReportDesigner,
    SDBVCL, OraCodeView.
    14.04.2010 М.А.Степанов
  - Код задачи 19280. Вкладка тех. информации показывалась даже если была пустой -
    исправлено.
    Изменены: form_DataChange, TechDataFrame.
    14.04.2010 В.В.Тыщенко
  - Код задачи 19196. Не сохранялось представление колонок в листалке -
    исправлено.
    Изменены: SDBGrid.
    13.04.2010 В.В.Тыщенко
  - Код задачи 19278. Убрана ошибка "Неверная операция с указателем".
    Изменены: Presentation.
    13.04.2010 В.В.Тыщенко
  * Код задачи 18271. Поддержано выполнение под Oracle запроса по дням
    недели.
    Изменены: ReqConv.
    13.04.2010 И.В.Ковалев
  - Код задачи 17762. TJvTreeNode и TJvTreeView обновлены до ревизии модуля
    JvComCtrls №12630.
    Изменены: JvComCtrls.
    13.04.2010 В.В.Тыщенко
  * Код задачи: 18200. Функции SLM AddField и AddBigField: если имя поля не
    указано, то имя генерируется в виде: 'поле'+ номер поля, иначе возникает
    ошибка "Отсутствует название поля.". Проявлялось в крим.учете в ведомости
    IMSOTR2.SLM.
    Изменены: FunSUBD.
    12.04.2010 М.А.Степанов
  * Код задачи 15932. В редакторе отчетов rwf удалена кнопка "Отменить".
    Изменены: rwf_form.xml
    12.04.2010 И.В.Ковалев
  - Код задачи 18273. Исключение EAccessViolation при попытке создания
    запроса по группе полей в редакторе запросов листалки таблицы Oracle.
    Изменены: grproj.
    12.04.2010 И.В.Ковалев
  * Код задачи 18273. Поддержано выполнение под Oracle запроса по группе
    полей.
    Изменены: REQCONV.
    12.04.2010 И.В.Ковалев
  - Код задачи 19272. При выполнении запроса на сравнение полей под Oracle
    в случае, когда в запросе фигурирует поле из вложенной таблицы,
    использовалась таблица из схемы Oracle, имя которой совпадает с именем
    пользователя, выполнившего вход в систему, в результате при отсутствии
    такой таблицы происходила ошибка ORA-00942, а при наличии запрос
    возвращал некорректный результат.
    Изменены: REQCONV.
    12.04.2010 И.В.Ковалев
  - Код задачи 19264. Исправлен вид TSDBGroupBox`а после масштабирования.
    Изменены: SControls.
    09.04.2010 В.В.Тыщенко
  * Код задачи 18288. Теперь обновление набора данных TextBox'а выполняется при
    входе в него и раз в 5 секунд, если он не в фокусе.
    Изменены: TextBox, TableBrowser.
    09.04.2010 А.Б.Хах
  * Код задачи 19252. Форма редактора отчётов RWF и списка узлов отчёта сделаны
    растягиваемыми.
    Изменены:rwf_form.xml, nodes.xml.
    09.04.2010 В.В.Тыщенко
  - Код задачи 19228. Изменён алгоритм расчёта ширины полей ввода и текста.
    Изменены: DBInputMethods, SPopupList, VSTLink, SDBGrid, SVCLUtils.
    09.04.2010 В.В.Тыщенко
  * Код задачи 17636. Теперь получение описания выполняется с учетом запроса,
    навешенного на DBObjectChoice.
    Изменены: DBObjectChoice, ObjectDescriptions, SDBUtils, SVCLCommon_cnstr.
    08.04.2010 А.Б.Хах
  * Код задачи 19235. Теперь по умолчанию все листалки-окна располагаются по
    центру главной формы.
    Изменены: TableBrowser.
    08.04.2010 А.Б.Хах
  * Код задачи 18649. Теперь поля в TFieldViewerFrame отсортированы по алфавиту.
    Изменены: frame_FieldViewer.xml
    08.04.2010 А.Б.Хах
  - Код задачи 19196. После закрытия и открытия TSDBGrid`а пропадало
    представление - исправлено.
    Изменены: SDBGrid, DBGridLayout.
    08.04.2010 В.В.Тыщенко
  * Код задачи 19238. Во фрейме тех. информации метка "Поступление" заменена
    на "Приянто".
    Изменены: frame_TechData.xml.
    08.04.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.182 от 07.04.2010
--------------------------

  - Код задачи 19227. Исправлено поведение при изменении параметра ControlWidth у DBEditFrame`а.
    Изменены: DBEditFrame.
    07.04.2010 В.В.Тыщенко
  * Код задачи 18894. Теперь редактировать константные справочники запрещается.
    Изменены: SDBVCLUtils.
    05.04.2010 А.Б.Хах
  - Код задачи 19213. Форме связи с текстом не выставлялись необходимые для
    нормальной работы докинга настройки.
    Изменены: SControls, SDBVCLUtils, SVCLUtils, TableBrowser, TextBox,
      DeskMenuExec.
    Удалены: form_TableBrowser.xml.
    05.04.2010 А.Б.Хах
  - Код задачи 18871. В log-файл писалось сообщение об ошибке, которая штатно
    обрабатывалась - исправлено.
    Изменены: Presentation.
    05.04.2010 В.В.Тыщенко
  * Код задачи 18474. Теперь для BLOB полей DisplayLabel выставляется в полное
    имя поля "Нач.Данных".
    Изменены: SDBDataSets.
    02.04.2010 А.Б.Хах
  - Код задачи 18589. Нажатие на Enter в форме редактирования параметров запроса не
    приводило к закрытию формы - исправлено.
    Изменены: ReqUtils, ReqDesigner, IntRecDesigner, frmIntRec.xml.
    02.04.2010 В.В.Тыщенко
  - Код задачи 18802. Исправлены ошибки в алгоритмах работы с представлениями.
    Изменены: frame_Presentation.xml, LayoutManagerHT, Presentation.
    01.04.2010 В.В.Тыщенко
  - Код задачи 19154. В TSDBRadioGroup при нажатии стрелок влево/вправо курсор не
    переходил вслед за фокусом - исправлено.
    Изменены: SControls.
    01.04.2010 В.В.Тыщенко
  - Код задачи 18961. Ошибка "[AnyDAC][Phys][Ora] ORA-00936: отсутствует
    выражение" при выполнении запроса вида
    для свойства ... все условия выполнены.
    Изменены: REQCONV.
    31.03.2010 И.В.Ковалев
  - Код задачи 18961. При ошибке работы с Oracle текст
    запроса, который привел к ошибке записывался в log файл
    не в той кодировке.
    Изменены: SVCLOracle_cnstr.
    31.03.2010 И.В.Ковалев
  - Код задачи 19191. Форма редактирования текстового поля появлялась с нулевыми размерами - исправлено.
    Изменены: FormResizer.
    31.03.2010 В.В.Тыщенко
  * Код задачи 18993. Обработчик алгоритма дублирования составного ключа
    адаптирован для контроля составного ключа в таблице USERS.
    Изменены: DBDItems, DBSchemaIntf, htDescr, SonarDB_cnstr, usrutil,
      CompoundError, DBInputMethods, form_CompoundError.xml, LayoutManager,
      SVCLCommon_cnstr, deskmenu, deskmenuexec, password.
    30.03.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.181 от 30.03.2010
--------------------------

  - Код задачи 19165. Предыдущие изменения коснулись и простого поля ввода - исправлено.
    Изменены: DBInputMethods.
    30.03.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.180 от 30.03.2010
--------------------------

  - Код задачи 19163. Исправлен размер поля ввода бинарных данных.
    Изменены: DBInputMethods.
    30.03.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.179 от 29.03.2010
--------------------------

  * Адаптация OLE DB Provider`а к DSP.
    Изменены: password, htSQLOLE.
    29.03.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.178 от 26.03.2010
--------------------------

  - Код задачи 19009. Исправлен размер Контролов ввода у TDBEditFrame`ов.
    Изменены: DBInputMethods, DBEditFrame.
    26.03.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.177 от 25.03.2010
--------------------------

  * Код задачи 19038. Расчет следующего значения ключа осуществляется явным
    вызовом SetAutoKey в TDBRegStorage.PutItemData.
    Изменены: DBReg, SVCLHTUtils, dbase4.
    25.03.2010 А.Б.Хах
 P* sdb_convert_to_vcl_field: при работе с полями типа indInteger,
    происходила пропись по памяти.
    Изменены: SDBDataSets.
    25.03.2010 М.А.Степанов
  - Код задачи 19056. Теперь при добавлении записи индекс, соответствующий
    последней прочтенной записи, сбрасывается.
    Изменены: SDBVCL.
    24.03.2010 А.Б.Хах
  * Код задачи 19058. Компонент, показывающий изображения, теперь корректно
    отрабатывает свойство ReadOnly.
    Изменены: DBEditFrame, DBInputMethods, StdMainForm, SVCLUtils.
    24.03.2010 А.Б.Хах
 P* Функция CompareCodeValues некоректно работала с незаполнеными значениями
    кодификатора.
    Изменены: CodeUtils.
    24.03.2010 М.А.Степанов
  * Код задачи 19075. Теперь нажатие Enter и Escape обрабатывается в
    постпроцессе KeyPress формы.
    Изменены: form_DataChange.
    23.03.2010 А.Б.Хах
 P+ Добавлена рассылка событий app_PrepareDataChange,
    ev_DBObject_PrepareDataChange.
    Изменены: SDBVCL, DBSchemaIntf.
    22.03.2010 А.Б.Хах
  * Код задачи 19057. Обязательными для ввода полями теперь считаются только
    поля с флагами tfInput, tfEdit и tfMustInput.
    Изменены: SDBDataSets.
    22.03.2010 А.Б.Хах
  - Исправлен TabOrder в форме тех. информации.
    Изменены: frame_TechData.xml.
    22.03.2010 В.В.Тыщенко
  - Уменьшалась ширина метки при масштабировании - исправлено.
    Изменены: SControls.
    22.03.2010 В.В.Тыщенко
  * Код задачи 19040. Нажатие Enter на кнопке раздела не приводит к выходу в
    раздел.
    Изменены: FlatButton.
    19.03.2010 А.Б.Хах
 P* Код задачи: 18310. Добавлен метод TSectionList.ForceRefreshAll:
    нефоновое обновление разделов.
    Изменены: SectionList.
    19.03.2010 М.А.Степанов
  - При применении информации о слиянии таблиц поиск поля связи происходил в
    полях подсхемы, то есть подлитые поля игнорировались. В связи с этим возникала
    ошибка "Индекс списка вне границ" - исправлено.
    Изменены: SDBVCL, FieldViewer.
    19.03.2010 В.В.Тыщенко
  - При сворачивании формы во вкладку падало с EAV - исправлено.
    Изменены: form_DataChange.
    19.03.2010 В.В.Тыщенко
  - Код задачи: 18832. Крим.учет Oracle: Карточка KU_AUTO: при добавлении
    записи поле ФедералРоз выглядело установленым в True.
    Изменены: DBInputMethods, SDBDataSets, SDBUtils, SDBOracle, DBCtrls.
    18.03.2010 М.А.Степанов
  - Код задачи 15803. Неверно выбиралось поле для связи таблиц. Из-за этого
    возникала ошибка "Несоответствие типов полей" - исправлено.
    Изменены: FieldViewer, SdbVcl.
    18.03.2010 В.В.Тыщенко
 P* Часть функциональности перенесена в htdescrutils.
    Изменены: HtDescr.
    Добавлены: htdescrutils.
    18.03.2010 И.В.Ковалев
  * Код задачи 19020. Задание вопроса о выходе из программы перенесено в
    стандартную главную форму в обработчик события ev_CustomForm_CloseQuery.
    Изменены: StdMainForm.
    17.03.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.176 от 16.03.2010
--------------------------

  * Удален перевод набора данных в состояние редактирования. За это должны
    отвечать сами DBAware-компоненты.
    Изменены: SDBVCLUtils.
    15.03.2010 А.Б.Хах
  - Код задачи 18816. В случае, если TDBMemo настраивается на НЕ BLOB поле в
    набор данных, который уже находится в состоянии редактирования, не
    происходила установка inherited ReadOnly. Идеологически правильным, было бы
    после установки свойства Text в DataChanged вызывать EditingChanged, но для
    минимизации различий с исходниками Delphi, было адаптировано изменение в
    методе CMEnter из Delphi 2010, которое, в качестве побочного эффекта, лечит
    проблему.
    Изменены: DBCtrls.
    15.03.2010 А.Б.Хах
  - Код задачи 18442. Расчет и установка уникального ключа теперь производится
    на уровне соединения на ExecDataChangeCommand в транзакции, т.е. ситуация,
    когда кто-то еще расчитает такой же ключ исключается.
    Изменены: SVclHtUtils, dbase4.
    12.03.2010 А.Б.Хах
  - Код задачи 18944. Пункт меню кнопки в заголовке окна "Восстановить исходные" не
    работал - исправлено.
    Изменены: EditFormLayout, FormResizer, SectionList.
    12.03.2010 В.В.Тыщенко
  - Код задачи 18945. Изменена структура для кэширования представлений форм ввода.
    Изменены: EditFormLayout.
    12.03.2010 В.В.Тыщенко
  - При блочном редактировании выдавалась ошибка - исправлено.
    Изменены: SControls.
    11.03.2010 В.В.Тыщенко
  * Код задачи 18881. При показе формы фокус помещался на TPageControl - исправлено, сейчас
    переносится на первый компонент первой вкладки TPageControl`а.
    Изменены: form_DataChange.
    10.03.2010 В.В.Тыщенко
 P* Код задачи 17637. Свойство TableName перенесено в интерфейс
    IDataSetWithConnection.
    Изменены: SonarDBIntf, SDBDataSets, SDBUtils.
    10.03.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.175 от 10.03.2010
--------------------------

  - В xml сохранялась строка со значением по умолчанию контрола DBEditFrame
    ControlWidth - исправлено.
    Изменены: DBEditFrame.
    10.03.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.174 от 10.03.2010
--------------------------

  - Код задачи 18904. При изменении ширины TCaptionedControl`а менялся размер и
    области, отводимой под метку - исправлено.
    Изменены: SControls.
    09.03.2010 В.В.Тыщенко
  + Код задачи 18700. Реализован алгоритм, позволяющий менять ширину контрола ввода.
    Изменены: DBEditFrame, DBInputMethods, SControls.
    09.03.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.173 от 09.03.2010
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  01.03.2010 А.Б.Хах
  -------------------------------------------------------------------

  * Код задачи 18852. Теперь, по-умолчанию, при закрытии любого задоченного окна
    или любого немодального окна оно освобождается.
    Изменены: Desktop, SectionList, StdMainForm, SVCLCommon_cnstr, SVCLFormH,
      TableBrowser, TextBox, deskmenuexec, HTMenus, password, RegEdit, FullInfo,
      ReportDesigner, forms.
    01.03.2010 А.Б.Хах

  Адаптация: TEvent_CloseEvent, TEvent_CloseQueryEvent заменить на
  TEvent_CustomForm_Close, TEvent_CustomForm_CloseQuery соответсвтенно.
  Вместо CreateDesktopIfNotExist следует пользотваться функциями
  Desktop.PlaceOnXXX.
                                   * * *

  * Код задачи 18874. Теперь кешированный индекс устанавливается при чтении
    записи и сбрасывается при открытии набора данных и на
    ev_AHtTable_ChangeResetClearBCB.
    Изменены: SDBVCL, dbase2, table.
    05.03.2010 А.Б.Хах
 P* Модуль SDBUtils: Добавлена функция SetNamedRequest.
    Изменены: SDBUtils.
    05.03.2010 М.А.Степанов
 P* Код задачи 18901. Отменены изменения последней редакции. Открытость набора
    данных оказалась обязательной для корректной работы
    app_TableBrowser_PrepareMultiChoice.
    Изменены: HandleRowCommands.
    04.03.2010 А.Б.Хах
  - Код задачи 18891. Неверно восстанавливалась высота TSectionList - исправлено.
    Изменены: FormResizer.
    03.03.2010 В.В.Тыщенко
  * В случае дизайнера, параметр конфигурации, касающийся многовкладочности,
    нужно применять условно.
    Изменены: Desktop, cnfdef.
    02.03.2010 А.Б.Хах
  * Код задачи 18882. Теперь у раздела всего два состояния: пустое и отмеченное.
    Изменены: SectionList.
    02.03.2010 А.Б.Хах
  - Код задачи 18765. Изменён алгоритм первоначального масштабирования в случае
    крупного размера шрифта.
    Изменены: graphics, controls, VirtualTrees, JvListView, JvComCtrls, FormResizer,
    DBInputMethods.
    02.03.2010 В.В.Тыщенко
 P* Теперь рассылка ev_TableBrowser_PrepareMultiChoice осуществляется до
    открытия набора данных.
    Изменены: HandleRowCommands, Sections, SVCLCommon_cnstr, TableBrowserForms.
    27.02.2010 А.Б.Хах
  * Код задачи 18677. Метки в файле-шаблоне теперь ищутся регистронезависимо.
    Изменены: ReportXLS.
    27.02.2010 А.Б.Хах
 B- Код задачи 18713. При наличии маски у TDBEdit, присваивание свойству Text
    неформатированной строки из Field.Text приводит к неправильной работе
    TDBEdit.
    Изменены: DBCtrls, SDBDataSets.
    26.02.2010 А.Б.Хах
 B- Код задачи: 18853. В Крим.учете Oracle в карточке KU_AUTO после нажатия
    Alt-F7 становились редактируемыми поля ДатаОтправ и Исход.N.
    P: Происходило из-за того что TSonarOracleDataset в этой ситуации
       закрывается и открывается заново (выставляя/снимая при этом флажок
       ControlsDisabled), а флаги редактируемости полей при этом
       уничтожаются вместе с полями. Для исправления добавлено событие
       ev_DataSet_EnableControls и вызов
       TDataSetRecordController.ResetForActiveRecord в обработчике этого
       события.
    Изменены: DB, RecordControl.
    26.02.2010 М.А.Степанов
 B- Код задачи: 18836. Поиск в открытом файле в кодировке ANSI все равно
    производился как по файлу в кодировке OEM (проявлялось в крим.учете
    Oracle в открываемых протоколах экспорта, сверки с фед.розыском и
    др.).
    Изменены: TextEditor.
    25.02.2010 М.А.Степанов
  * Код задачи 18810. Теперь, при проверке наличия таблиц SLV_CLN и S_TABLES,
    если не удалось извлечь описатель схемы БД, то взводится исключение.
    Изменены: CompoundError, DBSchemaIntf.
    24.02.2010 А.Б.Хах
  * Код задачи 18897. Передача фокуса компоненту редактирования булевских полей
    приводила к фокусированию (а, значит, и выделению) кнопки "Нет".
    Изменены: SControls.
    24.02.2010 А.Б.Хах
BP* Код задачи: 18789. EditOemFile, EditAnsiFile: Добавлена возможность не
    показывать форму а просто вернуть ее.
    Изменены: TextEditor.
    24.02.2010 М.А.Степанов
 B* Код задачи: 18776. В крим.учете под Oracle в карточке KU_AUTO на
    добавление при изменении поля "Принадл-ть" возникала ошибка "Значение
    variant типа (Null) нельзя сконвертировать в тип (Integer)."
    P: tSonarOracleDataset.GetFieldData: если в поле
       содержится Null значение, то метод заполняет буфер значения поля
       пустыми данными. Сделано для того чтобы при добавлении записи значения
       полей соответствовали реально добавляемым значениям.
    Изменены: SDBOracle.
    16.02.2010 М.А.Степанов
 B- Код задачи 18783. Из-за конвертации модуля в кодировку ANSI, OEM-ые
    константы модуля превратились в ANSI-шные, что приводило к неправильной
    работе кода. Ввиду большого количества этих констант, произведена обратная
    переконвертация.
    Изменены: sndname.
    19.02.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.172 от 19.02.2010
--------------------------

  - Исправлена реализация задачи 18763 - "Отключён выход в таблицу USERS по элипсису".
    Изменены: DBInputMethods, DBObjectChoice, SVCLCommon_cnstr.
    17.02.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.171 от 16.02.2010
--------------------------

  + Код задачи 18763. Отключён выход в таблицу USERS по элипсису. Исправлена форма тех.
    информации.
    Изменены: DBObjectChoice.
    15.02.2010 В.В.Тыщенко
  - Код задачи 18723. Ошибка [AnyDAC][Phys][Ora] ORA-00904  при
    вводе-редактировании записи, содержащей поле, в имени которого
    встречается символ "-".
    Изменены: uADPhysCmdGenerator.
    15.02.2010 И.В.Ковалев
  - Код задачи 18622. Изменён заголовок формы параметров запроса.
    Изменён: ReqDesigner.
    12.02.2010 В.В.Тыщенко
  + Код задачи 17111. Реализовано автоматическое добавление вкладки тех. информации.
    Изменены: form_DataChange, FormResizer, SVCLCommon.dpk, SVCLCommon_cnstr,
    SVCLCommon_registration, TableBrowser.
    Добавлены: TechDataFrame, frame_TechData.xml, form_KtgAccess.xml.
    10.02.2010 В.В.Тыщенко
  - Код задачи 18614. Изменена минимальная ширина формы ввода.
    Изменены: form_DataChange.xml.
    09.02.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.170 от 09.02.2010
--------------------------

  - Код задачи 18726. Теперь выдаётся предупреждение, если перезаписывается обстановка.
    Изменены: Desktop.
    09.02.2010 В.В.Тыщенко
  - Поправлено текстовое сообщение, выдаваемое при попытке без пароля
    разархивировать защищенный паролем архив.
    Изменены: Archiver.
    08.02.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.169 от 08.02.2010
--------------------------

  - Код задачи 18705. Статус раздела всегда обновляется после выхода в него,
    а открытый во вкладке раздел корректно обновляет иконку и при удалении
    записей.
    Изменены: Sections, SectionList.
    08.02.2010 А.Б.Хах
  - Код задачи 18638. При использовании сортировки и ограничения
    на количество записей в запросе Oracle сортировка происходила
    после ограничения количества записей, а не до него.
    Изменены: REQCONV, SDBORACLE.
    05.02.2010 И.В.Ковалев
    Версия AnyDac обновлена до 2.0.15.1163
    Изменены: anydac.py, модули anydac
    05.02.2010 И.В.Ковалев
  - Код задачи 18660. Из-за кеширония номера последней прочитанной записи,
    возникал эффект описанный в задаче.
    Изменены: dbase2, table, sdbvcl.
    04.02.2010 А.Б.Хах
  - Код задачи 18691. Код для дизайнера, который загружал запрос при открытии
    набора данных, оказался востребованным в случае Oracle'а, т.к. Oracle'овый
    набор данных часто открывается и закрывается, и нужно чтобы запрос при этом
    не терялся.
    Изменены: SControls.
    04.02.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.168 от 02.02.2010
--------------------------

  - Код задачи 15188. Исправлен механизм сохранения/восстановления фокуса при
    масштабировании.
    Изменены: FormResizer.
    02.02.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.167 от 01.02.2010
--------------------------

  - Списки разделов отрисовывались со скроллингом - исправлено.
    Изменены: FormResizer.
    01.02.2010 В.В.Тыщенко
  * Код задачи 16585. Запускать редактор реестр для таблиц БД разрешается только
    администратору.
    Изменены: HTMenus.
    29.01.2010 А.Б.Хах
  - Код задачи 18639. Масштабирование формы производится при ее показе, а
    размеры и положение формы подгонялись до этого. Поэтому подгонка размеров
    выполнялась неправильно.
    Изменены: SVCLCommon_cnstr.
    28.01.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.166 от 27.01.2010
--------------------------

  - Код задачи 18602. В случае связанных запросом источников данных, ведомый
    набор данных не должен открываться, до открытия ведущего. Т.к. раньше
    запросы загружались в TTableDataSource при открытии набора данных, то о
    связях узнать не открыв набор данных нельзя.
    Теперь загрузка запросов осуществляется посредством внутреннего метода
    TTableDataSource внутри Loaded TableBrowser'а.
    Изменены: TableBrowser, SControls.
    27.01.2010 А.Б.Хах
  - Код задачи 18547. При формировании номера колонки (на которую будет
    установлен фокус) не учитывалось, что некоторые поля могут пропускаться.
    Изменены: TableBrowser.
    27.01.2010 А.Б.Хах
  - Код задачи 18619. Не прорисовывалась первая строчка в листалке после
    применения представления на открытый TTableBrowser.
    Изменены: SDBVCL.
    26.01.2010 В.В.Тыщенко
  * При открытии карточки с полем выбора, поле которого в схеме
    отсутствует, могла выдаваться ошибка "DataSet: Поле .. не найдено".
    Изменены: DBInputMethods.
    25.01.2010 М.А.Степанов
  - Код задачи 18581. Теперь контроллер для булевских полей не изменяет никаких
    свойств поля.
    Добавлены: JvDBFilterExpr, JvDBCombobox, DBCommon.
    Изменены: jvcl.dpk, JvResources, DBInputMethods, vcl.dpk.
    22.01.2010 А.Б.Хах
  * Форма редактора запроса теперь может изменять размер, убран заголовок у
    дерева запроса.
    Изменены: frmReqTree.xml.
    22.01.2010 В.В.Тыщенко
  * Код задачи 18593. Теперь архивация разрешается только пользователям с
    уровнем доступа <= 1.
    Изменены: HTMenus.
    21.01.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.165 от 21.01.2010
--------------------------

  + Код задачи 17798. Добавлена горячая клавиша для пункта контекстного меню листалки
    "Изменить параметры".
    Изменены: frame_TableBrowser.xml.
    21.01.2010 В.В.Тыщенко
  - Код задачи 18601. После применения представления карточки отключалась функциональность
    масштабирования - исправлено.
    Изменены: SectionList.
    21.01.2010 В.В.Тыщенко
  - Код задачи 18201. Во временной таблице "Список таблиц", у полей имя/название
    таблицы отсутствовали флаги нужные для нормальной работы TDBObjectChoice.
    Изменены: deskmenuform.
    20.01.2010 А.Б.Хах
  > Код задачи 18254.
   P* Теперь, после архивации данных из таблиц, сами таблицы удаляются.
    - Происходила ошибка, если в таблице нет поля "Размер".
    - При разархивации предустанавливались ключи с учетом сетевой привязки, а для
      этого необходима таблица MainKeys, а она еще не загружена. Теперь
      выполняется только пересчет контрольной суммы.
    Изменены: DBArchiver, dbase2.
    20.01.2010 А.Б.Хах
  P- Код задачи 17994. Метод Locate HyTech-овских DataSet-ов для полей
    типа код кодификатора прервыался с ошибкой: "Значение variant типа
    (Array Byte) нельзя сконвертировать в тип (Integer)".
    Изменены: SDBVCL.
    20.01.2010 Д,И.Кобрусев
 P+ Код задачи 17994. Установка ключей из сетевой привязки. Поддержана
    автоматическая установка уникальных ключей, для которых
    соответствующая функция (IsKeyWithId) возваращает, что их надо
    устанавливать (было только для главных).
    Изменены: SonarVCL_Cnstr, SVclHtUtils, UsrUtil.
    20.01.2010 Д,И.Кобрусев
  * Код задачи: 18218. Удалено поле опций 'ГрафПечать', за ненанобностью.
    Изменены: SDBConst, CnfDef, frame_fconfig.xml, Imp_LP.
    19.01.2010 М.А.Степанов
                                 --- * ---

DSP v3.0.164 от 18.01.2010
--------------------------

  - При показе формы с кнопкой в заголовке, последняя показывалась не сразу -
    исправлено.
    Изменены: JvCaptionButton.
    18.01.2010 В.В. Тыщенко
  - Код задачи: 18250. Диалог "Параметры работы с БД": устранено
    дублирование текста меток в параметрах кэширования.
    Изменены: frame_DBMSParams.xml.
    18.01.2010 М.А.Степанов
  - Код задачи 18379. Применение параметров проектной конфигурации происходит
    сразу после загрузки сей конфигурации.
    Изменены: HTMenus.pas.
    18.01.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.163 от 15.01.2010
--------------------------

  <BRANCH> Внимание! Может потребоваться адаптация в проектах <ADAPT>
  12.01.2010 Д.И.Кобрусев
  -------------------------------------------------------------------

  > Код задачи 18504. Изменения, связанные с полями типа идентификатор
    записи:
    - Конвертация поля типа идентификатор записи в поле того же типа, но с
      другими параметрами (длиной и/или характеристикой). В результате
      значение сетевого адреса оказывалось случайным.
   P+ Добавлены функции контроля корректности параметров полей типа
      идентификатор записи в БД AreRecordIdParamsInDBCorrect и
      CheckRecordIdParamsInDBAreCorrect.
    Изменены: RecordIds, TabConv2.

  Адаптация: В проектах, если не нужно позволять работать с БД с
  некорректными параметрами полей типа идентификатор записи, сразу после
  загрузки основной БД добавить вызов процедуры
  CheckRecordIdParamsInDBAreCorrect на только что загруженную БД.
                                   * * *

  - Код задачи 18549. В tXLSParameterSearcher.Create в качестве листа шаблона и
    листа результата передавался один и тот же лист, что нарушало предположение
    о том, что лист шаблона остается неизменным и его содержимое копируется в
    лист результата.
    Изменены: ReportXLS.
    14.01.2010 А.Б.Хах
  - Код задачи 18385. Кнопка "Принять" сделана активной в формах для RWF.
    Изменены: execopt.xml, font.xml, linekind.xml, linkkind.xml, linkkind1.xml,
    nodeattrib.xml, position.xml, rwf_field.xml, rwf_form.xml, sortdialog.xml,
    viewopt.xml.
    13.01.2010 В.В.Тыщенко
  + Код задачи 18475. Добавлена возможность сохранения проектной конфигурации
    из её формы ввода.
    Изменены: SVCLHT.dpk, SVCLCommon.dpk, enterrecord, form_EnterRecord.xml.
    Перенесены: Config, frame_DBMSParams.xml.
    13.01.2010 В.В.Тыщенко
 B* Код задачи 18554. Изменено сообщение об ошибке, выдаваемое, если в БД
    параметры полей типа идентификатор записи некорректны.
    Изменены: RecordIds.
    15.01.2010 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.162 от 11.01.2010
--------------------------

  * Изменён алгоритм масштабирования при показе формы в нестандартном шрифте.
    Изменены: FormResizer, SControls.
    11.01.2010 В.В.Тыщенко
                                 --- * ---

DSP v3.0.161 от 11.01.2010
--------------------------

  - Код задачи 18520. Неправильно работали TSubschema.PutSubSchemaName и
    TpSchemaField.PutFieldName.
    Изменены: htdescr.
    11.01.2010 А.Б.Хах
  + Код задачи 18503. Добавлено докирование результата выполнения отчета.
    Изменены: deskmenuexec, form_TextEditor.xml.
    09.01.2010 А.Б.Хах
                                 --- * ---

DSP v3.0.160 от 30.12.2009
--------------------------

  - В крим.учете под Oracle не добавлялась запись SO_OPER с
    заполненой ссылкой на лицо.
    P: tSonarOracleDataset.DoAfterPost: запись обновляется до inherited,
       так обработчики события AfterPost смогут работать с актуальными
       данными.
    Изменены: SDBOracle.
    29.12.2009 М.А.Степанов
  * Код задачи: 18001. TTableDataSource: добавлена возможность использовать
    компонент для слитого ввода в формах изменения данных, для этого нужно
    установить св-во JointChange в True.
    Изменены: MasterDetailHandlers, SControls, TableBrowser.
    29.12.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.159 от 29.12.2009
--------------------------

  - Код задачи 17806. Теперь при попытке перезаписи представления выдаётся
    предупреждение.
    Изменены: Presentation.
    29.12.2009 В.В.Тыщенко
  * Код задачи: 18309. Улучшена работа с разделами-вкладками:
    При нажатии кнопки "Cохранить" в форме-вкладке происходит сохранение
    записи.
    Для формы ввода изменения произведенные в этой форме не теряются при
    вставке ее во вкладку.
    При закрытии вкладки форма на самом деле оставалась существовать.
    При фоновом построении содержимого вкладки при открытии карточки,
    статус разделу выставляется сразу, и так чтобы не выполнялось
    обновление данных.
    Код выполнявший задачу не делать выборок в разделах если форма
    находится в режиме добавления, изменен так, чтобы все таки их делать
    если раздел открыт во вкладке, иначе при нажатии кнопки добавления в
    форме, во вкладке оставалось старое содержимое.
    Для разделов-форм ввода открытых во вкладке препросадка основной
    записи осуществляется при сохранении записи во вкладке, также при
    сохранении основной записи производится сохранение записи во вкладке.
    Изменены: form_DataChange, MasterDetailHandlers, RecordControl,
    SectionList, SectionPageControl, Sections, SVCLFormH, TableBrowser.
    28.12.2009 М.А.Степанов
  - Код задачи 18524. Если при проверке не удалось извлечь DBSchemaSpec, то
    контроль дублирования составного ключа не осуществляется.
    Изменены: CompoundError.
    28.12.2009 А.Б.Хах
  - Код задачи 18519. Если файл отчета уже существовал, то попытка
    переименования файла приводила к ошибке.
    Изменены: ReportXLS.
    28.12.2009 А.Б.Хах
  * Код задачи 18505. Добавлена выдача сообщения в случае отсутствия в структуре
    поля "КодТаблицы".
    Изменены: CompoundError.
    27.12.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.158 от 25.12.2009
--------------------------

  * Код задачи 18438. Отработаны изменения в структуре таблицы SLV_CLN.
    Изменены: CompoundError.
    25.12.2009 А.Б.Хах
  - Свойство CaptionWidth у TCaptionedControl не восстанавливалось - исправлено.
    Изменены: SControls.
    25.12.2009 В.В.Тыщенко
 P* Свойство FWordWrap у TCaptionedControl переименовано в FMultilineLabel.
    Изменены: SControls.
    25.12.2009 В.В.Тыщенко
 P- Код задачи 18473. Для кеширования чтения записей в TSonarDB_Table было
    выбрано неправильное условие - исправлено.
    Изменены: dbase2, SDBVCL.
    25.12.2009 А.Б.Хах
 P* Код задачи: 18344. Удалена переменная CountDSPField, т.к. больше не
    используется.
    Изменены: CnfDef, FormResizer.
    24.12.2009 М.А.Степанов
 P* Код задачи: 18342. Добавлена процедура CreateDesktopIfNotExist:
    создать рабочий стол, если он еще не создан.
    Изменены: Desktop.
    24.12.2009 М.А.Степанов
  - Код задачи 18343. Исправлена неверная визуализация многострочных меток в
    TCaptionedControl.
    Изменены: SControls.
    24.12.2009 В.В.Тыщенко
  * Код задачи 18473. Ускорена работа слитого набора данных в HyTech.
    Изменены: SDBVCL.
    24.12.2009 А.Б.Хах
  - Исправлено поведение TBooleanController`а в случае TDBComboBox`а.
    Изменены: DBInputMethods.
    24.12.2009 В.В.Тыщенко
  + Код задачи 18434. Добавлена проверка наличия таблиц SLV_CLN, S_TABLES при
    старте программы.
    Изменены: SonarDBIntf, SDBVCL, SDBOracle, CompoundError, SonarVCL_Cnstr.
    22.12.2009 А.Б.Хах
  - Код задачи 18187. Ошибка при открытии формы для выбора редактируемого
    представления - исправлено.
    Изменены: Presentation, form_ChoicePresentation.xml.
    22.12.2009 В.В.Тыщенко
 P- Пропись по памяти при вызове метода GetValueBuffer для полей типа indInteger.
    Изменены: PyDB.
    22.12.2009 С.А.Барсуков
  - Код задачи: 18341. В крим.учете при формировании карточек KU_* по
    кнопкам в обьектах учета возникала ошибка "Ресурс ... не найден".
    P: Подгрузка запросов из ресурсов: ресурс ищется во
       всех ресурсных модулях. Функция LoadRequestFromRes: убран параметр
       hInstance.
    Изменены: SDBUtils.
    22.12.2009 М.А.Степанов
  * Код задачи 18283. Добавлена автоматическая установка фокуса на первое
    редактируемое поле. Также улучшено поведение кнопок навигатора.
    Изменены: FormUtils, RecordControl, SControls, SDBUtils,
    SVCLCommon_Registration, SVCLCommon_cnstr, Sections, form_DataChange,
    form_DataChange.xml, SVCLOracle_cnstr, DBCtrls.
    21.12.2009 А.Б.Хах
  - Код задачи 18334. Неверно показывалась форма редактирования запроса при
    максимальном размере шрифта.
    Изменены: controls, JvListView, SVCLCommon_cnstr, VSTLink, ReqFieldViewer,
      ReqDesigner, frmSelectFields.xml, frmReqTree.xml, frmReqSave.xml,
      frmReqLoad.xml, frmIntField.xml.
  - Код задачи 18339. Всплывающие окна в редакторе запросов появлялись по центру -
    исправлено.
    Изменены: SPopupList.
    21.12.2009 В.В.Тыщенко
 B- Код задачи 18492. Восстановление бинарных данных. Потенциально могла
    возникать ошибка: "Ошибка HyTech. Операнд устарел (сменилось состояние
    БД)."
    Изменены: BinData.
    22.12.2009 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.157 от 21.12.2009
--------------------------

 P* Обновлён пакет VirtualTrees до версии 4.7.0.
    Добавлены: VirtualTreesD12.dpk, VirtualTreesD12D.dpk, VirtualTreesD10.res,
      VirtualTreesD10D.res, VirtualTreesD11.res, VirtualTreesD11D.res,
      VirtualTreesD12.res, VirtualTreesD12D.res.
    Изменены: VirtualTreesD10.dpk, VirtualTreesD11.dpk, VirtualTreesD11D.dpk,
      Design/Compilers.inc, VirtualTreesReg, Source/Compilers.inc, MSAAIntf,
      VirtualTrees, VTAccessibility, VTAccessibilityFactory, VTHeaderPopup.
    21.12.2009 В.В.Тыщенко
 P* Добавлена функция PyReloadEngine: Перестроение интерпретатора Python.
    Изменен способ регистрации модулей с "обертками" классов и функций,
    для этого используется класс tSPyRegisteredModule, для создания нового модуля
    нужно сделать наследника от tSPyRegisteredModule и добавить его в список
    RegisteredPyModules.
    Изменены: pyutils, PyApp, PyCnstrCommon, PySonarSys, PyStream,
    PyBinData, PyCfg, PyCnstrHT, PyReq, PySonarDB.
    18.12.2009 М.А.Степанов
  * Код задачи 18308. Убрана поддержка многошаблонности. Теперь файл шаблона
    один и выгрузка данных осуществляется непосредственно в его копию.
    Изменены: ReportXLS, deskmenuexec.
    18.12.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.156 от 15.12.2009
--------------------------

 P+ Код задачи 17982. Добавлен класс TExceptionsWriter.
    Изменены: Lib.dpk.
    Добавлены: ExceptionsWriter.
    15.12.2009 Д.И.Кобрусев
  * Код задачи 18268. Подключено локальное меню листалки в Edit'ы инкрементного
    поиска.
    Изменены: SDBGrid, TableBrowser.
    14.12.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.155 от 14.12.2009
--------------------------

  - Некоторые формы имеют ширину > cAutoMaxFormHeight, из-за чего при максимальном
    размере шрифта вылезают за границы экрана - исправлено.
    Изменены: FormResizer.
    14.12.2009 В.В.Тыщенко
  - Код задачи 18384. Добавлено конвертирование кодировки строк при установке
    их в Edit'ы в Ansi, а при получении из Edit'ов в Oem.
    Изменены: rwfdesigner.
    12.12.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.154 от 11.12.2009
--------------------------

  - Код задачи 18420.
  P В объектах использовались ссылки на интерфейсы, что приводило к EAV, если
    объект реализующий интерфейс уничтожался раньше, чем объект использующий
    ссылку на этот интерфейс.
    Изменены: DBDItems, DBSchemaIntf, htDescr, DBInputMethods, MemoryDataSource,
    SControls, SVCLCommon_cnstr.
    11.12.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.153 от 10.12.2009
--------------------------

  * Код задачи 18378. Изменена реакция TCustomForm на событие ParentFontChanged.
    Изменены: Forms.
    10.12.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.152 от 10.12.2009
--------------------------

  + Код задачи 18407. Добавлена работа с типом "новый главный ключ" в htSQL.
    Изменены: htSQLCustom.
    10.12.2009 В.В.Тыщенко
  - Код задачи 18411. В дополнение к задаче 18362: в качестве имени поля
    нужно брать имя ключевого поля из таблицы, на которую ссылается данное поле.
    Изменены: DBInputMethods, HtDescr.
    10.12.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.151 от 09.12.2009
--------------------------

  - Код задачи 18362.
  P В GetDBObjectChoiceParams в качестве имени ключевого поля бралось имя поля, а
    нужно было брать алиасное имя, и только при его отсутствии брать имя поля.
    Изменены: DBInputMethods.
    08.12.2009 А.Б.Хах
  - Код задачи 18255. Не осуществлялась предустановка значений из запроса для
    редактора мемо-полей.
    Изменены: TextBox, HandleRowCommands, SDBVCLUtils.
    08.12.2009 А.Б.Хах
  * Код задачи 18312. Фактическое изменение текста метки происходит теперь не
    чаще 100 мс, дабы избежать мограния метки при слишком частом обновлении.
    Изменены: SProgress, form_Progress.xml.
    08.12.2009 А.Б.Хах
  * Код задачи 15785. Реализован алгоритм контроля дублирования составного
    ключа.
    Добавлены: CompoundError, form_CompoundError.xml.
    Изменены: SDBConst, cnfdef, frame_fconfig.xml, SDBUtils, SonarDBIntf,
    SVCLCommon_cnstr, TableBrowser, SDBVCL, oraincrsearch, sdboracle.
    08.12.2009 А.Б.Хах
  - Код задачи 18361. EAV при выполнении подотчёта - исправлено.
    Изменены: RWFExec.
    08.12.2009 В.В.Тыщенко
  - При подключении к базе через OLE DB происходила ошибка - попытка
    освободить контейнер главной формы (который = nil).
    Изменены: password.
    08.12.2009 В.В.Тыщенко
 P* При возникновении ошибок при выполнении запросов Oracle, протоколируется
    текст запроса, приведшего к ошибке.
    Изменены: SVCLOracle_cnstr.
    07.12.2009 С.А.Барсуков, И.В.Ковалев
  - Код задачи 18390. В ArrangeEditableDBFields передавался DataSource без
    DataSet'а.
    Изменены: EnterRecord.
    04.12.2009 А.Б.Хах
 P* Код задачи: 18282. EditOemFile, EditAnsiFile: Процедуры преобразованы
    в функции возвращающие созданую форму.
    Изменены: TextEditor.
    04.12.2009 М.А.Степанов
  - Код задачи 18373. Устранено "неправильное" появление редактора листалки.
    Изменены: SDBGrid, Grids.
    01.12.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.150 от 27.11.2009
--------------------------

 P* Дoбавлены обертки Python для модуля DB, для потоков, для визуализатора
    процесса, для бинарных данных. Модуль PyDB переименован в PySonarDB,
    PyCnstr переименован в PyCnstrHT. PySonarSys перенесен в другой каталог.
    Изменены: common.dpk, SVclCommon.dpk, svclcommon.py, PyCfg, PyReq,
    SVCLHt.dpk.
    Добавлены: PyDB, PyApp, PyCnstrCommon, PyStream.
    27.11.2009 М.А.Степанов
  - Код задачи 18367. Ошибочно бралась максимальная ширина при расстановке
    компонентов в автоматически построенной карточке.
    Изменены: SVCLCommon_cnstr.
    27.11.2009 А.Б.Хах
 P> Код задачи 17994:
    + Добалвены события ev_TableBrowser_PrepareMultiChoice и
      app_TableBrowser_PrepareMultiChoice.
    * Обработчики интерактивных команд в листалке таблицы (событие
      app_TableBrowser_PerformRowCommand) и полей "НеВыбирать",
      "НеПоказыв." вынесены из SVCLCommon_cnstr в отдельные модули.
    Изменены: SVCLCommon_cnstr, SVclCommon.dpk.
    Добавлены: HandleRowCommands, SelectShowHandler.
    26.11.2009 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.149 от 25.11.2009
--------------------------

  - Код задачи 18290. Теперь можно пользоваться меткой #D#.
    Изменены: ReportXLS.
    24.11.2009 А.Б.Хах
  * Код задачи 18313. Регистр символов, а также пробелы перед/после, имени
    листа шаблона игнорируются.
    Изменены: ReportXLS.
    24.11.2009 А.Б.Хах
  - Код задачи 18099. Убрана утечка TServerEventDispatch в случае если файл
    шаблона заблокирован (напр. открыт в Excel и отредактирован, но не сохранен).
    Изменены: ReportXLS.
    24.11.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.148 от 20.11.2009
--------------------------

  - Для проектной конфигурации не строился DBObjectChoice.
    Изменены: DBInputMethods.
    20.11.2009 А.Б.Хах
  - При попытке получить описатель поля, которого нет в hst (напр. текстовые
    бинарные данные) происходило исключение: индекс списка вне границ. Добавлена
    проверка: не превышает ли номер поля количество полей в описателе. При этом
    появляется завязка на то, что поля, отсутствующие в hst, находятся в конце
    списка полей набора данных.
    Изменены: SVCLCommon_cnstr.
    20.11.2009 А.Б.Хах
  - При конструировании полей схемы и подсхемы руками не строились TDomainSpec и
    TDomainedFieldSpec, что приводило к несанкционированному доступу.
    Изменены: HtDescr.
    20.11.2009 А.Б.Хах
  + Код задачи 18207. Добавлен компонент TMemoryDataSource, представляющий собой
    источник данных с набором данных в памяти.
    Добавлен: MemoryDataSource.
    19.11.2009 А.Б.Хах

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  19.11.2009 А.Б.Хах
  ----------------------------------------------------------
   P* Код задачи 17952. Работа с описателем в HtDescr реализована через интерфесы
      в DBSchemaIntf.
      Изменены: bindata, cdtable, dbase0, dbase5, dbutils, ht_cd1, htdescr,
        OldBinData, PhotoCnstr, RecordIds, restrict, s_index, SDBAPI, SELKEYIN,
        SonarDB.dpk, TBDNames, temptab, usrutil, DBInputMethods, FieldViewer,
      Добавлены: DBDItems, DBSchemaIntf, HtDescr_LoadStore, SonarDB_cnstr,
      18.11.2009 А.Б.Хах

    Адаптация.
      Коллекции SubSchemasCollection и FieldsSchCollection были удалены. Вместо
    них следует пользоваться свойствами SubSchemas, SubSchemaCount, DeleteSubSchema,
    RemoveSubSchema и т.п. (подробности см. в HtDescr)
                                   * * *

  + Добавлены комментарии к классам SQL.
    Изменены: htSQLCondition, htSQLCustom, htSQLDataSet, htSQLFields, htSQLOLE.
    13.11.2009 В.В.Тыщенко
 P+ Код задачи 17994. Добавлено событие ev_Field_Change.
    Изменены: DB.
    13.11.2009 Д.И.Кобрусев
  - Код задачи 18211. Не работало свойство ControlLayuot у DBEditFrame`а, отображающего
    булевское поле таблицы.
    Изменены: DBInputMethods.
    12.11.2009 В.В.Тыщенко
  - При блочном редактировании булвского поля происходила ошибка "Изменение
    данных не подготовлено".
    Изменены: SControls.
    12.11.2009 В.В.Тыщенко
  - При блочном редактировании подлитого поля сохранение значения происходило
    после перехода на другую запись, а не при нажатии на Enter.
    Изменены: SDBGrid.
    12.11.2009 В.В.Тыщенко
  + Код задачи 14169. В локальное меню добавлены пункты "Изменить", "Удалить",
    "Направление сортировки".
    Изменены: DBGridLayout, form_DBGridLayout.xml.
    11.11.2009 В.В.Тыщенко
  - Убрано моргание главной формы приложения при масштабировании.
    Изменены: FormResizer.
    10.11.2009 В.В.Тыщенко
  + Добавлена капитализация вводимого текста.
    Изменены: cnfdef, enterrecord, fconfig, SVCLCommon_cnstr, frame_fconfig.
    10.11.2009 В.В.Тыщенко
  - При разрешении экрана 1024*768 форма в максимальном размере не помещалась на
    экран - исправлено.
    Изменены: FormResizer.
    10.11.2009 В.В.Тыщенко
  - Изменена работа с проектной конфигурацией при масштабировании.
    Изменены: FormResizer.
    10.11.2009 В.В.Тыщенко
  - После масштабирования схлопывались сплиттеры - исправлено.
    Изменены: FormResizer.
    09.11.2009 В.В.Тыщенко
  - При нажатии F2 в листалке редактор появлялся всегда по центру экрана -
    исправлено.
    Изменены: SDBGrid.
    09.11.2009 В.В.Тыщенко
  - При старте программы не обновлялся размер шрифта приложения из параметров
    проектной конфигурации - исправлено.
    Изменены: Formresizer.
    09.11.2009 В.В.Тыщенко
  - По умолчанию форма откраывалась в максимальном шрифте - исправлено.
    Изменены: FormResizer.
    09.11.2009 В.В.Тыщенко
  - Код задачи 18121. Слова "Да" и "Нет" в редакторе булевских полей теперь
    всегда помещаются.
    Изменены: DBInputMethods, SControls.
    06.11.2009 А.Б.Хах
  * Код задачи 18126. Добавлена возможность масштабирования форм приложения.
    Изменены: SysUtils, DBEditFrame, DBInputMethods, EditFormLayout, enterrecord,
      fconfig, form_DataChange, FormResizer, FormUtils, SControls, SDockManager,
      SectionList, Sections, StdMainForm, SVCLCommon_cnstr, SVCLFormH, SVCLUtils,
      TableBrowser, TB2Item, TB2Toolbar, Dialogs, forms, graphics.
    06.11.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.147 от 06.11.2009
--------------------------

  * Код задачи 16485. Реализован мультивыбор записей в листалке для СУБД
    Oracle.
    Изменены: OraMultiSel.
    05.11.2009 И.В.Ковалев
 P* Набор данных Hytech теперь вставляется в соединение, а не в Application,
    при закрытии соединения в log-файл записываются сведения о незакрытых
    наборах данных, также об этом сообщается при выходе из программы.
    Изменены: SdbVcl.
    03.11.2009 И.В.Ковалев
 P- После выполнения мультивыбора не закрывался набор данных отмеченных
    записей.
    Изменены: SVCLCommon_cnstr.
    03.11.2009 И.В.Ковалев
  * Код задачи: 18162. Опции проекта: Изменены заголовки некоторых полей.
    Изменены: CnfDef.
    31.10.2009 М.А.Степанов
  > Код задачи 18220.
    - Добавлена проверка наличия PopupMenu.
    * При добавлении новой записи, сразу же появляется редактор.
    Изменены: SDBGrid.
    29.10.2009 А.Б.Хах
 P- Код задачи 17994.  Если подливая таблицу, удалить предыдущую таблицу
    из результата слияния (параемтр метода AddTableByName), а потом
    попытаться установить удалённую таблицу в качестве последней (свойство
    LastTable) и подлить к ней что-нибудь:
    а) таблица в качестве послденей устанавливается, хотя не должна,
    б) при попытке подлить возникает ошибка "Индекс списка вне границ".
    Изменены: Joiner.
    27.10.2009 Д.И.Кобрусев
 P* Код задачи 17994. Добавлены модули CodeUtils и SDBUtils - вынесены из
    CrimeCommon-а.
    Добавлены: CodeUtils, SDBUtils.
    27.10.2009 Д.И.Кобрусев
  * Код задачи 16781. Для листалки по таблице Oracle в фоновом режиме
    проверяется, полная ли выборка по таблице в листалке. Если это так и
    количество записей а листалке еще не подсчитано, выполняется подсчет
    количества записей в листалке.
    Изменены: TableBrowser, SonarDbIntf, sdboracle.
    27.10.2009 И.В.Ковалев
                                 --- * ---

DSP v3.0.146 от 23.10.2009
--------------------------

  * Код задачи: 18161. Изменен заголовок диалога ввода параметров работы с
    БД.
    Изменены: Config.
    21.10.2009 М.А.Степанов
 P* Код задачи 18160. Устранена ошибка прорисовки при наличии полей
    инкрементного поиска с установленным свойством TSDBGrid.DoubleBuffered
    под Vist-ой.
    Изменены: SDBGrid;
    20.10.2009 П.В.Ветошкин.
  - Код задачи 18153. Если в диалоге выбора таблиц (или выбора полей связи
    с текстом по Shift + F8) под Windows Vist-ой (или 7) выполнялся
    инкрементный поиск, то вся листалка диалога становилась черного цвета.
    В тех же диалоговых окнах под Windows XP щелчок мышкой по выделенной
    ячейке окрашивал эту ячейку в чёрный цвет.
    Изменены: deskmenuform, IntRecDesigner, rwfdesigner, SDBGrid,
      SDBVCLUtils, TableBrowser, TableChoice.
    19.10.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.145 от 19.10.2009
--------------------------

  - Код задачи: 18152. Отработка поля НеВыбирать при выборе в листалках
    (ThSelectShowHandler): при выборе в пустой листалке происходило
    исключение 'Значение variant типа (Null) нельзя сконвертировать в тип
    (Boolean).'
    Изменены: SVCLCommon_Cnstr.
    19.10.2009 М.А.Степанов
  - Код задачи: 18116. Исправлено сообщение выдающееся при вводе
    числа превышающего максимально допустимое для целых чисел.
    Изменены: DBConsts.
    16.10.2009 М.А.Степанов
  - Код задачи: 18116. При вводе даты можно было ввести год больше 2050
    после чего при приеме карточки происходила ошибка Hytech.
    Изменены: SonarSys.
    16.10.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.144 от 16.10.2009
--------------------------

  - Код задачи 18144. После загрузки обстановки в ней не масштабировались
    листалки - исправлено.
    Изменены: TableBrowser.
    16.10.2009 В.В.Тыщенко
  - Код задачи 18083. Неверно работал инкрементый поиск в диалоге выбора
    таблиц. Такая же картина в диалоге выбора текстовых полей по
    Shift + F8.
    P: Не очищался буфер инкрементного поиска при удалении последнего.
    Изменены: DSIncrSearch.
    15.10.2009 П.В.Ветошкин.
  + Код задачи 18092. Добавлен счётчик записей в дилог открытия таблицы и
    дилог выбора текстовых полей (Shift + F8).
    Удалены: JvMemoryDataset.
    Изменены: CommonForms, deskmenuform, DSIncrSearch, IntRecDesigner,
      Presentation, rwfdesigner, sdboracle, SVCLCommon_cnstr,
      TableBrowser, TableChoice, jvcl.dpk, SVclCommon.dpk,
      form_textlink.xml.
    15.10.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.143 от 15.10.2009
--------------------------

  * Код задачи 18129. deLayoutChange рассылался при каждом EndUpdate. Теперь он
    рассылается только когда это реально нужно.
    Изменены: RecordControl.
    15.10.2009 А.Б.Хах
  * Код задачи 18128. Устранена двойная прорисовка ячеек листалки.
    Изменены: SDBGrid.
    15.10.2009 П.В.Ветошкин.
  * Код задачи 18124. Установка поля fDataLinkType в классах потомках класса
    TADataSetLimit, не имела никакого эффекта, т.к. эта установка осуществлялась
    после того, как это поле использовалось.
    Изменены: DsLimit.
    14.10.2009 А.Б.Хах
  - При изменении редактируемости полей в карточке обновлялся список
    разделов.
    Изменены: SectionList.
    14.10.2009 М.А.Степанов
  - Код задачи: 18082. Не работала настройка представления листалки при
    выборе в поле ввода.
    Изменены: SVCLCommon_cnstr, TableBrowser, LayoutManagerHt.
    13.10.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.142 от 12.10.2009
--------------------------

  * Код задачи: 18074. Карточка DESKMENU: адаптировано использование
    нового способа ввода булевских значений.
    Изменены: frame_Deskmenu.xml.
    12.10.2009 М.А.Степанов
 P* Код задачи 17459. Поддержано хранение информации о композитных
    индексах в схеме данных, используемой при работе с Oracle.
    Изменены: Sdbapi2.
    09.10.2009 И.В.Ковалев
 P* Адаптировано добавление типа данных indRecordId
    Изменены: Sdbapi2.
    09.10.2009 И.В.Ковалев
                                 --- * ---

DSP v3.0.141 от 05.10.2009
--------------------------

  * Код задачи 18056. При нажатии Enter в окне встроенного редактора
    выполняется проверка обязательности заполнения редактируемого поля
    (разумеется если оно редактируемо).
    Изменены: SDBGrid.
    05.10.2009 П.В.Ветошкин.
  - Код задачи 16358. Добавлен контроллер для TDBEditFrame`а, позволяющий
    задачать представление для булевских полей.
    Изменены: DBEditFrame, DBInputMethods, SControls, SVCLCommon_Registration.
    05.10.2009 В.В.Тыщенко
  - Код задачи 18061. Удалена безусловная установка обработчика алгоритма "Не
    выбирать" и "Не показывать".
    Изменены: SVCLCommon_cnstr.
    01.10.2009 А.Б.Хах
  - Неверно вычислялись эффективные размеры листалки - исправлено.
    Изменены: FormResizer, SVCLCommon_cnstr.
    30.09.2009 В.В.Тыщенко
 P- Код задачи 17993. В GetFieldData после вызова GetActiveRecBuf нужно вместо
    ActiveBuffer использовать RecBuf.
    Изменены: SDataSet.
    30.09.2009 А.Б.Хах
  - Код задачи 18015. При отключении инкрементного поиска снизу листалки
    оставалось пустое место, несмотря на наличие достаточного количества
    записей для его заполнения.
    Изменены: JvDBGrid, form_textlink.xml.
    30.09.2009 П.В.Ветошкин.
  - Код задачи 18040. При освобождении TDBCheckBox`а происходит падение -
    исправлено путём адаптации из Delphi 2010.
    Изменены: DBCtrls.
    30.09.2009 В.В.Тыщенко
  > Код задачи 18039. Втроенный редактор ячейки листалки.
    - При щелчке на выделенной ячейке окна выбора таблиц происходила серия
      ошибок "Интерфейс не поддерживается".
    - При наличии встроенного редактора ячейки, щелчок по этой же ячейке
      приводил к ошибке "Несанкционированный доступ...".
    Изменены: SDBGrid.
    30.09.2009 П.В.Ветошкин.
  * Код задачи 18009. Фон заголовков колонок листалки рисуется
    "градиентной" заливкой.
    Изменены: SDBGrid;
    29.09.2009 П.В.Ветошкин.
  + Код задачи 17999. Добавлен алгоритм, оптимизирующий размеры компонентов
    на форме после масштабирования.
    Изменены: TableBrowser, SVCLCommon_cnstr, SectionPageControl, FormResizer.
    28.09.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.140 от 28.09.2009
--------------------------

  - Код задачи 18017. Если в листалке на каком-либо поле нажать "пробел"
    (т.е. активизировать инкрементный поиск так, чтобы получить пустую
    выборку), затем убрать инкрементый поиск нажатием Esc, после чего
    нажать BackSpace для появления встроенного редактора поля и выйти из
    этого редактора тем же Esc, то последующее нажатие "пробела" - как
    активация инкрементного поиска - приведет к серии ошибок с сообщениями
    "Cannot focus a disabled or invisible window".
    Изменены: JvMaskEdit, SDBGrid.
    28.09.2009 П.В.Ветошкин.
  * Код задачи 17993. Поддержаны вычислимые поля в TSonarDB_Table.
    Изменены: RecordControl, SControls, SDataSet, SDBDataSets, SDBVCL, DB.
    24.09.2009 А.Б.Хах

                                 --- * ---
DSP v3.0.139 от 24.09.2009
--------------------------

  * Код задачи 18004. Если значение поля выровненное по центру или правому
    краю не помещалось в ячейку листалки, то оно обрезалось по левому
    краю. Сейчас обрезка выполняется по правому краю.
    Изменены: JvDBGrid, SDBGrid.
    24.09.2009 П.В.Ветошкин.
  + Код задачи 17926. Добавлен встроенный редактор полей листалки,
    позволяющий редактировать подлитые смысловые поля, а также
    предоставляющий более удобный интерфейс редактирования других полей.
    Изменены: DBEditFrame, SDBGrid, SonarDbIntf.
    21.09.2009 П.В.Ветошкин.
  * Код задачи 17953. Изменён алгоритм масштабирования.
    Изменены: forms, controls, SectionPageControl, SectionList, FormResizer,
      form_DataChange.xml.
    18.09.2009 В.В.Тыщенко
  - Код задачи 17968. Добавлена проверка наличия нужной версии Excel'а.
    Изменены: ReportXLS.
    11.09.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.138 от 10.09.2009
--------------------------

  * Код задачи 17948. Теперь на этапе дизайна "виден" только дизайнерский
    запрос, "невидимый" на этапе выполнения.
    Изменены: ReqDesigner, ReqEdit, SControls, ReportDesigner.
    04.09.2009 А.Б.Хах
  * Код задачи 17939. Теперь листалка корректно сохраняется/восстанавливается в
    ситуации, когда соединения нет. Также сохраняются запросы при смене
    соединения.
    Изменены: TableBrowser, SControls, SonarRequests.
    03.09.2009 А.Б.Хах
  - Смягчено условие слияния таблиц. Теперь можно сливать по уникальным полям.
    Изменены: SDBVCL.
    03.09.2009 В.В.Тыщенко
  > Код задачи 17724.
    * Отключён неадекватный встроенный редактор булевских полей листалки.
    * При открытии карточки производится скрывание встроенного редактора поля
      листалки (если, конечно, этот редактор был видимым). Ранее редактор не
      скрывался и оставался активным после закрытия карточки.
    Изменены: JvDBGrid, TableBrowser.
    01.09.2009 П.В.Ветошкин.
  - Исправлен заголовок формы.
    Изменены: form_ChoicePresentation.xml.
    28.08.2009 В.В.Тыщенко
  > Код задачи 17874.
    - Скроллинг в списке разделов можно было прокручивать бесконечно -
      исправлено.
    + Добавлена реакция на клавиши Home/End в списке разделов.
    - Неверно высчитывалась высота списка разделов в форме, создаваемой
      автоматически.
    Изменены: FlatButton, SectionList, SVCLCommon_cnstr.
    28.08.2009 В.В.Тыщенко
                                 --- * ---

DSP v 3.0.137 от 27.08.2009
--------------------------

  * Код задачи 17907. Вынесена константа - максимальная длина строки,
    генерируемой функцией WrapStaticText.
    Изменены: libutils.
    27.08.2009 В.В.Тыщенко
  * Код задачи 17868. Главная форма приложения вынесена из проектов. Для пунктов
    меню созданы модули данных с Joiner'ами. Формирование главного меню в
    приложении теперь осуществляется простым комбинированием нужных пунктов.
    Изменены: About, Desktop, DockingDesktop, SVclCommon.dpk, sonarvcl_cnstr,
      SVCLHT.dpk, SVclHtUtils.
    Добавлены: dm_FileMenu.xml, dm_ServiceMenu.xml, dm_WindowsMenu.xml,
      form_StdMainForm.xml, frame_MainMenu.xml, StdMainForm,
      dm_ArchivationMenu.xml, dm_ConfigMenu.xml, dm_HTMiscMenu.xml,
      dm_RegEditMenu.xml, dm_ReportsMenu.xml, HTMenus.
    24.08.2009 А.Б.Хах
  - Код задачи 17879. Исправлены недочёты в форме выбора представления для
    редактирования.
    Изменены: Presentation, form_ChoicePresentation.xml.
    20.08.2009 В.В.Тыщенко
  + Код задачи 16891. Добавлена возможность сохранения обстановок в реестре с
    последующим их восстановлением в модальном диалоговом окне.
    Изменены: DBInputMethods, DBObjectChoice, DockingDesktop, EditFormLayout,
      FormUtils, LayoutManager, SVCLCommon.dpk, SVCLCommon_cnstr, SVCLUtils,
      TableBrowser, TableChoice, TextBox, LayoutManagerHt, FullInfo,
      SDockManager.
    Добавлены: Presentation, form_ChoicePresentation.xml,
      frame_Presentation.xml.
    19.08.2009 В.В.Тыщенко
  - Код задачи 17815. Исправлена визуализация полей при сортировке в форме
    редактирования представления.
    Изменены: DBGridLayout.
    12.08.2009 В.В.Тыщенко
  * Код задачи 17841. Добавлена проверка типа файла перед загрузкой в BLOB.
    Изменены: DBInputMethods.
    07.08.2009 А.Б.Хах
  * Код задачи 17813. Теперь в запросах не выполняется отработка полей "Не
    выбирать" и "Не показывать".
    P: Для этой цели использвался флаг TDBEditFrame.NoValidate, введенный для
       того, чтобы не выполнять валидацию введенных значений при вводе запросов.
    Изменены: SVCLCommon_cnstr.
    06.08.2009 А.Б.Хах
 P- Код задачи 17820. Возникало исключение при позиционировании
    TDecompressionStream на начало. После того, как выянилось, что
    TCompressionStream при записи позиционируется(для записи fHeader'а), было
    принято решение сделать TCustomZLibStream потомком TStream, а не
    TStreamWrapper'а, т.к., в общем случае, могут "подложить" поток, который
    ВООБЩЕ не поддерживает позиционирование. По сути, схема такая же как и в DSP
    v2.6. Собственно для совместимости с 2.6 она и используется.
    Изменены: zlib, bindata, tabconv2.
    06.08.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.136 от 06.08.2009
--------------------------

  - Код задачи 17817. В режиме блочного редактирования срабатывали горячие
    клавиши локального меню - исправлено.
    Изменены: SDBGrid, TableBrowser.
    06.08.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.135 от 04.08.2009
--------------------------

  - Код задачи 17831. Добавлена проверка на nil в BuildReportTree, т.к. раньше
    GetObjectByFactory возвращала nil, если ей передали nil.
    Изменены: RWFFactory.
    04.08.2009 А.Б.Хах
  - Код задачи 17809. Ширина колонок теперь выставляется правильно.
    Изменены: TableBrowser, SDBVCLUtils.
    04.08.2009 А.Б.Хах
  * Код задачи 17807. Теперь имя последнего загруженного/сохраненного файла
    предлагается по-умолчанию при сохранении всегда.
    Изменены: Desktop, DockingDesktop, SVCLHtUtils.
    04.08.2009 А.Б.Хах
  - Код задачи 17823. Неправильно указывался владелец формы.
    Изменены: TextBox.
    03.08.2009 А.Б.Хах
  - Код задачи 17822. Не осуществлялась проверка BaseSubLimit на nil в
    TRelLimFactory.DoLoaded.
    Изменены: ReqFactory, ReqLimFactory, TchReqFactory.
    03.08.2009 А.Б.Хах
  - Код задачи 17812. Не выполнянолсь обновление связанных листалок при
    присвоении значения RecNo DataSet`у.
    Изменены: SDataSet.
    03.08.2009 В.В.Тыщенко
  - Код задачи 17811. Неверно обрабатывался флаг "Визуализ0".
    Изменены: sdboracle, SDBDataSets.
    03.08.2009 В.В.Тыщенко
  - Код задачи 17800. Окна полной информации загруженные из обстановок не
    появлялись на экране.
    Изменены: FullInfo.
    31.07.2009 П.В.Ветошкин.
  - Код задачи 17763.
    * Если корневой запрос (в редакторе) становится пустым, все его параметры
      удаляются.
    * Если корневой запрос становится пустым, все его параметры удаляются.
    Изменены: ReqDesigner, DBInputMethods.
    31.07.2009 В.В.Тыщенко
  - Код задачи 17795. Если в таблицу можно добавлять записи, но нельзя
    редактировать, то при добавлении карточка открывалась только для чтения.
    Изменены: RecordControl.
    31.07.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.134 от 30.07.2009
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  22.07.2009 А.Б.Хах
  ----------------------------------------------------------

  * Унифицирован модуль TableChoice. Вместо функции TableChoice следует
    использовать TableChoiceFromSchema.
    Изменены: SVCLCommon.dpk, deskmenuform, ReportDesigner, SVCLHT.dpk.
    Перенесены: TableChoice.
    30.07.2009 В.В.Тыщенко
 P* Код задачи 17743. Константы UserAcessLevel, PCAcessLevel, CommonAcessLevel
    переименованы в UserAccessLevel, PCAccessLevel, CommonAccessLevel
    соответственно.
    Изменены: SDBConst, FConfig, FieldViewer, EditReqH, JoinDesigner, ReqEditor,
      ReqFieldViewer, ReqUtils, ReqEdit, DeskMenu, DeskMenuExec, Password,
      ReportDesigner, RWFDesigner, TableChoice, OraLogin.
    22.07.2009 А.Б.Хах
                                   * * *

  - Код задачи 17793. Окно полной информации отображало данные всей выборки, а
    не текущей записи.
    Изменены: DBRecordBrowser, Requests.
    30.07.2009 П.В.Ветошкин.
  - Код задачи 17739. При выделении изменений на контроллере домена - ошибка:
    "Именам пользователей не сопоставлены коды защиты данных".
    Изменены: Lib.dpk, SonarSysUtils.
    Добавлены: lsaapi.
    29.07.2009 С.А.Барсуков
  - Код задачи 16100. Если приложение закрывалось "самосвалом" при открытом
    редакторе отчётов FastReport (например, в окне полной информации), то не
    освобождалась память.
    Изменены: ReportDesigner.
    29.07.2009 П.В.Ветошкин.
 P- Код задачи 16661. Устранены возможные проблемы при подмене запросов.
    Изменены: SonarRequests.
    29.07.2009 П.В.Ветошкин.
  - Код задачи 17766. Добавлен новый класс TSDBEdit. Исправлена его
    визуализация.
    Изменены: DBCtrls, SControls, DBInputMethods, DBObjectChoice.
    27.07.2009 В.В.Тыщенко
  - Код задачи 17766, Исправлена визуализация полей в листалках и карточках.
    Изменены: DBInputMethods, SDBVCLUtils, SDBGrid.
    27.07.2009 В.В.Тыщенко
  * Код задачи: 17549. Карточка DESKMENU переведена на использование
    DBEditFrame.
    Изменены: DeskMenuForm, frame_deskmenu.xml.
    27.07.2009 М.А.Степанов
  - Код задачи: 17549. В карточке DESKMENU, если в поле "Таблица" было значение
    то при выходе в листалку выбора таблицы, происходило исключение "Неверный
    номер записи...".
    Изменены: TableChoice.
    27.07.2009 М.А.Степанов
  - Код задачи 17722. Неправлильно выводилось название источника данных листалки
    при связи окон в редакторе запросов.
    Изменены: TableBrowser.
    24.07.2009 П.В.Ветошкин.
  - Код задачи 17759. Перестало работать выравнивание поля в листалке -
    исправлено.
    Изменены: SDBDataSets, SDBVCLUtils, TableBrowser, sdboracle.
    24.07.2009 В.В.Тыщенко
  - Код задачи 17751. Если во время загрузки фабрики TTableBrowserFormFactory,
    после создания FFormHandler, но до события ev_Factory_CreateForm происходит
    исключение, то сама фабрика удаляется, но созданный ею FFormHandler
    провисает.
    Изменены: TableBrowser.
    23.07.2009 А.Б.Хах
  - Код задачи 17211. Увод каретки с активного поля ввода формы при перерисовке
    выделенной ячейки сетки, расположенной на другой форме, не являющейся
    активной.
    Изменены: Grids.
    22.07.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.133 от 21.07.2009
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  15.07.2009 П.В.Ветошкин.
  ----------------------------------------------------------

 P! Код задачи 17685. Удалено событие ev_Factory_GetObject и функция
    GetObjectByFactory. Во все фабрики использовавшие ev_Factory_GetObject
    добавлены методы RecoverXXX:
      TRequestFactory.RecoverRequest(AConnection: TCustomConnection = nil);
      TRecordFactory.RecoverRecord;
      TAbstractLimitFactory.RecoverLimit;
    Изменён интерфейс TDopReqFactory.Apply - первым параметром добавлено
    соединение с БД TCustomConnection.
    Изменены: AdvancedConstrainsFactory, DBInputMethods, DBObjectChoice,
      Factory, grprojfactory, IntDataFactory, OraExtReq, reqfactory,
      reqlimfactory, ReqUtils, rwffactory, Sections, SonarDbIntf,
      tchreqfactory,

    Адаптация.
    1. Некомпиляция вызовов obj := GetObjectByFactory(Factory):
       заменить на вызов
       obj := Factory.RecoverXXX([Connection]),
       где RecoverXXX - метод соответствующей фабрики, Connection -
       соединение с БД для метода TRequestFactory.RecoverRequest.
    2. Некомпиляция вызовов TDopReqFactory.Apply(...):
       Изыскать соединение с БД (TCustomConnection) и передать его первым
       параметром.

                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  13.07.2009 А.Б.Хах
  ----------------------------------------------------------

  * Код задачи 17662. Удалена ссылка на DetailDataSet в фабрике
    TADataSetLimitFactory.
    Изменены: DsLimit, SonarRequests.
    13.07.2009 А.Б.Хах

    Адаптация. Удалить в xml-файле или обстановке тег вида:
    <property name="DetailDataSet" type="identifier" value="*"/>.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  13.07.2009 П.В.Ветошкин.
  ----------------------------------------------------------

 B> Код задачи 17683.
    * При выходе в справочник, если для него нет сохранёного представления,
      выполняется предустановка курсора на первое смысловое поле.
   P* Константы stLayoutKind и stDBObjectChoiceLayoutKind вынесенв в модуль
      TableBrowser и переименованы, соответственно, в attr_LayoutKind,
      attr_DBObjectChoiceLayoutKind. В тот же модуль перенесены константы
      stLayoutView и stLayoutChoice.
    Изменены: LayoutManager, SVCLCommon_cnstr, TableBrowser, TableBrowserForms.

    Адаптация.
      Некомпиляция stLayoutKind/stDBObjectChoiceLayoutKind: переименовать в
        attr_LayoutKind/attr_DBObjectChoiceLayoutKind и, при необходимости,
        подключить модуль TableBrowser.
      Некомпиляция stLayoutView и stLayoutChoice: подключить модуль
        TableBrowser.
                                   * * *

  - При дублировании записи, поля с алиасным именем не дублировались.
    Дублирование вынесено в процедуру PrepareDoubleRecord для использования в
    крим. учете.
    Изменены: SDBVCLUtils.
    21.07.2009 М.А.Степанов
  - При открытии карточки на просмотр после ее закрытия все поля становились
    редактируемыми.
    P: DoSetViewOnly не меняет атрибуты редактируемости полей т.к. в
       IsFieldEnabled флажок ViewOnly все равно учитывается.
    Изменены: RecordControl.
    20.07.2009 М.А.Степанов
  > Код задачи 17721.
    - При загрузке обстановки может и не быть рабочего стола.
    - При очистке контейнера нужно удалять все рабочие столы.
    Изменены: DeskMenuExec, MultitabbedDesktop.
    20.07.2009 А.Б.Хах
    Изменены: MultitabbedDesktop.
  > Код задачи 17721.
    * После сохранения обстановки в качестве имени вкладки задается имя файла.
    * При удалении последней вкладки прячется PageControl.
    * При удалении последней вкладки, активируется предыдущая.
    * При удалении не активной вкладки ничего не делается.
    Изменены: SVclHtUtils, MultitabbedDesktop, ComCtrls.
    20.07.2009 А.Б.Хах
  * Код задачи 17331. Реализован многовкладочный интерфес. В конфигурацию
    добавлен параметр "Всегда показывать вкладки", если не установлен и если
    открыта только одна вкладка, то она не показывается.
    Горячие клавиши:
      Ctrl+Tab / Ctrl+Shift+Tab - Переключение вкладок.
      Ctrl+T / Ctrl+W - Создать / закрыть вкладку.
      Ctrl+Shift+F10 - Загрузить обстановку во вкладку.
      Shift+ Выбор обстановки из пункта меню - Загрузить обстановку во вкладку.
      Ctrl+F4, Alt+F3 - Закрыть текущее окно.
      Tab, Shift+Tab - Работают стандартно.
      Двойной щелчок по пустому месту рядом с заголовком вкладки -
      Создать новую вкладку.
      Щелчок средней клавишей мыши по вкладке закрывает ее.
    Добавлены: DockingDesktop, MultitabbedDesktop.
    Изменены: cnfdef, Desktop, SvclCommon.dpk, SVCLCommon_Registration,
      TableBrowser, TextBox, DeskMenuExec, password, FullInfo, SVclHtUtils,
      OraLogin.
    16.07.2009 А.Б.Хах
 P* Код задачи 17686. TTableBrowser теперь использует TTableDataSource.
    Изменены: SonarRequests, TableBrowser, SControls, frame_TableBrowser.xml.
    14.07.2009 А.Б.Хах
  * Код задачи 17671. Добавлено видимое разделение запросов разных привилегий в
    редакторе запросов.
    Изменены: ReqTree, VSTLink.
    14.07.2009 В.В.Тыщенко
  - Код задачи 17672. Ошибка при дублировании записи под Oracle - исправлено.
    Изменены: DataSetDataIO, SDBVCLUtils.
    14.07.2009 В.В.Тыщенко
  - Код задачи 17157. Неверно выставлялась видимость ScrollBar`а - исправлено.
    Изменены: SDBGrid.
    10.07.2009 В.В.Тыщенко
 B* Код задачи 17624. При попытке сохранить карточку с незаполненными
    обязательными полями в неактивных вкладках позиционирования курсора на
    соответствующее поле ввода не выполнялось.
    P: Для выделения элемента управления TDBEditFrame использован стандартный
       алгоритм - SelectControl из SVCLUtils.
    Изменены: DBEditFrame.
    10.07.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.132 от 09.07.2009
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  08.07.2009 П.В.Ветошкин.
  ----------------------------------------------------------

  - Код задачи 17655. Не открывались карточки, содержащие запросы.
    P: Изменён интерфейс функци LoadRequest модуля ReqUtils. Первым параметром
       добавлен AConnection: TCustomConnection.
    Изменены: AdvancedConstrainsFactory, DBInputMethods, DBObjectChoice,
      deskmenuexec, OraExtReq, ReqDesigner, ReqUtils, rwffactory, Sections.

    Адаптация. Для вызова функции ReqUtils.LoadRequest необходимо изыскать
    соединение с БД - TCustomConnection - и передать его первым параметром.
                                   * * *

  - Код задачи 17656. Различные расширения листалки теперь корректно
    навешиваются и удаляются.
    Изменены: TableBrowser, GridCodeView, LayoutManager, FullInfo.
    08.07.2009 А.Б.Хах
  - Код задачи 17622. Добавлена возможность отключить контроль вводимого
    значения.
    Изменены: EnterValue, DBInputMethods, DBEditFrame.
    08.07.2009 В.В.Тыщенко
 P! Код задачи 17305. Реализовано сохранение/восстановление запросов при
    закрытии/открытии набора данных.
    Изменены: DB, HtCodeView, LayoutManager, OraCodeView, ReportSupp,
      reqfactory, reqlimfactory, SControls, SDBGrid, sdboracle, SdbVcl,
      SDBVCLUtils, SonarDbIntf, SonarRequests, TableBrowser, TextBox.
    08.07.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.131 от 08.07.2009
--------------------------

 P* Добавлена процедура ApplyTableBrowserDefaultLayout: подготовка визуализации
    листалки по умолчанию по флагам схемы БД (вынесена из
    TTableBrowserForm.default_TableBrowser_ApplyLayout).
    Изменены: TableBrowser.
    08.07.2009 М.А.Степанов
  - Код задачи 17649. Набор данных теперь создается при установке соединения.
    Изменены: TableBrowser.
    08.07.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.130 от 08.07.2009
--------------------------

  - Код задачи 17621. При отработке полей "НеВыбирать" и "НеПоказыв." под
    Ораклом происходила ошибка "Не найден описатель таблицы XXX".
    Изменены: SVCLCommon_cnstr.
    07.07.2009 П.В.Ветошкин.
  - Код задачи: 17620. При подгрузке запросов не загружались ограничения с типом
    операции "в списке присутствует/отсутствует".
    Изменены: ReqFactory.
    07.07.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.129 от 07.07.2009
--------------------------

 P- Код задачи 17615. В редакторе запросов для таблицы Oracle некорректно
    отображалось значение поля нового типа.
    Изменены: sdb2utils.
    07.07.2009 И.В.Ковалев
  * Код задачи 17615. Поддержан новый тип поля при работе с Oracle
    Изменены: ReqConv, sdb2utils, sdbc2, sdboracle.
    07.07.2009 И.В.Ковалев
  - Код задачи 17585. При дублировании записи дублировалось и значение главного
    ключа, вследствие чего запись нельзя было сохранить - исправлено.
    Изменены: DataSetDataIO.
    07.07.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.128 от 07.07.2009
--------------------------

  - Код задачи 17613. Теперь если в TStreamWrapper'е отсутствует базовый поток,
    то считаем, что размер и текущая позиция всегда = 0.
    Изменены: Streams.
    06.07.2009 А.Б.Хах
  * Таблицы DETAILS и RPT_OBJ добавлены в список таблиц в которых главный ключ
    формируется с учетом сетевой привязки.
    Изменены: SonarVCL_Cnstr.
    06.07.2009 М.А.Степанов
  * Код задачи 17609. Если TTableDataSource находится в состоянии
    "дизайнирования", то, при загрузке, набор данных открывается немедленно,
    иначе отложено.
    Изменены: SControls.
    06.07.2009 А.Б.Хах
  - Код задачи 17592. Исправлен алгоритм масштабирования для форм ввода.
    Изменены: FlatButton, SectionList.
    06.07.2009 В.В.Тыщенко
  > + Код задачи 15106. Добавлена обработка флага визуализации поля
     "Форматировать".
      Изменены: SDBDataSets, sdb2utils, sdboracle.
      03.07.2009 В.В.Тыщенко
    + Код задачи 15077. Добавлена обработка флага визуализации поля "Визуализ0".
      Изменены: SDBDataSets, sdb2utils, sdboracle.
      03.07.2009 В.В.Тыщенко
  * Код задачи 17561. Добавлена возможность просмотра изображений, посредством
    DBEditFrame.
    Добавлены: frame_DBInputImage_Clipboard.xml, JvDBImage.
    Изменены: DBInputMethods, frame_DBInputBLOB.xml, SControls,
      SVCLCommon_Registration, TableBrowser, TBXJoiner, jvcl.dpk.
    02.07.2009 А.Б.Хах
  * Код задачи: 17432. В локальное меню листалки добавлен пункт "Выбрать"
    (Ctrl-F6) по которому можно дополнительно ограничить листалку.
    Изменены: TableBrowser, frame_TableBrowser.
    01.07.2009 М.А.Степанов
  - При открытии листалки таблицы с текстовыми бин. данными (под Hytech)
    происходило исключение вида "Ошибка доступа по неверному номеру поля инт.
    записи...".
    Изменены: SDBDataSets, SDBOracle.
    01.07.2009 М.А.Степанов
  + Код задачи 15104. Реализовано выравнивание при визуализации полей.
    Изменены: SDBDataSets, sdb2utils, sdboracle.
    01.07.2009 В.В.Тыщенко
  - Код задачи: 17573. При создании запроса с параметром типа RecordID, выборка
    становилась пустой хотя не должна менятся пока параметр не будет заполнен.
    P: Функция FieldIsNull некорректно работала для типа indRecordID.
    Изменены: SDBAPI.
    30.06.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.127 от 30.06.2009
--------------------------

  > Код задачи: 17098. Добавлен (адаптирован из DSP 2.6) новый тип поля
  > indRecordID. В связи с чем:
   P* Продаптированы изменения в каталоге SonarDB.
    * Выдаются всплывающие сообщения при некорректном вводе кодификаторов и
      идентификаторов записи.
      P: Добавлено событие app_HandleException, событие для обработки исключения
         (выдача сообщения на экран). Добавлено исключение EHintException,
         предназначено для того чтобы указать что сообщение данного исключения
         предпочтительнее выдавать не в виде модальной формы а в виде
         всплывающего окна (реализуется в SVCLCommon_Cnstr).
   P* Класс TSonarDB_CodeField пееределан в класс TSonarDB_BytesField который
      может работать как с кодификатором так и с идентификатором записи, для
      определения того с чем ему работать нужно вызвать метод SetupFieldType.
    Изменены: SonarSys, ArifmOp, BatchOpr, DBUtils, HT_cd1, HTDescr, IntData,
      IntData4, IRFields, JoinAcc, RecComparer, RecReq, ReqApi, ReqConst.inc,
      ReqConst.rc, S_Index, SDBAPI, SDBConst, SelKeyIn, Tabconv2, type2str,
      UsrUtil, form_DataChange, IntDataFactory, EditReqH, EnterValue,
      IntRecDesigner, ReqEditor, ReqFieldViewer, ReqUtils, ReqLimFactory,
      SDBDataSets, SonarDbIntf, SVCLCommon_cnstr, SVCLCommon_Registration,
      SVCLFormH, Config, DBObjects, GridIncrSearch, GridMultiSel, htSQLCustom,
      PyDB, /RWFCONV/IntDataFactory, /RWFCONV/reqlimfactory, SVclHtUtils,
      SDBOracle, Forms.
    Добавлены: RecordIDS.
    30.06.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.126 от 30.06.2009
--------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  08.06.2009 П.В.Ветошкин.
  ----------------------------------------------------------

  > Код задачи 17409.
    - Под Ораклом не строились окна полной информации.
   P+ В ISonarDataSet добавлено свойство PhysNum (А.Б.Хах).
   P* Изменены умолчания джя создания запросов по физическому номеру. Теперь
      значение физномера должено представлять собой строку (для HyTech -
      строковое представление физического номера) и ограничение (TLimiT) должно
      создаваться для типа данных indASCII.
    Изменены: changer, DBRecordBrowser, ReqConv, reqfactory, requests,
      sdboracle, SdbVcl, SonarDbIntf.

    Адаптация касается только программного построения запросов по
    физическому номеру для HyTech, например,
    было:
      NewRequest(
        root_request,
        slEqual,
        nil,
        0,
        NewVLimit(0, indLongint, 0, @ItemNo),
        nil);
    должно стать:
      current_row_id := IntToStr(ItemNo); // или current_row_id := i_data_set.PhysNum
      NewRequest(
        root_request,
        slEqual,
        nil,
        0,
        NewVLimit(0, indASCII, Length(current_row_id), PChar(current_row_id)),
        nil);
                                   * * *

  > Код задачи 17374.
    * Теперь при сохранении DBEditFrame'а, в случае когда InputController ещё не
      создан и ещё не успели применить фабрику InputController'а, то сохраняется
      эта фабрика.
    * Теперь при сохранении TInput_DBObjectChoice'а, в случае когда
      InputController ещё не создан и ещё не успели применить фабрику
      InputController'а, то сохраняется запрос из этой фабрики.
    * Теперь набор данных TTableDataSource открывается фоново, а также навешен
      обработчик отвечающий за фоновое обновление связанных наборов данных.
   P* В IdleOpenTable и TTableIdleOpenHandler.Create удален параметр
      AIdleVisible, т.к. он уже бессмыслен.
    Изменены: DBEditFrame, DBInputMethods, SControls, SDBVCLUtils, TableBrowser.
    26.06.2009 А.Б.Хах
  * Код задачи 17505. TTableBrowser пронаследован от TFrame, TTableBrowserFrame
    удалён.
    Изменены: GridCodeView, LayoutManager, MasterDetailHandlers, SectionList,
      Sections, SVCLCommon.dpk, SVCLCommon_cnstr, SVCLCommon_Registration,
      TableBrowser, TableBrowserForms, FullInfo, rwfdesigner, TableChoice.
    Удалены: TableBrowserFrame.
    26.06.2009 В.В.Тыщенко
  * Код задачи 17532. Восстановление параметров из фабрики и её уничтожение
    теперь осуществляется после открытия набора данных.
    Изменены: DBEditFrame.
    25.06.2009 А.Б.Хах
 P* Код задачи: 17398. Открывать карточку на редактирование можно и для
    неактивного набора данных.
    Изменены: form_DataChange, SDBVCLUtils, SectionList, SVCLCommon_cnstr.
    25.06.2009 М.А.Степанов
  - В листалках при изменении параметров запроса из локального меню выборка не
    изменялась.
    P: Перед обновлением выборки перестраивается составной запрос.
    Изменены: SonarDBIntf, SonarRequests, SDBVCL, SDBOracle.
    22.06.2009 М.А.Степанов
  - Неверно вычислялся минимальный размер шрифта формы - исправлено.
    Изменены: FormResizer.
    22.06.2009 В.В.Тыщенко
  - При вычислении реальных размеров формы компонентам с Align = alNone,
    alCustom не посылалось сообщение - исправлено.
    Изменены: FormResizer.
    18.06.2009 В.В.Тыщенко
  - При добавлении раздела во вкладку неверно вычислялась высота
    SectionPageControl`а - исправлено.
    Изменены: SectionPageControl.
    18.06.2009 В.В,Тыщенко
 P- Проверка наличия данных в BLOB-полях приводила к проблемам получения
    Int-записи по BLOB-полю, поскольку sdb_convert_to_vcl_field не рассчитан на
    работу с BLOB. Исправлено: в TSonarDB_Table._GetFieldData теперь специально
    отрабатывается этот случай
    Изменены: SDBVCL
    17.06.2009 С.Н.Штуркин
  - Происходило мелькание при восстановлении представления формы ввода, в
    котором были открытые разделы - исправлено.
    Изменены: SectionPageControl.
    17.06.2009 В.В.Тыщенко
  - Добавление к предыдущей ревизии.
    Изменены: SectionList.
    17.06.2009 В.В.Тыщенко
  - Код задачи 17408. Переделан алгоритм восстановления исходных размеров формы.
    Изменены: SectionList.
    17.06.2009 В.В.Тыщенко
  * Код задачи 16911. Вкладки, в которых содержатся открытые разделы, в
    карточках учёта теперь открываются внизу контейнера.
    Изменены: Buttons, SVCLCommon_cnstr, SVCLCommon.dpk, Sections, SectionList,
      Images.rc, frame_SectionList.xml, EditFormLayout,
      frame_SectionPageControl.xml.
    Добавлены: SectionPageControl, FlatButton, frame_SectionPageControl.xml.
    17.06.2009 В.В.Тыщенко
  - Код задачи 17072. Уточнено вычисление реальных размеров компонентов.
    Изменены: forms, TableBrowser, FormResizer, form_DataChange.
    17.06.2009 В.В.Тышенко
  - Код задачи 17424. Исправлено вычисление размеров кнопки в TSectionList.
    Изменены: SVCLUtils.
    17.06.2009 В.В.Тыщенко
  - Код задачи 17420. "Несанкционированный доступ..." при некорректно
    нарисованной карточке - имелись элементы управления, связанные с не
    существующими на момент выполнения полями. Например, в карточке таблицы
    DeskMenu флажок "Не выбирать" был связан с отсутствующим полем "НеВыбирать".
    Исправлено - выдаётся соответствующее сообщение.
    Изменены: SVCLUtils.
    16.06.2009 П.В.Ветошкин.
  * Код задачи 17435. Строка инкрементного поиска "моргала" чёрным цветом
    каждые 5 с. Проявлялось при работе с БД Oracle.
    Изменены: SDBGrid.
    16.06.2009 П.В.Ветошкин.
  > Код задачи 17437.
    - Применение запроса, созданного по Shift+F9 не сбрасывало результаты
      инкрементного поиска под Oracl-ом.
    - Инкрементный поиск под Oracl-ом мог работать неправильно. Устойчиво
      проявлялось при наличии запроса по Shift+F9.
    - При инициировании инкрементного поиска вводом символа с последующим
      нажатием Alt+F7, повторный ввод того же символа не приводил к
      соответствующему изменению выборки. Проявлялось и под HyTech и под
      Oracl-ом.
    Изменены: gridincrsearch, OraCodeView, oraincrsearch, ReqConv, SDBGrid.
    11.06.2009 П.В.Ветошкин.
  * TSection_RequestLimited: при закрытии соединения ссылка, хранящаяся в поле
    этого класса не очищалась - исправлено
    Изменены: Sections
    10.06.2009 С.Н.Штуркин
  * Теперь SectionList хранит ссылку на источник данных в экземпляре TDataLink,
    а не в своём поле, что приводило к AccessViolation в случае освобождения
    источника данных
    Изменены: SectionList
    10.06.2009 С.Н.Штуркин
  * Устранены лишние зависимости в SVCLUtils, SDBVCLUtils
    Изменены: SVCLUtils, SDBVCLUtils
    08.06.2009 С.Н.Штуркин
  * Код задачи 17347. Добавлен контроль диапазонов значений полей целочисленного
    типа, а также механизм, позволяющий вести дополнительный контроль вводимых
    значений.
    Добавлены: FieldValidator.
    Изменены: DBEditFrame, DBInputMethods, RecordControl, SVCLCommon.dpk,
    SVCLCommon_cnstr.
    05.06.2009 А.Б.Хах
  * Код задачи 17399. Теперь в GetDBFieldEnableRules при получении флагов поля,
    если не найдена подсхема, используется инт. запись.
    Изменены: SVCLCommon_cnstr, RecordControl.
    04.06.2009 А.Б.Хах
  * Код задачи 17380. Обновление подчиненых листалок теперь происходит при
    инкрементном поиске и по Ctrl+Home и т.п.
    Изменены: MasterDetail, RecordControl, SonarDBIntf, SVCLCommon_cnstr,
    SVCLUtils, TableBrowser, GridIncrSearch, SDBVCL, SonarVCL_Cnstr,
    OraIncrSearch.
    04.06.2009 А.Б.Хах
 P* PerformRowCommand: обновление записи перенесено в TableBrowser.
    Изменены: TableBrowser, SDBVCLUtils.
    03.06.2009 М.А.Степанов
 B* Код задачи 17403. Оптимизировано исполнение запросов по условию "в
    списке", если это условие на уникальный ключ и значение (ограничение)
    берётся из выборке по той же таблице.
    Изменены: Requests.
    25.06.2009 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.125 от 03.06.2009
--------------------------

  - Код задачи: 17936. Редактор запросов: При редактировании граничного значения
    для поля даты, некорректно определялась длина поля.
    Изменены: ReqEditor.
    03.06.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.124 от 03.06.2009
--------------------------

  - Код задачи 17394. Неверное выполнение отчетной формы под Oracle.
    Изменены: OraRwfExec, sdboracle.
    03.06.2009 И.В.Ковалев
  - Код задачи 17363. Проверка того, изменилась ли записль или нет,
    теперь производится в InternalPost.
    Изменены: SdbOracle, SonarSys.
    02.06.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.123 от 31.05.2009
--------------------------

  - Не сохранялось ограничение администратора.
    Изменены: TableBrowserFrame.
    28.05.2009 А.Б.Хах
  * Код задачи 17342. В листалке Oracle в случае, когда количество записей
    в выборке еще не известно после количества записей показывается символ
    "+", после команды "подсчета количества записей" показывается реальное
    количество записей в выборке (ранее показывалось не более, чем
    максимальное количество записей в листалке).
    Изменены: TableBrowser, SDBOracle, SonarDbIntf.
    28.05.2009 И.В.Ковалев
                                 --- * ---

DSP v3.0.122 от 26.05.2009
--------------------------

 P* Код задачи 17329. Добавлена возможность изменять макс. количество
    записей в скроллируемом наборе данных Oracle.
    Изменены: sdboracle.
    26.05.2009 И.В.Ковалев
                                 --- * ---

DSP v3.0.121 от 26.05.2009
--------------------------

 P* Код задачи 17276. Теперь за активность фонового клиента для визуальных
    компонентов отвечает TControlIdleController.
    Изменены: IdleVCL, DBObjectChoice, SDBVCLUtils, TableBrowser, Controls.
    26.05.2009 А.Б.Хах
  * Код задачи 17308. Теперь обновление подчиненных листалок происходит
    при восстановлении полной выборки и удалении записи из выборки.
    Изменены: TableBrowser, SdbVcl, MasterDetail.
    22.05.2009 А.Б.Хах
 P* Код задачи 17304. Удалён класс tLinkLimit и всё, что с ним связано.
    Изменены: DsLimit, ReqAPI, ReqConst, ReqLimFactory, ReqLimit,
      Requests, ReqUtils, RqsData, SVCLCommon_Registration, tchinfrq.
    21.05.2009 П.В.Ветошкин.
  + Код задачи 16254. Добавлена функциональность, позволяющая учитывать
    значения полей "НеВыбирать" и "НеПоказыв." в листалках, появляющихся в
    диалогах выбора одной или нескольких (мультивыбор) записей.
    Изменены: SControls, SVCLCommon_cnstr.
    18.05.2009 П.В.Ветошкин.
  * Код задачи 17220. Теперь подчиненные листалки обновляются только при
    скроллировании главной.
    Изменены: MasterDetail.
    14.05.2009 А.Б.Хах
 P* Код задачи 17004. Для редактирования запросов теперь используется
    ReqEdit.EditRequests.
    Изменены: TableBrowser.
    14.05.2009 А.Б.Хах
  * Код задачи 17004. Функция редактирования пользовательского и
    администраторского запросов вынесена в отдельный модуль для использования в
    дизайнере.
    Добавлены: ReqEdit.
    Изменены: SVCLCommon.dpk
    14.05.2009 А.Б.Хах
  - При добавлении записи в крим.учете в карточке KU_AUTO, при выборе тс,
    поля не становились редактируемыми.
    P: hnd_DBObjectChoice_EllipsisClick: в параметрах события не менялось
       поле Accepted.
    Изменены: SVCLCommon_cnstr.
    13.05.2009 М.А.Степанов
  - Код задачи 17247. Если форма, после "подгонки" её размеров под сетку, не
    помещается на экране, то отключается AutoSizeColumns, чтобы колонки сетки не
    сжались.
    Изменены: TableBrowser, SDBGrid.
    13.05.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.120 от 13.05.2009
--------------------------

  * Код задачи 17052. Теперь размер колонок листалок расчитывается
    автоматически.
    Изменены: FormUtils, frame_TableBrowser.xml, SDBGrid, SectionList, Sections,
    SVCLCommon_cnstr, TableBrowser, TableBrowserForms.
    12.05.2009 А.Б.Хах
  ! TComponentReader: добавлено свойство Isolate, обеспечивающее возможность
    загрузки компонента без учёта уже загружаемых. Т.е. разрешение ссылок в
    случае, если Isolate = True будет идти только в контексте самого
    загружаемого компонента с использованием глобального пространства имён и без
    использования контекста других компонентов, загружаемых посредством
    TComponentReader в настоящий момент
    Изменены: SVCLUtils, ContentLoader
    08.05.2009 С.Н.Штуркин
  * Код задачи 17067. Листалка кодификатор. Горячая клавиша Alt+BkSp
    пункта локального меню "Кодификатор|Установить на предка" заменена на
    BkSp.
    Изменены: GridCodeView, frame_codegrid.xml.
    08.05.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.119 от 07.05.2009
--------------------------

  > Код задачи 17156.
    * Удаление узла теперь осуществляется рекурсивно.
    - При удалении узла не удалялся физический номер в индексе, что
      приводило к ошибке.
    Изменены: RegDef, BFReg.
    06.05.2009 А.Б.Хах
 P- Код задачи 17221. Метод _IsNull всей иерархии tField работал неверно.
    Изменён его интерфейс - бестиповый var-параметр заменён на ValueBuffer:
    Pointer. Исправлены все перекрытия _IsNull - работа с указателем
    производилась как с переменной. Удалён метод tField.FieldIsNull.
    Изменены: Records.
    06.05.2009 П.В.Ветошкин.
 P- Код задачи 17216. Метод tStringField._IsNull всегда возвращал False.
    Изменены: Records.
    05.05.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.118 от 05.05.2009
--------------------------

  * Код задачи: 17173. В редакторе запросов при выборе поля не происходило
    позиционирования на текущее поле.
    P: FieldViewer: В режиме MultiSelect = False, не работало св-во Selected,
       заданый узел не выбирался.
    Изменены: FieldViewer.
    04.05.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.117 от 30.04.2009
--------------------------

  * Код задачи 17163. Oracle'овое поле ROWID теперь считается нередактируемым
    и невводимым.
    Изменены: SVCLOracle_cnstr.
    30.04.2009 А.Б.Хах

                                 --- * ---
DSP v3.0.116 от 29.04.2009
--------------------------

  * Теперь обработчик двойного щелчка по листалке срабатывает только если не
    отработали другие, более высокоприоритетные обработчики (напр. при выборе из
    списка).
    Изменены: TableBrowser, SVCLFormH.
    29.04.2009 А.Б.Хах
  - Код задачи 17168. Из запроса в TDataSetRequestPresets.hnd_GetFieldPresets
    извлекались значения полей ввиде их строкового представления. Что в итоге,
    при установке этих строковых представлений (напр. для Boolean: 'Нет' и т.п.)
    в качестве предустановок давало ошибку в TDataSetRecordController'е при
    сравнивании двух Variant'ов (напр. для Boolean: Variant типа String ('Нет')
    и вариант типа Boolean (False)).
    Изменены: RecordControl, SDBDataSets, VCLReq, TableBrowser.
    29.04.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.115 от 29.04.2009
--------------------------

  - Не работал мультивыбор в листалках.
    P: После открытия набора данных все его поля становились редактируемыми
       из-за вызова DoSetViewOnly.
    Изменены: RecordControl.
    29.04.2009 М.А.Степанов
  * Код задачи 17065. Теперь по двойному щелчку появляется карточка.
    Изменены: TableBrowser.
    29.04.2009 А.Б.Хах
  - Код задачи 17166. Несанкционированный доступ в карточке при попытке принять
    пустой адрес владельца на 2-й странице карточки "KU_AUTO".
    Изменены: oradeskmenu, OraRwfExec, ReportSupp, SControls, Sections,
      SVCLCommon_cnstr, TableBrowserForms, TableBrowserFrame.
    29.04.2009 П.В.Ветошкин.
  * Код задачи 17149. Запрос TextBox'а теперь сохраняется и восстанавливается.
    Изменены: SDBVCLUtils, RecordControl, TextBox, TableBrowser,
    TableBrowserFrame.
    28.04.2009 А.Б.Хах
 P* Код задачи 16843. Удалена функция LoadRequest.
    Изменены: ReqAPI.
    28.04.2009 П.В.Ветошкин.
  - Код задачи 17162. При сохранении данных в форме ввода Oracle данные в
    таблице изменялись в ситуации, когда ни одно поле не поменялось.
    Изменены: sdboracle, sonarsys, DBObjectChoice.
    28.04.2009 И.В.Ковалев
                                 --- * ---

DSP v3.0.114 от 28.04.2009
--------------------------

 P* Код задачи: 16904. SVCLCommon_cnstr.hnd_DBObjectChoice_GetObjectDescription:
    код по получению записи и ее описания вынесен в модуль
    ObjectDescriptions, выдача сообщения при ненахождении записи вынесена в
    DBObjectChoice.
    Изменены: DBObjectChoice, SVCLCommon_cnstr, SVCLUtils.
    Добавлен: ObjectDescriptions.
    27.04.2009 М.А.Степанов
  * Код задачи 16764. После применения результата редактирования запроса
    (по Shift+F9) следы окна редактора запросов могли некоторое время
    оставаться на экране. Проявлялось на большой базе Oracle.
    Изменены: TableBrowser.
    25.04.2009 П.В.Ветошкин.
 P* В hnd_GetDatabasePath путь возвращается только если соединение установлено
    (Connected).
    Изменены: SVCLHtUtils.
    24.04.2009 А.Б.Хах
  - Листалка таблицы: Пункт меню "Изменить параметры" был запрещен для
    выбора.
    Изменены: TableBrowser.
    23.04.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.113 от 23.04.2009
--------------------------

  - Код задачи 16988. При упаковке не удалялись неиспользуемые тома.
    Изменены: BinData.
    22.04.2009 А.Б.Хах
  * Код задачи 15090. Установка параметра TwoDigitYearCenturyWindow, отвечающего
    за пороговое значение года для 2х значной записи, теперь выполняется из
    конфигурационного файла.
    Изменены: cnfdef.
    21.04.2009 А.Б.Хах
  * Код задачи 17078. Размеры сетки листалки увеличиваются перед тем, как ее
    показать.
    Изменены: TableBrowser.
    21.04.2009 А.Б.Хах
  - Код задачи 17080. В утилите leg_ora при выполнении отчета, в котором
    есть итоговое поле с подсчетом количества разных значений происходила
    ошибка
    "Ошибка использования OCI (библиотеки доступа к Oracle):
    Неверный параметр (код: -2)."
    Изменены: ReqConv, OraRwfExec.
    21.04.2009 И.В.Ковалев
  * Код задачи 16900. После того, как произведен обход ВСЕХ фоновых клиентов
    менеджера, нужно прервать обработку фоновых квантов этим менеджером и дать
    возможность обрабатывать кванты следующему.
    Изменены: IdleMan.
    20.04.2009 А.Б.Хах
  * Код задачи 17047. Отбор полей для построения полей ввода осуществляется при
    помощи GetDBFieldEnableRules.
    Изменены: FormUtils.
    20.04.2009 А.Б.Хах
  * Код задачи 16634. Добавлен вызов PrepareRowCommand перед показом поля ввода
    текста для того, чтобы отработать проверку редактируемости поля.
    Изменены: TableBrowser.
    20.04.2009 А.Б.Хах
  * Код задачи 17054. Добавлена функция IsAllowKey - задаёт множество клавиш,
    сообщения о нажатии которых надо передавать Parent`у.
    Изменены: Controls.
    20.04.2009 В.В.Тыщенко
  * Код задачи 16920. Показывался ненужный скроллбар, сейчас показывается только
    когда нужен.
    Изменены: SDBGrid.
    20.04.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.112 от 17.04.2009
--------------------------

 P* Отключено чтение метаданных из БД Oracle при построении наборов данных
    по запросам sql, количество записей в порции чтения увеличено до 100.
    Изменены: SVCLOracle_cnstr.
    17.04.2009 И.В.Ковалев
 P* Изменен текст запроса на обновление текущей записи набора данных Oracle:
    имя параметра
    заменено с ROWID1 на "ROWID" с целью отработки запроса стандартными
    средствами Anydac.
    Изменены: REQCONV, uADDAptManager.
    17.04.2009 И.В.Ковалев
 P* Код задачи: 16844. Добавлен модуль CheckVer: проверка версии проекта.
    Изменены: DBCnstr, DBReg.
    Добавлены: CheckVer.
    16.04.2009 М.А.Степанов
  - Временно разрешено отдавать паренту только сообщения о нажатии PgUp/PgDown.
    Изменены: controls.
    16.04.2009 В.В.Тыщенко
  - Запросы, повешенные на листалки во внешних ссылках не сохранялись -
    исправлено.
    Изменены: sdbvcl.
    16.04.2009 В.В.Тыщенко
  - Код задачи 17045. Несанкционированный доступ при открытии отчёта fast
    report.
    Изменены: ReportSupp.
    16.04.2009 П.В.Ветошкин.
  - Код задачи 16930. В карточках было пустое справа, сейчас там находится
    скроллбар.
    Изменены: forms, SVCLCommon_cnstr, FormResizer.
    16.04.2009 В.В.Тыщенко
  * Код задачи 17020. Добавлено имя таблицы в заголовок.
    Изменены: DBGridLayout.
    15.04.2009 А.Б.Хах
  - Код задачи: 17030. При редктировании в таблице исключение
    EAccessViolation если в таблице нет редактируемых полей.
    P: hnd_CreateForm: при возникновении исключения форма уничтожалась но
       возвращаемая ссылка на нее не обнулялась.
    Изменены: SVCLCommon_cnstr.
    15.04.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.111 от 14.04.2009
--------------------------

  Внимание! Возможно потребуется адаптация <ADAPT>
  ------------------------------------------------

  * Функции GetCodeFieldValue, GetCodeValue, GetCodeAsVariant перенесены из
    SDBVCLUtils в SDBDataSets
    Изменены: SDBVCLUtils, SDBDataSets, GridCodeView, DeskMenuExec, SetupCodes,
      OraDeskMenu
    13.04.2009 С.Н.Штуркин
                                   * * *

  * Код задачи 17027. В целях ускорения скроллирования в листалках по
    данным из Oracle размер порции чтения данных увеличен с 50 до 100
    записей.
    Изменены: SDBORACLE.
    14.04.2009 И.В.Ковалев
  * Код задачи 16897. Реализована трансляция в SQL запросов "в группе по".
    Изменены: REQCONV.
    14.04.2009 И.В.Ковалев
  - Код задачи 16893. При масштабировании форм ввода разделы пропадают
    (уходят вниз) - исправлено.
    Изменены: EditFormLayout, form_DataChange, SectionList, SVCLUtils.
    14.04.2009 В.В.Тыщенко
  - По нажатию на Esc закрывался как активный инкрементный поиск, так и листалка
    - исправлено.
    Изменены: SDBGrid.
    13.04.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.110 от 13.04.2009
--------------------------

  Внимание! Наверняка потребуется адаптация <ADAPT>
  10.04.2009 С.Н.Штуркин
  -------------------------------------------------

  ! Проведено разделение функциональности SonarDBIntf, SVCLUtils, SDBVCLUtils и
    SDataSet
  ! SDataLink переименован в MasterDetail
  + SVCLUtils: Добавлено событие app_PrepareForm, рассылаемое после построения
    формы ввода
  * TableBrowser и SDBVCLUtils: Тип TTableBrowser_RowCommand переименован в
    TRowCommand и перенесён из TableBrowser в SDBVCLUtils; туда же перенесена
    функция GetRowCommandCaption
  Изменены: слишком много, чтобы перечислить
  Добавлены: CommonForms, DataSetDataIO, ExportUtils, FormUtils,
  MasterDetailHandlers, MultiChoiceSDBDataSets, TableBrowserForms
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  09.04.2009 П.В.Ветошкин.
  ----------------------------------------------------------

  ! Код задачи 15025. Добавлены ограничения администратора.
    Добавлены: SonarRequests.
    Изменены: DBRecordBrowser, deskmenu, deskmenuexec, HtCodeView,
      intdata, oradeskmenu, OraRwfExec, ReportDesigner, ReportSupp,
      ReqDesigner, SControls, sdboracle, SdbVcl, SDBVCLUtils, Sections,
      SonarDbIntf, SVclCommon.dpk TableBrowser, TableBrowserFrame,
      TextBox, VCLReq.

    Адаптация. Некомпилируемые обращения к свойству Request.
      Получить интерфейс ISonarRequests. Далее работаем с этим
      интерфейсом.
      1. Вызовы присваивания "Request := XXX" заменяем на
         Requests.AddObject(request_name, XXX), где request_name -
         уникальное имя добавляемого запроса. Если это имя совпадёт с уже
         существующим в списке запросов Requests, то соответствующий
         запрос будет просто заменён на XXX, при этом существующий будет
         уничтожен автоматически. Т.о. если XXX - переменная (в отличие от
         результата выполнения функции, например CopyReq), то присваивание
         нужно выполнять в блоке:
        try
          Requests.AddObject(request_name, XXX);
        finally
          XXX := nil;
        end;
      2. Вызовы чтения. Если необходимо получить весь запрос, то следует
         использовать свойство Requests.CompositeRequest. Если нужно
         получить отдельный запрос из списка, то следует использовать
         примерно следующий код:
         i := Requests.IndexOf(request_name);
         if i >= 0 then
           request := Requests.Objects[i] as HRequest;
           // или, если нужна копия
           request := CopyReq(Requests.Objects[i] as HRequest);
         Если нужен списко целиком, то можно применить
         request_list.Assign(Requests); // для получения указателей,
         или в цикле
         for i := 0 to Requests.Count- 1 do
           request_list.AddObject(
             Requests[i],
             CopyReq(Requests.Objects[i])); // для получения копий.
                                   * * *

  + Код задачи 16888. Добавлено прокручивание компонент-контейнеров по
    PgUp/PgDn, колесу мыши.
    Изменены: form_DataChange, FormResizer, SVCLCommon_cnstr, SVCLFormH,
      DBGrids, controls, forms, stdctrls.
    13.04.2009 В.В.Тыщенко
  - Исправлена ошибка, связанная с неправильным добавлением запроса.
    Изменены: Sections.
    10.04.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.109 от 09.04.2009
--------------------------

  * Код задачи 16948. Свойство TDBObjectChoiceFieldDataLink.ReadOnly
    синхронизировано со свойством DataLink'а Control_ValueEdit'а.
    Изменены: DBObjectChoice.
    09.04.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.108 от 09.04.2009
--------------------------

  * Код задачи 16895. Из формы ввода параметров соединения с Oracle
    удалены поля ввода имени сервера и базы данных Oracle, вместо этого
    используются 2-й и 3-й параметры запуска.
    Изменены: OraLogin, frame_OracleConnection.xml.
    09.04.2009 И.В.Ковалев
  * Код задачи 16869. Теперь предустановки делаются после открытия набора
    данных. Изменен алгоритм сброса свойств при переходе к другой записи.
    Изменены: RecordControl.
    09.04.2009 А.Б.Хах
  - Код задачи 16886. При помещении формы во вкладку теперь видны несколько
    строк помещаемой формы.
    Изменены: SectionList.
    09.04.2009 В.В.Тыщенко
  - Код задачи 16925. При масштабировании не производился перерасчёт места,
    отводимого под заголовок раздела - исправлено.
    Изменены: SectionList.
    09.04.2009 В.В.Тыщенко

DSP v3.0.107 от 08.04.2009
--------------------------

  * Код задачи 16942. Если подсхемы у набора данных нет, то считаем его
    редактируемым.
    Изменены: RecordControl.
    08.04.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.106 от 08.04.2009
--------------------------

  * Код задачи 16869. Изменен алгоритм сброса свойств полей при переходе к
    другой записи.
    Изменены: RecordControl, DB.
    08.04.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.105 от 08.04.2009
--------------------------

  * Код задачи 16883. При инициализации пакета SVCLCommon осуществляется
    установка русской раскладки клавиатуры.
    Изменены: SVCLCommon_cnstr.
    Добавлены: KeyboardLayouts.
    07.04.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.104 от 07.04.2009
--------------------------

  - При обнулении поля в полях выбора (TDBObjectChoice) не обнулялась
    строка описания.
    Изменены: DBObjectChoice.
    07.04.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.103 от 07.04.2009
--------------------------

  * Код задачи 16869. Поддержано свойство ViewOnly(см. описание). Также
    редактируемость набора данных автоматически определеятся по описателю.
    Изменены: RecordControl.
    07.04.2009 А.Б.Хах
  - Код задачи 16471. На компьютерах с объемом памяти больше 4Гб программы
    не работали. Введены ограничения на использование памяти в Hytech.
    Изменены: sonarsys, htsys.
    06.04.2009 С.А.Барсуков
 P* Считаем, что владеем переданным в AddPreset TFieldPreset'ом,
    поэтому в случае исключения уничтожаем его. Также TFieldPreset.Value
    теперь Variant.
    Изменены: RecordControl.
    03.04.2009 А.Б.Хах
                                 --- * ---

DSP v 3.0.102 от 03.04.2009
---------------------------

  Внимание! Возможно, потребуется адаптация <ADAPT>
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 !> SonarCore:
    * В словарях Arrays.TDictionary теперь хранятся строки, а не ссылки на них
    * ev_EventListChange: в параметрах этого события идетификатор события, для
      которого создаётся или освобождается блок информации, передаётся в виде
      строки, а не ссылки на строку как раньше (*)
    > Поддержка атрибутов объектов:
      * Создание атрибутов ускорено приблизительно в 2 раза за счёт хранения
        имён атрибутов непосредственно в соотв. записи, вместо централизованного
        хранения в словаре
      * Значения атрибутов в записи хранятся в значении типа Variant, а не
        ссылки на Variant как раньше
    Изменены: Arrays, SonarCore, LibUtils, BatchOpr, DBUtils, DBEditFrame,
    SDataSet, SDBGrid, SVCLUtils
    01.04.2009 С.Н.Штуркин

  Адаптация: учтите в своих обработчиках события ev_EventListChange
  обстоятельство (*)
                                   * * *

  Внимание! Возможно, потребуется адаптация <ADAPT>
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 !+ Добавлен класс RecordControl.TDataSetRecordController, обеспечивающий
    поддержку предустановки и запрета интерактивного изменения значений полей. В
    связи с этим:
    * DBUtils: удалены TDefaultFieldsHandler, TDefaultFieldsFromReq,
      GetDefaultFieldsHandler, ResetDefaultFields, SetFieldsReadOnly
    * TableBroser: добавлен TDataSetRequestPresets
    * SonarDbIntf: удалена функция SetupDataSetFieldFlags
    Добавлены: RecordControl
    Изменены: DBUtils, TableBrowser, Sections, SDBVCL, SDBOracle

  Адаптация: используйте функциональность класса TDataSetRecordController для
  предустановки значений и запрета интерактивного изменения значений полей
                                   * * *

  - В TDBEditFrame.UpdateLayout Controller может быть nil.
    Изменены: DBEditFrame.
    02.04.2009 А.Б.Хах
 P! sdb_create_vcl_field_defs: шаблон поля TFieldDef отмечается флагом
    faReadOnly только в случае, если поле появилось в наборе данных в результате
    соединения с другой таблицей. Флаги tfInput и tfEdit теперь не учитываются
    Изменены: SDataSet
    01.04.2009 С.Н.Штуркин
  > SDBGrid:
    * Свойство TSDBGrid.GridFilter перенесено в секцию public
    + Добавлен обработчик события app_ExtractDataSet для TDBGrid
    Изменены: SDBGrid
    01.04.2009 С.Н.Штуркин
  + Реализована предустановка значений полей при вводе из запроса и
    инкрементного поиска; добавлен класс TDataSetRequestPresets для
    предустановки значений полей при вводе из запроса
    Изменены: TableBrowser
    01.04.2009 С.Н.Штуркин
  * Окно связи с текстом: для взаимодействия со стандартными средствами,
    управляющими возможностью интерактивного изменения значений полей для ввода
    текста использован TDBEditFrame вместо TDBMemo, а для набора данных
    применяется GetRecordController
    Изменены: TextBox, frame_TextBox.xml
    01.04.2009 С.Н.Штуркин
                                 --- * ---

DSP v 3.0.101 от 01.04.2009
---------------------------

  * SysInit.pas теперь собирается с блоком опредлелений sysdebug.inc
    Изменены: SysInit.pas
    01.04.2009 С.Н.Штуркин
  + MakeVer.exe: Добавлено использование FastMM, протоколирования стека и
    утечек памяти
    Изменены: MakeVer
    01.04.2009 С.Н.Штуркин
  * DeCAL: убраны лишние пустые строки и незначащие директивы protected и
    published; в DeCAL.FreeAndClear убрано лишнее присоение nil локальной
    переменной. Редакция модулей оставлена без изменений, поскольку
    изменения нефункциональные.
    Изменены: DeCAL, mwFixedRecSort
    01.04.2009 С.Н.Штуркин
  + Добавлена сборка DSP с профилированием.
    Изменены: Core.dpk, core.py, dsp.py.
    01.04.2009 В.В.Тыщенко
  - Код задачи 16738. Исправлена сама ошибка и много других недочётов при
    масштабировании.
    Изменены: EditFormLayout, form_DataChange, FormResizer, SDBVCLUtils,
    SectionList, TableBrowser.
    01.04.2009 В.В.Тыщенко
  * Добавлена рассылка событий ev_DataSet_AfterClose, ev_DataSet_AfterInsert,
    ev_DataSet_AfterRefresh, ev_DataSet_AfterScroll, ev_DataSet_BeforeCancel,
    ev_DataSet_BeforeClose, ev_DataSet_BeforeDelete, ev_DataSet_BeforeRefresh,
    ev_DataSet_BeforeScroll, ev_DataSet_CalcFields.
    Изменены: DB.
    31.03.2009 А.Б.Хах
  - Код задачи 16825. При работе с ограниченной листалкой таблицы S_OVD
    СУБД Oracle после нажатия "-", а затем нажатия "+" на той же записи
    выборка оказывалась пустой. Ошибка была в функции объединения
    запросов: результат объединения запроса 1 хотя бы одно из условий
    выполнено
      - условие 1
      - условие 2
    с запросом 2
    все условия выполнены
      - условие 3
    был такой:
    все условия выполнены
      - условие 1
      - условие 2
      - условие 3
    Изменены: REQAPI.
    31.03.2009 И.В.Ковалев
  - Код задачи 16826. В алгоритме перебора TIdleClient'ов у TIdleManager'а
    была допущена ошибка. Исправлено.
    Изменены: IdleMan.
    30.03.2009 А.Б.Хах
  * Фоновое обновление листалки теперь вызывается только если набор данных
    находится в режиме просмотра (dsBrowse).
    Изменены: TableBrowser.
    30.03.2009 А.Б.Хах
 P- Код задачи 16686. PerformRowCommand. Если в ходе построения формы
    ввода происходило исключение то изменённые данные листалки фоново
    сохранялись в БД.
    Изменены: SDBVCLUtils.
    30.03.2009 П.В.Ветошкин.
  * Код задачи 16820. Теперь состояние фонового кванта определяется по
    следующему правилу:
    а) квант считается необработанным, если Perform вернул
       IdleEvent_Passed
    б) квант считается необработанным, если время его обработки составило
       меньше 10 мсек
    в) каждый 2ой квант считается необработанным.
    Изменены: IdleVCL.
    30.03.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.100 от 30.03.2009
--------------------------

 P- Показ текста исключения в консольных утилитах выполнялся в
    кодировке ANSI вместо OEM.
    Изменены: SysUtils.
    27.03.2009 И.В.Ковалев
 P- Сообщение об ошибке получения информации о версии файла было в
    кодировке OEM.
    Изменены: fileinfo.
    27.03.2009 И.В.Ковалев
 P* Поддержана работа компонентов для работы с Oracle в консольных
    утилитах.
    Изменены: SDBOracle.
    27.03.2009 И.В.Ковалев
  - Код задачи 16816. Ошибка "[AnyDAC][DatS]-12. Column [СостВ_ИЦ] is read
    only" при изменении данных в СУБД Oracle.
    Изменены: uADDatSManager.
    27.03.2009 И.В.Ковалев
  - Код задачи 16754. global_EventInfo_CreateInputController могла быть не
    проинициализирована.
    Изменены: DBEditFrame.
    27.03.2009 А.Б.Хах
 B- Код задачи 16747. Если в GetIdleManager передавался nil, то создавался новый
    TAppIdleController, который навешивал обработчики, которые замедляли работу
    программы. Теперь ищется существующий TAppIdleController, т.е. он теперь
    один для всего приложения.
    Изменены: IdleVCL.
    27.03.2009 А.Б.Хах
 P- При определенных условиях распаковка шифрованного потока приводила к
    аварийному завершению программы.
    Изменены: zlib, zlib2.
    26.03.2009 С.А.Барсуков
  * Код задачи 16775. Теперь если у TDBObjectChoice поле IsNull, то не
    выполняется поиск описания из справочника.
    Изменены: DBObjectChoice.
    26.03.2009 А.Б.Хах

                                 --- * ---

DSP v3.0.99 от 26.03.2009
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  13.03.2009 П.В.Ветошкин.
  ----------------------------------------------------------

 P* Код задачи 16660. Функция GetSchemaDef заменена на пару функций
    TryExtractSchemaDef и ExtractSchemaDef.
    Изменены: DBInputMethods, FieldViewer, htdescr, reqfactory,
      rwffactory, SDataSet, sdboracle, SdbVcl, SDBVCLUtils, SetupCodes,
      SonarDbIntf, TableBrowser.

    Адаптация. Некомпилируемые вызовы и идентификаторы:
    1. GetSubSchemaDef: заменить на Try/ExtractSchemaDef по смыслу
       (ExtractSchemaDef в случае неудачи генерирует исключение).
    2. app_GetSchemaDef, TEvent_GetSchemaDef: заменить на
       app_ExtractSchemaDef и TEvent_ExtractSchemaDef соответственно.

                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  12.03.2009 П.В.Ветошкин.
  ----------------------------------------------------------

 P! Код задачи 16655. Проведена некоторая реконструкция, обеспечивающая
    более удобное построение пользовательских запросов.
    Добавлены: AdvancedConstrains, AdvancedConstrainsFactory.
    Изменены: DBGridLayout, DBInputMethods, dbutils, deskmenu,
      deskmenuexec, DsLimit, EditReqH, GridCodeView, grproj,
      grprojfactory, htdescr, oradeskmenu, OraRwfExec, ReqEditor,
      reqfactory, rwffactory, SDataSet, sdboracle, SdbVcl, SDBVCLUtils,
      Sections, SonarDbIntf, sonarsys, SVCLCommon_Registration, SVCLUtils,
      TableBrowser, VCLReq, sonardb.dpk, SVclCommon.dpk.
    12.03.2009 П.В.Ветошкин.

    Адаптация. Некомпилируемые вызовы и идентификаторы:
    1. GetSubSchema: заменить на TryExtractSubSchema или ExtractSubSchema (по
       смыслу - ExtractSubSchema при неудачи взводит исключение) из модуля
       HtDescr.
    2. TEvent_GetSubSchema: адаптировать к TEvent_ExtractSubSchema с
       ОБЯЗАТЕЛЬНЫМ (!!!) переносом соответствующего обработчика с
       app_GetSubSchema на app_ExtractSubSchema (app_GetSubSchema существует и
       рассылается по другому поводу).
    3. GetSchemaDef, app_GetSchemaDef: подключить модуль HtDescr.
    4. GetDopRequest, TDopReqHandler: подключить модуль
       AdvancedConstrains.
    5. GetSchemaConnection: заменить на TryExtractConnection или
       ExtractConnection (по смыслу).
    6. TryExtractConnection, ExtractConnection: подключить SonarDbIntf.
    7. ECantExtract, RaiseCantExtract: подключить SonarSys.
    8. app_GetConnectionBySchema: заменить на обработку
       app_ExtractConnection.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  27.02.2009 И.В.Ковалев
  ----------------------------------------------------------
 P* Обновлена версия AnyDac.
    Изменены: OraDeskmenu, OraRwfExec, anydak.dpk,
    заменены модули AnyDac.

    Адаптация: Если не будет компилироваться из-за того, что не найден
    модуль AnyDac - изменить название модуля, обращение к Unidirectional -
    заменить на FetchOptions.Unidirectional
                                   * * *

  > - Код задачи 16738. Изменен алгоритм вычисления высоты места, отводимого под
      разделы учёта, при открытии карточки.
    + Добавлено событие, сообщающее о том, что форма полностью построена.
    - Неверно вычислялись размеры TTableBrowserFrame - исправлено.
      Изменены: form_DataChange, FormResizer, SDBVCLUtils, TableBrowserFrame,
        EditFormLayout, SectionList.
      26.03.2009 В.В.Тыщенко
  - Код задачи 16725. Убрано нарушение доступа.
    Изменены: ReqEditor.
    20.03.2009 А.Б.Хах
  * Код задачи 16676. Добавлен компонент TTableDataSource (наследник
    TDataSource), инкапсулирующий набор данных нужного типа (Oracle'овый либо
    HyTech'ый в зависимости от типа переданного ему соединения).
    Изменены: SControls, SVCLCommon_Registraction.
    18.03.2009 А.Б.Хах
  * Код задачи 16683. Обратно установлены случайно удаленные обработчики.
    Изменены: SdbVcl.
    17.03.2009 А.Б.Хах
  + Код задачи 16455. Добавлено событие - завершение обновления (Refresh)
    раздела секций (tSectionList).
    Изменены: SectionList.
    17.03.2009 В.В.Тыщенко
  * Код задачи 16480. Добавлена отработка пункта "Ограничение GUI".
    Изменены: ReqDesigner, deskmenu, deskmenuexec, deskmenuform, frame_deskmenu.
    16.03.2009 А.Б.Хах
 P* Код задачи: 16304. Добавлено событие ev_DataSet_AfterCancel, аналог
    tDataSet.AfterCancel.
    Изменены: DB.
    13.03.2009 М.А.Степанов
  - Код задачи 16640. Неверно восстанавливались размеры TSectionList -
    исправлено.
    Изменены: SectionList.
    12.03.2009 В.В.Тыщенко
  > Код задачи 16598. Исправлено построение запроса на сравнение полей.
    + Добавлена возможность отключить проверку данных в узлах у tFieldViewer`а.
    - При получении строкового представления запроса ShortString`а оказалось
      мало, переделано на String.
    - В редакторе запросов окно со списком полей могло выходить за пределы
      экрана - исправлено.
    Изменены: FieldViewer, recreq, reqapi, reqconst, reqlimit, requests,
      ReqDesigner, ReqFieldViewer, ReqTree, DSLimit, ReqConv.
    11.03.2009 В.В.Тыщенко
  - Код задачи: 16638. sdb_field_to_vcl_field: Исключение при некорректном
    значении полей типа время (например поврежденных).
    Изменены: SonarDBIntf.
    11.03.2009 М.А.Степанов
  - Код задачи: 16630. Редактирование граничного значения: Если для
    строкового поля должен был строится выбор из списка, то он не строился.
    Изменены: ReqEditor, SDataSet.
    11.03.2009 М.А.Степанов
  * Код задачи 16519. Теперь все календари в обычном состоянии цветные. При
    смене состояния ReadOnly кнопка календаря отключается, поэтому показ хинта
    больше не нужен. Также теперь расчет ширины TDBEdit и TDBInputDate ведется
    по другому.
    Изменены: DBInputMethods, DBEditFrame, FormResizer.
    05.03.2009 А.Б.Хах
  * Код задачи 16477. Увеличены отступы сверху и снизу при расстановке элементов
    управления.
    Изменены: SDBVCLUtils.
    02.03.2009 А.Б.Хах
  * Код задачи 16366. В диалоге сохранения обстановки предустанавливается
    название файла взятое у последней загруженной обстановки.
    Изменены: SVclHtUtils.
    02.03.2009 П.В.Ветошкин.
  * Убрана привязка к алигнам alNone, alCustom при вычислении реальных размеров
    компонента.
    Изменены: FormResizer.
    02.03.2009 В.В.Тыщенко
  + Код задачи 15096. Редактор запросов. В дереве таблиц поля, являющиеся
    главными или уникальными ключами помечаются буквами "M" и "U"
    соответственно.
    Добавлены: imMainKey.bmp, imUniqKey.bmp.
    Изменены: ReqFieldViewer, ReqImages.rc, frmSelectFields.xml.
    02.03.2009 П.В.Ветошкин.
 P* Код задачи 16505. После изменения данных обновляется запись набора данных,
    ранее перевыполнялся запрос.
    Изменены: SDBOracle.
    27.02.2009 И.В.Ковалев
  * Код задачи 16560. Редактор запросов. Дерево таблиц и полей в
    выпадающем списке выбора сделано сортированным.
    Изменены: FieldViewer, ReqFieldViewer.
    27.02.2009 П.В.Ветошкин.
  + Код задачи 16483. Добавлена команда локального меню листалки "Изменить
    параметры".
    Изменены: TableBrowser, frame_TableBrowser.xml.
    27.02.2009 В.В.Тыщенко
                                   * * *

 B- Код задачи 16794. Сообщение "Ошибка получения значения параметра
    запроса на сравнение полей" при выполнении на СУБД Oracle запроса
    "ВремяСоверш больше ВремяСоверш на параметр СроЭкспТС".
    Изменены: ReqConv.
    26.03.2009 И.В.Ковалев
 B- Код задачи 16723. Сообщение "ORA-00936: отсутствует выражение" при
    выполнении на СУБД Oracle запроса "дата-время ДатаРегист - ВремяСовер
    больше ДатаРегист - ВремяСовер на значение/параметры", в параметрах в
    качестве времени указан параметр.
    Изменены: ReqConv.
    20.03.2009 И.В.Ковалев
 B- Код задачи 16724. Сообщение "Ошибка выполнения спец.запроса" при
    выполнении запроса "поле ВремяИзмен больше поля ВремяСовер на параметр
    СрокЭкспТС" на СУБД Hytech.
    Изменены: recreq.
    20.03.2009 И.В.Ковалев
 B- Код задачи 16721. Утечка памяти после выбора параметра в запросе на
    сравнение полей.
    Изменены: EditReqH.
    20.03.2009 И.В.Ковалев
 B- Код задачи 16718. В запросе на сравнение полей для полей типа Время не
    удавалось использовать параметры опций приложений.
    Изменены: recreq.
    19.03.2009 И.В.Ковалев
 B- Код задачи 16627. Редактор запроса на сравнение полей. В заголовке
    диалога ввода разницы даты/времени встречались слова в DOS-кодировке.
    Изменены: EditReqH.
    06.03.2009 П.В.Ветошкин.
BP- Исключение при записи поля опций типа indTime.
    Изменены: Config.
    06.03.2009 М.А.Степанов
  - Код задачи 16624. Пропадание записей из листалки ku_auto на клиентском
    месте Oracle 10.2.0.1 после обновления записи.
    Изменены: ReqConv, SDBOracle, uADDAptManager.
    05.03.2009 И.В.Ковалев
BP* При редактировании записи (default_PrepareRowCommand) вместо Refresh
    вызывается SafeRefresh.
    Изменены: SDBVCLutils.
    05.03.2009 М.А.Степанов
 B- Код задачи 16615. В целях совместимости добавлен алиас для
    tCommonViewEditFormFactory.
    Изменены: EditFormLayout, SVCLCommon_Registration.
    05.03.2009 В.В.Тыщенко
 B* tDBEditFrame: Если поле отсутствует в наборе данных то исключение не
    выдается.
    Изменены: DBEditFrame.
    05.03.2009 М.А.Степанов
 B+ Раскомментирован код, отвечающий за безопасное обновление листалки.
    Изменены: sdboracle.
    02.03.2009 В.В.Тыщенко
 B* Код задачи 16573. Для выдачи нужного сообщения в ReadDBParameters
    CreateBFReg обложен try/except. Адаптировано из ред. 42.1 от 02.03.2009.
    Изменены: netcnf.
    02.03.2009 А.Б.Хах
 B* Код задачи 16574. Окно "О программе" не показывается до тех пор, пока не
    выполнена инициализация станции. Адаптировано из ред. 05.1 от 02.03.2009.
    Изменены: About.
    02.03.2009 А.Б.Хах
 B+ Раскомментирован код, отвечающий за безопасное обновление листалки.
    Изменены: sdboracle.
    02.03.2009 В.В.Тыщенко
 B* Код задачи 16573. Для выдачи нужного сообщения в ReadDBParameters
    CreateBFReg обложен try/except. Адаптировано из ред. 42.1 от 02.03.2009.
    Изменены: netcnf.
    02.03.2009 А.Б.Хах
 B* Код задачи 16574. Окно "О программе" не показывается до тех пор, пока не
    выполнена инициализация станции. Адаптировано из ред. 05.1 от 02.03.2009.
    Изменены: About.
    02.03.2009 А.Б.Хах
 B- Адаптированы изменения из ред. 49.1. Код задачи 16579. В
    default_TableBrowser_ApplyLayout в качестве имени поля бралось имя без учета
    алиаса. Теперь вызывается функция FieldName.
    Изменены: TableBrowser.
    27.02.2009 А.Б.Хах
BP- Устранен потенциальный источник EAccessViolation при добавлении
    записи.
    Изменены: SDBVCLUtils.
    27.02.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.98 от 27.02.2009
-------------------------

 P* Код задачи 16567. Layout теперь read write и уничтожается после применения.
    Изменены: SDBGrid.
    26.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.97 от 27.02.2009
-------------------------

  > Код задачи 16567.
    - Имеем сохраненный TTableBrowserFrame со свойством Active = True. После его
      загрузки Active = False, т.к. бралось свойство Active у Dataset'а. Теперь
      после загрузки Active = True до тех пор пока поменяют.
    - Т.к. GridLayout применяется отложено, то сразу после загрузки
      TTableBrowserFrame'а он не применен. Поэтому если последовательно
      загрузить, потом сохранить(как это делается в Дизайнере), то GridLayout
      пропадает. Поэтому теперь, если есть Layout у сетки, то при сохранении
      брать его.
    Изменены: TableBrowser, TableBrowserFrame, SDBGrid.
    26.02.2009 А.Б.Хах
  - Код задачи 16565. Исправлен адрес Диониса в форме "О программе".
    Изменены: frame_About.xml.
    26.02.2009 В.В.Тыщенко
  * Код задачи 16395. Реализовано фоновое обновление листалки.
    Изменены: TableBrowser, SdbVcl, sdboracle.
    26.02.2009 А.Б.Хах, В.В.Тыщенко
  - Код задачи: 16382. Формы изменения данных: не работал Esc в
    мемо-полях.
    Изменены: form_DataChange.
    26.02.2009 М.А.Степанов
  + В интерфейс ISonarDataSet добавлен метод SafeRefresh, который обновляет
    данные только в записях, которые показаны пользователю. В связи с этим
    включено обновление листалки при переходе по записям в карточке.
    Изменены: SonarDBIntf, form_DataChange, SdbVcl, sdboracle.
    26.02.2009 В.В.Тыщенко
  * Код задачи 16383. Визуализатор перехода в узел теперь показывается только
    спустя секунду после того, как этот процесс был начат.
    Изменены: RegEdit.
    25.02.2009 А.Б.Хах
  * Код задачи 16451. Сетка листалки грузится невидимой, а после открытия
    показывается.
    Изменены: TableBrowser, frame_TableBrowser.
    25.02.2009 А.Б.Хах
  - После выхода в справочник осуществляется позиционирование на текущую запись.
    Если в этом месте использовать фоновое открытие, то будет происходить
    ошибка. Поэтому при выходе в справочник нужно использовать обычное открытие.
    Изменены: SDBVCLUtils.
    25.02.2009 А.Б.Хах
 P* Код задачи: 16526. Добавлена обработка событий app_GetSchemaDef,
    app_GetSubSchema, для поддержки возможности получения схемы и подсхемы из
    tSonarDB_Record.
    Изменены: SDataSet, SDBVCL.
    25.02.2009 М.А.Степанов
  > Код задачи 16530.
    - Попытка закрыть окно не принадлжещее рабочему столу по горячей
      клавише Alt+F3 при наличии окон принадлежащих рабочему столу
      приводила к ошибке "Индекс списка вне границ".
    - Редактор отчётов Fast Report. При открытии отчёта в редакторе дерево
      визуализации источников данных оставалось пустым. Добавление
      источника данных приводило к ошибке "Некорректное значение свойства"
      P: следствие изменения алгоритма фонового открытия источников
         данных.
    Изменены: Desktop, ReportDesigner, ReportSupp.
    25.02.2009 П.В.Ветошкин.
  - Код задачи 16507. Исправлено возвращение формы ввода к изначальным размерам.
    Изменены: tSectionList, EditFormLayout.
    25.02.2009 В.В.Тыщенко
  + Код задачи 16486. Добавлена возможность управлять масштабирование
    каждого компонента.
    Изменены: controls.
    25.02.2009 В.В.Тыщенко
  * Код задачи 16515. Изменён процесс получение реальных размеров формы
    (необходимо для масштабирования) - теперь каждый компонент может вернуть
    свои размеры. Изменены: tResizeForm, tSectionList, controls.
    25.02.2009 В.В.Тыщенко
  - Код задачи 16531. При выполнении отчетов RWF для СУБД Oracle неверно
    определялась, последняя ли запись в узле отчета, в результате
    печатались дополнительные строки с пустыми значениями полей.
    Изменены: OraRwfExec.
    25.02.2009 И.В.Ковалев
  * Код задачи 16525. При завершении мультивыбора кл. Enter теперь происходит
    отметка текущей записи
    Изменены: SDBGrid
    25.02.2009 С.Н.Штуркин
  * Код задачи 16403. Теперь невидимый на экране TDBObjectChoice ничего фоново
    не делает.
    Изменены: DBObjectChoice.
    24.02.2009 А.Б.Хах
  * Код задачи 16542. Теперь BuildTableBrowserForm тоже фоново открывает
    таблицу. Итого, фоновое открытие таблицы используется при загрузке
    обстановок, в TableBrowserFrame'е, при открытии листалок из окна выбора
    таблиц.
    Изменены: TableBrowser, SDBVCLUtils, SDBGrid.
    24.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.96 от 21.02.2009
-------------------------

 P* tTableBrowser: Убрана установка фокуса при открытии DataSet.
    Изменены: TableBrowser.
    21.02.2009 М.А.Степанов
  * Код задачи 16527. Если TDBGrid'а FUpdateFields = True, то TColumn, при
    изменении размеров в SetWidth присваивает Field.DisplayWidth(!!!)
    неправильное значение(1), которое потом портит размеры полей ввода. Чтобы
    избежать правки Field.DisplayWidth в SDBGrid'е FUpdateFields присваивается
    False.
    Изменены: SDBGrid.
    21.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.95 от 21.02.2009
-------------------------

  + Код задачи 16504. Добавлена функция GetNameByBaseFolder.
    Изменены: SonarSys.
    21.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.94 от 20.02.2009
-------------------------

  - Код задачи: 16512. При подгрузке обстановок связанные листалки не
    обновлялись.
    Изменены: DSLimit, SDataLink.
    20.02.2009 М.А.Степанов
  * Сетка листалки грузится видимой(временная мера, из-за проблем с
    масштабированием).
    Изменены: frame_TableBrowser.xml
    20.02.2009 А.Б.Хах
  - Не восстанавливался фокус после загрузки обстановки.
    Изменены: TableBrowser.
    20.02.2009 А.Б.Хах
 P* Код задачи 16501. В опции "Использовать строчные буквы" сняты флаги
    ввода/редактирования.
    Изменены: CnfDef.
    20.02.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.93 от 20.02.2009
-------------------------

  * Код задачи 16506. Оптимизирован алгоритм проверки наличия данных в
    разделах форм ввода.
    Изменены: SDBVCLUtils, Sections, SdbVcl, ReqConv, sdboracle.
    20.02.2009 И.В.Ковалев
  * Код задачи 16503. Отменено обновление листалки при переходе по записям
    (задача 16242).
    Изменены: form_DataChange.
    19.02.2009 В.В.Тыщенко
  * В случае пустого поля хинт о том, что значение поля не может быть изменено
    теперь появляется после выбора из справочника.
    Изменены: SDBVCLUtils.
    19.02.2009 А.Б.Хах
  * Код задачи 16441. Теперь если запрос один в файле запросов, то его имя
    автоматически добавляется.
    Изменены: DeskMenuForm.
    19.02.2009 А.Б.Хах
  * Код задачи 16498. Опция "Использовать строчные буквы" по умолчанию
    установлена в "Нет".
    Изменены: CnfDef.
    19.02.2009 П.В.Ветошкин.
  * Код задачи 16405. Теперь после выбора даты в календаре, в случае если поле
    не может быть изменено, то появляется хинт об этом.
    Изменены: DBInputMethods, SDBVCLUtils.
    19.02.2009 А.Б.Хах
  * Код задачи 16474. Фоново применяется представление сетки(если она видна на
    экране). При фоновом открытии таблицы производится только одно
    открытие(пустая не открывается).
    Изменены: IdleMan, IdleVCL, frame_TableBrowser.xml, SDBGrid, SDBVCLUtils,
    TableBrowser, TableBrowserFrame, DB.
    18.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.92 от 18.02.2009
-------------------------

  - Код задачи: 16496. AccessViolation при открытии карточки USERS в
    проекте "Криминальный учет".
    Изменены: EditFormLayout.
    18.02.2009 М.А.Степанов
 P* Код задачи: 16488. Добавлено событие ev_DataSet_AfterEdit аналог
    tDataSet.AfterEdit.
    Изменены: DB.
    18.02.2009 М.А.Степанов
  * Код задачи 16494. В readonly поля теперь можно попасть всегда.
    Изменены: DBEditFrame.
    18.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.91 от 18.02.2009
-------------------------

  - Неверно масштабировались листалки.
    Изменены: FormResizer.
    18.02.2009 В.В.Тыщенко
 P+ Код задачи 16371. TSectionList: добавлен метод Rebuild. TSection: добавлен
    private-метод Clear.
    Изменены: SectionList.
    18.02.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.90 от 18.02.2009
-------------------------

  - Код задачи 16484. В кримучете под Oracle в листалке выбора таблицы для
    открытия не обновлялась выборка при нажатии ALT-F7.
    Изменены: SVCLUtils.
    18.02.2009 И.В.Ковалев
  * Код задачи 16460. Реализовано выполнение запроса на сравнение полей для СУБД
    Oracle.
    Изменены: ReqConv, RecReq.
    18.02.2009 И.В.Ковалев
  - Код задачи 16478. Теперь все tSectionList должны быть видны при отсутствии
    сохранённого представления формы ввода.
    Изменены: EditFormLayout.
    18.02.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.89 от 18.02.2009
-------------------------

  - Код задачи 16475. Изменена кодировка сообщения.
    Изменены RWFExec.
    18.02.2009 В.В.Тыщенко
  * Код задачи 16298. Изменён внешний вид формы поиска в Memo полях.
    Изменены: form_MemoFindDialog.xml.
    17.02.2009 В.В.Тыщенко
  * Код задачи 16473. Типу поля indMemo соответсвует тип ftString. Для полей
    типа ftString строился TDBEdit(в т.ч. и для полей типа indMemo). Теперь,
    если поле типа ftString имеет также тип поля indMemo в hst, то для него
    строится TDBMemo.
    Изменены: DBInputMethods.
    17.02.2009 А.Б.Хах
  * Код задачи 16298. Изменён внешний вид формы поиска.
    Изменены: form_FindDialog.xml.
    17.02.2009 В.В.Тыщенко
  - Код задачи 16463. Исправлена работа запросов на сравнение полей.
    Изменены: joiner, joinacc.
    17.02.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.88 от 17.02.2009
-------------------------

  * Улучшена форма изменения данных, исправлено несовпадение высоты полей ввода
    номера записи при масштабировании.
    Изменены: form_DataChange.xml.
    17.02.2009 М.А.Степанов
  - Код задачи 16461. Исправлено выполнение запросов на сравнение полей.
    Изменены: joiner.
    17.02.2009 В.В.Тыщенко
  - При возникновении ошибок на этапе закрытия формы изменения данных, форма
    оставалась открытой но невидимой, происходило из-за прятания формы для
    устранения мелькания вкладок. Исправлено: найдена и устранена причина
    мелькания вкладок.
    Изменены: form_DataChange, SVCLFormH.
    16.02.2009 М.А.Степанов
  - Код задачи: 16309. Если ведущий источник данных пустой, но открыт на
    добавление то считалось что данные отсутствуют, хотя они на самом деле есть.
    Проявлялось в проекте "Криминальный учет" в карточке KU_ROZLC открытой на
    добавление, в поле "Событие".
    Изменены: DSLimit.
    16.02.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.87 от 16.02.2009
-------------------------

  - Код задачи 16485. Неверный подсчет итоговых значений отчетов RWF
    при работе с Oracle.
    Изменены: OraRwfExec.
    16.02.2009 И.В.Ковалев
  - Исправлено сохранение представления формы ввода.
    Изменены: EditFormLayout, SectionList, Sections, SVCLCommon_Registration.
    16.02.2009 В.В.Тыщенко
  * Изменён механизм блокировки масштабирования.
    Изменены: FormResizer.
    16.02.2009 В.В.Тыщенко
  * Убрано мелькание при закрытии формы ввода.
    Изменены: form_DataChange.
    16.02.2009 В.В.Тыщенко
  - Код задачи 16542. При выполнении параметрических запросов под Oracle
    неверно отрабатывались необязательные незаполненные параметры.
    Изменены: OraExtReq.
    16.02.2009 И.В.Ковалев
                                 --- * ---

DSP v3.0.86 от 13.02.2009
-------------------------

 P* Код задачи: 16359. tSonarOracleDataset.Requery: при изменении активности
    отключается оповещение видимых элементов (DisableControls).
    Изменены: SDBOracle.
    13.02.2009 М.А.Степанов
 P* Код задачи: 16295. tDBObjectChoice: Добавлен метод Locate и событие
    ev_DBObjectChoice_LocateObject, предназначены для позиционирования на
    текущую запись в открываемой листалке и перекрытия в проекте этого
    позиционирования. Понадобилось для реализации позиционирования на
    неуникальное поле.
    Изменены: DBObjectChoice, SDBVCLUtils.
    13.02.2009 М.А.Степанов
  * Код задачи 16429. В предпросмотрах FastReport'а проведена русификация и
    удалены лишние кнопки.
    Изменены: SDBVCLUtils, ReportDesigner, frxrcClass, frxrcDesgn, frxrcExports,
    frxrcInsp.
    13.02.2009 А.Б.Хах
  - В TTableBrowserFrame.Loaded сперва применялось представление, а потом
    запрос. Это приводило к тому, что если, напр., в представлении есть
    сортировки, то они выполнялись по всей выборке.
    Изменены: TableBrowserFrame.
    13.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.85 от 13.02.2009
-------------------------

  * Код задачи 16427 и 16428. Пути предлагаются относительно БД и расширение,
    в случае его отсутствия добавляется.
    Изменены: ReqDesigner, ReqConst, SDBVCLUtils, DesignDialogs, SVCLHtUtils.
    13.02.2009 А.Б.Хах
  > Код задачи 16387.
    + Добавлена возможность поддержки ввода и вставки текста заглавными
      буквами (в зависимости от соответствующего флага умолчаний проекта).
      P: Для подключения возможности необходимо в секции инициализации
         модуля xxxCnstr нужного проекта добавить вызов
         InstallCapitalization из SVCLUtils.
    - Если установленный язык ввода отличался от русского, то копировние
      текста из поля ввода в буфер обмена выполнялось некорректно -
      последующая вставка могла выполняться вопросительными знаками
      (например, при копировании из поля ввода GUI-проекта и вставкой его
      содержимого в поле ввода TV-проекта). Такое поведение отмечено в
      версиях ОС Windows XP и выше.
    * Восстановлена зависимость инкрементного поиска от
      регистра.
    Изменены: ClipboardViewer, Controls, RWFDesigner, SonarVCL_Cnstr,
      SVCLUtils.
    13.02.2009 П.В.Ветошкин.
  - Код задачи 16436. Ошибка "SonarDB_Record: Отсутствует название поля" в
    запросах на сравнение полей при попытке ввода значения параметра,
    например для запроса
    ВремяСоверш больше поля ВремяПост. на значение <> секунд
    невозможно было указать количество секунд.
    Изменены: EditReqH.
    13.02.2009 И.В.Ковалев
  - При вставке компонента со свойством Font = nil было исключение - исправлено.
    Изменены: FormResizer.
    13.02.2009 В.В.Тыщенко
  - Код задачи 16396. Синхронизация размеров теперь производится для всех
    вставляемых компонентов.
    Изменены: FormResizer.
    13.02.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.84 от 13.02.2009
-------------------------

 P* Код задачи 16396. Повторяющиеся действия вынесены в отдельную
    процедуру.
    Изменены: FormResizer.
    13.02.2009 В.В.Тыщенко
  - Код задачи 16443. Ошибка "индекс коллекции вне границ" при вводе
    очевидцев в форме ввода KU_AUTO утилиты кримучетов для Oracle и
    попытке ввода в другую листалку под Oracle, для которой при работе под
    Hytech выполняется ввод в режиме мультивыбора.
    Изменены: SDBVCLUtils.
    13.02.2009 И.В.Ковалев
  - Код задачи 16399. При отмене входа не очищались уровни доступа
    предыдущего пользователя - исправлено.
    Изменены: TableBrowser, OraLogin.
    12.02.2009 В.В.Тыщенко
  * Код задачи 16421. Увеличено умолчательное расстояние между контролами по
    горизонтали в ForStdControls.
    Изменены: SDBVCLUtils.
    12.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.83 от 11.02.2009
-------------------------

  * Код задачи 16402. Увеличено расстояние между меткой TCaptionedControl'а и
    его левой(правой) границей с 1го до 3х пикселей.
    Изменены: SControls.
    11.02.2009 А.Б.Хах
  * TCaptionedControl теперь ставит Control в качестве FocusControl метке.
    Изменены: SControls.
    11.02.2009 А.Б.Хах
  * Код задачи 16372. Если у TLabel или TStaticText в качестве FocusControl
    установлен какой-нибудь контейнер(TPanel, TFrame и т.п.), то при нажатии
    горячей клавиши метки (Alt+ подчеркнутая буква метки) фокус передавался
    контейнеру, причем независимо от того, установлен ли TabStop у него или нет.
    Теперь, если у контейнера TabStop = True, т.е. мы хотим получать в него
    фокус, то он передается ему, иначе первому дочернему контролу.
    Изменены: StdCtrls.
    11.02.2009 А.Б.Хах
  + Код задачи 16288. Реализовано выполнение параметрических запросов из меню.
    Изменены: deskmenuexec, sdboracle, svcl_cnstr, svcl.dpk.
    Добавлены: OraExtReq.
    11.02.2009 В.В.Тыщенко
  - Код задачи 16409. Размеры ячеек в таблице ранее задавались жестко. Теперь
    они менятся в зависимости от содержимого.
    Изменены: SDBVCLUtils.
    11.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.82 от 11.02.2009
-------------------------

  * Устранены ненужные зависимости от Lib.bpl
    Изменены: AnyDac.dpk, ecComn.dpk
    11.02.2009 С.Н.Штуркин
  - Код задачи 16410. Раньше бралось значение DBGrid.Fields[i].AsString, из-за
    чего калибр, напр., выводился как 7.619999988885888 вместо 7.62. Теперь
    берется DBGrid.Fields[i].DisplayText.
    Изменены: SDBVCLUtils.
    11.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.81 от 11.02.2009
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  10.02.2009 С.Н.Штуркин
  ----------------------------------------------------------

  > TableBrowser:
    * Произведена формальная замена "DataChangeCommand" --> "RowCommand";
      констант DCC_* --> ROW_*
    * Тип параметров события TEvent_TableBrowser_PerformRowCommand: параметры
      DataSet и ReadOnly заменены параметром Browser: TTableBrowser; при
      адаптации вместо DataSet можжно использовать Browser.DataSet, вместо
      ReadOnly - Browser.Grid.ReadOnly
    Изменены: TableBrowser, Sections, SDBVCLUtils, SetupCodes
  > SDBVCLUtils:
    * Переименованы идентификаторы событий:
      app_PrepareDataChangeCommand --> app_PrepareRowCommand
    * Переименованы функции:
      PrepareDataChangeCommand --> PrepareRowCommand
      PerformDataChangeCommand --> PerformRowCommand
    Изменены: SDBVCLUtils, SetupCodes
                                   * * *

  - Код задачи 16411. MS Word 2003 неправильно распознает таблицу потому, что
    концом строки являлся возврат каретки(#13), а нужен еще перевод строки(#10).
    MS Word 2007 достаточно умен, чтобы это понять. Также делался лишний столбец
    (т.е. лишнняя табуляция в конце каждой строки).
    Изменены: SDBVCLUtils.
    11.02.2009 А.Б.Хах
 P- Функция CheckLoadReq неправильно определяла схему данных для поданного
    запроса.
    Изменены: reqapi.
    10.02.2009 И.В.Ковалев
 !+ Добавлен алгоритм мультивыбора и СУБД-зависимый класс (TMultiChoiceAdapter),
    обеспечивающий взаимодействие алгоритма с изпользуемым СУБД
    Изменены: SDBVCLUtils, GridMultiSel, SetupCodes
    10.02.2009 С.Н.Штуркин
 P* Код задачи: 16220. Добавлена возможность отменить показ диалога
    "О программе" на старте программы, событие app_NeedShowAboutOnStart.
    Изменены: About.
    10.02.2009 М.А.Степанов
 P* Код задачи: 16220. Добавлена возможность отменять проверку наличия
    экземпляра программы запущеного из того же каталога, событие
    app_NeedCheckExclusiveStart.
    Изменены: CheckOneApp.
    Добавлены: CheckOneAppConst.
    10.02.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.80 от 10.02.2009
-------------------------

  - При открытии листалки при выходе в раздел, все также некорректно
    настраивалось представление листалки.
    Изменены: Sections.
    09.02.2009 М.А.Степанов
 P* Добавлена функциональность для определения идентификаторов компьютера.
    Добавлены: SonarSysUtils.
    Изменены: SVclCommon.dpk
    09.02.2009 И.В.Ковалев
  * Код задачи 15393. В ClearControlRequest ссылка на запрос у DBObjectChoice
    нилится вызовом метода ClearRequestRef, а не присваиванием. При присваивании
    удаляется старый запрос, а это как раз и не нужно.
    Изменены: DBInputMethods, DBObjectChoice.
    09.02.2009 А.Б.Хах
  - При открытии листалки при выходе в раздел, некорректно настраивалось
    представление листалки.
    Изменены: Sections.
    09.02.2009 М.А.Степанов
  - Код задачи: 15308. Списов разделов: В дизайнере при удалении разделов
    один раздел (точнее его CheckBox) всегда оставался виден, при изменении
    шрифта списка разделов список перестраивается.
    Изменены: SectionList.
    09.02.2009 М.А.Степанов
  - Код задачи 16386. Обеспечена прорисовка "птичек" мультивыбора поверх
    индикатора текущей записи листалки.
    Изменены: SDBGrid.
    09.02.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.79 от 06.02.2009
-------------------------

  * Код задачи 16341. Теперь при присваивании TDBObjectChoice.Request
    и TDBObjectChoiceController.Request корректно удаляется старый запрос.
    Изменены: DBInputMethods, DBObjectChoice.
    06.02.2009 А.Б.Хах
  * Код задачи 16265. Добавлена возможность копирования содержимого
    листалки на принтер.
    Изменены: SDBVCLUTILS, frame_TableBrowser.xml, SVCLCommon.dpk,
    SVCLUtils, TableBrowser.
    06.02.2009 А.Б.Хах
  > Код задачи 16363. Редактор отчётов FastReport.
    * Обеспечена возможность редактирования большого количеств ячеек,
      которые не помещаются на макете страницы отчёта, но по смыслу должны
      печататься последовательно.
    - Перестал открываться диалог "Параметры страницы".
    Изменены: DesignDialogs, ReportDesigner.
    05.02.2009 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.78 от 05.02.2009
-------------------------

  - Код задачи 16347. Ошибка при построении меню обстановок - исправлено.
    Изменены: deskmenu.
    05.02.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.77 от 05.02.2009
-------------------------

  - Код задачи 16302. Исправлено восстановление фокуса при загрузке обстановки.
    Изменены: DeskTop.
    05.02.2009 В.В.Тыщенко
  - Код задачи 16301. Невозможно войти в крим.учеты, если туда уже успели войти
    легенда и лег_адм: неверно регистрировалась станция.
    Изменены: CnfDef, htSQLOLE, Ht_Init, Password, SDBConst.
    05.02.2009 С.А.Барсуков.
                                 --- * ---

DSP v3.0.76 от 05.02.2009
-------------------------

  - Код задачи 16305. Изменялся размер после сворачивания окна - исправлено.
    Изменены: FormResizer.
    04.02.2009 В.В.Тыщенко
  * Код задачи 16274. Добавлена возможность редактирования заголовка окна.
  Изменены: DBGridLayout, form_DBGridLayout.xml
  04.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.75 от 04.02.2009
-------------------------

    Внимание! Может потребоваться адаптация в проектах <ADAPT>
    03.02.2009 М.А.Степанов
    ----------------------------------------------------------

  - Код задачи: 16299. Несанкционированый доступ при установке значения
    параметра запроса типа кодификатор.
    P: удалена процедура CodeToStr с безтиповым параметром, функция
       fSizeOf перенесена из SDBAPI в ReqApi и переименована в
       SizeOfLimitValue.

    Адаптация: Если не будет компилироваться из-за того, что не найдена
    процедура CodeToStr, заменить ее на функцию; если не будет
    компилироваться из-за того что не найдена функция fSizeOf,
    удостоверится в необходимости ее применения и заменить ее на
    SizeOfLimitValue из ReqApi.
                                   * * *

  - Убрана утечка, при невозможности сохранить файл.
    Изменены: ReportXLS.
    03.02.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.74 от 03.02.2009
-------------------------

  * Улучшены сообщения об ошибках.
    Изменены: ReportXLS.
    02.02.2009 А.Б.Хах
  * Код задачи 16294. Нажатие стрелки вниз находясь на кнопке элипсиса,
    теперь обработывается так же, как нажатие этой кнопки на Edit'ах.
    Изменены: DBObjectChoice.
    02.02.2009 А.Б.Хах
 P- Не отрабатывалась сортировка узлов отчета при выполнении отчета rwf на
    СУБД Oracle.
    Изменены: OraRwfExec.
    02.02.2009 И.В.Ковалев
  - При вводе параметров отчета rwf сообщение "Cannot focus.." в ситуации,
    когда не заполнены обязательные параметры.
    Изменены: enterrecord, form_EnterRecord.xml.
    02.02.2009 И.В.Ковалев
  * Код задачи 16264. Поддержано выполнение отчетов RWF для СУБД Oracle.
    Изменены: oradeskmenu, deskmenu, deskmenuexec, rwfexec,
    ReqConv, SDBOracle, OraDeskMenu, svcl.dpk
    Добавлены: orarwfexec.
    02.02.2009 И.В.Ковалев
  * Удален столбец "Алиас" в настройке представления листалки.
    Изменены: DBGridLayout, form_DBGridLayout.xml.
    02.02.2009 В.В.Тыщенко
  - В случае fInCellPos = 0 PosEx возвращал всегда 0, т.е. поиск в ячейках
    вообще не осуществлялся. Теперь fInCellPos по умолчанию равен 1.
    Изменены: ReportXLS.
    02.02.2009 А.Б.Хах
  + Код задачи 16273. Добавлено переименование поля по F2 в представлении
    листалки.
    Изменены: DBGridLayout, form_DBGridLayout.xml.
    02.02.2009 В.В.Тыщенко
  - При выходе в меню обстановок под Oracle возникала ошибка "Некорректное
    преобразование типов" - исправлено.
    Изменены: DeskMenu.
    02.02.2009 В.В.Тыщенко
 P* tTBXJoiner: Если ItemName или ItemTag не указаны то меню добавляется в
    конец или в начало существующего меню, в зависимости от AddMode.
    Изменены: TBXJoiner.
    30.01.2009 М.А.Степанов
  - Из меню листалки исчез пункт "Поиск".
    Изменены: frame_TableBrowser.xml.
    30.01.2009 М.А.Степанов
 P* CreateDataChangeForm, CreateDataViewForm: В пространство имен при
    загрузке формы добавляется источник данных под именем DataSource_Main.
    Изменены: form_DataChange.
    30.01.2009 М.А.Степанов
  - Код задачи 16278. Исправлено масштабирование при активном инкрементном
    поиске.
    Изменены: SDBGrid, JvDBGrid.
    30.01.2009 В.В.Тыщенко
  * Код задачи 16268 Добавлена возможность копирования содержимого
    TableBrowser'а в буфер обмена Windows.
    Изменены: TableBrowser, frame_TableBrowser.xml, SDBVCLUtils,
    ClipboardViewer.
    29.01.2009 А.Б.Хах
                                 --- * ---

DSP v3.0.73 от 29.01.2009
-------------------------

  * Код задачи 16242. Реализовано обновление DataSet`а при переходе к другой
    записи в режиме просмотра/редактирования карточки.
    Изменены: form_DataChange.
    29.01.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.72 от 28.01.2009
-------------------------

  * Код задачи 16267. Поддержано выполнение отчета FastReport для СУБД
    Oracle.
    Изменены: SonarDbIntf, deskmenu, DBRecordBrowser,
    DesignDialogs, ReportDesigner, ReportSupp, SdbVcl,
    sdboracle, oradeskmenu.
    28.01.2009 И.В.Ковалев
  * Отключено выполнение отчета Fastreport по пустой листалке для
    режима запуска отчета для текущей записи листалки.
    Изменены: DeskmenuExec.
    28.01.2009 И.В.Ковалев
  - Формы изменения данных, поля выбора: Если у поля связи в таблице выбора
    было алиасное имя (например в таблице RIGHT_KR ссылка на таблицу USERS),
    то при выборе из листалки происходило исключение.
    Изменены: DBInputMethods.
    28.01.2009 М.А.Степанов
                                 --- * ---

DSP v3.0.71 от 28.01.2009
-------------------------

  - Код задачи 16256. Исправлен запрос параметров при выполнении запроса.
    Изменены: deskmenu.
    28.01.2009 В.В.Тыщенко
  + Код задачи 16186. Добавлено скроллирование формы ввода колесом мыши.
    Изменены: SDBGrid, SVCLFormH.
    27.01.2009 В.В.Тыщенко
  * Код задачи 14899. Добавлена поддержка мультивыбора для листалки по
    таблице Oracle.
    Изменены: ReqConv, sdboracle, svcloracle.dpk,
    SVCLOracle_cnstr.
    Добавлены: OraMultiSel.
    27.01.2009 И.В.Ковалев
  * Код задачи 16246. В пустые ReadOnly поля теперь нельзя попасть.
    Изменены: DBEditFrame.
    27.01.2009 А.Б.Хах
  - Код задачи 16259. Устранено исчезновение "птичек", отмечающих записи в
    листалках с мультивыбором.
    Изменены: SDBGrid.
    27.01.2009 П.В.Ветошкин.
  - Код задачи 16252. При масштабировании появлялось пустое место справа.
    Изменены: FormResizer.
    27.01.2009 В.В.Тыщенко
  * Код задачи 16241.
    Удалена кнопка обновить в DBNavigator'е.
    Изменены: form_DataChange.xml.
    26.01.2009 А.Б.Хах
  > Код задачи 16227.
    <ADAPT> Вместо SaveDeskTop и LoadDesktop из DeskTop использовать
      SaveDeskTop и LoadDesktop из SVCLHtUtils.
    * Функции SaveDeskTop и LoadDesktop переименованы в
      SaveDeskTopToFile и LoadDesktopFromFile. Они теперь не создают диалоги
      открытия/сохранения сами, а получают параметр FileName. Для открытия/
      сохранения с диалогами, используются SaveDeskTop/LoadDesktop из SVCLHtUtils.
    + Добавлены функции GetDatabaseSubDir, SaveDesktop и LoadDesktop.
    * В диалогах открытия и сохранения теперь используются пути
      по-умолчанию относительно БД.
    Изменены: DeskTop, DesignDialogs, SVCLHtUtils.
    26.01.2009 А.Б.Хах
  * Код задачи 16228. При установке контрола в TInputController.SetControl он также
    устанавливается и FocusControl'ом для метки EditFrame'а.
    Изменены: DBEditFrame.
    22.01.2009 А.Б.Хах
  * Код задачи 16201. Добавлена поддержка отчетов по шаблону в Excel.
    Изменены: DeskMenuForm, DeskMenuExec, Core.py, Core.dpk, SVCLCommon.py,
      SVCLCommon.dpk, SVCLHT.dpk.
    Добавлены: DeCAL, mwFixedRecSort, ReportXLS, OfficeXP, ExcelXP, VBIEXP.
    21.01.2009 А.Б.Хах
  * Изменён алгоритм выполнения запроса. Исправлен разбор условий без скобок.
    Изменены: gaSQLExpressionParser, gaSQLFieldRefParsers, gaSQLTableRefParsers,
      htSQLCondition, htSQLCustom, htSQLDataSet, htSQLFields, htSQLSelect,
      joinacc.
    21.01.2009 В.В.Тыщенко
  - Код задачи 16084. Исправлена обработка ошибок при препросмотре отчёта.
    Изменены: ReportDesigner, DesignDialogs.
    21.01.2009 В.В.Тыщенко
  + Код задачи 16095. Добавлена панель для редактирования свойств рамок у
    ячеек отчёта.
    Изменены: ReportDesigner, form_ReportDesigner.xml, images.rc.
    Добавлены: im_Border_2Bold.bmp, im_Border_All.bmp,
      im_Border_BkgrndColor.bmp, im_Border_Bold.bmp, im_Border_Bottom.bmp,
      im_Border_Color.bmp, im_Border_Dash.bmp, im_Border_DashDot.bmp,
      im_Border_DashDotDot.bmp, im_Border_Dot.bmp, im_Border_Left.bmp,
      im_Border_None.bmp, im_Border_Right.bmp, im_Border_Top.bmp,
      im_Border_Shadow.bmp, im_Border_Style.bmp.
    19.01.2009 В.В.Тыщенко
                                 --- * ---

DSP v3.0.70 от 15.01.2009
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  30.12.2008 И.В.Ковалев
  ----------------------------------------------------------
 P* Ряд модулей перенесен из каталога SonarVCL\Hytech в SonarVCL\Common, пакет
    SonarVCL\Oracle сделан независимым от SonarVCL\Hytech, добавлен пакет svcl,
    модуль SonarDbIntf перенесен в SonarVCL\Common.
    Изменены: common.dpk, DBGridSearch, DBInputMethods, EditFormLayout,
      enterrecord, GridCodeView, LayoutManager, EnterValue, IntRecDesigner,
      JoinDesigner, ReqDesigner, ReqEditor, ReqFieldViewer, DsLimit, reqfactory,
      VCLReq, SDataSet, SDBVCLUtils, Sections, SonarDbIntf, SVclCommon.dpk,
      svclcommon.py, SVCLCommon_Registration, TableBrowser, TableBrowserFrame,
      TextBox, DbObjects, gridincrsearch, Password, ReportSupp, SDbVcl,
      sonarvcl_cnstr, SVCLHt.dpk, SVCLHT_Registration, OraCodeView, SDBOracle,
      SVCLOracle.dpk, SVCLOracle_cnstr, oradeskmenu, Db.
    Добавлены: DbMemoSearch, svclhtutils, LayoutManagerHt.
    Удалены: GridReq.
    30.12.2008 И.В.Ковалев

  Адаптация: Если не будет компилироваться из-за того, что не найдена
    функциональность, которая ранее была в модуле SDBVCL - подключить модуль, в
    котором теперь эта функциональность - скорее всего один из модулей SDataSet,
    SDBVCLUtils, SonarDbIntf.
                                   * * *

  - Ошибка при добавлении записи в таблицу в проекте "Криминальный учет":
    "Изменение не подготовлено".
    Изменены: SDBVCLUtils.
    15.01.2009 М.А.Степанов
  - Ошибка при открытии форм ввода в проекте "Криминальный учет": "Класс
    "tTableBrowserFrame" не найден".
    P: SVCLCommon_Registration: Добавлена регистрация класса
       tTableBrowserFrame.
    Изменены: SVCLCommon_Registration.
    15.01.2009 М.А.Степанов
  - Код задачи 16178. Сообщение об ошибке "Индекс коллекции (-1) вне
    границ" при попытке добавить ячейку в отчет rwf, в котором нет строк.
    Изменены: rwfdesigner.
    15.01.2009 И.В.Ковалев
  - Ошибка при открытии таблицы DESKMENU: Ресурс "im_buttonplus" не
    найден.
    Изменены: SVCLCommon_Registration, SVCLHT_Registration,
    SVclCommon.dpk, SVCLHt.dpk
    14.01.2009 И.В.Ковалев
  * Поля ввода: Цвет метки обязательного но нередактируемого поля изменен
    на серый (clGray).
    Изменены: DBEditFrame.
    14.01.2009 М.А.Степанов
  + Код задачи 15625. Редактор отчётов (fast report). Встроенный редактор
    ячейки отчёта заменён диалогом.
    Добавлены: form_ReportCellEditor.xml.
    Изменены: ReportComponents, ReportDesigner.
    14.01.2009 П.В.Ветошкин.
  + В редакторе отчётов реализовано выравнивание компонент.
    Изменены: ReportDesigner, form_ReportDesigner.xml, images.rc.
    Добавлены: im_Align_Left.bmp, im_Align_Right.bmp, im_Align_SpaceHor.bmp,
      im_Align_SpaceVer.bmp, im_Align_Top.bmp, im_Align_Width.bmp,
      im_Align_WidthCenter.bmp, im_Align_Height.bmp, im_Align_HeightCenter.bmp,
      im_Align_Bottom.bmp, im_Align_CenterHorBand.bmp,
      im_Align_CenterVerBand.bmp.
    14.01.2009 В.В.Тыщенко
 P+ Добавлена процедура SetFieldsReadOnly для изменения состояние запрета
    изменений в полях источника данных
    Изменены: SDBVCLUtils
    13.01.2009 С.Н.Штуркин
  + Добавлен редактор свойств ячеек отчёта. Переименованы события
    выравнивания текста.
    Изменены: SVCLHT_registration, DesignObjEditors, ReportDesigner,
      form_ReportDesigner.xml, images.rc.
    Добавлены: frCustomEditors, frDesgnEditors, frDsgnIntf, frEditFormat,
      frEditMemo, frEditSysMemo, ReportComponents, ReportObjInspector,
      frx.inc, frame_ObjInspector.xml, frEditFormat.xml, frEditMemo.xml,
      frEditSysMemo.xml.
    Переименованы: im_Align_*.bmp в im_TextAlign_*.bmp.
    13.01.2009 В.В.Тыщенко
  * Код задачи 16157. Инкрементный поиск. При нажатии клавиш стрелок
    вверх/вниз происходила смена текущей записи в листалке.
    Изменены: SDBGrid.
    12.01.2009 П.В.Ветошкин.
  > Код задачи: 15697. Поля ввода времени:
    - При нажатии Ctrl-Enter удалялся текст.
    - В активном поле ввода вместо минут показывались нули.
    * Пробелы вместо нулей не воспринимаются как ошибка.
    Изменены: DBInputMethods, SDataSet.
    12.01.2009 М.А.Степанов
  * Код задачи: 15697. Форма ввода не закрывается на нажатия Ctrl-Enter,
    Alt-Enter, Shift-Enter.
    Изменены: form_DataChange.
    12.01.2009 М.А.Степанов
  + TDBEditFrame: Обеспечена синхронизация цвета метки с состоянием ReadOnly
    DataLink элемента ввода: метка становится серой в ситуации RaedOnly = True
    Изменены: DB, DBEditFrame
    11.01.2009 С.Н.Штуркин
  - Код задачи 16136. Утечка памяти после связывания листалок таблиц
    Hytech условием "в списке" и последующим выходом из программы.
    Изменены: DSLimit.
    30.12.2008 И.В.Ковалев
  * Поддержано выполнение запросов "в списке", "нет в списке" для
    Oracle.
    Изменены: ReqConv.
    30.12.2008 И.В.Ковалев
 B- Код задачи 16090. Восстановление бинарных данных. Не исправлялась
    ситуация, когда несколько записей ссылаются на один и тот же ресурс.
    Изменены: BinData.
    25.12.2008 Д.И.Кобрусев
  - Возникала ошибка при запуске brcc и maptojdbg, если в пути присутствуют
    пробелы - исправлено.
    Изменены: dsp.py.
    25.12.2008 А.Б.Хах
  * Код задачи 15822. При попадании в Edit'ы инкрементного поиска
    выключаются пункты локального меню грида с тегом <> 0. При выходе
    из них, пункты включаются. Убрана блокировка локального меню грида при
    видимом инкрементном поиске.
    Изменены: SDBGrid, frame_TableBrowser.xml.
    25.12.2008 А.Б.Хах
  + Добавлен тип и размер шрифта на панель инструментов в FastReport`е.
    Изменены: ReportDesigner, form_ReportDesigner.xml.
    24.12.2008 В.В.Тыщенко
  * Улучшен механизм вставки из буфера обмена в FastReport`е.
    Изменены: DesignObjEditors, ReportDesigner.
    22.12.2008 В.В.Тыщенко
  + Код задачи 15847. Редактор отчётов FastReport. Реализована возможность
    переименования источника даных.
    Изменены: ReportDesigner.
    22.12.2008 П.В.Ветошкин.
  + Реализована работа с буфером обмена в FastReport`е.
    Изменены: SVCLHT_Registration, DesignObjEditors, ReportDesigner,
      SVCLHT.dpk, form_ReportDesigner.xml.
    Добавлены: ReportVisualiser.
    22.12.2008 В.В.Тыщенко
  - Код задачи: 16038. Для раздела-формы не учитывались флажки
    редактирования в подсхеме БД.
    Изменены: SDBVCLUtils, Sections.
    22.12.2008 М.А.Степанов
  * Код задачи: 15697. Прокрутка в карточках по PageDown, PageUp, при
    прокрутке курсор переходит не на первый видимый элемент, а на тот
    который был выделен ранее, если таковой есть.
    Изменены: SVCLFormH.
    19.12.2008 М.А.Степанов
  + В TComponentReader добавлена возможность непосредственной работы с объектом
    TReader, используемым в этом классе для загрузки компонентов. Можно
    устанавливать обработчики и загружать компоненты с помощью этого объекта
    используя пространства имён, доступные средствами TComponentReader
    Изменены: SVCLUtils
    18.12.2008 С.Н.Штуркин
  > Classes:
    + TReader: добавлены события расширенного делегирования ev_Reader_Error,
      ev_Reader_FindComponentInstance
    - В деструкторах TFiler и TParser вызывается Destroy предка
    Изменены: Classes
    18.12.2008 С.Н.Штуркин
  > Удаление PrepareDataView.
   P* Удалены PrepareDataView, app_PrepareDataView, tEvent_PrepareDataView,
      PerformViewRow.
   P* Адаптировано удаление app_PrepareDataView.
   P* Адаптировано удаление PrepareDataView.
    Изменены: SDBVCLUtils, sdboracle, Sections.
    18.12.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.69 от 18.12.2008
-------------------------

 P- При чтении измененных текстовых бинарных данных происходило исключение
    "Ошибка чтения потока".
    Изменены: SDBVCL.
    18.12.2008 М.А.Степанов
  > Удаление PerformDataView:
   Р* Удалены TTableBrowser.default_PerformDataView,
      app_TableBrowser_PerformDataView, ev_TableBrowser_PerformViewCommand,
      tEvent_TableBrowser_ViewData, ViewRecord. Теперь все это делается через
      app_TableBrowser_PerformDataChangeCommand с парметром DCC_VIEW.
   Р* Адаптировано удаление app_TableBrowser_PerformDataView. Добавлена
      отработка параметра DCC_VIEW в hnd_PerformDataChangeCommand.
    Изменены: SDBVCLUtils, TableBrowser.
    17.12.2008 А.Б.Хах
 P* Отформатирован SDBConst.
    Изменены: SDBConst.
    16.12.2008 А.Б.Хах
  - Не освобождалась память при уничтожении tSortAndScan
    Изменены: selkeyin
    16.12.2008 В.В.Тыщенко
 P- При уничтожении запроса в tDBObjectChoice происходило исключение
    EAccessViolation при уничтожении TDBObjectChoiceController.
    Исправлено: При уничтожении tDBObjectChoice.Request, обнуляется ссылка
    TDBObjectChoiceController.Request.
    Изменены: DBInputMethods.
    16.12.2008 М.А.Степанов
  - Код задачи 16069. При редактировании отчета rwf если в узле отчета
    запрос по группе полей с ограничением, то при попытке открытия
    запроса-ограничения происходил несанкц. доступ к области памяти.
    Изменены: EditReqH.
    16.12.2008 И.В.Ковалев
 P* Форма form_Progress.xml из Archiver переименована в
    form_DecompressionProgress, чтобы избежать дублирования
    ресурса(form_Progress.xml из SProgress).
    Изменены: formProgress.
    16.12.2008 А.Б.Хах
  - Код задачи 15929. При выполнении отчета по шаблону файл формировался не в
    каталоге запуска программы, а в каталоге, содержащем файл отчета.
    Изменены: deskmenuexec.
    16.12.2008 И.В.Ковалев
 P* Изменён алгоритм разбора выражения в блоке Where.
    Изменены: gaAdvancedSQLParser, gaSQLExpressionParsers,
    gaSQLTableRefParsers.
    15.12.2008 В.В.Тыщенко
  * При сборке с отладкой, по-умолчанию ряд системных модулей собираются без
    отладочной информации, чтобы не мешать в отладчике
    Изменены: System, Arrays, SonarCore, dsp.py
    Добавлены: inc\SysDebug.inc
    15.12.2008 С.Н.Штуркин
 P> Streams:
    - CreateTempFileStream: SetSize(0) не работал надлежащим образом - после
      выполнения этой операции размер потока становился 0, но из-за того, что
      позиция виртуального (TVAStream) потока не сбрасывалась в 0 при
      последующей записи размер потока увеличивался относительно размера,
      который был у потока до выполнения SetSize - исправлено
    * TVAStream: свойство Pos переименовано в FPosition и перенесено в секцию
      private определения класса
    Изменены: Streams
    15.12.2008 С.Н.Штуркин
  + TDBEditFrame: добавлен способ ввода для BLOB-полей. Сейчас это три кнопки,
    позволяющие соответственно: загнрузить, сохранить и удалить значение поля
    Изменены: DBInputMethods
    Добавлены: frame_DBInputBlob.xml
 !- Если BLOB-поле содержало не текстовые данные - всё равно выполнялась
    транслитерация ANSI->OEM и наоборот. Исправлено. Техника работы с
    BLOB-полями полностью переработана. Удален класс TSonarDB_BlobField.
    Полностью переработан поток для чтения/записи содержимого BLOB-полей и
    техника хранения изменений до их сохранения.
    Изменены: SDBVCL, SVCLHT_Registration
    15.12.2008 С.Н.Штуркин
  * Код задачи: 16058. Если при открытии tSonarDB_Record не найдена
    нужная таблица, выдается корректное исключение с именем не найденой
    таблицы.
    Изменены: SDBVCL.
    13.12.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.68 от 12.12.2008
-------------------------

  - Код задачи 16035. При прорисовке TBitmap`а по умолчанию отключён вызов
    исключения.
    Изменены: graphics.
    12.12.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.67 от 12.12.2008
-------------------------

  - Код задачи 16018. Сообщение об ошибке "Поле 'КодПрекРоз' обязательно для
    заполнения" при утверждении карточки ИК-Оружие В криминальном учете для СУБД
    Oracle
    P: в Oracle неверно работал вызов IsNull для строковых полей.
    Изменены: SdbOracle.
    12.12.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.66 от 11.12.2008
-------------------------

  - Код задачи 16021. Неверно получалось значение поля в функции GetSenseText.
    Изменены: SDBVCLUtils.
    11.12.2008 В.В.Тыщенко
  - Код задачи 16025. Сообщения об ошибках после нажатия в листалке Oracle
    комбинаций клавиш CTRL+D, CTRL+Q+D.
    Изменены: TableBrowser.
    11.12.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.65 от 11.12.2008
-------------------------

  - Код задачи 16029. При попытке ввода в форме ввода Oracle значения кода
    не первого уровня, например 01.01.00 вводилось другое значение, в
    данном примере - 01.00.00.
    Изменены: SDBOracle.
    11.12.2008 И.В.Ковалев
  - Код задачи 15992. При выборе из справочника сравнивались старое и
    новое значения. Если тип поля массив байт и значение было нулевым, то
    возникало исключение - исправлено.
    Изменены: DBObjectChoice.
    11.12.2008 И.В.Ковалев, В.В.Тыщенко
  - TCaptionedPanel теперь нормально сохраняет TabOrder своих контролов и
    положение контролов без якорей.
    Изменены: SControls.
    11.12.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.64 от 10.12.2008
-------------------------

 P* Вместо перекрытия WMPaint перекрыт штатаный метод Paint TCustomControl'а.
  - На практике выяснилось, что добавление в ControlStyle csAcceptsControls
    лечит многие проблемы перерисовки TDBEditFrame'а. Если установить этот стиль
    TDBEditFrame'у, то он сможет принимать на себя другие контролы. Чтобы этого
    избежать, стили окна необходимые для правильной отрисовки устанавливаются
    явно в CreateParams.
    Изменены: SControls.
    10.12.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.63 от 09.12.2008
-------------------------

  > Код задачи 16001. Диалог "О программе".
    * Диалог стало возможным закрывать нажатием кнопки "Esc".
    + Добавлена возможность отключения показа диалога "О программе" на старте
      приложения (по умолчанию он показывается).
      P: Для её реализации необходимо в головном модуле проекта подключить
         ресурсный файл NoShowAboutOnStart.res.
    Добавлены: NoShowAboutOnStart.rc.
    Изменены: About, svclht.py, form_About.xml.
    09.12.2008 П.В.Ветошкин.
  * В общем случае контрол для ввода бинарных данных у tDBEditFrame`а не
    строится.
    Изменены: DBInputMethods.
    08.12.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.62 от 08.12.2008
-------------------------

  * Код задачи 15412. Для идентификации проекта в диалоге "О программе"
    используется название текущего ОМ.
    Изменены: About, UsrUtil.
    08.12.2008 П.В.Ветошкин.
  * Поправлено сообщение SDuplicateName.
    Изменены: RTLConsts.
    08.12.2008 А.Б.Хах
 Р* Код задачи 15891. Удалена CreateViewForm. Вместо нее использовать CreateForm
    с параметром DCC_VIEW.
    Изменены: SDBVCLUtils, deskmenuform, Sections, TableBrowser.
    08.12.2008 А.Б.Хах.
  - В случае несовпадения типов ключей при выборе из справочника никакого поля
    ввода не строилось, сейчас строится tDBEdit.
    Изменены: DBInputMethods.
    08.12.2008 В.В.Тыщенко
  > Код задачи 15414.
    + Добавлена и подключена функциональность позволяющая показывать
      диалог после старта приложения.
    - Если при показе диалога "О программе" приложение закрывалось
      проведением регламентных работ, то неосвобождалась память.
    Изменены: About, SonarVcl_Cnstr.
    05.12.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.61 от 05.12.2008
-------------------------

 P- При наличии в DataSet поля типа ftFmtBcd и у него DisplayFormat =
    '0.00' в Grid отображалось значение 5.6 вместо 5.60.
    Изменены: FMTBcd.
    05.12.2008 И.В.Ковалев
  - Код задачи 15954. При выходе в Крим. учете для Субд Oracle в листалку
    таблицы S_KALIBR из формы ввода по таблице KU_ORUJ значение поля
    Калибр показывалось в виде "7.61999988555908" вместо "7.62"
    Изменены: SDBOracle.
    05.12.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.60 от 05.12.2008
-------------------------

  - Код задачи: 15973. Если FBrowser не был присвоен, то не уничтожался layout,
    что приводило к исключению при попытке его назвать stDataLayout, после
    создания.
    Изменены: TableBrowserFrame.
    05.12.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.59 от 05.12.2008
-------------------------

 P* TCaptionedControl: улучшен алгоритм размещения элементов в компоненте -
    образующееся свободное пространство возникающее, например, при
    масштабировании распределяется оптимальнее
    Изменены: SControls
    05.12.2008 С.Н.Штуркин
                                 --- * ---

DSP v3.0.58 от 04.12.2008
-------------------------

 P* Исправлен like в SQL. При деинициализации провайдера не происходила
    остановка HyTech - исправлено.
    Изменены: htSQL.py, htSQLCondition, htSQLOLE.
    04.12.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.57 от 03.12.2008
-------------------------

  - Исправлено представление текстовых бинарных данных под Oracle.
    Изменены: DBInputMethods.pas.
    03.12.2008 В.В.Тыщенко
  * TCaptionedPanel: В дизайнере невозможно было копировать в компонент из
    буфера обмена - в ControlStyle компонента добавлен элемент csAcceptsControls
    Изменены: SControls
    03.12.2008 С.Н.Штуркин
                                 --- * ---

DSP v3.0.56 от 01.12.2008
-------------------------

  - Код задачи 15773. При изменении ширины колонок не пересчитывались пропорции
    колонок - исправлено.
    Изменены: JvDBGrid.pas.
    01.12.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.55 от 01.12.2008
-------------------------

  - При автоматическом построении формы построенные элементы ввода оказывались
    практически одного размера - избыточного для большинства полей и
    недостаточного для полей, содержащих выбор из списка - исправлено.
    Изменены: SControls, SDBVCLUtils
    01.12.2008 С.Н.Штуркин
                                 --- * ---

DSP v3.0.54 от 28.11.2008
-------------------------

  - В "самосвале" GetConnection может вернуть nil, и произойдёт AccessViolation
    - исправлено.
    Изменены: DBServiceCheck.pas.
    28.11.2008 В.В.Тыщенко
  - Код задачи 15904. Исправлено восстановление размеров листалки из
    представления при открытии.
    Изменены: TableBrowser.pas
    28.11.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.53 от 27.11.2008
-------------------------

  - Код задачи 15899. Если представление для листалки не было найдено, происходил
    AccessViolation - исправлено.
    Изменены: TableBrowser.pas
    27.11.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.52 от 27.11.2008
-------------------------

 !> TCaptionedControl:
    * Пронаследован от TCustomControl, вместо более избыточного TFrame
    * Изменён способ получения управления для размещения элементов: убрано
      перекрытие AdjustSize
    > Алгоритм размещения элементов (метод Arrange):
      * координаты экземпляра TCaptionedControl не устанавливаются внутри
        Arrange (это просто не работает) - вместо этого перекрыт
        AdjustClientRect
      * не работал ни один способ размеения метки сверху, кроме TopLeft -
        исправлено
    * Рамка теперь рисуется не TStaticText, а вручную на WM_PAINT
    Изменены: SControls, SDBVCLUtils
    27.11.2008 С.Н.Штуркин
  * TDBEditFrame: В случае, если поле, на которое настроен компонент запрещено
    для изменения в качестве цвета шрифта используется обычный (clGray), а не
    светлосерый (clSilver).
    Изменены: DBEditFrame
    27.11.2008 С.Н.Штуркин
  - Код задачи 15893. В TBaseVirtualTree.FindInPositionCache была возможна
    ситуация когда после цикла L оставался равен 0. Поэтому возникала ошибка
    когда брался FPositionCache[L- 1]. FPositionCache - динамический массив.
    Изменены: VirtualTrees.
    27.11.2008 А.Б.Хах
  - Код задачи 15897. Из диалога About убрана строка "А\Я 3432".
    Изменены: frame_About.xml.
    27.11.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.51 от 25.11.2008
-------------------------

  - Код задачи 15871. Утечка памяти после неудачной попытки добавления записи в
    таблицу Oracle.
    Изменены: daADCompDataSet.
    25.11.2008 И.В.Ковалев
 P- Метод tSonarDB_Table.Locate мог некорректно работать, нужная запись
    находилась, но курсор устанавливался на другую.
    Изменены: SDBVCL.
    25.11.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.50 от 24.11.2008
-------------------------

  + В штатном редакторе отчётов Fast Report подключена возможность
    дизайнирования диалоговых форм.
    Изменены: ReportDesigner.
    24.11.2008 П.В.Ветошкин.
  - В On_FormShow устанавливался Text, что приводило к исключению "Cannot change
    Visible in OnShow or OnHide".
    Изменены: SProgress.
    24.11.2008 А.Б.Хах
 P* Код задачи 15606. Ограничение количества записей в запросе Oracle
    выполняется только для двунаправленного источника данных.
    Изменены: SDBOracle, Reqconv.
    24.11.2008 И.В.Ковалев
 P* Код задачи 15606. В источнике данных Oracle добавлена возможность
    указать префикс имени таблицы для работы с другой таблицей.
    Изменены: SDBOracle.
    24.11.2008 И.В.Ковалев
 P* Код задачи 15606. Добавлена установка опций режима открытия таблицы
    при конвертации из типа tDataBase в tSchemaDef.
    Изменены: sdb2utils.
    24.11.2008 И.В.Ковалев
  > Код задачи 15432.
   Р- Если отсутствует информация о сортировках и слияниях, то
      фабрика для набора данных теперь не создается.
    + Добавлена статическая функция tDataSetLayout.IsEmpty.
    Изменены: TableBrowser, SDBVCL.
    21.11.2008 А.Б.Хах
  - Код задачи 15862. Изменена схема уничтожения пунктов меню TBXJoiner'а.
    Подробнее см. описание класса.
    Изменены: TBXJoiner.
    21.11.2008 А.Б.Хах
  - При нажатии Enter в карточке редактирования, карточка не сохранялась.
    Изменены: form_DataChange.
    21.11.2008 М.А.Степанов
  - TSectionList.RefreshSection: вызов метода приводил к Access violation в
    случае, если FDataLink.DataSet был nil. Проявлялось в дизайнере сразу после
    загрузки формы - испралено.
    Изменены: SectionList
    21.11.2008 С.Н.Штуркин
  - TCaptionedControl: При использовании "стандартной" (старой) темы Windows, а
    также, вероятно, в Windows 9X не показывались метки - исправлено.
    Проявлялось на экземплярах TDBEditFrame: в "стандартной" теме метки были не
    видны.
    Изменены: SControls
    21.11.2008 С.Н.Штуркин
  * Код задачи 14168. Редактор отчётов (fast report). В пунктоах меню
    слова "полоса", "шапка", "окончание" заменены на соответственно
    "лента", "верхний колонтитул", "нижний колонтитул".
    Изменены: form_ReportDesigner.
    20.11.2008 П.В.Ветошкин.
  > Код задачи 15845.
    * При наведении в карточке на исчезающую подсказку поля выбора из
      справочника курсора мыши, она восстанавливается.
   P+ Добавлена функция FadeControl.
   P* Реализация tHintMessageHandler перенесена в SControls.
    Изменены: SControl, SVCLUtils.
    20.11.2008 П.В.Ветошкин.
 P+ Код задачи: 15821. Добавлен модуль для запрета запуска приложения из
    одного каталога (перенесен из DSP v2.6). Для использования в проекте
    просто подключить модуль CheckOneApp.
    Добавлены: CheckOneApp.
    20.11.2008 М.А.Степанов
  * Количество записей в листалке Oracle ограничено 10000.
    Изменены: ReqConv.
    18.11.2008 И.В.Ковалев
  > DBUtils.CreateDBAwareControl теперь всегда возвращает экземпляр
    TDBEditFrame:
    !* Переработана функция CreateDBAwareControl: теперь результатом этой
       функции всегда является экземпляр TDBEditFrame, по сути, функция упрощает
       его построение. В связи с этим удалено событие app_CreateDBAwareControl.
     * Адаптирована реализация класса TDBFieldControlRec: учитывается
       возможность отсутствия метки у элемента управления, метод CreateControls
       теперь вызывает CreateDBAwareControl
    Добавлены: DBInputMethods, im_Calendar.bmp
    Изменены: SDBVCLUtils, EnterValue, SVCLHT_Registration, SVCLHT.dpk
    18.11.2008 С.Н.Штуркин
  - Код задачи 15835. Ошибка "Нет памяти для работы" при нажатии Alt-F в
    листалке Oracle по таблице, в которой 6 миллионов записей.
    Изменены: daADCompDataSet.
    18.11.2008 И.В.Ковалев
  - Код задачи: 15834. При выходе в раздел всегда сохранялась текущая
    карточка.
    Изменены: VCLReq, SectionList, Sections.
    18.11.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.49 от 18.11.2008
-------------------------

  - Исправлено определение типа поля в SQL. Задействованы алиасы у tJoinResult.
    Изменены: joinacc.pas, htSQLCustom, htSQLDataSet.pas, htSQLFields.pas,
      htSQLSelect.pas.
    18.11.2008 В.В.Тыщенко
  > Код задачи 15828.
    - Подсказка с сообщением об ошибке "всплывала" даже при невидимом
      элементе управления.
    + Добавлено позиционирование курсора на поле выбора из справочника при
      попытке сохранить в нём ошибочное значение.
   P+ Добавлена функция SelectControl, выполняющая выделение заданого
      элемента управления.
    Изменены: SDBVCLUtils, SVCLUtils.
    18.11.2008 П.В.Ветошкин.
  - После открытия карточки на просмотр, в последующих открываемых
    карточках на редактирование поля были нередактируемые.
    Изменены: form_DataChange, SDBVCLUtils.
    17.11.2008 М.А.Степанов
  - Код задачи: 15650. При записи проектной конфигурации в файл, файл не
    упаковывался.
    Изменены: NetCnf, Config.
    17.11.2008 М.А.Степанов
 P- tTableBrowserFrame.GetChildren: при сериализации в случае, если браузер
    отсутствовал (например, когда компонент не настроен на данные) происходило
    Access violation - исправлено
    Изменены: TableBrowserFrame
    17.11.2008 С.Н.Штуркин
  + Подключен JvProgressBar.
    Изменены: Jvcl.dpk.
    17.11.2008 А.Б.Хах
  + Код задачи 15407. Добавлен редактор реестра.
    Добавлены: RegEdit, frame_RegEdit.xml, form_Search.xml,
    form_RegValueEditor.xml.
    17.11.2008 А.Б.Хах
  - При нажатии на Enter в карточке, когда стоит в tMemo, закрывалась
    форма - исправлено.
    Изменены: form_DataChange.pas.
    17.11.2008 В.В.Тыщенко
 P+ TDBEditFrame: Фрейм для ввода значения поля набора данных, поддерживающего
    стандартную метаинформацию о структуре БД (HST)
    Добавлены: DBEditFrame
    Изменены: SVCLCommon.dpk, SVCLCommon_Registration
    17.11.2008 С.Н.Штуркин
 * В функцию ChoiceTableFromSchema теперь можно передать в качестве параметра
    функцию проверки дополнительного условия. Тем самым можно отфильтровать
    подсхемы по тому или иному признаку. Тип функции tCheckFunc.
    Изменены: TableChoice.
    17.11.2008 А.Б.Хах
  > DBReg:
    P* Виртуализация работает корректно без дополонительного виртуального
       хранилища. Виртуализируется tDBRegStorage.BinDataDef.Storage. В
       tBinDataStorage.PutData делается Lock и Unlock. При Unlock для
       кеширующего потока вызывается Flush.
       Удалены: VirtualizedStorage, tDBRegStorage.GetStream.
     - При параллельном обновлении нарушалась выборка в tDBRegSelection.
       Исправлено: см. tDBRegNodeSelection.hnd_Touch.
    P* Перекрыт метод tDBRegStorage.IsSameAs.
    Изменены: DBReg.
    17.11.2008 А.Б.Хах
 P* Удален GetStaticTextInfo за ненадобностью.
    Изменены: libutils.
    17.11.2008 А.Б.Хах
  + Добавлен метод tRegStorage.IsSameAs.
    Изменены: RegDef.
    17.11.2008 А.Б.Хах
  * В tBFRegNode.hnd_Copy вызов Rollback приводил к тому, что
    tBFRegNode.CurrentNode "как бы" удалялся. Фактичестки, данные
    перезагружаются и мы оказываемся в корне. Поэтому чтобы проинициализировать
    CurrentNode, нужно его переоткрыть. В силу особенностей OpenNode(там
    вызывается GetLocation, который завязан на CurrentNode), это (открытие)
    нужно делать через корень.
    Изменены: BFReg.
    17.11.2008 А.Б.Хах
  - Код задачи 15079. Если карточка открыта по таблице, у которой стоит запрет
    в hst на удаление записей, то кнопка "Удалить" засеривается.
    Изменены: Sections.pas.
    17.11.2008 В.В.Тыщенко
  - Код задачи 15520. При добавлении записи через карточку показывались
    непустые разделы - исправлено.
    Изменены: SectionList.pas.
    17.11.2008 В.В.Тыщенко
  - Код задачи 15700. Исправлен переход по номеру записи.
    Изменены: form_DataChange.pas, form_DataChange.xml.
    17.11.2008 В.В.Тыщенко
 P- ReqFactory: Вызов BuildTransferInfo в случае, если ссылка на подсхему = nil
    приводил к Access violation - исправлено
    Изменены: ReqFactory
    17.11.2008 С.Н.Штуркин
 P> SDBVCL:
    + Добавлен перегруженый вариант функции sdb_get_vcl_field_size,
      обеспечивающий работу с полями схемы и подсхем БД
    + Добавлены функции sdb_is_vcl_field_compatible для проверки совместимости
      экземпляров TField и соответствующих полей инт. записи, поля схемы или
      подсхемы БД
    Изменены: SDBVCL
    17.11.2008 С.Н.Штуркин
 P+ SControls: Добавлены классы TCaptionedControl и TCaptionedPanel
    Изменены: SControls
    17.11.2008 С.Н.Штуркин
  * Код задачи 15807. Подключена опция шифрования архива.
    Изменены: ArchivationOptsDlgs, ArchiveUtils.
    16.11.2008 А.Б.Хах
  - Если при спрятанном визуализаторе деактивировать, а потом активировать
    приложение, то визуализатор появится.
    Изменены: SProgress.
    16.11.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.48 от 15.11.2008
-------------------------

  - Код задачи: 15819. При проверке корректности значений в поле выбора
    обнулялась строка описания. Проявлялось так: в карточке изменить в
    каком-нибудь поле выбора значение, при этом оставить какое-нибудь
    обязательное поле незаполненым, при принятии карточки появиться
    сообщение о незаполнености поля, и в том поле выбора которое менялось
    строка описания обнулится.
    Изменены: DBObjectChoice.
    15.11.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.47 от 14.11.2008
-------------------------

 P* При отсутствии имени поля в таблице в информации о слиянии источника
    данных Oracle теперь сообщается о проблемном имени поля таблицы.
    Изменены: sdboracle.
    14.11.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.46 от 14.11.2008
-------------------------

  - Код задачи 15480. Устранено построение карточки для таблиц, у которых
    нет редактируемых полей и (или) разделов.
    Изменены: DBRecordBrowser, SDBVCLUtils.
    14.11.2008 П.В.Ветошкин.
  - В нередактируемых полях выбора для полей-кодификаторов не открывалась
    листалка.
    Изменены: SDBVCLUtils.
    14.11.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.45 от 14.11.2008
-------------------------

  - Код задачи 15729. Исправлен механизм фильтрации в SQL.
    Изменены: htSQLSelect.pas, htSQLCustom, htSQLCondition.pas
    14.11.2008 В.В.Тыщенко
  * Ускорен механизм фильтрации в SQL. Функциональность полей,
    показываемых пользователю, вынесена в отдельный модуль.
    Изменены: htSQLCondition.pas, htSQLCustom.pas, htSQLDataSet.pas,
      htSQLSelect.pas, htSQL.dpk.
    Добавлены: htSQLFields.pas
    14.11.2008 В.В.Тыщенко
 P* В источнике данных Oracle для пустых значений полей функция проверки
    на null веренет True.
    Изменены: sdboracle.
    14.11.2008 И.В.Ковалев
  * Произведена русификация сообщений об ошибках.
    Изменены: gaBasicSQLParser.pas, gaInsertStm.pas, gaSQLParserConsts.pas,
      gaSQLFieldRefParsers.pas, gaSQLExpressionParsers.pas,
      gaSQLParserHelperClasses.pas, gaSQLSelectFieldParsers.pas,
      gaSQLTableRefParsers.pas.
    14.11.2008 В.В.Тыщенко
  - Код задачи 15769. Не работала сортировка по подлитым полям.
    Изменены: DBase3.
    14.11.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.44 от 14.11.2008
-------------------------

 P- При повторном редактировании в tSonarDB_Table, значение OldValue у
    поля набора данных возвращало некорректное значение.
    Изменены: SDBVCL.
    14.11.2008 М.А.Степанов
  * Код задачи 15707. Добавлены подсказки всплывающие над некорректно
    заполненными или недоступными полями выбора из справочника при их
    редактировании.
    Изменены: DBObjectChoice, SDBVCLUtils, SVCLUtils.
    13.11.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.43 от 13.11.2008
-------------------------

  - После работы в карточке с полями выбора неосвобождение памяти.
    Изменены: SDBVCLUtils.
    13.11.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.42 от 13.11.2008
-------------------------

  - Код задачи 15686. В поле выбора можно было ввести значение
    отсутствующее в справочнике.
    P: TSonarDB_Table._GetFieldData: попытка получить OldValue у поля
       набора данных в состоянии добавления (State = dsInsert) приводила к
       ошибке "Чтение за концом потока" - исправлено (С.Н.Штуркин).
    Изменены: DBObjectChoice, SDBVCL, SDBVCLUtils.
    13.11.2008 П.В.Ветошкин.
 P* Код задачи: 15688. В tEvent_DBObjectChoice_EllipsisClick добавлено
    поле, Accepted: признак того что пользователь что-то выбрал.
    Изменены: DBObjectChoice, DeskmenuForm, SDBVCLUtils.
    13.11.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.41 от 13.11.2008
-------------------------

 P* Добавлена возможность открития в редакторе файла в ANSI-кодировке
    Изменены: TextEditor.
    13.11.2008 И.В.Ковалев
 P* Код задачи: 15678. Добавлена возможность в tDBObjectChoice
    переопределить вид представления которое будет загружено в открываемой
    листалке (нужно установить ему атрибут stDBObjectChoiceLayoutKind).
    Изменены: SDBVCLUtils.
    12.11.2008 М.А.Степанов
  * Код задачи 15699. Из карточек удалены кнопки "Первая запись",
    "Последняя запись", "Изменить", "Принять изменения".
    Изменены: form_DataChange.pas, Sections.pas, form_DataChange.xml.
    12.11.2008 В.В.Тыщенко
  - Исправлена орфографическая ошибка.
    Изменены: password.pas.
    12.11.2008 В.В.Тыщенко
  - Код задачи 15727. Не сохранялось значение сортировки в представлении.
    Изменены: DBGridLayout.pas.
    12.11.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.40 от 12.11.2008
-------------------------

 P* Класс tDataSetDataIO вынесен в интерфейс.
    Изменены: SDBVCLUtils.
    12.11.2008 М.А.Степанов
  + Код задачи 15684. В форме подключения к серверу Oracle запоминаются
    предыдущие введённые значения. В этой же форме создан заголовок.
    Изменены: SVCLUtils.pas, EnterRecord.pas, OraLogin.pas.
    12.11.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.39 от 10.11.2008
-------------------------

  - Исправлена работа с кавычками. Первое поле в htSQLProvider`е не
    конвертировалось в ANSI - исправлено.
    Изменены: htSQLOLE.pas, gaAdvancedSQLParser.pas.
    10.11.2008 В.В,Тыщенко
 P* Код задачи 15666. Удалён лишний код.
    Изменены: FullInfoBrowser.
    10.11.2008 П.В.Ветошкин
  - Код задачи 15722. Несанкционированный доступ и неосвобождение памяти
    при открытии окна полной информации для записи таблицы с бинарными
    данными (в т.ч. текстовыми).
    Изменены: DBRecordBrowser.
    10.11.2008 П.В.Ветошкин
  - Код задачи 15691. Запрос сохранялся в файл без расширения.
    Изменены: ReqDesigner.
    10.11.2008 П.В.Ветошкин.
  - Код задачи 15721. В случае, когда имя колонки в листалке не совпадает
    с коротким именем поля, в текст заголовка добавлялось короткое имя
    поля в скобках. Для исправления сущестующих обстановок нужно для
    листалок открыть форму изменения визуализации, сохранить ее и затем
    сохранить на диск обстановку.
    Изменены: DBGridLayout.
    10.11.2008 И.В.Ковалев
  + Код задачи 15291. Подключена функциональность, выполняющая контроль
    захвата hst.
    Добавлены: DBServiceCheck, frame_AppDestructProgress.xml.
    Изменены: Forms, SonarVcl_Cnstr.
    07.11.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.38 от 07.11.2008
-------------------------
  > SProgress.
    - Окно визуализатора "накрывало" все окна (даже другого приложения).
    - При нажатии кнопки закрытия окна, приложение зависало.
    - При генерации исключения EAbort в конструктор передавался текст сообщения,
      что приводило к записи в лог файл.
    Изменены: SProgress.
    07.11.2008 А.Б.Хах
 P* Добавлено снятие обработчика события app_CreateProgressWindow.
    Изменены: SVCLCommon_cnstr.
    07.11.2008 А.Б.Хах
 P* Для tDataSet добавлены события ev_DataSet_BeforeEdit,
    ev_DataSet_BeforePost аналоги соответственно tDataSet.BeforeEdit,
    tDataSet.BeforePost.
    Изменены: DB.
    07.11.2008 М.А.Степанов
  * Изменены параметры стандартного визуализатора. Удалены TextWidth, TextHeight,
    Margin за ненадобностью. Добавлен ProgressBarMarquee.
    Изменены: LibUtils.
    07.11.2008 А.Б.Хах
  + Добавлен стандартный визуализатор процесса.
    Добавлены: SProgress, SVCLCommon_cnstr, form_Progress.xml.
    Изменены: SVCLCommon.dpk.
    07.11.2008 А.Б.Хах
                                 --- * ---


DSP v3.0.37 от 07.11.2008
-------------------------

  + Добавлена регистрация класса tJvProgressBar.
    Изменены: jvcl_Registration.
    07.11.2008 А.Б.Хах
  - Форма просмотра записи таблицы не закрывалась по Esc.
    Изменены: form_DataChange.
    07.11.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.36 от 07.11.2008
-------------------------

  > Код задачи 15675.
    * Код задачи 15675. Добавлено задание имени по умолчанию для архива.
    * Код задачи 15675. При открытии диалога открытия файла и диалога открытия
      директории каталогом по умолчанию теперь является каталог запуска программы.
    Изменены ArchiveUtils, ArchivationOptsDlgs, form_CompressionOptions.xml,
    form_DecompressionOptions.xml.
    06.11.2008 А.Б.Хах
  - Исключение EWrongVolumeSize в ParseVolumeSize выше не перехватывалось.
    Изменены ArchivationOptsDlgs.
    06.11.2008 А.Б.Хах
  + Код задачи 15532. Реализована сериализация представления карточки.
    Отключена загрузка form_DataView.xml. Добавлены методы для работы с
    tSonarCaptionButton.
    Изменены: form_DataChange.pas, FormResizer.pas, SVCLFormH.pas,
      SDBVCLUtils.pas, SectionList.pas, Sections.pas, TableBrowser.pas,
      SVCLHT_Registration.pas, form_DataChange.xml, form_TableBrowser.xml,
      frame_TableBrowser.xml, SVCLHT.dpk, svclImages.rc, Images.rc.
    Перенесены: im_Resize_Form.bmp, im_Zoom.bmp.
    Удалены: form_CaptionButton.xml, form_DataView.xml.
    Добавлены: im_Caption_Run.xml.
    06.11.2008 В.В.Тыщенко.
  - Код задачи 15696. В форме, открытой для просмотра, теперь отображается
    номер текущей записи.
    Изменены: form_DataChange.pas.
    06.11.2008 В.В.Тыщенко.
  - Код задачи 15673. Вводимое и не радактируемое поле нельзя было
    отредактировать при вводе. Проявлялось при вводе данных в DESKMENU -
    поле "КодМеню".
    Изменены: SDBVCL.
    05.11.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.35 от 01.11.2008
-------------------------

 P* Убрано редактирование BLOB-поля после добавления в ситуации, когда
    этого делать не нужно.
    Изменены: daADDAptManager.
    01.11.2008 И.В.Ковалев
 P* Реализована функция Locate для источника данных Oracle.
    Изменены: SDBOracle.
    01.11.2008 И.В.Ковалев
  - Код задачи 15653. Переименование рабочей станции не отражалось в
    сеансах работы.
    Изменены: CnfDef, htSQLOLE, Ht_Init, Password, SDBConst.
    01.11.2008 П.В.Ветошкин.
  - Код задачи 15676. В форме ввода таблицы Oracle, создаваемую
    по-умолчанию вместо мемо-поля было обычное поле ввода.
    Изменены: SDBVCLUtils.
    01.11.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.34 от 01.11.2008
-------------------------

  + Код задачи 15660. Добавлена возможность запуска отчётов fast report из
    локального меню листалок.
    Изменены: DeskmenuExec.
    01.11.2008 П.В.Ветошкин.
  - Изменён алгоритм масштабирования - теперь форма сначала возвращается
    к исходному размеру (снижается погрешность расчётов координат).
    Изменены: FormResizer.pas, form_DataChange.xml, form_DataView.xml.
    01.11.2008 В.В.Тыщенко
  - Разрешен показ формы (в контексте карточки), не содержащей записей и
    запрещённой для редактирования. Раньше происходил AccessViolation.
    Изменены: Sections.pas.
    01.11.2008 В.В.Тыщенко
  - Код задачи 15663. В форме ввода по таблице oracle в пустом мемо-поле
    показывался пробел.
    Изменены: sdboracle.
    01.11.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.33 от 31.10.2008
-------------------------

 P* Код задачи: 15538. Добавлены модули для работы в Python с БД Hytech,
    модули перекодирован в ANSI, модули PyApp, PyBinData,
    PyStream пока не добавлялись.
    Добавлены: PyCfg, PyCnstr, PyDB, PyReq, PySonarSys.
    Изменены: SVCLHT.py, SVCLHt.dpk, PyUtils.
    31.10.2008 М.А.Степанов
  + Код задачи 15014. Добавлен диалог выбора принтера.
    Изменены: AppInvis, Imp_Prn, TextEditor.
    Добавлены: form_SelectPrinter.xml.
    31.10.2008 П.В.Ветошкин.
  - Код задачи 15656. В Криминальном учете для СУБД Oracle при
    редактировании записи в таблице KU_AUTO не редактировалось поле
    "36.Особые приметы".
    Изменены: sdb2utils.
    31.10.2008 И.В.Ковалев
  + Код задачи 15262. В редактор результата выполнения отчёта RWF добавлен пункт
    меню "Печать".
    P: Из DSPv2.6 перенесена функциональность по экспорту информации на
       принтеры.
    Добавлены: EscPPrn, Imp_LP, Imp_Prn.
    Изменены: Imp_Obj, TextEditor, form_TextEditor.xml, SVCLHt.dpk.
    30.10.2008 П.В.Ветошкин.
  - Код задачи 15647. Если в tPartStream.Read, в качестве базового потока,
    поток, который не поддерживает позиционирование, то его позиционировать
    нельзя.
    Изменены: Streams.
    30.10.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.32 от 30.10.2008
-------------------------

  + Код задачи 15639. Добавлена возможность запуска из редактора отчётов
    штатного редактора fast report по горячей клавише Ctrl+Alt+D.
    Отключена предустановка цвета и наклона шрифта в ячейке отчёта
    "Текст".
    Изменены: ReportDesigner, form_ReportDesigner.xml.
    30.10.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.31 от 30.10.2008
-------------------------

  * Код задачи 15640. Добавлено обновление источника данных Oracle перед
    выполнением операции изменения данных и открытием формы для просмотра.
    Изменены: sdboracle.
    30.10.2008 И.В.Ковалев
  + Код задачи 15617. Добавлена возможность запуска отчётов fast report из меню
    обстановок. Для реализации возможности необходимо в справочник разделов
    добавить запись со следующими значениями полей: "Раздел" = 10, "Наименован"
    = Отчет, "Каталог" = FRS. Конечно, наименование и каталог могут быть
    отличными от предложенных, но в стадии избавления от RWF-отчётов раздел 6
    можно переименовать в "Отчёт (RWF)". В диалог выбора файла карточки DESKMENU
    добавлена предустановка названия существующего файла.
    Изменены: DesignDialogs. Deskmenu, DeskmenuExec, DeskmenuForm.
    29.10.2008 П.В.Ветошкин.
  - Код задачи 15634. В форме ввода для таблицы Oracle невозможно было
    ввести время, все поля были обязательными для ввода, при
    редактировании в пустых строковые полях было значение, состоящее из
    одного пробела.
    Изменены: SDBOracle.
    29.10.2008 И.В.Ковалев

DSP v3.0.30 от 29.10.2008
-------------------------

  - Код задачи: 15629. В полях ввода текстовых бин. данных при нажатии на
    Enter закрывалась карточка.
    P: tDataChangeForm: Изменен способ реакции на Enter, отрабатывается
       св-вом Default у кнопки.
    Изменены: form_DataChange, form_DataChange.xml.
    29.10.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.29 от 28.10.2008
-------------------------

  > Streams:
    - В ChangeLock в ForStreamWrappers в качестве параметра вместо Parms
      передавался nil.
    - В tPartStream.Read сбивалась позиция базового потока. Этот эффект может
      "стрельнуть" напр., при вызове X.CopyFrom(Y,Z), где X - некий поток,
      Y - tPartStream над X, Z - число.
    Изменены: Streams.
    28.10.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.28 от 28.10.2008
-------------------------

  - Код задачи: 15619. При подгрузке обстановки из меню, не очищалось
    текущее содержимое рабочего стола.
    P: Очистка рабочего стола перенесена в процедуру LoadDesktopFromFile.
    Изменены: Desktop.
    28.10.2008 М.А.Степанов
 P* После изменения данных в источнике данных Oracle по-умолчанию
    происходит обновление данных.
    Изменены: SdbOracle.
    28.10.2008 И.В.Ковалев
 P* При ковертации запроса в sql-выражение Oracle вместо строкового
    представления значения ROWID получается значение ROWID. Без этого
    изменения невозможно было отредактировать запись в источнике
    данных Oracle, содержащем слияние.
    Изменены: ReqConv.
    28.10.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.27 от 28.10.2008
-------------------------

  Внимание! Может потребоваться адаптация в проектах! <ADAPT>
  27.10.2008 С.Н.Штуркин
  -----------------------------------------------------------

  > DBObjectChoice:
    - Если экземпляр TDBObjectChoice не был виден вопремя выполнения
      масштабирования (например, располагался на неактивной вкладке), размер
      фрейма и высота кнопки определялись неверно - исправлено
    * Свойство TDBObjectChoice.ForceValueEdit переименовано в HasValueEdit
    Изменены: DBObjectChoice, SDBVCLUtils, EnterValue, DeskMenuForm
    27.10.2008 С.Н.Штуркин

  Адаптация: в xml-файлах форм формально заменить имя свойства "ForceValueEdit"
  в экземплярах TDBObjectChoice на "HasValueEdit". Аналогичные действия
  проделать в исходных текстах в случае, если не будет компилироваться.
                                   * * *

  - Исправлена работа с NULL-значениями полей.
    Изменены: htSQLOLE.pas, OLEDBRowsetData.pas
    28.10.2008 В.В.Тыщенко
  - При наличии нескольких tScrollBox на двух страницах в tPageControl, во
    втором tScrollBox прокрутка по PageDown, PageUp не работала.
    Изменены: SVCLFormH.
    28.10.2008 М.А.Степанов
  - Исправлено неосвобождение памяти при разборе условия. Убраны хинты
    при компиляции.
    Изменены: htSQLOLE.pas, htSQLCondition.pas, htSQLDataSet.pas.
    27.10.2008 В.В.Тыщенко
  - Исправлены ошибки в подключении и отключении от БД. Добавлено логирование
    строки подключения.
    Изменены: htSQLOLE.pas.
    27.10.2008 В.В.Тыщенко
 P* Добавлено событие приложения для определения сервисного соединения с
    БД, в котором хранятся представления листалок.
    Изменены: SVCLUtils, LayoutManager.
    24.10.2008 И.В.Ковалев
 P* Добавлена установка свойств поля источника данных Oracle - шаблона
    поля, метки, диапазона значений.
    Изменены: sdboracle.
    24.10.2008 И.В.Ковалев
 P* Добавлена установка длинного алиасного имени поля подсхемы при пустом
    коротком алиасном имени при конвертации из типа tDataBase в
    tSchemaDef.
    Изменены: sdb2utils.
    24.10.2008 И.В.Ковалев
 P- Вызов FieldVLength для экземпляра tSubSchema при отсутствии для этого
    экземпляра tSubd приводил к EAccessViolation.
    Изменены: SDBAPI.
    24.10.2008 И.В.Ковалев
 P- Функция sdb_variant_to_field_buffer: устранена пропись по памяти при
    конвертации строковых значений.
    Изменены: SDBVCL.
    23.10.2008 М.А.Степанов
  - При подключении к БД в случае, если неверно задано имя станции, не освобождалась
    память - исправлено.
    Изменены: htSQLOLE.pas
    23.10.2008 В.В.Тыщенко
  - Исправлена ошибка в разборе SQL выражения (неправильно выделялась
    таблица в случае, когда отсутствовала ';').
    Изменены: OLEDBProv.pas
    23.10.2008 В.В.Тыщенко
 P- При выходе в справочник из поля ввода с пустым значением в случае,
    если в справочнике главный ключ строковый, листалка справочника при
    работе с БД Oracle показывалась пустой.
    Изменены: ReqConv.
    23.10.2008 И.В.Ковалев
 P* Отключен поиск параметров при выполнении скрипта Oracle. Ранее
    невозможно было создать триггер из-за присутствия в нем текста :New.
    Изменены: sdboracle.
    23.10.2008 И.В.Ковалев
  + Добавлена возможность указание размера кэша в OLE DB. Исправлена
    работа с indCode. Добавлено логирование текста запроса, приведшего к
    исключению. Отключено логирование EOLEDBException.
    Изменены: htSQLCondition, htSQLCustom, htSQLDataSet, htSQLOLE,
    OLEDBProv.
    22.10.2008 В.В.Тыщенко
 P* Утилита преобразования XML в ресурсный файл (XMLToRes): Изменен способ
    получения нужных узлов: прежний не работал на некоторых ОС.
    Изменены: XMLToRes.
    22.10.2008 М.А.Степанов
 P* Добавлена регистрация компонентов tDbEdit, tDbCheckbox.
    Изменены: vcl_registration.
    22.10.2008 И.В.Ковалев
 P* tSonarDB_Table._SetFieldData: При установке данных в поле, в поле
    записи changer'а устанавливается флаг редактируемости, иначе возникают
    проблемы с его просадкой.
    Изменены: SDBVCL.
    21.10.2008 М.А.Степанов
 P* Добавлена возможность работы формы ввода проектной конфигурации с БД
    Oracle. Для этого использование tSonarDB_Connection заменено на
    tCustomConnection.
    Изменены: Config, Enterrecord, FConfig.
    21.10.2008 И.В.Ковалев
 P* Адаптировано удаление tDBObjectChoice.CreateContent
    Изменены: SDBVCLUtils.
    21.10.2008 И.В.Ковалев
 P* В ISonarConnection добавлена функциональность по работе с
    транзакциями.
    Изменены: SonarDbIntf, SDBVcl, SDBOracle.
    20.10.2008 И.В.Ковалев
 P* Текстовые поля бинарных данных для источника данных Oracle теперь
    называются "Text"
    Изменены: ReqConv.
    20.10.2008 И.В.Ковалев
 P* Добавлено событие приложения для генерации текста sql для
    добавления записи в таблицу Oracle.
    Изменены: daADPhysCmdGenerator.
    20.10.2008 И.В.Ковалев
 P* Отключено взведение исключения при установке значения в Readonly-поле
    при работе с источником данных таблицы Oracle
    Изменены: daADCompDataSet, daADDatSManager.
    20.10.2008 И.В.Ковалев
  > TDBObjectChoice:
    - При попытке очистить значения ключа в поле нажатием Del в поле описания в
      случае, если запись таблицы не находилась в состоянии редактирования
      значение в поле не очищалось или возникало исключение "Изменение данных не
      подготовлено" - исправлено
    + В TDBObjectChoice добавлено новое свойство HasDescription, позволяющее
      управлять наличием/отсутствием описательного поля у компонента
    * Улучшен внешний вид кнопки для выбора: теперь для троеточия используется
      картинка, а не текст, как раньше
    * Улучшено поведение компонента при масштабировании и изменении размера:
      внизу фрейма не появляется пустое место
    Изменены: DBObjectChoice
    20.10.2008 С.Н.Штуркин
  - Добавлена возможность задавать имя рабочей станции в OLE DB.
    Удалены пустые методы. Добавлена возможность сборки только провайдера.
    Изменены: htSQLOLE.pas, OLEDbRowsetData.pas
    20.10.2008 В.В.Тыщенко
 P* Поддержана работа с объектом типа tSchemaDef в процедуре
    ForEachTableDescr
    Изменены: SDBAPI.
    20.10.2008 И.В.Ковалев
  > Адаптированиы изменения из dsp-26:
    * Код задачи 14843. При выделении ОВД на компьютере с 2 гб ОЗУ на большой
      базе данных (объемом 8 гб) возникает ошибка:
        Ошибка HyTech
        Исключение: Не хватает памяти.
        Код: 110.  Таблица: A_TO..
    Изменены: Hytech.
    17.10.2008 С.А.Барсуков.
  * Код задачи 15378. При наличии модального окна (например, окна открытия
    таблицы или окна поля выбора из справочника) при нажатии Alt+Tab
    курсор не позиционировался на значок окна предыдущего приложения и
    оставался на текцущем.
    P: Стиль формы листалок заменён с bsSizeToolWin на bsSizable.
       Модальные окна в стиле bsSizeToolWin не получают сообщения
       WM_GETICON (по определению), что порождает определённые проблемы
       использования диалога по Alt+Tab. Подробнее о проблеме см. описание
       задачи с кодом 15193.
    Изменены: form_TableBrowser.xml.
    17.10.2008 П.В.Ветошкин.
  * Шрифт CaptionFont tSGroupBox'a теперь масштабируется.
    Изменены: SControls.
    17.10.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.26 от 16.10.2008
-------------------------

 P+ Добавлены: SVCLCommon_Registration, SControls.
  * Убрана регистрация компонентов из VCL: tButton, tMemo, tTabSheet,
    tOpenDialog, tSaveDialog, tForm, tActionList, tAction. Они регистрируются в VCL.
    Изменены: SVCLHT_Registration.
    15.10.2008 A.Б.Хах
  * Модуль SonarVCL_Registration переименован в SVCLHT_Registration.
  + Добавлена регистрация компонентов tTabSheet, tMemo.
    Изменены: VCL_Registration.
    15.10.2008 А.Б.Хах
 P* В методе TCustomGroupBox.Paint шрифт для отрисовки Caption'а брался из свойства
    Font GroupBox'a. Теперь вызывается виртуальный метод TCustomGroupBox.GetCaptionFont,
    который в TCustomGroupBox возвращает Font. Тем самым, появилась возможность в
    наследнике TCustomGroupBox перекрыв метод GetCaptionFont изменить стандартное поведение.
    Изменены: stdctrls.
    15.10.2008 А.Б.Хах
 P* Метод TCustomActionList.IsShortCut сделан виртуальным.
    Изменены: actnlist.
    15.10.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.25 от 14.10.2008
-------------------------

  + Добавлены перегруженные варианты для GetTextWidth, позволяющие не
    передавать шрифт (в этом случае шрифт берётся у компонента)
    Изменены: SVCLUtils
    14.10.2008 С.Н.Штуркин
  * Код задачи 15526. Поддержано интерактивное изменение данных в таблицах
    Oracle.
    Изменены: SonarDbIntf, SdbVcl, SDBVCLUtils, sdb2utils,
    sdboracle, daADPhysConnMeta.
    13.10.2008 И.В.Ковалев
  > MapToJDBG:
    * v2.04 от 13.10.2008
    * В случае проблем, программы выдавала сообщение не в OEM-кодировке -
      исправлено
    Изменены: MapToJDBG
    13.10.2008 С.Н.Штуркин
 P+ dsp.py: Добавлен метод dsp.BuildPackage для сборки пакетов с
    примениением MapToJDBG.exe к файлу BPL
    Изменены: все скрипты сборки, содержащие сборке программ или пакетов
    13.10.2008 С.Н.Штуркин
  ! ThirdParty\JCL и JVCL приведены в соответствие с JCL rev. 2542 и
    JVCL rev. 11959
    Изменены: ThirdParty\JCL, ThirdParty\JVCL
    13.10.2008 С.Н.Штуркин
  * Код задачи 15525. Реализовано сохранение в обстановке информауии об
    окне, имеющем фокус ввода.
    Изменены: Desktop.
    13.10.2008 П.В.Ветошкин.
 P* Устранено дублирование имен ресурсов при сборке без bpl-файлов
    Изменены: SDBGrid, svclimages.rc
    10.10.2008 И.В.Ковалев
  * Код задачи: 15512. Формирование главного ключа с сетевой привязкой:
    Считается что главный ключ формируется с учетом сетевой привязки если
    в таблице главный ключ типа LongInt и таблица является выгружаемой.
    Изменены: SonarVCL_Cnstr.
    09.10.2008 М.А.Степанов
  * Код задачи 14894. Поддержана работа с кодификаторами в листалке
    Oracle.
    Изменены: GridCodeView, SDBGRID, SDBVCLUtils, sdb2utils,
    sdboracle, svcloracle.dpk, SVCLOracle_cnstr.
    Добавлены: OraCodeView.
    08.10.2008 И.В.Ковалев
  - Код задачи 15505. Неверный показ развернутых узлов кодификатора если
    текущая запись листалки - последняя.
    Изменены: GridCodeView.
    08.10.2008 И.В.Ковалев
  - Код задачи 15499. При выделении изменений в посылку попадали hvl-
    файлы пустых таблиц. Изменения внесены в низкоуровневую функцию
    удаления данных таблицы, которая используется не только при выделении
    изменений.
    Изменены: S_INDEX.
    08.10.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.24 от 07.10.2008
-------------------------

  - Код задачи: 15491. tTableBrowserFrame: Не сохранялся запрос
    установленый на листалку.
    Изменены: TableBrowserFrame.
    07.10.2008 М.А.Степанов
  - Исправлены ошибки при разворачивании и восстановлении размеров листалки.
    изменены: FormResizer.pas
    07.10.2008 В.В.Тыщенко
  - При закрытии программы возникало исключение EAccessViolation.
    P: tSonarDB_Connection: EAccessViolation при уничтожении.
    Изменены: SDBVCL.
    07.10.2008 М.А.Степанов
  - Устранено накопление ошибок округления при пошаговом масштабировании формы.
    Изменены: FormResizer.pas.
    07.10.2008 В.В. Тыщенко
 P- tSonarDB_Connection: Неосвобождение памяти при использовании
    RegisterTrigger.
    Изменены: SDBVCL.
    06.10.2008 М.А.Степанов
  - При загрузке параметров работы БД часть параметров не загружалась.
    Изменены: NetCnf.
    06.10.2008 М.А.Степанов
  > Представление и ввод полей даты и времени:
    - Условие установки шаблона предстваления полей даты было
      сформулировано таким образом, что выбирался всегда длинный
      (десятисимвольный) формат - исправлено
    + Шаблоны представления и ввода полей времени выбираются аналогично
      полям даты - в зависимости от ширины визуализации
    Изменены: SDBVCL
    03.10.2008 С.Н.Штуркин
                                 --- * ---

DSP v3.0.23 от 01.10.2008
-------------------------

  * Поля выбора из таблицы: Добавлена возможность обнуления значения поля
    по клавише Del в ситуации когда у поля выбора нет поля ввода ключа.
    Изменены: DBObjectChoice.
    01.10.2008 М.А.Степанов
  - Код задачи 15389. При сохранении представления листалки сохранялся
    запрос.
    Изменены: ReportSupp, SDBVCL, TableBrowser, TextBox.
    29.09.2008 П.В.Ветошкин
 + Добавлена возможность сборки в режиме FastMM FullDebugMode
    Используйте определение "full_debug" при запуске сборки.
    Например: dsp.py debug -d full_debug
    Изменены: dsp.py, core.py, Objects2.pas
    Добавлены: Core\MM\FastMM_FullDebugMode.dll
    26.09.2008 С.Н.Штуркин
  * Строковые константы модуля HIMT переведены в ANSI-кодировку
    Изменены: HIMT.pas
    26.09.2008 С.Н.Штуркин
  - Код задачи: 15410. Разделы-уникальные св-ва: при редактировании
    раздела, поля связи с ведущей карточкой можно было редактировать.
    Изменены: SDBVCLUtils.
    26.09.2008 М.А.Степанов
  - При использовании класса tSonarDB_Record происходили утечки памяти -
    исправлено.
    P: Детали см. в комментариях в реализации метода
       TSonarDB_Record.IsCursorOpen.
    Изменены: SDBVCL
    26.09.2008 С.Н.Штуркин
 P- Неверная компиляция при включенной опции FullDebugMode.
    Изменены: FastMM4.
    26.09.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.22 от 26.09.2008
-------------------------

  * Код задачи: 15345. Листалка DESKMENU ограничивается проектом для
    которого открыта БД.
    Изменены: DeskMenu.
    26.09.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.21 от 25.09.2008
-------------------------

  - Код задачи: 15372. Листалка кодификаторов: При развертывании узлов
    новые записи не ограничивались запросом из таблицы.
    Изменены: htCodeView.
    25.09.2008 М.А.Степанов
 P* tSonarDB_Table.SetupFieldFlags: Флаг нередактируемости не
    сбрасывается у поля если он был установлен не в этом методе.
    Изменены: SDBVCL.
    25.09.2008 М.А.Степанов
 P- tDBObjectChoice: Если несколько раз присвоить св-ву Enabled значение
    False, то при присвоении ему затем True, цвет шрифта оставался серым.
    Изменены: DBObjectChoice.
    25.09.2008 М.А.Степанов
  - Код задачи 15403. Неверно устанавливались свойства OLE DB Provider`а -
    исправлено.
    Изменены: htSQLOLE.pas.
    25.09.2008 В.В.Тыщенко.
  - Код задачи 15394. Архивация оглавления происходила с настройками lzma_Max, вне зависимоти
    от настроек архива. Поэтому на машине с малым количеством оперативной памяти, памяти не
    хватало при любой степени сжатия. Теперь для сжатия оглавления берутся настройки архива.
    Также временное сохранение оглавления осуществлялось в память. Теперь во временный файл.
    Изменены: Archiver.
    25.09.2008 А.Б.Хах
  * Добавлена новая степень сжатия lzma_Speedy(Скоростной).
    Изменены: ArchiveStreams, LZMAStreams, LZMA.
    25.09.2008 А.Б.Хах
 P* Расширения файлов заменены на соответствующие константы.
    Изменены: ArchiveUtils.
    25.09.2008 А.Б.Хах
  * Изменены параметры по умолчанию для процедур архивации.
    Изменены: DBArchiver.
    25.09.2008 А.Б.Хах

DSP v3.0.20 от 25.09.2008
-------------------------

 P- tDBObjectChoice: В только что построеных полях описания был "мусор".
    Изменены: DbObjectChoice.
    25.09.2008 М.А.Степанов
 P- Код задачи: 15368. Для полей типа кодификатор из tSonarDB_Record
    некорректно работало преобразование значения в строку.
    Изменены: SDBVCL, SonarDBIntf.
    25.09.2008 М.А.Степанов
  - Код задачи: 15368. Редактор запросов: При вводе кодификаторов длина
    поля ввода ключа была слишком маленькой.
    Изменены: ReqEditor.
    25.09.2008 М.А.Степанов
  * Код задачи: 15392. При контроле обязательных полей на поле без поля
    ввода ключа не устанавливался курсор если поле пустое.
    Изменены: DBObjectChoice.
    24.09.2008 М.А.Степанов
  - Код задачи 15086. Пункты меню, построенные по данным DESKMENU не
    перестраивались после изменений, произведенных только в таблице RIGHTS
    - реакция была только на изменения в таблице DESKMENU.
    Изменены: Deskmenu.
    24.09.2008 И.В.Ковалев
 P* tDBObjectChoice: Убрана установка пустой строки полю описания при
    изменениях в источнике данных, т.к. следующее после этого фоновое
    обновление может не произойти из-за того что на экране модальная
    форма, и текст описания останется пустым.
    Изменены: DBObjectChoice.
    23.09.2008 М.А.Степанов
  - Код задачи: 15390. Исправлены локальные ошибки.
    Изменены: joinacc.pas, htSQLCustom.pas, htSQLDataSet.pas,
      htSQLDDLConstruction.pas, htSQLSelect.pas.
    23.09.2008 В.В.Тыщенко
 P* Код задачи: 15388. Обработка фоновых событий: Флаг условной компиляции
    IdleFocusedModalFormOnly по-умолчанию включен.
    (сделано для того что-бы подчиненая листалка фоново не обновлялась
     если в ней открыта карточка на редактирование (иначе обновление
     вызывает просадку данных карточки))
    Изменены: IdleVCL.
    23.09.2008 М.А.Степанов
  - Исправлены ошибки в запросе на изменение данных и в условии exists.
    Изменены: htSQLCondition.pas, htSQLCustom.pas,
    htSQLDMLConstruction.pas.
    23.09.2008 В.В.Тыщенко
  * Код задачи 15377. Использование расширения dsk файла обстановки
    заменено на использование расшиирения wds.
    Изменены: DESKTOP, ADVAPPC, DBARCHIVER, SvclCommon.dpk,
    SVclHt.dpk
    Добавлены: DeskmenuForm, SetupCodes, frame_deskmenu.xml
    22.09.2008 И.В.Ковалев
 P* Код задачи: 15374. tSonarDB_Connection: Если при установке соединения
    не получилось открыть БД, выдается соответствующее исключение.
    Изменены: SDBVCL.
    22.09.2008 М.А.Степанов
 P- Неверная кодировка в сообщениях ошибок коллекций Turbo Vision.
    Изменены: Arrays.
    22.09.2008 И.В.Ковалев
  * Код задачи 14895. Переделана реализация изменение списка полей
    визуализации, указание слияния, сортировки для того, чтобы все это
    можно было делать с листалкой по таблице Oracle.
    Изменены: DBGridLayout, ReportDesigner, SdbOracle,
    SonarVCL_registrationб form_DBGridLayout.xml
    22.09.2008 И.В.Ковалев
  - Код задачи: 15337. При дублировании записи в листалке с подлитыми
    полями возникала ошибка "Ошибка доступа по неверному номеру поля ..".
    Изменены: SDBVCL, SDBVCLUtils.
    22.09.2008 М.А.Степанов
  - Код задачи: 15318. При отмене диалога редактирования проектной
    конфигурации произведенные изменения не отменялись.
    P: tSonarDB_Record: реализована отмена редактирования (метод Cancel) c
       возвратом исходных значений полям записи, реализована поддержка св-ва
       OldValue для полей tSonarDB_Record.
    Изменены: SDBVCL, EnterValue, EnterRecord.
    22.09.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.19 от 19.09.2008
-------------------------

  * Код задачи: 15240. Добавлена поддержка SQL для HyTech.
    Добавлены: Calc.pas, htSQL.dpk, htSQL.py, htSQLCondition.pas,
      htSQLCustom.pas, htSQLDataSet.pas, htSQLDDLConstruction.pas,
      htSQLDMLConstruction.pas, htSQLSelect.pas, htSQLOLE.pas,
      htSQLProvider.pas, OleDB.pas, OLEDbConst.pas, OLEDbProv.pas,
      OLEDbRowsetData.pas, osp.pas, gaAdvancedSQLParser.pas,
      gaAlterStm.pas, gaBasicSQLParser.pas, gaCreateStm.pas,
      gaDeleteStm.pas, gaDropStm.pas, gaInsertStm.pas, gaLnkList.pas,
      gaSelectStm.pas, gaSQLExpressionParsers.pas, gaSQLFieldRefParsers.pas,
      gaSQLParserConsts.pas, gaSQLParserHelperClasses.pas,
      gaSQLSelectFieldParsers.pas, gaSQLTableRefParsers.pas,
      gaUpdateStm.pas.
    Изменены: config.pas, svclht.py, params.ini, batchopr.pas, bindata.pas,
      dbase0.pas, dbase3.pas, joinacc.pas, joiner.pas, requests.pas,
      rqsdata.pas, selkeyin.pas, usrutil.pas.
    19.09.2008 В.В.Тыщенко
                                 --- * ---

DSP v3.0.18 от 19.09.2008
-------------------------

  * Код задачи: 15358. Если после удаления в листалке произвести попытку
    добавления записи, то при наличии подлитых полей возникала ошибка
    "Неверный номер записи".
    Изменены: SDBVCL.
    19.09.2008 М.А.Степанов
  - Код задачи: 15348. Формы изменения данных: Поля типа дата невозможно
    было обнулить, выдавалось сообщение о некорректном значении.
    Изменены: SDBVCL.
    18.09.2008 М.А.Степанов
 P* Добавлена функция IsMergeField: возвращает True если поле подлито из
    другой таблицы.
    Изменены: SDBVCLUtils.
    18.09.2008 М.А.Степанов
  - Код задачи: 15343. При визуализации значений вещественных полей не
    учитывалось кол-во знаков после запятой указаное в схеме БД.
    Изменены: SDBVCL.
    18.09.2008 М.А.Степанов
  * Код задачи 15296. Добавлена возможность добавлять ресурсы в существующий архив. Также
    изменены параметры, передаваемые при рассылке событий. Теперь всегда передается имя
    архива, а не имя файла архива.
    Изменены: ArchiveContents, Archiver, ArchiveStreams, ArchiveUtils, DBArchiver.
    18.09.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.17 от 18.09.2008
-------------------------

  * Код задачи: 15325. Карточка со списком из одного раздела: при закрытии
    раздела-вкладки раздел не показывался в списке.
    Изменены: SectionList.
    17.09.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.16 от 17.09.2008
-------------------------

  - В tBinDataStorage.GetReadStream в качестве потока S создавался
    tEncryptionStream, а нужен - tDecryptionStream. В результате происходило
    исключение при попытке прочитать из него.
    Изменены: bindata.
    16.09.2008 А.Б.Хах
                                 --- * ---
DSP v3.0.15 от 15.09.2008
-------------------------

  - При прокрутке с помощью PageDown, PageUp на форме где есть
    непосещаемые элементы могла возникать ошибка 'Cannot focus..'.
    Изменены: SVCLFormH.
    15.09.2008 М.А.Степанов
  * Код задачи: 15321. Изменен стиль формы редактирования и просмотра,
    сделан по умолчанию.
    Изменены: SDBVCLUtils, form_DataChange.xml, form_DataView.xml.
    15.09.2008 М.А.Степанов
  - Код задачи 15298. Исправлены ошибки при масштабировании формы и
    добавлении раздела во вкладку.
    Изменены: FormResizer.pas, SectionList.pas, Sections.pas,
    form_DataChange.xml, form_DataView.xml, frame_SectionList.xml.
    15.09.2008 В.В.Тыщенко
  * Код задачи 15070. Добавлена возможность архивации ресурсов в оглавление.
    Изменены: ArchiveContents, Archiver, ArchiveStreams.
    12.09.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.14 от 10.09.2008
-------------------------

 P* tDBObjectChoice: При создании элементов фрейма не перерасчитывалась
    его высота, что приводило к образанию нижней части элементов ввода при
    увеличении размера шрифта - исправлено
    Изменены: DBObjectChoice
    10.09.2008 С.Н.Штуркин
                                 --- * ---

DSP v3.0.13 от 09.09.2008
-------------------------

  * Код задачи: 15195. tSonarDB_Connection: Добавлена возможность при
    открытии БД задавать имя проекта для которого открывается БД (св-во
    ProjectName).
    Изменены: SDBVCL.
    09.09.2008 М.А.Степанов
  - Код задачи: 15263. При отсутствии в cnf-файле узла с параметрами
    работы БД (такое произойдет при сохранении проектной конфигурации в
    новом файле), программа не загружалась, выдавалось сообщение:
    "Попытка открыть узел \DBMS Options:
     Нет подузла "DBMS Options" у узла ""."
    Изменены: NetCnf.
    09.09.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.12 от 08.09.2008
-------------------------

  - Код задачи 15256. Если курсор был перенесён из окна ввода
    инкрементного поиска на какую-либо запись то команды локального меню
    листалки не выполнялись.
    Изменены: SDBGrid.
    04.09.2008 П.В.Ветошкин.
  + Код задачи 15244. Диалог "О программе". Добавлен вывод информации о
    серийном номере.
    Изменены: About, UsrUtil, frame_About.xml.
    02.09.2008 П.В.Ветошкин.
 P* Адаптировано удаление модуля AppConst.
    Изменены: OraDeskmenu.
    01.09.2008 П.В.Ветошкин.
  + Код задачи 15246. Добавлена утилита ProjectId, выполняющая установку
    идентификатора проекта.
    Добавлены: ProjectId.
    Изменены: svclcommon.py
    01.09.2008 П.В.Ветошкин.
  - Код задачи 15245. Если идентификатор проекта отсутствовал, то
    выполнение приложения прерывалось с исключением EResNotFound.
    P: Оптимизирован алгоритм получения идентификатора проекта.
    Изменены: UsrUtil.
    01.09.2008 П.В.Ветошкин.
  + Код задачи 15019. Реализована функциональность, позволяющая
    привязывать программу к сетевому адресу.
    P: Для подключения этой функциональности головной модуль проекта
       должен быть скомпонован с ресурсом ProjectId.res
    Удалены: AppConst.
    Добавлены: ProjectId.rc.
    Перенесены: UsrUtil из каталога SonarVCL в каталог SonarDB.
    Изменены: AppInvis, DBUtils, DeskmenuExec, EditReqH, htDescr, ht_Init,
      Imp_Obj, LicFile, Password, PhtConst, ReqApi, SDBVCLUtils, SonarSys,
      UsrUtil, Lib.dpk, SonarDB.dpk, SVCLHt.dpk, SonarDB.py.
    29.08.2008 П.В.Ветошкин.
  * Код задачи 15241. Добавлена функциональность для приложения,
    работающего с Oracle по работе со вспомогательной БД Hytech, в которой
    есть таблица USER_ORA, содержащая уникальные ключи Ответств. (алиас
    Личный код) и ПользOracl - поле ASCII. Вспомогательная БД Hytech также
    содержит информацию о правах пользователей, заполненную таблицу
    DESKMENU и файлы, информация о которых содержится в DESKMENU.
    Изменены:  DESKMENUEXEC, SVCLOracle_cnstr, svcloracle.dpk
    Добавлены: oradeskmenu, OraLogin, frame_OracleConnection.xml
    29.08.2008 И.В.Ковалев
 P* Исправлено имя идентификатора ресурса - изображения отмеченной
    в мультивыборе листалки записи. Ресурс im_Tick удален из
    SVCLHT, поскольку такой же ресурс есть в SVCLCommon.
    Изменены: SDBGRID.
    29.08.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.11 от 29.08.2008
-------------------------

  * Код задачи 14893. Поддержан инкрементный поиск в листалках Oracle.
    Изменены: SDBGrid, gridincrsearch, TableBrowser, ReqConv, sdboracle,
      svcloracle.dpk, daADCompDataSet, daADDatSManager.
    Добавлены: oraincrsearch, SVCLOracle_cnstr.
    29.08.2008 И.В.Ковалев
 P* В функции BuildTableBrowserForm тип соединения с БД заменен на
    tCustomConnection.
    Изменены: SDBVCLUtils.
    28.08.2008 И.В.Ковалев
  - Затёрлись изменения, сделанные Ковалёвым от 21.08.2008 - исправлено.
    Изменены: frame_TableBrowser.xml
    28.08.2008 В.В.Тыщенко
 P* Пакет SDBVCL разбит на SVCLCOMMON и SVCLHT, пакет SonarOracle
    переименован в SVCLOrace
    Изменены: SDBVCL.dpk, SonarOracle.dpk
    Добавлены: SVCLCommon.dpk
    28.08.2008 И.В.Ковалев
 P* Удалено подключение неиспользуемого модуля SDBVCL
    Изменены: form_datachange.
    28.08.2008 И.В.Ковалев
 P* В функцию CreateBitmapByResName добавлен параметр - Instance,
    в котором искать ресурс.
    Изменены: SDBGRID, SVCLUTILS, GRIDCODEVIEW.
    28.08.2008 И.В.Ковалев
  + Код задачи 15021. Добавлена процедура вызова диалога "О программе".
    Добавлены: About.
    Изменены: SonarVCL_registration, SonarVCL.dpk.
    27.08.2008 П.В.Ветошкин.
  + Коды задач: 15152, 15194, 15189, 15149. Реализовано масштабирование
    листалки и формы ввода секции при добавлении во вкладку.
    Изменены: JvCaptionButton.pas, TableBrowser.pas, SectionList.pas,
    FormResizer.pas, form_DataChange.pas, form_DataChange.xml,
    frame_TableBrowser.xml
    27.08.2008 В.В.Тыщенко
 P* Произведены чисто косметичеcкие изменения форм.
    Изменены:form_CompressionOptions.xml, form_DecompressionOptions.xml.
    26.08.2008 А.Б.Хах
  * Код задачи 14591. Выполнен перевод сообщений VCL на русский язык.
    Изменены: ComStrs, DBConsts, VDBConsts,
    26.08.2008 П.В.Ветошкин.
 P+ В каталог SonarVCL\Archiver добавлена LZMA.dll.
    Добавлены: LZMA.dll.
    22.08.2008 А.Б.Хах
 P- В tCompressionStream.Create вызов tLZMACompressionStream.Create
    обложен try/except, т.к. есть большая вероятность, что в нем произойдет
    исключение(напр. нет dll).
    Изменены: ArchiveStreams.
    22.08.2008 А.Б.Хах
 P* События app_UserLogIn, app_UserLogPostIn: в параметры добавлен
    параметр DBC: соединение с БД.
    Изменены: Password.
    22.08.2008 М.А.Степанов
 P+ Добавлена функция GetCodeAsVariant: Получить значение типа Code в
    виде Variant.
    Изменены: SDBVCLUtils.
    22.08.2008 М.А.Степанов
 P> Модуль SDBVCL:
    - При создании tSonarDB_Record с полем бин. данных происходило
      исключение. Исправлено: tSonarDB_BlobField: работает и для
      tSonarDB_Record.
    * Процедура sdb_variant_to_field_buffer вынесена в интерфейс.
    - sdb_create_vcl_field_defs: Подлитые поля запрещаются для
      редактирования, (иначе, если они обязательные, то карточку открытую из
      листалки с подлитыми полями невозможно принять).
    - Функция TryExtractSonarDB_Connection не работала для tSonarDB_Record.
    - tSonarDB_Record.InternalOpen: некорректное создание записи.
    Изменены: SDBVCL.
    22.08.2008 М.А.Степанов
 P> Формы ввода:
    - CreateDataChangeForm, CreateDataViewForm: Не работало скролирование
      по PageDown, PageUp.
    * tCommonViewEditForm: Добавлено св-во ControlPanel: панель с кнопками.
    Изменены: form_DataChange.
    22.08.2008 М.А.Степанов
  + В каталог SonarVCL\Archiver добавлены формы ввода опций архивации/разархивации.
    Добавлены:form_CompressionOptions.xml, form_DecompressionOptions.xml,
    ArchivationOptsDlgs.pas.
    22.08.2008 А.Б.Хах
  + Добавлены функции архивации/разархивации ArchivateDBWithOptsDlg/ExtractDBWithOptsDlg
    создающие диалоговые окна для ввода параметров архивации/разархивации.
    Изменены: ArchiveUtils.
    22.08.2008 А.Б.Хах
 P* Процедура CheckLoadResult переименована в CheckLoadReq и вынесена в
    интерфейс.
    Изменены: ReqApi.
    22.08.2008 М.А.Степанов
 P- При преобразовании поля типа indASCII в String не учитывалось что в
    буфере поля после нулевого символа могут быть не нулевые символы.
    (проявлялось: В карточке после удаления данных в строковом поле метод
     tField.IsNull все равно возвращал False).
    Изменены: IntData.
    22.08.2008 М.А.Степанов
 P- Если в компоненте tDBObjectChoice был установлен свой шрифт, то при
    установке Enabled в False, а затем в True, шрифт менялся на шрифт формы.
    Изменены: DBObjectChoice.
    22.08.2008 М.А.Степанов
 Р* Обновлены cpp исходники LZMA.dll. Теперь они соответствуют 7zip v460.
    Изменены: 7zCrc.c, 7zCrc.h, Alloc.c, Alloc.h, LzFind.c, LzmaEnc.c,
    Threads.c, Threads.h, InBuffer.h, StdAfx.h, ISLZMA.ncb, RangeCoder.h,
    RangeCoderBit.cpp, RangeCoderBit.h, RangeCoderBitTree.h, ICoder.h, CRC.cpp
    MyCom.h, MyWindows.h, NewHandler.cpp, NewHandler.h, Defs.h.
    22.08.2008 А.Б.Хах
 Р* В tVCLCompressionProgressHandler.hnd_Progress_UpdateCompressionRatio
    Application.ProcessMessages заменен на CheckCancelButton. Теперь во
    время сброса буферов можно нажать отмену.
    Изменены: VCLProgressHandler.
    22.08.2008 А.Б.Хах
 Р* fCompressor теперь освобождается в tLZMACompressionStream.Destroy,
    а не в Finish. Заведен флажок fFinished, чтобы предотвратить выполнение
    Finish'a 2 раза.
    Изменены: LZMAStreams.
    22.08.2008 А.Б.Хах
 P* В блоке finally dbArchiver.Free поставлен последним, т.к. есть
    большая вероятность, что во Free произойдет исключение и все следующие
    Free не будут выполнены.
    Изменены: ArchiveUtils.
    22.08.2008 А.Б.Хах
 P- В tCompressionStream.Destroy вызов tLZMACompressionStream.Finish
    обложен try/finally, т.к. есть большая вероятность, что в Finish
    произойдет исключение(напр. Недостаточно памяти).
    Изменеы:ArchiveStreams.
    22.08.2008 А.Б.Хах
 P* Вынесена в интерфейсную часть функция CreateDataViewForm
    Изменены: form_DataChange.
    22.08.2008 И.В.Ковалев
 P- В формах ввода/редактирования было по ошибке удалено масштабирование.
    Изменены: SDBVCLUTILS.
    22.08.2008 И.В.Ковалев
  - Код задачи 15210. При выборе таблицы из формы ввода deskmenu в
    prototype названия колонок в листалке были не в той кодировке.
    Изменены: TableChoice.
    22.08.2008 И.В.Ковалев
  * Коды задач 14892, 14896, 15154. Добавлены объекты для доступа к данным
    Oracle, поддержано сохранение/загрузка обстановок с листалками таблицы
    Oracle, просмотр записи из листалки Oracle в виде формы ввода.
    Изменены: DBGridUtils, DBObjects, deskmenu, deskmenuexec, DeskTop,
      FieldViewer, form_textlink.xml, frame_TableBrowser.xml,
      frame_TextBox.xml, GridCodeView, LayoutManager, lslaunch,
      DBRecordBrowser, EditReqH, EnterValue, IntRecDesigner, JoinDesigner,
      ReqDesigner, ReqEditor, ReqFieldViewer, ReqUtils, DsLimit,
      reqfactory, rwfdesigner, rwdata, RWFExec, rwffactory, SdbVcl,
      SDBVCLUtils, Sections, SonarVCL.dpk, SonarVCL_registration,
      TableBrowser, TableBrowserFrame, TableChoice, TextBox, common.dpk
    Добавлены: SonarDbIntf, frame_calcrecordcount.xml, OraUsrReq,
      ReqConv, sdb2utils, sdbapi2, sdbc2, sdboracle, sdbti,
      SonarOracle_registration, SonarOracle.dpk, пакет AnyDac
    21.08.2008 И.В.Ковалев
 P+ В каталог SonarVCL добавлен подкаталог Archiver, содержащий модули архиватора
    Добавлены: ArchiveContents, Archiver, ArchiveStreams, ArchiveUtils,
    CryptoStreams, DBArchiver, LZMAStreams, VCLProgressHandler,
    formProgress, formCompressionProgress
    20.08.2008 А.Б.Хах
 P+ В каталог SonarVCL добавлен модуль RecIO.pas.
    20.08.2008 А.Б.Хах
                                 --- * ---

DSP v3.0.10 от 20.08.2008
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  12.08.2008 А.Б.Хах
  -------------------------------------------------------------------
 P* В tStreamWrapper вместо свойства Features теперь используется
    виртуальный метод GetFeatures, который должен возвращать
    tStreamFeatures потока.
  Изменены: Streams.

  Адаптация. В классе tStreamWrapper метод GetFeatures возвращает
  [stmf_Read, stmf_Write, stmf_Seek]. Т.е. по умолчанию разрешаются все
  операции. Для того чтобы запретить определенные операции потомку
  tStreamWrapper нужно в нем перекрыть метод GetFeatures и вернуть набор
  разрешенных операций.

  > Изменения в IntData:
    * IntFieldViz, IntSetViz переименованы в IntFieldVis, IntSetVis
      соответственно.
    * Процедуры FieldToStr, IntFieldToStr, IntNumFieldToStr, NumFieldToStr
      вида procedure XXX(...; var S: OpenString) преобразованы в функции
      вида function XXX(...;): String.
    * FieldViz, IntFieldViz, IntSetViz, SetViz, переименованы в FieldVis,
      IntFieldVis, IntSetVis, SetVis.
    * tFieldVizFlag, tFieldVizFlags, FieldVizFlagToSet, SetToFieldVizFlag
      переименованы в tFieldVisFlag, tFieldVisFlags, FieldVisFlagToSet,
      SetToFieldVisFlag соответственно.
   Р* FieldVizType переименован в FieldVisType. Поля FieldTc Ofset и
      Vizual переименованы в Offset и Visual соответственно.
  Изменены: IntData4, IntData, SDBConst, IntDataFactory.
                                   * * *

  * tCryptoStream (шифрующий и дешифрующий поток) разделен на 3 класса:
    tEncryptionStream(шифрующий поток), tDecryptionStream(дешифрующий
    поток) и tBaseCryptoStream(общая часть первых двух).
  Изменены: BinData.

  Адаптация. Для шифрования использовать tEncryptionStream, для
  расшифровки - tDecryptionStream.
                                   * * *

 P* Поддержана работа с экземпляром tSchemaDef в функциях, в которых
    ранее можно было подать экземпляр tASubd, а tSchemaDef - нельзя:
    GetTableDescr, GetLongName, GetName, FieldCount, FieldName,
    FieldClass ...
    Изменены: SDBAPI.
    20.08.2008 И.В.Ковалев
  - Код задачи 15190. При определении номера поля по его названию
    учитывался регистр. Проявлялось на БД "Контакты" при попытке
    установить связь с текстом для таблицы "Контакты".
    Изменены: SDBAPI.
    19.08.2008 П.В.Ветошкин.
 P+ Код задачи 15157. Добавлена процедура выполняющая закрытие текущего
    окна рабочего стола.
    Изменены: Desktop.
    19.08.2008 П.В.Ветошкин
  * Код задачи 13994. В режиме блочного редактирования нажатие на клавишу
    Del приводило к удалению записи с экрана. Кроме того, срабатывали и
    другие комбинации горячих клавиш локального меню листалки.
    Изменены: SDBGrid, frame_TableBrowser.xml,
      frame_LocalMenuEx_TableBrowser.
    18.08.2008 П.В.Ветошкин.
 P- tSonarDB_BlobField: после установки в поле какого нибудь значения, в
    видимом элементе это значение не отображалось (значение всегда читалось
    из БД).
    Изменены: SDBVCL.
    15.08.2008 М.А.Степанов
 P- tSonarDB_Record: после создания и установки активности данные из
    записи не читались.
    Изменены: SDBVCL.
    15.08.2008 М.А.Степанов
  - Значения полей типа indSingle не показывались в карточке (показывался
    "мусор").
    Изменены: SDBVCL.
    15.08.2008 М.А.Степанов
  - Ошибка: "Некорректное преобразование типов" при загрузке запросов с
    параметрами.
    Изменены: ReqFactory.
    15.08.2008 М.А.Степанов
  - Редактор запроса: Невозможно было при сохранении запроса сохранить его
    в еще не существующий файл.
    Изменены: ReqDesigner.
    15.08.2008 М.А.Степанов
  - Код задачи 15105. Если в некоторой записи были повреждены данные, то
    просмотр этой записи в листалке (как и её редактирование) становился
    невозможным по причине вывода сообщения об ошибке при каждой
    прорисовке соответствующей ячейки листалки.
    Изменены: SDBVCL.
    14.08.2008 П.В.Ветошкин.
  * Код задачи 15078. Устранено добавление новой записи при нажатии в
    листалке кнопки "стрелка вниз", когда курсор установлен на последнюю
    запись.
    P: Свойство tSDBGrid.AutoAppend установлено в False по умолчанию.
    Изменены: SDBGrid.
    13.08.2008 П.В.Ветошкин.
  * Код задачи 15109. Реализованы методы по добавлению и удалению кнопок
    в заголовке окна. Адаптировано к кнопке масштабирования.
    Изменены: FormResizer.pas, SectionList.pas, SVCLFormH.pas,
    JvCaptionButton.pas, im_Zoom.bmp.
    12.08.2008 В.В.Тыщенко
  + Код задачи 15022. Добавлена реакция на клавишу Alt+F10 - вызов
    контекстного меню оконного элемента.
    Изменены: Controls.
    12.08.2008 П.В.Ветошкин.
  + Код задачи 15023. Устранена зависимость инкрементного поиска от
    регистра.
    P: Добавлено событие приложения app_SetupIncrSerachCaseInsensitive,
       обработкой которого можно управлять регистрозависимостью
       инкрементного поиска, и процедура InstallIncrSearchCaseInsensitive.
       Процедура позволяет снимать чувствительность к регистру в
       инкрементном поиске.
    Изменены: GridIncrSearch, SonarVcl_Cnstr.
    12.08.2008 П.В.Ветошкин.
  - Код задачи 15124. Исправлен алгоритм вычисления размеров tScrollBox`a.
    Изменены: FormResizer.pas
    12.08.2008 В.В.Тыщенко
  - Коды задач 15007, 14994. Добавлено масштабирование формы при загрузке.
    Исправлены алгоритмы расчёта минимальной высоты и ширины формы.
    Изменены: Form_DataChange.pas, FormResizer.pas, SDBVCLUtils.pas,
    frame_TableBrowser.xml, form_DataChange.xml
    11.08.2008 В.В.Тыщенко
 P- Код задачи 15075. Если в конструкторе загружаемого компонента
    выполнялась программная загрузка нескольких подкомпонентов, то метод
    Loaded этого компонента вызывался столько раз, сколько подкомпонентов
    было загружено.
    Изменены: Classes.
    11.08.2008 П.В.Ветошкин.
  * Код задачи: 14902. Список разделов: Добавлена возможность добавления
    содержимого разделов в вкладки.
    Изменены: form_DataChange, frame_SectionList.xml, images.rc,
    frmJoinDesigner.xml, frmSelectFields.xml, ReqImages.rc, JoinDesigner,
    ReqFieldViewer, SDBVCLUtils, SectionList, Sections, SonarVCL_registration.
    Добавлены: im_Dialog.bmp, im_DialogWithTick.bmp, im_Question.bmp,
    im_TableWindow.bmp, im_TableWindowWithTick.bmp, im_Tick.bmp,
    im_WhiteArrowOnRed.bmp.
    Удалены: im_TableWindow.bmp, imTick.bmp.
    11.08.2008 М.А.Степанов
 P- AccessViolation при показе всплавающего меню если у видимого элемента
    св-во TControl.OnContextPopup установлено.
    Изменены: Controls.
    11.08.2008 М.А.Степанов
 P* Код задачи: 14902. Добавлен модуль JVCaptionButton.pas из JVCL
    содержащий компонент представляющий собой кнопку в заголовке окна. В
    модуле произведены изменения: Изменен способ расчета ширины кнопки при
    включенной опции JVCLThemesEnabled, ширина устанавливается на
    основании информации операционной системы о ширине кнопок.
    Добавлены: JVCaptionButton, JvDsgnIntf.
    11.08.2008 М.А.Степанов
 P* Код задачи: 14902. tfhFormModalCloseHelper: добавлено св-во
    CloseTopForm, если True, то закрываться будет самая верхняя форма (у
    которой Parent = nil), если False (по умолчанию), первая
    встретившаяся.
    Изменены: SVCLFormH.
    11.08.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.9 от 06.08.2008
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  06.08.2008 П.В.Ветошкин
  -------------------------------------------------------------------

 P* Код задачи 14777. Устранено уничтожение потока, передаваемого в
    конструктор tComponentReader. Функции LoadfromStream теперь не
    уничтожают поданный им поток.
  Изменены: SVCLUtils, ContentLoader.

  Адаптация. При провисании памяти после вызовов LoadComponentFromStream
  или непосредственного использования объектов класса tComponentReader
  необходимо запоминать передаваемый параметром поток и уничтожать его
  после использования в упомянутых функциях и объектах.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  06.08.2008 П.В.Ветошкин
  -------------------------------------------------------------------

 P* Код задачи 14175. Удалено исключение EUserInterrupt.
    Изменены: BatchOpr, DeskmenuExec, EditReqH, htsys, ht_init,
      ReqDesigner, ReqEditor, RWFExec, SELKEYIN, SonarSys.

  Адаптация. Формально заменить EUserInterrupt на EAbort из SysUtils.
                                   * * *

  > Код задачи 14430.
    * Добавлена функция htFilterRecordsEx.
    - Иногда при группировке неверно вычислялся функционал afCount.
    Изменены: Hytech.
    06.08.2008 И.В.Ковалев
  * Код задачи 15008. Изменено расположение полей для ввода пароля.
    Изменены: frame_EnterPassword.xml
    05.08.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.8 от 01.08.2008
-------------------------

 P> Переименования в именах модулей и файлов форм:
    * DBGridHnds переименован DBGridLayout
    * В целях стандартизации имён файлов произведено преименование ряда
      xml-файлов, содержащих в себе формы и фреймы. Изменения имён
      адаптированы в соответствующих исходных текстах.
    Изменены: Config, DBGridLayout, FieldViewer, LayoutManager, Password,
    SDBVCLUtils, SVCLUtils, TextBox, TextEditor
    04.08.2008 С.Н.Штуркин
 P* Процедура AutoCreateSections: добавлено значение по умолчанию для
    параметра ReadOnly.
    Изменены: SDBVCLUtils.
    01.08.2008 М.А.Степанов
  + Добавлено масштабирование элементов управления в формах ввода.
    Изменены: SonarVCL.dpk, TableBrowser.pas, SDBVCLUtils.pas, Images.rc
    Добавлены: FormResizer.pas, form_CaptionButton.xml
    01.08.2008 В.В.Тыщенко
 P* ecFInCmdTreeDlg, ecFInTreeDlg добавлены в SyntEdit.dpk (неявно
    помещался в этот пакет)
    Изменены: SyntEdit.dpk
    01.08.2008 С.Н.Штуркин
 P* DwmApi добавлен в Core.dpk (неявно помещался в vcl.bpl)
    Изменены: Core.dpk
    01.08.2008 С.Н.Штуркин
 P- Константы ev_Terminate, ev_Finalize, ev_EventListChange, ev_Dispatch
    по недоразумению оказались resourcestring - исправлено: теперь снова
    строковые константы
    Изменены: SonarCore
    01.08.2008 С.Н.Штуркин
 P* Streams: зависимость от модуль Math перенесена в uses интерфейсной
    секции для корректной подстановки inline-функций Min и Max
    Изменены: Streams
    01.08.2008 С.Н.Штуркин
  * Код задачи 14378. Добавлена функциональность по вводу пароля, смене
    пароля; список таблиц и меню, построенное по данным DESKMENU меню
    показывается в соответствии с правами пользователя, протоколируется
    начало и завершение работы пользователя в таблице SEANS.
    Изменены: Deskmenu, UsrUtil, DeskmenuExec, Desktop, sdbvclutils.
    TableChoice, sonarvcl_cnstr
    Добавлены: Password, frm_enterpswd.xml, frm_universalpsw.xml
    29.07.2008 И.В.Ковалев
  * Добавлен режим просмотра записи листалки.
    Изменены: sdbvclutils, sesctions, tablebrowser
    Добавлены: form_dataview.xml
 P* Использование tSObject заменено на tSBaseClass.
    Изменены: common.dpk, objects, batchopr, cdtable, changer, dbase0,
    dbase2, dbase3, dbase4, dbase5, intdata, intdata4, joinacc, dowreq,
    grproj, recreq, reqapi, reqconst, reqlimit, requests,
    rqsdata, tchinfreq, sdbconst, selkeyin, sonardb.dpk, ssab,
    table, transman, appinvis, gridincrsearch, reqeditor, requtils,
    grprojfactory, rwdata
    Удалены: oldreq.
    29.07.2008 И.В.Ковалев
  * Код задачи: 14878. В листалках таблиц отключен переход по столбцам по
    нажатию Tab.
    Изменены: frame_TableBrowser.xml.
    24.07.2008 М.А.Степанов
  * Код задачи 14879. Подключены параметры запросов "Текущая дата",
    "Текущее время", "КодПользов".
    Изменены: sonarvcl_cnstr, SonarVcl.dpk.
    Добавлены: SNSPARAM.
    24.07.2008 И.В.Ковалев
  - EaccessViolation при выполнении запросов
    Изменены: CnfParam.
    24.07.2008 И.В.Ковалев
  * Код задачи 14849. Реализованы опции проекта и опции для работы с БД.
    Изменены: HT_INIT, NETCNF, ENTERRECORD, LSLAUNCH, sonarvcl_cnstr,
     SVCLUtils, Forms, SonarVcl.dpk
    Добавлены: CnfDef, CnfParam, Config, FConfig, frm_dbmsparams.xml
    23.07.2008 И.В.Ковалев
  * Код задачи: 14738. Формы изменения данных в БД: добавлена возможность
    прокрутки по нажатию PageDown, PageUp.
    Изменены: form_DataChange, SDBVCLUtils, SVCLFormH.
    22.07.2008 М.А.Степанов
  - Код задачи: 14774. При нажатии Alt метки типа tStaticText иногда
    исчезали (переставали прорисовываться).
    P: Модули взятые из Delphi приведены к версии Delphi 11.0.2902.10471,
       т.к. там это исправлено, все изменения проведенные в оригинальных
       модулях помечены, оригинальные модули положены рядом с изменеными.
    Изменены: Core\Common\*.*, Core\Sys\*.*, Core\Win\*.*, VCL\DB\*.*, VCL\VCL\*.*,
    VCL\XML\*.*.
    21.07.2008 М.А.Степанов
  * Код задачи 14858. Реализовано фоновое обновление выборки при
    инкрементном поиске в листалке.
    Изменены: SDBGRID.
    18.07.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.7 от 16.07.2008
-------------------------

  - Код задачи 14834. Долго выполнялось восстановление полной выборки
    после инкрементного поиска для таблицы большого объема.
    Изменены: SDBGRID.
    14.07.2008 И.В.Ковалев
                                 --- * ---

DSP v3.0.6 от 14.07.2008
-------------------------

  - Код задачи 14804. При формировании строкового представления кода кодификатора
    не учитывалась длина элемента кода - исправлено.
    Изменены: SdbVcl.pas
    11.07.2008 В.В.Тыщенко
  * Код задачи 14606. Поддержано выполнение ведомостей slm, отчетов rwf и
    отчетов rwf с шаблоном.
    Изменены: type2str, Appinvis, deskmenuexec, embdobj, rwdata, rwfexec,
    sonarvcl.dpk, sonarvcl_cnstr, SonarVcl_registration, SVCLUtils,
    TableBrowser, pconst.
    Добавлены:  editor_form.xml, editorcontrols, enter_record.xml,
    enterrecord, itext_tools, lslaunch, funlib, funsubd, funsys, procapp,
    proclib, reportf, reportfm, reportfo, pconst.rc, texteditor.
    07.08.2008 И.В.Ковалев
  * Код задачи 14746. Диалог изменения представления. При перемещении
    полей внутри списков сортировки и визуализации реализована вставка
    перемещаемых полей в конец списка, если курсор не указывает ни на одно
    из существующих в списке полей.
    Изменены: DBGridHnds.
    01.07.2008 П.В.Ветошкин.
  * Код задачи: 14745. Для полей ввода с меткой слева при выравнивании
    ширина метки не уменьшается, поле вписывается с текущую ширину.
    Изменены: SDBVCLUtils.
    28.06.2008 М.А.Степанов
  - Код задачи: 14744. Необновление кнопок выравнивания в дизайнере при
    наличии на дизайнируемой форме tTableBrowserFrame.
    P: tIdleDetailRequeryHandler: сразу после создания начинала
       происходить постоянная обработка фоновых квантов, из-за чего другие
       могли их не получить.
    Изменены: SDBVCLUtils.
    27.06.2008 М.А.Степанов
                                 --- * ---

DSP v3.0.5 от 25.06.2008
-------------------------

 P* Код задачи: 14728. Процедуры построения и выравнивания полей ввода в
    БД: Добавлена возможность строить поля с меткой слева.
    Изменены: SDBVCLUtils.
    25.06.2008 М.А.Степанов
  > Код задачи: 14367.
    * Переработан интерфейс функций расстановки элементов ввода в
      БД(ArrangeDBFields, ArrangeEditableDBFields), добавлены функции для
      расстановки обычных элементов управления (ArrangeControls,
      ArrangeAllControls).
    * Добавлена функция для автоматического создания
      списка разделов(AutoCreateSections). Добавлено построение разделов в
      автоматическое построение формы.
    * CreateDBAwareControl: изменены умолчательные размеры для tDBMemo.
    * Высота автоматической формы ограничена, поля формы добавляются в
      tScrollBox для прокрутки.
    * Добавлены модули для создания разделов.
    Изменены: SDBVCLUtils.
    Добавлены: SectionList, Sections, frame_SectionList.xml.
    24.06.2008 М.А.Степанов
  + Код задачи 14092. Добавлен диалог изменения параметров страницы
    отчёта.
    Добавлены: im_Portrait.bmp, im_Landscape.bmp,
      form_ReportPageSetting.xml.
    Изменены: DesignDialogs, ReportDesigner, form_Reportdesigner.xml,
      images.rc.
    24.06.2008 П.В.Ветошкин.
 P* Код задачи: 14679. Функция ArrangeControlBounds, тип
    tDBFieldControlRec и константы для автоматического размещения полей
    вынесены в интерфейс.
    Изменены: SDBVCLUtils.
    17.06.2008 М.А.Степанов
 P* Адаптация перехода на Fast Report версии 4.6.
    Изменены: FastReport.dpk.
    16.06.2008 П.В.Ветошкин.
  > Код задачи: 14677.
    * Поле выбора из списка: Кнопка выбора из списка для поля без ввода ключа
      размещается слева, тип кнопки изменен на tSpeedButton, ширина
      смыслового поля сделана равной длине строки из 50 символов,
      возвращено появление поля ввода ключа в зависимости от флагов поля.
   P* tSonarDB_DataSet: Добавлена установка для полей св-ва DisplayLabel в
      длинное имя поля.
    - При редактировании полей типа LongInt возникала ошибка ".. is not a
      valid value for field ..".
    + Добавлено автоматическое построение формы изменения данных.
    Изменены: DBObjectChoice, SDBVCL, SDBVCLUtils, SonarVCL.dpk.
    Добавлены: form_DataChange, form_DataChange.xml
    11.06.2008 М.А.Степанов
  * Код задачи 14172. Редактор отчётв. В дереве источников данных поля,
    для которых построены ячейки отчёта, помечаются "птичкой".
    Изменены: DBGridHnds, ReportDesigner, form_ReportDesigner.xml.
    10.06.2008 П.В.Ветошкин.
  - Код задачи: 14675. При редактировании значения в редакторе запросов
    выдавалось сообщение об ошибке: 'Cannot focus a disabled or invisible
    window.'.
    Изменены: EnterValue.
    10.06.2008 М.А.Степанов
  - Код задачи 14233. Редактор отчётов. Введён запрет на удаление
    источников данных принадлежащих предку отчёта. Такой источник помечен
    в дереве данных символом замка.
    Добавлены: im_DataSetLock.bmp.
    Изменены: DBGridHnds, ReportDesigner, Images.rc,
      form_ReportDesigner.xml.
    09.06.2008 П.В.Ветошкин.
  - Код задачи 14636. При добавлении окна в обстановку правее, или ниже
    уже имеющихся окон это окно часто перекрывало другие окна или
    скрывалось за ними. При удалении "крайнего" окна из обстановки,
    оставшиеся окна часто не занимали его места (т.е. оно оставалось
    пустым).
    P: Ошибки допущены разработчиками VCL (воспроизведены на стандартном
       модуле Controls).
    Изменены: Controls.
    07.06.2008 П.В.Ветшкин.
  - Код задачи 14638. При нажатии горячей клавиши (Shift+F4) вызова
    редактора окна полной информации появлялся диалог изменения
    представления самого первого окна обстановки.
    Изменены: FullInfo.
    03.06.2008 П.В.Ветошкин.
 P+ Код задачи 14639. Добавлены процедуры NextWindow и PrevWindow,
    позволяющие выполнять переключения между окнами рабочего стола, а
    также функция DesktopWindowCount, позволяющая определить кол-во
    открытых окон. Модуль ThemedDockCaptions переименован в SDockManager.
    Добавлены: SDockManager.
    Удалены: ThemedDockCaptions.
    Изменены: Desktop, SonarVCL.dpk.
    03.06.2008 П.В.Ветошкин.
  * Код задачи: 13889. Диалоги сохранения/загрузки запроса: изменено поле
    выбора запроса из файла, добавлена возможность изменения имени/удаления
    запроса (адаптация задачи 8358).
    Изменены: frmReqLoad.xml, frmReqSave.xml, ReqDesigner, SVCLFormH.
    Добавлены: frmReqSelect.xml.
    03.06.2008 М.А.Степанов
 P+ Код задачи: 14374, 14375. Окно просмотра таблицы: Добавлен поиск по
    полям и по мемо-полям, пункты меню: "Начать поиск", "Поиск по тексту",
    "Продолжить поиск".
    Изменены: frame_TableBrowser.xml, SonarVCL.dpk, TableBrowser.
    Добавлены: DBGridSearch, form_FindDialog.xml, form_MemoFindDialog.xml.
    02.06.2008 М.А.Степанов
 P+ Код задачи: 14374. Добавлен компонент tComboBoxHistory: обработчик
    поля выбора из списка (tComboBox), позволяет сохранять до завершения
    приложения текст вводимый в поле (т.е. история ввода).
    Изменены: SVCLFormH.
    02.06.2008 М.А.Степанов
  * Код задачи 14167. Окно полной информации. Пункт локального меню
    "Дизайнер" переименован в "Изменить".
    Изменены: frame_FullInfo.xml.
    02.06.2008 П.В.Ветошкин.
  * Код задачи: 13956. Редактор запроса: При нажатии Home/End происходит
    переход на первую/последнюю ссылку, при нажатии Ctrl-Home/Ctrl-End
    происходит переход на первую/последнюю строчку.
    Изменены: VSTLink.
    31.05.2008 М.А.Степанов
  * Код задачи 14560. Активность окон обстановки. При добавлении окна в
    обстановку это окно становится активным (получает фокус ввода). При
    закрытии активного окна обстановки активным делается первое из
    оставшихся в ней окон.
    P: Такое поведение справедливо для любых оконных элементов помещаемых
       на док или удаляемых с него.
    Изменены: ThemedDockCaptions.
    30.05.2008 П.В.Ветошкин.
 P* Константа Sysutils.fmCreate переименована в fmCreateOnly для того,
    чтобы не пересекаться с Classes.fmCreate
    Изменены: SYSUTILS, SonarSys, htdataio, Hytech, objects2, wpparser,
    zlib2.
    29.05.2008 И.В.Ковалев
  - Код задачи 14605. Окно полной информации. В обстановке не сохранялись
    слияния выполненные в основном источнике данных.
    Изменены: DBRecordBrowser, FullInfoBrowser.
    28.05.2008 П.В.Ветошкин.
  - Код задачи 14612. Если окно полной информации было загружено из
    обстановки, то при закрытии ведущей листалки оно не закрывалось.
    Изменены: FullInfoBrowser.
    28.05.2008 П.В.Ветошкин.
                                 --- * ---

DSP v3.0.4 от 28.05.2008
-------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  12.03.2008 П.В.Ветошкин
  -------------------------------------------------------------------

  > Код задачи 14049. Редактор отчётов.
    + Добавлена функциональность, позволяющая создавать, сохранять и
      загружать наследованные отчёты. Все отчёты-шаблоны пока должны
      располагаться рядом с exe-файлом проекта. В дальнейшем каталог для
      шаблонов будет возможно задавать интерактивно.
    + Подключена функциональность по открытию и сохранению отчётов.
   P* Изменён интерфейс процедуры DesignReport.
   P* Удалена процедура OpenReport.
   P* Функциональность модуля ReportFactory доработана и перенесена в
      модуль ReportSupp. Модуль ReportFactory удалён.
      Модуль ReportBuilder переименован в DesignDialogs.
   Удалены: ReportBuilder, ReportFactory, form_ReportBuilder.xml.
   Добавлены: DesignDialogs, ReportSupp, form_ReportCreateDialog.xml.
   Изменены: ReportDesigner, SonarVCL_Registration, SonarVCL.dpk,
     form_ReportDesigner.xml.

  Адаптация. Вызовы OpenReport(DBC) заменить на DesignReport(DBC, False).
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  16.10.2007 П.В.Ветошкин
  -------------------------------------------------------------------

 P> Код задачи 13540. tFieldViewer.
    * Поддержана возможность визуализации нескольких подсхем, в т.ч.
      одинаковых. В целях реализации этой возможности удалены свойства
      SubName и SubSchema, событие ev_FieldViewerRootChildCreated. Взамен
      удалённых свойств добавлено свойство SubSchemas.
    * Устранена привязка названия узла к содержимому визуализируемого им
      объекта (поля или таблицы).
    - Свойство Selected возвращало не выделенный узел, а узел, который
      имел фокус ввода.
    + Добавлены события ev_FieldViewer_AllowNodeEditing и
      ev_FieldViewer_NodeEdited, рассылаемые соответственно перед началом
      и после окончания редактирования заголовка узла.
    + Добавлено свойство HotTrack.
    * tMergesTreeVisualiser.
      Реализована возможность визуализации нескольких таблиц, открытых по
      одной подсхеме. Добавлен метод DataSetByRoot.
    Изменены: DBGridHnds, FieldViewer, ReqFieldViewer, DBGridHnds.xml,
      FieldViewer.xml.

  Адаптация.
    При некомпиляци обращений к свойствам FieldViewer.SubSchema и
  FieldViewer.SubName следует заменить их на соответственно
  FieldViewer.SubSchemas[0] и FieldViewer.SubSchemas.SubNames[0].
  Вызовы FieldViewer.SubName := xxx и FieldViewer.SubSchema := yyy
  заменить одним вызовом FieldViewer.SubSchemas.Add(xxx).
    Некомпиляция вызовов с ev_FieldViewerRootChildCreated. Все действия по
  обработке этого события перенести в обработчик
  ev_FieldViewerChildCreated. Признаком того, что обрабатываются корневые
  узлы (узлы самого верхнего уровня дерева) служит свойство Parent этих
  узлов равное nil.
                                   * * *

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  02.10.2007 П.В.Ветошкин
  -------------------------------------------------------------------

 P* Код задачи 13520. В компонент tMergesTreeVisualiser добавлена
    поддержка визуализации нескольких наборов данных. Published-ое
    свойство DataSet удалено. Вместо него в секцию public добавлено
    свойство DataSets. Добавлены методы tFieldViewer.RebuildLock и
    tFieldViewer.RebuildUnlock.
    Изменены: DBGridHnds, FieldViewer.

  Адаптация. При некомпиляции вызовов obj.DataSet := XXX  или обращений к
  obj.DataSet (obj - объект класса tMergesTreeVisualiser), необходимо
  заменить их на obj.DataSets.Add( XXX) и
  obj.DataSets[0] соответственно.
                                   * * *

  <BRANCH> Внимание! Может потребоваться адаптация в проектах <ADAPT>
  24.09.2007 Д.И.Кобрусев
  -------------------------------------------------------------------

 P* Код задачи 13449. Изменено значение переменной Connection (код
    текущего сеанса), соответствующее отсутствию сеанса (то есть когда
    пользователь не санкционировался), с -1 на 0.
  Изменены: SDBConst.

  Адаптация: Просмотреть использования переменной Connection (код текущего
  сеанса). Для определения, санкционировался ли пользователь, её надо
  сравнивать на <> 0, а не на > 0. Значение, соответствующее отсутствию
  сеанса теперь 0 (было -1).
                                   * * *

 P* Код задачи 14604. Окно полной информации переведено на новый компонент
    tDBRecordBrowser.
    Изменены: DBRecordBrowser, Factory, FullInfo, frame_FullInfo.xml,
      SonarVCL.dpk.
    28.05.2008 П.В.Ветошкин.
  * Код задачи 14606. Добавлена функциональнльность по построению меню по
    данным из таблицы DESKMENU и подгрузке обстановок, запросов для этих
    пунктов меню кроме ввода параметров запросов.
    Изменены: changer, SDBCONST, DeskTop, form_textlink.xml, GridCodeView,
    SdbVcl, SDBVCLUtils, SonarVCL.dpk, sonarvcl_cnstr, SVCLUtils,
    TableBrowser, TableChoice
    Добавлены: deskmenu, deskmenuexec.
    27.05.2008 И.В.Ковалев
 P+ Код задачи: 14374. tSDBGrid: Добавлено событие рисования ячейки данных
    ev_sdbgrid_DrawColumnCell (перекрытие события
    tCustomDBGrid.OnDrawColumnCell).
    Изменены: SDBGrid.
    26.05.2008 М.А.Степанов
 P> Код задачи 14232.
    + Добавлен компонент tDBRecordBrowser визуализации дополнительной
      информации, связанной с записью заданного источника данных.
    - Если в методе Loaded компонента уничтожался загруженный подкомпонент
      (например фабрика другого компонента), то приложение иногда
      прерывалось с исключением "Привилегированная команда". Исключение
      происходило при попытке вызвать метод Loaded уничтоженного
      подкомпонента. Суть ошибки заключалась в том, методы Loaded
      подкомпонентов вызывались после метода Loaded самого компонента
      (т.е. компонент объявлялся загруженым, в то время как его
      подкомпоненты таковыми не являлись). Исправлено тем, что в
      глобальный список загружаемых компонентов (GlobalLoaded) сам
      компонент добавляется после чтения его подкомпонентов.
    + В параметр tEvent_Component_GetPersistentName события
      ev_Component_GetPersistentName добавлены поля Writer и Component.
    * Метод GetComponentValue перенесён в секцию pablic класса tWriter.
    Добавлены: DBRecordBrowser.
    Изменены: Classes, DB, DBGridHnds, DesignDialogs, FullInfo,
      ReportDesigner, ReportSupp, SdbVcl, SonarVCL_registration,
      SonarVCL.dpk.
    23.05.2008 П.В.Ветошкин.
 P- EaccessViolation после изменения поля в форме редактирования, затем
    закрытия формы редактирования и закрытия листалки таблицы.
    Изменены: TableBrowser.
    20.05.2008 И.В.Ковалев
 P- Отключена запись в log-файл при выполнении отчета, ранее добавленная
    по ошибке.
    Изменены: RWFEXEC.
    15.05.2008 И.В.Ковалев
  - Звуковой сигнал при нажатии Esc, Enter в режиме инкрементного поиска
    Изменены: SDBGRID.
    15.05.2008 И.В.Ковалев
  * Код задачи 14471. Поддержана работа с кодификаторами.
    Изменены: SDBGRID, SDBVCL, sonarvcl_cnstr, SVCLUtils, TableBrowser,
    Sonarvcl.dpk, frame_TableBrowser.xml, images.rc
    Добавлены: GridCodeView, HtCodeView, frame_codegrid.xml,
    ButtonMinus.bmp, Buttonbox.bmp, ButtunPlus.bmp, dot.bmp
    15.05.2008 И.В.Ковалев
  - При загрузке компонента посредством LoadComponent, в случае если возникало
    исключение (например EClassNotFound) оно затем маскировалось AV - исправлено
    Изменены: SVCLUtils
    13.05.2008 С.Н.Штуркин
 P- Код задачи 14190. Если у фабрики запроса не получен запрос, то он
    не уничтожался при уничтожении фабрики.
    Изменены: reqfactory, reqlimfactory.
    05.05.2008 И.В.Ковалев
  * tTableBrowserFrame: Использована стандартная техника активации компонента
    при его загруке (FLoading_Active), поля дублирующие соответствующие свойства
    tTableBrowser заменены свойствам, применение tTableBrowserLayout
    производится в блоке try..finally
    Изменены: TableBrowserFrame
    04.05.2008 С.Н.Штуркин
  - В случае возникновения исключения в процессе загрузки компонентов не
    освобождался список компонентов, нуждающихся в подготовке
    (global_PrepareComponents) - исправлено
    Изменены: SVCLUtils
    04.05.2008 С.Н.Штуркин
  - tComponentLoader.Reset: перед чтением компонента в пространство имён
    добавляется владелец читаемого компонента
    Изменены: ContentLoader
    04.05.2008 С.Н.Штуркин
  - EAccessViolation в designer.exe после вставки в форму компонента
    tTableBrowserFrame и выхода из приложения.
    Изменены: TableBrowser.
    16.04.2008 И.В.Ковалев
  * Код задачи 14372. В листалку добавлен режим связи с текстом.
    Изменены: TableBrowser, SonarVCL_registration, reqlimfactory, DsLimit,
    frame_TableBrowser.xml, sonarvcl.dpk
    Добавлены: TextBox, TextBoxFrame.xml, form_textlink.xml
    16.04.2008 И.В.Ковалев
  + Добавлены функции GetDataLink/TryGetDataLink для получения связи с данными
    от элемента управления
    Изменены: SVCLUtils
    14.04.2008 С.Н.Штуркин
  ! Удалены класс tDBEditFrame и модули DBEditFrame и SDBFieldEllipsis.
    Добавлен модуль DBObjectChoice содержащий класс, описывающий поле выбора из
    списка и функция SDBVCLUtils.CreateDBAwareControl выполняющая построение
    элемента ввода для поля источника данных.
    Удалены: DBEditFrame, SDBFieldEllipsis
    Добавлены: DBObjectChoice
    Изменены: SDBVCLUtils, SonarVCL_registration, EnterValue,
    SonarVCL_registration, SonarVCL.dpk
    10.04.2008 С.Н.Штуркин
  > Обработка фоновых событий:
    * Поставщиком фоновых событий для формы теперь является всегда Application,
      а не форма-владелец как раньше
    * Теперь только скрытая (Visible=False) форма не обрабатывает фоновые
      события (флаг условной компиляции IdleFocusedModalFormOnly по-умолчанию
      отключен)
    Изменены: IdleVCL
    10.04.2008 С.Н.Штуркин
  * Использование ExtractRec заменено на GetIRField
    Изменены: DsLimit, ReqUtils
    10.04.2008 С.Н.Штуркин
  + Теперь можно создавать ограничения со связями в ситуации, когда отсутствует
    набор данных таблицы, для которой создаётся запрос (Степанов)
    Изменены: ReqEditor
    10.04.2008 М.А.Степанов, С.Н.Штуркин
  > DsLimit:
    + tADataSetLimit: Обеспечена возможность работы в условиях когда DetailDataSet
      = nil
    * ev_reqGetDataSourceName переименовано в ev_DataSource_GetNameInRequests;
      добавлено событие приложения app_GetDataSourceNameInRequests
    * Функция DataSourceName переименована в GetDataSourceNameInRequests
    * Использование DisposeObject заменено на FreeAndNil
    Изменены: DsLimit, ReportDesigner, ReqEditor
    10.04.2008 С.Н.Штуркин
  > SonarCore:
    * Функция Proc2EventHandler переименована в ProcToEventHandler;
      Proc2EventHandler для совместимости оставлена в виде константы - алиаса
      ProcToEventHandler
    + Добавлен перегруженый вариант ProcToEventHandler обеспечивающий
      возможность передачи дополнительного параметра-указателя для процедура
      обработки событий
    Изменены: SonarCore, Objects
    10.04.2008 С.Н.Штуркин
  * Код задачи 14348. Добавлен компонент tTableVrowserFrame, позволяющий
    размещать листалку на форме.
    Изменены: SDBVCL, SDBVCLUTILS, SONARVCL_registration, TABLEBROWSER,
    SONARVCL.DPK.
    Добавлены: tablebrowserframe.
    10.04.2008 И.В.Ковалев
 P- Граница запроса tDataSetValueLimit после перестроения ведущего
    источника данных не обновляла информацию о поле из этого источника
    данных.
    Изменены: DSLIMIT.
    10.04.2008 И.В.Ковалев
  - Код задачи 14313. При сохранении запросов граничные значения по строковым
    полям были не в той кодировке.
    Изменены: reqlimfactory.
    04.04.2008 И.В.Ковалев
 P- EAccessViolation при загрузке формы из ресурса в процессе загрузки
    компонента в дизайнере.
    Изменены: SVCLUtils.
    04.04.2008 И.В.Ковалев
 P> Код задачи 14311.
    * tMergesTreeVisualiser: заблокирована перестройка дерева при наличии
      соединения и закрытой БД.
    + Добавлен метод tMergesTreeVisualiser.Update, позволяющий
      перестраивать визуализатор. Он может быть использован для обновления
      визуализатора при смене текущей БД, не меняя содержимого списка
      DataSets.
    * Код задачи 14311. Обеспечена корректная загрузка отчёта при
      отсутствии соединения или закрытой БД.
    Изменены: DBGridHnds, FieldViewer, ReportDesigner, ReportSupp.
    02.04.2008 П.В.Ветошкин.
 P- Код задачи 14305. Подготовка построителя окна полной информации для
    бровсера таблиц: устранена проверка установки формы TableBrowser-а в
    построитель окна полной информации.
    Изменены: FullInfo.
    01.04.2008 П.В.Ветошкин.
 P> Код задачи 14245.
    + Для хранения информации о слияниях и сортирвках в tSonarDB_Table
      добавлены свойства JoinInfo и SortInfo.
    * Изменён интерфейс метода tSonarDB_Table.Update: добавлен
      необязательный параметр UpdateFromSelfTable: Boolean = True. Сброс
      этого параметра в False означает обновление набора данных в
      соответствии с информацией в JoinInfo и SortInfo. Если этот параметр
      = True (по умолчанию), то набор данных (вместе со свойствами
      JoinInfo и SortInfo) будет обновлён в соответствии с собственной
      таблицей.
    * При сохранении обстановок информация о докинге сохраняется в
      свойстве DockInfo фабрики рабочего стола, а не в отдельном xml-тэге,
      как было ранее.
    Изменены: DBGridHnds, Desktop, FullInfo, ReportDesigner, ReportSupp,
      SDBVCL, SonarVCL_registration, SVCLUtils, TableBrowser,
    01.04.2008 П.В.Ветошкин.
  * Код задачи 14303. Позиционирование на строку листалки перенеcено в
    локальное меню листалки. Вместо поля ввода номера строки в статусной
    линии листалки показывается номер текущей записи в виде
    нередактируемого текста.
    Изменены: TableBrowser, frame_TableBrowser.xml.
    Добавлены: form_gotoline.xml.
    31.03.2008 И.В.Ковалев
  - При редактировании отчета RWF в prototype невозможно было изменить
    список параметров формы.
    Изменены: rwfdesigner.
    28.03.2008 И.В.Ковалев
  - При открытии нового отчета rwf в prototype имена параметров отчета
    были не в той кодировке.
    Изменены: RWDATA.
    28.03.2008 И.В.Ковалев
  * Код задачи 14278. Реализован мультивыбор в листалке.
    Изменены: SDBGrid, dsincrsearch, gridincrsearch, GridReq,
    im_filter.bmp, SdbVcl, SonarVCL.dpk, sonarvcl_cnstr,
    TableBrowser, DBGrids.
    Добавлены: GridMultiSel.
    27.03.2008 И.В.Ковалев
  - EAccessViolation при открытии нового отчета rwf из prototype
    Изменены: RWFDESIGNER.
    27.03.2008 И.В.Ковалев
  > TableBrowser:
    + Добавлена рассылка событий, соответствующих операциям изменения данных
    * Удалены обработчики событий DBEditFrame и связанные с ними сервисные
      функции
    Изменены: TableBrowser
    20.03.2008 С.Н.Штуркин
  ! При загрузке компонентов посредством tComponentReader поддерживается
    отложенное разрешение внешних ссылок (требуется функциональность Classes
    ред. 08)
    Изменены: SVCLUtils
    20.03.2008 С.Н.Штуркин
  + Добавлены функции и процедуры: RaiseCantExtract, ExtractDataSet,
    TryExtractDataSet
    Изменены: SVCLUtils
    20.03.2008 С.Н.Штуркин
  ! SDBFieldEllipsis: Модуль существенно переработан для обеспечения возможности
    обеспечивать выбор из списка для полей, принадлежащих наборам данных, не
    являющимся потомками tSonarDB_Table. Иными словами, устранена зависимость
    реализации от tSonarDB_Table, вместо этого требуется поддержка GetIRField
    для DataSet, содержащего поле, значение которого выбирается.
    Изменены: SDBFieldEllipsis
    20.03.2008 С.Н.Штуркин
  * tDBEditFrame: если источник данных находится в неактивном состоянии описание
    объекта устанавливается пустой строкой
    Изменены: DBEditFrame
    20.03.2008 С.Н.Штуркин
  + Механизм сериализации: добавлена рассылка события app_ResolveReference,
    позволяющее в обработчиках разрешать "глобальные" ссылки на компоненты в
    процессе их загрузки
    Изменены: Classes
    20.03.2008 С.Н.Штуркин
  > SDBVCL:
    > tSonarDB_Connection:
      + метод CommitDataChange: рассылка события в соедиенение о выполнении
        операции изменения данных
      + метод RegisterTrigger: регистрация обработчиков уровня соединения на
        операции изменения данных в таблице
      * Флаг Owned упразднён. Вместо этого СУБД автоматически закрывается при
        закрытии соединения, если нет других соединений использующих эту СУБД
    > tSonarDB_Table:
      + перекрыт метод Locate для совместимости с tDBComboBox
      + Поддержано свойство OldValue для полей, принадлежащих tSonarDB_Table
      - InternalRefresh больше не вызывает Resync: в некоторых были проблемы с
        визуализацией в браузерах
    + добавлены функции: GetRecordsetName, GetRecordsetCaption,
      SendCommitDataChange, GetConnections, GetIRFIeld, TryGetIRFIeld,
      ExtractSonarDB_Connection, TryExtractSonarDB_Connection
    * Функции sdb_XXXX, принимающие в качестве параметра экземпляр tField могут
      работать с полями, принадлежащими наборам данных не являющимися потомками
      tSonarDB_Table (но для этих наборов данных должна быть поддержка функции
      GetIRFIeld)
    * Устранены зависимости от модуля Objects
    Изменены: SDBVCL
    19.03.2008 С.Н.Штуркин
  + Streams: Добавлены процедуры Print и PrintLn для формирования текстовых
    файлов
    Изменены: Streams
    04.03.2008 С.Н.Штуркин
  + Код задачи 14121. Редактор отчётов. Добавлен диалог создания отчётов.
    Добавлены: ReportBuilder, form_ReportBuilder.xml, im_ReportCustom.bmp,
      im_ReportEmpty.bmp, im_ReportSimple.bmp.
    Изменены: ReportDesigner, ReportFactory, images.rc, SonarVCL.dpk.
    20.02.2008 П.В.Ветошкин.
 P- Код задачи 14147. Если в свойстве ResourceIds компонента tJvImageList
    были указаны идентефикаторы ресурсов картинок, размер которых
    отличался от 16Х16, то после его загрузки список картинок оказывался
    пустым. Исправлено.
    Изменены: JvImageList, JvImageList.pas.patch.
    14.02.2008 П.В.Ветошкин.
 P+ В пакет SonarVCL добавлен модуль DesignObjEditors.
    Изменены: SonarVCL.dpk.
    13.02.2008 П.В.Ветошкин
  - Код задачи 14119. Дизайнер отчётов. Если из отчета, в котором нет ни
    одного источника данных, удалялась какая-либо полоса или ячейка, то
    выдавалось сообщение "tMergesTreeVisualiser.CheckDataSets: Список
    наборов данных пуст." Исправлено.
    Изменены: ReportDesigner.
    12.02.2008 П.В.Ветошкин.
  > Код задачи 14111. Дизайнер отчётов.
    + Реализован механизм добавления дочерних полос. Они добавляются при
      выборе пункта локального меню полосы "Добавить дочернюю полосу".
    * Введён запрет на дублирование некоторых полос на одном дизайнируемом
      разделе отчёта. К таким полосам относятся название и окончание
      отчёта, шапка и окончание страницы, заголовок и окончание данных,
      заголовок и окончание колонки.
    Изменены: ReportDesigner, form_ReportDesigner.xml.
    12.02.2008 П.В.Ветошкин.
  + Код задачи 14084. Дизайнер отчётов. Добавлено локальное меню полос
    отчёта.
    Добавлены: DesignObjEditors.
    Изменены: ReportDesigner, form_ReportDesigner.xml.
    11.02.2008 П.В.Ветошкин.
  + Код задачи 14088. Дизайнер отчётов. Добавлен вывод названия связанного
    источника данных в заголовке соответствующей полосы даных.
    Изменены: ReportDesigner.
    06.02.2008 П.В.Ветошкин.
  + Код задачи 14050. Дизайнер отчётов. Добавлено локальное меню ячеек
    отчёта.
    Изменены: ReportDesigner, form_ReportDesigner.xml.
    06.02.2008 П.В.Ветошкин.
  + TBLib.bpl: По умолчанию для программ, использующих пакет, используется
    адаптивная цветовая схема (Office11Adaptive), ориентированая на
    цветовую схему, используемую в ОС
    Изменены: tblib.dpk, tblib_registration
    Добавлены: rmkThemes, TBXOffice11AdaptiveTheme
    Удалены: TBXOffice2003Theme
    05.02.2008 С.Н.Штуркин
 P* Добавлен модуль с инициализацией для пакета sonarvcl.
    Изменены: SonarVCL.dpk.
    Добавлены: sonarvcl_cnstr.
    31.01.2008 И.В.Ковалев
  * Код задачи 14016. Поддержано сохранение/подгрузка представлений
    листалок для просмотра и выбора из списка при наличии в субд таблицы
    layouts, структура которой должна соответствовать структуре таблицы
    для реестра. Представление для просмотра сохраняется в узле реестра с
    именем layouts\<имя таблицы>\view, представление для выбора из списка
    сохраняется в узле реестра с именем layouts\<имя таблицы>\choice,
    появляются пункты меню листалки для сохранения/загрузки представлений.
    При показе листалки таблицы для выбора из списка (например из
    редактора запросов) если найдено представление листалки для выбора из
    списка, то листалка показывается в соответствии с этим представлением,
    если же не найдено, но найдено представление для просмотра, то
    листалка показывается в виде представления для просмотра. Понятие
    "Представление листалки" включает в себя перечень колонок, их ширину,
    название, выравнивание, размер окна, текущую колонку.
    Изменены: REGDEF, frame_tablebrowser.xml, SDBVCLUTILS, TABLEBROWSER,
    TBXJOINER, SONARVCL.DPK
    Добавлены: LAYOUTMANAGER, frm_tablebrowserlayout.xml.
    30.01.2008 И.В.Ковалев
 P- EAccessViolation при вызове tRegNode.TryOpenNode с параметром,
    содержащим "\".
    30.01.2008 И.В.Ковалев
  + Код задачи 13915. Дизайнер отчётов. В локальное меню дерева источников
    данных добавлен пункт "Удалить", позволяющий удалять выделенные
    источники данных из отчёта.
    P: tMergesTreeVisualiser. При уничтожении источника данных он
       автоматически удаляется из списка визуализируемых (DataSets).
    Изменены: DBGridHnds, ReportDesigner, form_ReportDesigner.xml.
    30.01.2008 П.В.Ветошкин.
  - Код задачи 13716. Если приложение было запущено под Windows-98, то
    окно полной информации было пустым.
    Изменены: FullInfo.
    22.01.2008 П.В.Ветошкин.
  - Код задачи 13970. Окно полной информации под ОС Windows-Vista
    отображалось на чёрном фоне. Цвет фона зависел от настроек ОС и
    совпадал с цветом заголовка окна приложения.
    Изменены: frame_FullInfo.xml.
    21.01.2008 П.В.Ветошкин.
  - Код задачи 13955. Диалог изменения визуализации листалки. Невозможно
    было отредактровать названгие колонки. Исправлено.
    P: Снят флажок HotTrack, посредством которого выполнялась "подсветка"
       элемента списка и дерева визуализации при появлении над ними
       курсора мыши. Установка этого флажка ведёт к запрету редактирования
       названиея элемента (в SDK это не указано).
    Изменены: DBGridHnds.xml, FieldViewer.xml.
    21.01.2008 П.В.Ветошкин.
  - Код задачи 13861. "Ошибка доступа по неверному номеру поля инт. записи
    OB_PHOTO..." При открытии из prototype.exe листалки таблицы OB_PHOTO.
    Изменены: TableBrowser.
    10.01.2008 И.В.Ковалев
  + Коды задач 13926, 13675, 13378. Добавлен дизайнер отчётов и окно
    полной информации.
    Добавлены: FullInfo, ReportDesigner, ReportFactory, TableChoice,
      im_Align_Bottom.bmp, im_Align_Center.bmp, im_Align_Left.bmp,
      im_Align_Middle.bmp, im_Align_Right.bmp, im_Align_Top.bmp,
      im_Align_Width.bmp, im_Create.bmp, im_DataSet.bmp, im_Font_Bold.bmp,
      im_Font_Color.bmp, im_Font_Italic.bmp, im_Font_Setting.bmp,
      im_Font_Underline.bmp, im_Open.bmp, im_Run.bmp, im_Save.bmp,
      im_Text_Highlight.bmp, im_Text_Rotation.bmp, im_View_Function.bmp,
      im_View_Text.bmp, form_FullInfo.xml, form_ReportDesigner.xml,
      form_SelectDataSet.xml, frame_FullInfo.xml,
      frame_LocalMenuEx_TableBrowser.xml.
    Изменены: DBGridHnds, SonarVCL_registration, FastReport.dpk,
      SonarVCL.dpk, images.rc, sonarvcl.py.
    10.01.2008 П.В.Ветошкин.
  - После перевода модулей в кодировку ANSI в описателе таблицы (файл
    .htb) в именах полей русские буквы заменялись на '_'. Из-за этого при
    открытии таблицы выдавалась ошибка "Описатель таблицы <таблица> не
    соответствует описанию в hst". Исправлена процедура
    FormHyTechFieldName.
    Изменены: s_index.
    27.12.2007 В.В.Тыщенко
  * Добавлены утилиты для преобразования файлов с компонентами сохранеными
    в разных форматах.
    Добавлены: dfm_to_text, dfm_to_xml, ResToXML, XMLToRes.
    24.12.2007 М.А.Степанов
  * Код задачи: 13884. Изменен способ загрузки запросов, настройка обьектов на
    загруженные данные происходит не в Loaded, а при получении обьекта из
    фабрики, при этом обьект создается при создании фабрики при подгрузке.
    Изменены: IntDataFactory, DowReqFactory, DsLimit, GrProjFactory,
    RecReqFactory, ReqFactory, ReqLimFactory, TchReqFactory.
    21.12.2007 М.А.Степанов
  * Код задачи: 13423. Адаптированы изменения произведённые в ветви
    поддержки: Расширены возможности относительной границы: базовое
    значение (от которого отступаем вперёд или назад) можно быть текущей
    датой, конкретно датой или значением параметра (раньше - только
    текущей).
    Изменены: ReqApi, ReqConst.inc, ReqConst, ReqConst.rc, ReqLimit, EditReqH,
    frmRelLimit.xml, RelLimitForm, ReqFormH, ReqLimFactory.
    18.12.2007 М.А.Степанов
 P- Код задачи: 13846. tTableIdleOpenHandler: Исключение EAccessViolation
    если DataSet будет уничтожен до фонового открытия таблицы.
    Изменены: SDBVCLUtils.
    12.12.2007 М.А.Степанов
 P> Код задачи: 13845.
    * Редактор запросов: Изменен формат сохранения/загрузки запросов.
    * Утилита FormToRes: Для сохранения в ресурсный файл вместо tResFile
      из Objects используется класс tResourceFile из модуля ResourceFiles.
    Изменены: Core.dpk, FormToRes, ReqDesigner, ReqUtils, SonarVCL.dpk,
    frmReqLoad.xml, frmReqSave.xml.
    12.12.2007 М.А.Степанов
 P- Код задачи 13840. tMergesTreeVisualiser. Вызов метода Clear свойства DataSets приводил
    к неосвобождению памяти.
    Изменены: DBGridHnds.
    12.12.2007 П.В.Ветошкин.
 P* Редактор запросов: вместо функции MessageBox используется MessageDlg.
    Изменены: EditReqH, JoinDesigner, IntRecDesigner.
    12.12.2007 М.А.Степанов
  - Код задачи 13511. Неверно работал поиск полей схемы из-за нарушения
    порядка их сортировки после формальной перекодировки их имён из OEM в
    ANSI. Проявлялось при попытке установить значение поля КодОМ в
    редакторе запроса.
    Изменены: htDescr.
    07.12.2007 П.В.Ветошкин.
  > Код задачи: 13812.
    * При добавлении в листалке устанавливаются поля в значения из
      запроса.
    * Добавлена просадка записи в ведущем DataSet при добавлении в
      подчиненом DataSet.
    * Для замены запроса в tSonarDB_Table можно просто присвоить значение
      св-ву Request(уничтожать предыдущий запрос не нужно).
    * Добавлены события ev_DataSet_NewRecord, ev_DataSet_BeforeInsert,
      аналог событий tDataSet.OnNewRecord, tDataSet.BeforeInsert
      соответственно.
    Изменены: VCLReq, SDataLink, SDBGrid, SdbVcl, TableBrowser, DB.
    Добавлены: SDBVCLUtils.
    06.12.2007 М.А.Степанов
  - Редактор запросов: значение границы показывалось в неверной
    кодировке. Умолчательное значение параметра устанавливалось в
    запись в неверной кодировке.
    Изменены: IntRecDesigner, ReqLimit.
    06.12.2007 М.А.Степанов
 P* Код задачи: 13749. Редактор запросов: Добавлена возможность
    редактировать несколько запросов одновременно: функция ExecListReqForm.
    Изменены: frmReqLoad.xml, frmReqTree.xml, ReqDesigner, ReqTree,
    jvcl_registration.
    Добавлены: frmReqSave.xml
    03.12.2007 М.А.Степанов
 P* Код задачи: 13749. Редактор запросов: изменена реализация
    связей с другими таблицами с целью сделать возможным связывание
    листалки в карточке с  изменяемой записью.
    Изменены: ReqApi, ReqLimit, GridIncrSearch, RelLimitForm, ReqEditor
    ReqFieldViewer, ReqUtils, DsLimit, ReqLimFactory, VCLReq, SDBVCL,
    SonarVCL_registration.
    30.11.2007 М.А.Степанов
 P- Связь между листалками: AccessViolation если ведущий источник данных
    был уничтожен до уничтожения tSDetailDataLink.
    Изменены: SDataLink.
    30.11.2007 М.А.Степанов
  * Код задачи: 13749. Редактор запроса: Нажатие на ссылки происходит
    только по левой кнопке мыши, при развертывании узла ширина колонки
    автоматически настраивается на длину текста, иначе ссылки могут
    некорректно рисоваться.
    Изменены: VSTLink.
    29.11.2007 М.А.Степанов
  - Редактор запроса: проекция по группе полей: при показе списка таблиц
    возникало исключение: "tSubSchemas.Add: Подсхема "" не найдена."
    Изменены: ReqFieldViewer.
    29.11.2007 М.А.Степанов
 P* Функция RequestUsesDataSource: Вместо DataSource используется DataSet,
    соответственно изменен интерфейс функции, сама функция переименована в
    RequestUsesDataSet.
    Изменены: VCLReq, TableBrowser, GridReq.
    29.11.2007 М.А.Степанов
 P- sdb_convert_to_vcl_field, sdb_convert_from_vcl_field: пропись по
    памяти при конвертации поля типа indByte. (проявлялось в другом месте
    и при включенном режиме полной отладки FastMM).
    Изменены: SDBVCL.
    29.11.2007 М.А.Степанов
  * В листалку таблиц добавлен показ количества записей и номера текущей
    записи, при изменении которого пользователем происходит
    позиционирование на эту запись.
    Изменены: TableBrowser, frame_TableBrowser.xml.
    29.11.2007 И.В.Ковалев
  - Медленная прорисовка листалки таблицы A_OBJEKT если текущая запись
    последняя, записей в A_OBJEKT при этом более 3000000.
    P: происходило из-за вызова tSonardb_table.BookMark, которого можно и
    не делать в данной ситуации.
    Изменены: JvDBGrid.
    29.11.2007 И.В.Ковалев
  * Сообщения в log-файл теперь пишутся в кодировке ANSI.
    Изменены: LogPrint.
    29.11.2007 И.В.Ковалев
  - Сообщения об ошибках Hytech были не в той кодировке.
    Изменены: Hytech.
    29.11.2007 И.В.Ковалев
  > Код задачи: 13778. Связь между листалками:
    - Отработка закрытия подчиненой формы при закрытии ведущей
      не работала.
    - При удалении связи все равно продолжалсь отработка закрытия
      подчиненой формы при закрытии ведущей.
    - При нескольких связаных формах последняя подчиненая не всегда
      закрывалась при закрытии первой ведущей.
    Изменены:  SDataLink, SVCLFormH, SVCLUtils.
    27.11.2007 М.А.Степанов
 P> SVCLUtils:
    - Функция LoadComponent: при любом вызове происходило Access
      Violation, поскольку производилась попытка повтороного освобождения
      потока, передаваемого в LoadComponentFromStream (там этот поток
      освобождается) - исправлено
    + Функция GetComponentStream, рассылающая событие
      app_GetComponentStream теперь имеет обработчик по-умолчанию, который
      перебирает ресурсные модули приложения, пытаясь открыть ресурсный
      поток для указанного ClassId - в ряде случаев теперь нет
      необходимости вызывать LoadComponentFromResource.
    * tNameSpace.default_FindInstance: несколько изменена логика работы
      этого метода, что должно позволить указывать в параметрах NameSpaces
      функций LoadComponentXXXX как искомые компоненты, так и компоненты,
      содержащие искомые. Метод подробно документирован.
    Изменены: SVCLUtils
    22.11.2007 С.Н.Штуркин
 P> SDBVCL:
    + В tSonarDB_Connection добавлены методы работы с транзакциями
    - Прцедура sdb_convert_from_vcl_field некорректно обрабатывала случай,
      когда в качестве значения параметра vcl_data передавался nil -
      исправлено: выполняется инициализация значения поля инт. записи
    * Для преобразования tDateTime <-> STime/SDate используются функции из
      SonarSys
    Изменены: SDBVCL
    22.11.2007 С.Н.Штуркин
 P* Сборка SonarVCL: убраны предупреждения компилятора
    Изменены: ReqDesigner, ReqTree, SonarVCL.dpk
    22.11.2007 С.Н.Штуркин
 P* SDataSet: Написаны комментарии, содержимое модуля преобразованов
    кодировку ANSI
    Изменены: SDataSet
    22.11.2007 С.Н.Штуркин
 P> ContentLoader:
    * Написаны комментарии к классам интерфейсной секции
    * Добавлены: tCustomLoader и tComponentLoader
    * Добавлена автоматическая регистрация класса
    Изменены: ContentLoader, SonarVCL_registration
    22.11.2007 С.Н.Штуркин
 P+ Добавлены функции преобразования даты/времени в формате SDate/STime в
    формат System.tDateTime и наоборот: SDateToDateTime, DateTimeToSDate,
    STimeToDateTime, DateTimeToSTime, DateTimeToSDateTime,
    SDateTimeToDateTime, SDateTimeToDateTime
    Изменены: SonarSys
    22.11.2007 С.Н.Штуркин
  - Код задачи 13688. При попытке открыть файл отчёта выдавалось сообщение
    'Ресурс "{4831EDF1-CF68-4DCF-B05B-CED277858B40}" не найден.' Изменены:
    RWFDesigner, RWFSortDialog, SonarVCL_registration, SonarVCL.dpk,
    rwf_form.xml.
    08.11.2007 П.В.Ветошкин.
 P- В классе tSonarDB_Table published - свойство RequestFactory перенесено
    в секцию protected.
    Изменены: SDBVCL.
    07.11.2007 И.В.Ковалев
 P* Добавлен дизайнер отчетов
    Изменены: common.dpk, sonarvcl.dpk, SonarVCL_registration.
    Удалены : common_registration
    Добавлены: dsincrsearch, каталог RWF\Designer
    02.11.2007 И.В.Ковалев
 P+ Добавлен каталог ThirdParty\FastReport.
    Изменены: thirdparty.py.
    02.11.2007 С.Н.Штуркин.
 P- В пакете Common, зависящим от пакета SonarVCL, не была указана эта
    зависимость.
    Изменены: common.dpk.
    01.11.2007 П.В.Ветошкин.
 P* Процедура MakeEmpty. Добавлена возможность обрабатывать hRecRelTable
    (tSAB).
    Изменены: SDBAPI.
    26.10.2007 И.В.Ковалев
 P* Ускорена подгрузка отчетов(rwf) за счет исключения реакции на
    ev_Component_Notification при opInsert
    Изменены: factory.
    26.10.2007 И.В.Ковалев
 P* Убран лишний код.
    Изменены: embdObj.
    26.10.2007 И.В.Ковалев
  - Код задачи 12541. Исправлена ошибка Base64-кодирования.
    Изменены: base64.
    26.10.2007 И.В.Ковалев
 P* Действия по настройке tTableBrowserFormFactory на соединение с базой
    данных вынесены в отдельный метод.
    Изменены: TableBrowser.
    26.10.2007 И.В.Ковалев
 P- Часть значений, выдаваемые с помощью aTypeToStr были в ANSI-кодировке,
    в результате при печати rwf часть данных печаталась в ANSI-кодировке,
    а основная часть - в OEM-кодировке.
    Изменены: Type2Str.
    26.10.2007 И.В.Ковалев
 P* Ускорена загрузка компонентов: изменен тип TRegGroup.FClassList с
    tList на tStringList, вместо простого поиска имени компонента в списке
    выполняется бинарный поиск в сортированном по имени списке.
    Изменены: Classes.
    25.10.2007 И.В.Ковалев
 P* tDataSets. Метод IndexOf вынесен в секцию public.
    Изменены: DBGridHnds.
    24.10.2007 П.В.Ветошкин.
 P+ Код задачи 13628. tDataSets. Добавлено свойство DisplayName,
    содержащее заголовок узла, визуализирующего заданный набор данных.
    Изменены: DBGridHnds.
    24.10.2007 П.В.Ветошкин.
 P- Функция Join теперь игнорирует пустые строки, содержащиеся в
    переданном ей массиве строк
    Изменены: SonarSys
    17.10.2007 С.Н.Штуркин
  - Код задачи: 13495. При вводе поля КодОМ в редакторе запросов
    возникала ошибка "Cannot access field 'КодОм' as type Text".
    P: Добавлено перекрытие метода SetAsText в tSonarDB_CodeField
    (в предке tSonarDB_CodeField в этом методе взводится исключение).
    Изменены: SDBVCL.
    11.10.2007 М.А.Степанов
  - Код задачи 13516. При подливе таблицы самой к себе (например, в
    диалоге изменения представления) происходило исключение EDatabaseError
    с сообщением 'Компонента с именем
    "Имя_первого_поля_подливаемой_таблицы" уже существует.' Исправлено.
    Изменены: IntData.
    01.10.2007 П.В.Ветошкин.
  - Код задачи 13512. Если в структуре бд легенды в S_OVD поле КОДОМ сделать
    уникальным ключом, неверно выполнялся запрос КОДОМ подчинено
    непосредственно или равно 02.00.00.00.00
    Изменены: SSAB.
    28.09.2007 И.В.Ковалев
  - Некорректно читались бинарные данные размером более 61440 байт - вместо
    продолжения чтения за этими пределами данные читались с начала.
    Изменены: Streams.
    21.09.2007 И.В.Ковалев
 P- При вызове редактора запросов с DataSet = nil, но с DBC <> nil
    невозможно было по нажатию на имя поля получить список полей.
    Изменены: ReqEditor, ReqDesigner.
    18.09.2007 И.В.Ковалев
 P- EAccessViolation при редактировании вложенного запроса на минимально при
    подаче EnabledLinks = nil.
    Изменены: JoinDesigner.
    18.09.2007 И.В.Ковалев
 P* Код задачи 13457. Методы tChangeViewDBGrid.PerformUnmerge и
    tChangeViewDBGrid.SelectFieldNode перенесены в компонент
    tMergesTreeVisualiser. В связи с этим добавлено событие
    ev_MergesTree_ExistRefToFields, рассылаемое
    tMergesTreeVisualiser.PerformUnmerge. Удалено событие
    ev_MergesTree_UnmergeTable.
    Изменены: DBGridHnds.
    17.09.2007 П.В.Ветошкин.
 P+ В tComponent добавлено свойство Transient. Компоненты, у которых это
    свойство установлено в значение True считаются "нерезидентными" и не
    сохраняются в форме
    Изменены: Classes
    06.09.2007 С.Н.Штуркин
 P+ Добавлено средство для загрузки подчинённых компонентов:
    tContentLoader
    Добавлены: ContentLoader
    Изменены: SonarVCL_registration
    06.09.2007 С.Н.Штуркин
 !> Изменения в технологии загрузки компонентов:
    * Пространство имён выделено в отдельный класс tNameSpace, событие
      поиска компонента теперь происходит в пространстве имён:
      ev_ComponentReader_FindInstance -> ev_NameSpace_FindInstance
    + Добавлено понятие "глобальное пространство имён" и функция
      GlobalNameSpace, позволяющая работать с ним
    * tComponentReader: удалены методы работы с пространствами имён и
      свойство NameSpaces - используйте новое свойство NameSpace для
      добавления новых элементов в пространство имён
    + tComponentReader: добавлен метод ReadContent, позволяющий выполнить
      загрузку содержимого корневого компонента игнорирую сам компонент.
      Применение см. в tContentLoader.
    + Во все функции загрузки компонентов добавлен параметр ClassId: после
      загрузки компонента автоматически вызывается процедура
      PrepareComponent, рассылающая событие приложения для его настройки
      app_PrepareComponent, параметром которого является ClassId.
    + Добавлена функция GetComponentStream для получения потока для чтения
      компонента по его ClassId
    Изменены: SVCLUtils
    06.09.2007 С.Н.Штуркин
 P+ Добавлена регистрация компонентов tColorDialog, tFontDialog.
    Изменены: vcl_registration.
    04.09.2007 П.В.Ветошкин.
 P> Код задачи 13376.
    - При загрузке компонента tJvImageList, сохранённого в режиме Mode
      отличном от imClassic, картинки иногда восстанавливались
      некорректно. Исправлено корректировкой алгоритма сохранения этого
      компонента (проблемные ресурсы с этим компонентом необходимо
      пересохранить).
    * Свойству tJvImageList.Mode установлено значение по умолчанию
      imResourceIds.
    Изменены: JvImageList.pas, JvImageList.pas.patch.
    23.08.2007 П.В.Ветошкин.
  - Код задачи 13362. При установке в дизайнере свойства компонента
    tMergesTreeVisualiser.FieldViewerFrame выдавалось сообщение
    "FindComponentRecursive: Компонент "Frame" не найден." Исправлено.
    Изменены: DBGridHnds.
    16.08.2007 П.В.Ветошкин.
  * Код задачи 13356. По умолчанию, при открытии листалки визуализируются
    только те поля, которые относятся к оперативной информации.
    Изменены: SonarVCL_registration, TableBrowser.
    16.08.2007 П.В.Ветошкин.
 B* Код задачи: 13468. В сообщение "Ошибка инициализации ресурсного файла"
    возникающее при чтении испорченых файлов *.cnf, *.net, cpreg.dat
    добавлено имя файла с которым происходят проблемы.
    Изменены: Objects.
    21.09.2007 М.А.Степанов
 B> Утилита RRequest:
    + Код задачи 13003. Добавлена возможность восстановления повреждённого
      файла запросов.
    - Код задачи 13295. При запуске без параметров в log-файл писалась
      ошибка: "Исключение EProgramAbort в модуле rrequest.exe по адресу
      ..."
    Изменены: RRequest.
    11.09.2007 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.3 от 20.07.2007
-------------------------

  <BRANCH> Внимание! Может потребоваться адаптация в проектах <ADAPT>
  26.06.2007 П.В.Ветошкин.
  ----------------------------------------------------------

 P+ Код задачи 12994. Добавлен класс EMainKeyOverflow и процедура
    RaiseEMainKeyOverflow, генерирующая исключение этого класса. Удалены
    константы stCallToAdm и stMainKeyValuesRangeDepleted.
    Изменены: UsrUtil.

    Адаптация. При некомпиляции вызовов с константой
    stMainKeyValuesRangeDepleted, (как правило raise
    ELog(EError.CreateFmt(stMainKeyValuesRangeDepleted, [xxx]))),
    заменить эти вызовы на RaiseEMainKeyOverflow(xxx).
                                   * * *

  <BRANCH> Внимание! Может потребоваться адаптация в проектах <ADAPT>
  20.06.2007 Д.И.Кобрусев
  ------------------------------------------------------------------

  > Код задачи 13003:
    + Утилита RRequest. Добавлена возможность восстановления повреждённого
      файла запросов.
   P> Изменения в классе tResourceFile (ресурсный файл):
      * Удалён метод GetLoad.
      + Добавлены методы GetStream и PutStream.
      * Изменён интерфейс метода Put (параметры поменяны местами - сначала
        ключ, потом - объект).
   P* Класс tPartFileReadStream переименован в tPartStream и перенесён в
      модуль Objects (из LibUtils).
    Изменены: LibUtils, Objects, OldBinData, ReqUtils, RWData.

    Необходимо проверить:
    1. Сохранение/загрузку запросов в/из файл(а).
    2. Сохранение отчётов (RWF).
    3. Конвертацию бинарных данных старых форматов в новый.

    Адаптация: Если не будет компилироваться из-за того, что:
    1. Неизвестен идентификатор tResourceFile.GetLoad - если это вызов
       непосредственно перед Get из этого файла ресурсов, и результат
       вызова игнорируется, удалить этот вызов. В остальных случаях надо
       разюираться.
    2. Не соответствует интерфейс метода tResourceFile.Put - адаптировать
       изменение его интерфейса: параметры поменяны местами - сначала
       ключ, потом - объект.
    3. Неизвестен идентификатор tPartFileReadStream - адаптировать
       переименование класса в tPartStream и перенос в модуль Objects (из
       LibUtils).
                                   * * *

 P- JvImageList: при адаптации содержимого модуля к JVCL rev. 11332 по
    недоразумению были утеряны изменения, проделанные в редакциях 2 и 3 -
    исправлено
    Изменены: JvImageList.pas, JvImageList.pas.patch
    04.07.2007 С.Н.Штуркин
 P+ JVCL: добавлена регистрация компонента tJvSecretPanel
    Добавлены: JvExtComponent, JvSecretPanel, JvTimer
    Изменены: JVCL_registration, jvcl.dpk
    02.07.2007 С.Н.Штуркин
 P+ Для пакета AdvRichView добавлено модуль регистрации классов
    Изменеы: AdvRichView.dpk
    Добавлены: AdvRichView_registration.pas
    28.06.2007 С.Н.Штуркин
 P> FormToRes:
    - программы выдавала сообщения в неверной кодировке
    - если на вход передать файл, не являющийся XML, происходило AV
    * программа собирается теперь с отладочной информацией
    Изменены: FormToRes.pas, sonarvcl.py
    28.06.2007 С.Н.Штуркин
 P- ObjectXMLToBinary: пустые строковые значения преобразовывались в
    бинарный формат неверно, что приводило к исключению нехватки памяти
    при последующей загрузке объекта из бинарного формата - исправлено
    Изменены: XMLUtils
    28.06.2007 С.Н.Штуркин
 P* Добавлена поддержка работы с SAX XML.
    Добавлены: OLECTRLS, OLESERVER, MSXML3, SAX.INC, SAX, SAXEXT,
    SAXHELPERS, SAXMS, SAXUTILS.
    Изменены: vcl.dpk, thirdparty.py,
    Добавлены: sax.py
    21.06.2007 И.В.Ковалев
 P+ Добавлена регистрация компонентов: tOpenPictureDialog, tPaintBox,
    tSavePictureDialog,
    Изменены: vcl_registration
    18.06.2007 С.Н.Штуркин
 P+ В каталог ThirdParty добавлен пакет AdvRichView
    Добавлены: каталог ThirdParty\RichView, каталог VCL\GIF
    Изменены: VCL\vcl.dpk
    18.06.2007 С.Н.Штуркин
 P* Обновлены исходные тексты в каталоге ThirdParty:
    JCL rev. 2044
    JVCL rev. 11332
    Изменены: модули в каталогах ThirdParty\JCL, ThirdParty\JVCL
    18.06.2007 С.Н.Штуркин
 P* vcl_registration: добавлена регистрация классов: tImage, tOpenDialog,
    tSaveDialog; tblib_registration: добавлена регистрация класса
    tTBToolBar
    Изменены: vcl_registration, tblib_registration
    14.06.2007 С.Н.Штуркин
 P> SVCLUtils:
    + Добавлены функции чтения компонентов из потока
      LoadComponentFromStream
    + Добавлены функции для проверки ссылок на компоненты:
      ValidateComponentRef, ValidateComponentRefs. Предназначены для
      проверки автоматически восстанавливаемых ссылок после загрузки
      содержимого, например, формы в её классе, если ссылки на компоненты
      являются published-полями
    * Интерфейс функции LoadComponentFromResource изменён: возвращён
      параметр, задающий корневой компонент, поскольку с его помощью
      удобно загружать содержимое компонентов в конструкторе их класса
    * tComponentReader: в конструктор класса добавлен параметр, задающий
      поток, из которого будет производиться загрузка. Соответственно,
      аналогичный параметр добавлен в CreateComponentReader.
    Изменены: DBGridHnds, FieldViewer, EditReqH, EnterValue,
    IntRecDesigner, JoinDesigner, RelLimitForm, ReqDesigner,
    ReqFieldViewer, ReqFormH, ReqTree, ReqUtils, SPopupList,
    SDBFieldEllipsis, SValidators, SVCLUtils
    14.06.2007 С.Н.Штуркин
 P* AppUtils: В функцию SetupOpenSaveDialog добавлена обработка параметра
    "title" для задания текста в заголовке окна диалога
    Изменены: AppUtils
    14.06.2007 С.Н.Штуркин
 P* Модуль DynaLoad перенесён в каталог Core из каталога Lib
    Изменены: DynaLoad, Core.dpk, Lib.dpk
    14.06.2007 С.Н.Штуркин
 B- Код задачи 13297. Восстановление бинарных данных. Не исправлялись
    записи, которым соответствуют пустые ресурсы, но в которых не все поля
    бин. данных - пустые (например, непуст только номер тома).
    Замечание. Восстановление бинарных данных запускается при
    восстановлении таблицы бинарных данных, НЕ только по пункту
    "Восстановление бинарных данных" утилит администратора.
    Изменены: BinData.
    19.07.2007 Д.И.Кобрусев
BP- Код задачи 13255. Полное копирование выборки (CopyTableFull). Не
    копировался режим обновления (UpdateMode).
    Изменены: DBase4.
    11.07.2007 Д.И.Кобрусев
BP* Код задачи 13215. Объект пакетной модификации tBatchModify. Таблица
    сделана общедоступным (public) свойством.
    Изменены: BatchOpr.
    04.07.2007 Д.И.Кобрусев
 B> Код задачи 13006. Ошибки в запросах по маске по текстовым полям:
    - C маской сравнивалось значение, на 1 символ длиннее реального
      значения поля (в конце "дописывался" пробел).
      Проявление: В "Легенде" выборка лиц по фамилии на совпадение с
      шаблоном "*                        *" (24 пробела, длина поля - 25)
      оставляла 1- и 2-буквенные фамилии, хотя должна - только
      1-буквенные.
    - Считалось, что если длина маска маски больше длины поля, этой маске
      не удовлетворяет ни одно значение поля. Это неверно, если в маске
      есть "*"-и, т.к. "*"-е может соответствовать произвольное количество
      символов, в т.ч. и 0.
      Проявление: В "Легенде" выборка лиц по фамилии на совпадение с
      шаблоном "*                         *" (25 пробелов, длина поля - 25)
      оказывалась пустой, хотя должна была (пока не была исправлена ошибка
      из предыдущего пункта) оставлять 1-буквенные фамилии.
    Необходимо протестировать: Запросы по маске (в т.ч. и по нетекстовым
      полям).
    Изменены: htSearch, StrSearch.
    06.06.2007 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.2 от 04.06.2007
------------------------

  Внимание! Может потребоваться адаптация в проектах <ADAPT>
  28.05.2007 П.В.Ветошкин.
  ----------------------------------------------------------

 B* Код задачи 12952. В сообщение об исчерпании значений главного ключа
    добавлено имя таблицы.
    P: Константа stMainKeyRangeDepleted переименована в
       stMainKeyValuesRangeDepleted с целью добавления в сообщение имени
       таблицы с помощью символа форматирования "%s" во всех модулях,
       использующих эту константу.
    Изменены: UsrUtil.

    Адаптация. При некомпиляции вызовов с константой
    stMainKeyRangeDepleted необходимо заменить её название на конструкцию
    вида Format(stMainKeyValuesRangeDepleted, [GetSubName(TargetTable)])
    или аналогичную ей. Здесь TargetTable - таблица, дя которой произошло
    переполнение значений главного ключа.
                                   * * *

  * vcl_registration.pas: Добавлена регистрация tDBNavigator
    Изменены: vcl_registration
    31.05.2007 С.Н.Штуркин
  + Controls.pas: Добавлена рассылка событий ev_WinControl_Enter и
    ev_WinControl_Exit
    Изменены: Controls
    31.05.2007 С.Н.Штуркин
  > Изменения в SVCLUtils:
    + Добавлен класс tComponentReader, обеспечивающий возможность загрузки
      компонентов, в которых есть внешние ссылки
    * Удалены неиспользуемые специфические функции по обработке загрузки
      компонентов. Часть этих функций перенесена в DsgnUtils дизайнера
      форм.
    * Интерфейс функции LoadComponentFromResource изменён: убран параметр,
      задающий корневой компонент. При необходимости указания корневого
      компонента можно воспользоваться tComponentReader.
    Изменены: SVCLUtils, DBGridHnds, FieldViewer, EditReqH, EnterValue,
    IntRecDesigner, JoinDesigner, RelLimitForm, ReqDesigner,
    ReqFieldViewer, ReqTree, ReqUtils, SPopupList, SDBFieldEllipsis,
    TableBrowser
    31.05.2007 С.Н.Штуркин
  * В модуль SonarSys добавлена функция Split, разделяющая исходную строку
    на элементы, через указанный символ-разделитель. Тип результата
    функции tStringArray = array of String. Ввиду возникшего конфликта
    имён типов: Arrays.tStringArray произведены изменения в именах классов
    модуля Arrays.
    Изменены: SonarSys, Arrays, BFReg, RegTypes, PyUtils, SonarCore
    31.05.2007 С.Н.Штуркин
  - Код задачи 13028. Сообщение "Ошибка при развертывании, код (-3)"
    вместо сообщения о поврежденности бинарных данных при чтении бинарных
    данных.
    Изменены: BINDATA, ZLIB.
    29.05.2007 И.В.Ковалев
  > Пакет SonarVCL:
    + Добавлен модуль SonarVCL_Registration в который перенесена
      регистрация классов из всех модулей пакета
    - Устранены ненужные зависимости от Objects
    + Модуль TBXJoiner для добавления дополнительных пунктов в меню и
      панели инструментов семейства TBX
    Добавлены: SonarVCL_registration
    Изменеы: группа модулей в каталоге SonarVCL
    15.05.2007 С.Н.Штуркин
  * Код задачи 12838. При загрузке обстановки происходило "моргание",
    вызванное перемещением загруженных окон в "свои" доки. Исправлено.
    P: Фабрика для tTableBrowserForm. При создании формы удалена установка
       стиля fsNormal, поскольку этот стиль стал "прописан" в ресурсе.
    Изменены: Desktop, TableBrowser, form_TableBrowser.xml.
    14.05.2007 П.В.Ветошкин.
  - Код задачи 12845, 12922. При подгрузке обстановки, листалки которой
    имели подлитые поля происходило исключение "Неверная операция с
    вещественными числами". Если был установлен режим пропорционального
    масштабирования ширин колонок сетки, то при увеличении ширины
    какой-либо колонки изчезала последняя (нижняя) строка сетки.
    Изменены: JvDBGrid, JvDBGrid.pas.patch.
    10.05.2007 П.В.Ветошкин.
  > Поля ввода для таблиц БД:
    - При попытке выбора значения в случае, если DataSet не находился в
      режиме корректировки возбуждалось соответствующее исключение -
      исправлено: DataSet в такой ситуации переводится в режим
      корректировки
    - Кл. "стрелка вниз" срабатывала в поле ввода даже в случае, если поля
      выбора отсутствовало - исправлено
    Изменены: DBEditFrame
  - Описание объета для полей выбора из справочников формировалось в
    OEM-кодировке - исправлено
    Изменены: SDBFieldEllipsis
    07.05.2007 С.Н.Штуркин
 P* Обеспечена совместимость с компилятором Delphi 2007
    Добавлены: ThirdParty\JCL\Inc\jcld11.inc,
    ThirdParty\JVCL\Common\jvcld11.inc
    07.05.2007 С.Н.Штуркин
 P* Исходные тексты VirtualTreeView обновлены до v4.5.2
    Изменены: содержиое каталога ThirdParty\VirtualTrees
    07.05.2007 С.Н.Штуркин
  * Код задачи 12914. Диалог изменения визуализации. Элементы списка
    сортировки и узлы дерева слияний сделаны недоступными для
    редактирования.
    P> tFieldViewer.
       + Добавлено свойство ReadOnly.
       - При загрузке возникало EAV. Исправлено: свойства MultiSelect и
         ReadOnly сделаны несохраняемыми (stored False).
    Изменены: FieldViewer, DBGridHnds.xml, FieldViewer.xml.
    04.05.2007 П.В.Ветошкин.
  * Код задачи 12801. Диалог изменения визуализации. В списках
    визуализации/сортировки после удаления элементов не оставалось ни
    одного выделенного элемента. Теперь выделяется первый элемент после
    последнего удалённого. Если такового нет, то выделяется последний
    элемент списка.
    P: tFieldVisualiser: добавлено свойстов ItemFocused.
    Изменены: DBGridHnds.
    04.05.2007 П.В.Ветошкин.
  + Код задачи 12902. Диалог изменения визуализации. Режим "стать на поле"
    сделан доступным по выбору пункта локального меню списков полей.
    P: tFieldVisualiser: добавлено свойстов Focused.
    Изменены: DBGridHnds, DBGridHnds.xml.
    04.05.2007 П.В.Ветошкин.
  + Код задачи 12375. Диалог изменения визуализации сетки. Добавлен режим
    "стать на поле", позволяющий путём перетаскивания элементов списков
    визуализации или сортировки на дерево слияний выделять узлы дерева,
    соответствующие перетаскиваемым элементам.
    P: tControl: добавлена рассылка событий ev_Control_DragOver и
       ev_Control_DragDrop.
    P- tFieldViewer. Установка свойства Selected не приводила к выделению
       соответствующего узла дерева.
    P+ tFieldViewer. Добавлены методы BeginUpdate, EndUpdate,
       ClearSelection.
    P+ tNodeAdapter. Добавлен метод MakeVisible.
    Изменены: Controls, DBGridHnds, FieldViewer.
    02.05.2007 П.В.Ветошкин.
 P> Код задачи 12549. Диалог изменения визуализации сетки. Изменён
    алгоритм редактирования параметров визуализации. Все действия по
    слиянию/разлиянию производятся над копией набора данных сетки. При
    принятии изменений выполняется подмена таблицы в исходном наборе
    даных.
    + Добавлены компоненты tFieldVisualiser и tMergesTreeVisualiser.
    * tChangeViewDBGrid переведён на работу с этими компонентами.
    + tNodeAdapter. Добавлено свойство NodeDataType.
    + tSonarDB_Table. Свойство Table открыто для записи. При присваивании
      таблицы этому свойству рассылается событие
      ev_SonarDB_Table_ReplaceTable.
    Изменены: DBGridHnds, FieldViewer, SDBVCL, DBGridHnds.xml.
    27.04.2007 П.В.Ветошкин.
  * Код задачи: 12356. Редактор запросов: добавлено скролирование при
    переходе на ссылку, находящуюся за границей видимости.
    Изменены: VSTLink.
    23.04.2007 М.А.Степанов
  * Код задачи: 12672. Поддержка листалок таблиц: Добавлена поддержка
    связей между листалками, добавлена поддержка открытия листалки в полях
    выбора, при подгрузке обстановок таблица будет открывается фоново,
    т.е. вначале будет открыта пустая таблица а потом в фоне восстановлена
    полная выборка.
    Изменены: ReqDesigner, ReqEditor, DsLimit, VCLReq, SdbVcl, SVCLFormH,
    TableBrowser.
    Добавлены: SDataLink.
    20.04.2007 М.А.Степанов
 P* Фабрики запросов: устранены ненужные перекодировки из OEM в ANSI и из
    ANSI в OEM.
    Изменены: IntDataFactory, DowReqFactory, GrProjFactory, RecReqFactory,
      ReqFactory, ReqLimFactory.
    19.04.2007 М.А.Степанов
 P+ Добавлена поддержка браузера таблиц и рабочего стола приложения
    Добавлены: TableBrowser, DeskTop, AppUtils, frame_TableBrowser.xml,
    form_TableBrowser.xml
    19.04.2007 С.Н.Штуркин
  - Код задачи 12827. При загрузке обстановок с тремя и более окнами
    неверно восстанавливались размеры этих окон.
    Изменены: Controls.
    18.04.2007 П.В.Ветошкин.
 P> Изменения в SDBVCL:
    - При попытке корректировки записи в слитой tSonarDB_Table происходило
      исключение о попытке обращения к полю с неверным номером -
      исправлено
    * Строковые константы, определённые в модуле определены как
      resourcestring
    Изменены: SDBVCL
    18.04.2007 С.Н.Штуркин
 P* Код задачи: 12672. Модуль DB: добавлено событие
    ev_DataSource_DataChange, аналог события tDataSource.OnDataChange.
    Изменены: DB.
    18.04.2007 М.А.Степанов
 P* Код задачи: 12672. Модуль Forms: добавлено событие
    ev_CustomForm_CloseQuery: запрос на закрытие формы.
    Изменены: Forms.
    18.04.2007 М.А.Степанов
 P* Редактирование пользовательских запросов: устранены ненужные более
    конвертации из OEM в ANSI.
    Изменены: EditReqH.
    18.04.2007 М.А.Степанов
 P> Изменения в SVCLUtils:
    + В функции {Try}FindComponentByName добавлен параметр Recursive,
      обеспечивающий возможность рекурсивного (включая починённые
      компоненты) поиска по имени
    + функция GetOwnerForm
    Изменены: SVCLUtils
    17.04.2007 С.Н.Штуркин
 P* Обновлены исходные тексты в каталоге ThirdParty:
    JCL rev. 1989
    JVCL rev. 11266
    Изменены: модули в каталогах ThirdParty: JCL, JVCL; TBLib\JvTBXLib -
    адаптированы изменения в JVCL
    17.04.2007 С.Н.Штуркин
  - Код задачи 12553. При загрузке обстановок неверно восстанавливались
    размеры окон.
    Изменены: Controls.
    03.04.2007 П.В.Ветошкин.
 P+ Код задачи 12623. Добавлен класс tSDockCaptionDrawer, отвечающий за
    прорисовку заголовков задоченных окон.
    Изменены: ThemedDockCaptions.
    30.03.2007 П.В.Ветошкин.
 P+ Добавлен модуль утилит для работы с сетками на таблицы БД
    Добавлен: DBGridUtils
    30.03.2007 С.Н.Штуркин
 B- Код задачи 12785. Работа с реестром БД. При физическом отсутствии в БД
    хотя бы одного из файлов реестра происходило исключение
    "Несанкционированный доступ...". Проявлялось на контроле версии
    программы при открытии основной БД.
    Изменены: DBReg.
    13.04.2007 П.В.Ветошкин.
BP+ Код задачи 12713. Добавлены константы snSO_OPER, snTAB_PODR,
    nmSubdivCode, nmEmployeeCode.
    Изменены: SDBConst.
    05.04.2007 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.1 от 30.03.2007
------------------------

 P! Код задачи 12664. Поддержка переведена в ANSI-кодировку. Загрузка
    описателей компонентов БД сопровождается перекодировкой в ANSI,
    сохранение - в OEM. Сообщения об ошибках перед выводом в log-файл
    перекодируются в OEM.
    Изменены: advappc, ALG, APPCONST, APPINVIS, arifmop, ARRAYS, AVL,
      base64, batchopr, cdtable, checks, code, ComCtrls, ComObj, CONUTILS,
      crcmaker, dbase0, dbase2, dbase3, dbase4, dbase5, DBCache,
      DbGridHnds, DBReg, dbutils, dowreq, dowreqfactory, DsLimit,
      EditReqH, embdObj, EnterValue, ExtCtrls, factory, FastMM4,
      FieldViewer, fileinfo, FormToRes, GetOpt, GRABSDOC, GraphUtil,
      GRCONST, grproj, grprojfactory, htDataIO, htdescr, htrepeat, ht_cd1,
      ht_init, HyTech, IdleMan, IDLEMNGR, IdleVCL, ImgUtils, INIFILE,
      IniFiles, intdata, intdata4, IntRecDesigner, IRFields, JclDebug,
      Jdbinit, joinacc, JoinDesigner, joiner, keycache, libutils, licfile,
      LogPrint, MapToJDBG, netcnf, OBJECTS, OldBinData, oldreq, PCONST,
      phtconst, printers2, PythonEngine, pyutils, rcv, RecComparer,
      Records, recreq, recreqfactory, RelLimitForm, Renders, reqapi,
      reqconst, ReqDesigner, ReqEditor, reqfactorycnstr, ReqFieldViewer,
      ReqFormH, reqlimfactory, reqlimit, ReqTree, requests, ReqUtils,
      restrict, rqsdata, RREQUEST, rwdlg, RWFConst, RWFExec, RWFUtils,
      SDBAPI, SDBCONST, SDBFieldEllipsis, SDBVCL, seldttm, SELKEYIN,
      sndname, SonarCore, sonarsys, ssab, stdctrls, StreamWrappers,
      subscan, SysConst, sysparms, system, sysutils, s_index, tabconv2,
      TabInfo, table, TBDNames, tchinfrq, tchreqfactory, temptab,
      TimeSync, transman, TXTTABLE, TXTWRITE, type2str, usrutil, VCLReq,
      vis_cnst, WAITPROC, WProcs.
    28.03.2007 П.В.Ветошкин.
 P+ Код задачи 12512. Добавлена возможность перехвата текста вставляемого
    в буфер обмена Windows и из него. Для установки перехватчика
    необходимо вызвать процедуру InstallClipboardViewer. Подробнее см.
    комментарии в начале модуля ClipboardViewer. Добавлено событие
    приложения app_WinControl_PasteNotify, рассылаемое при вставке текста
    из буфера обмена в элемент управления. Обрабатывать это событие
    напрямую не рекомендуется. Для обработки копирования/вставки следует
    использовать соответствующие события, описанные в модуле
    ClipboardViewer.
    Добавлены: ClipboardViewer.
    Изменены: Controls. SonarVCL.dpk.
    23.03.2007 П.В.Ветошкин.
 P+ Функция GetUniqueComponentName для получения уникального имени для
    компонента с использованием GUID
    Изменены: SVCLUtils
    23.03.2007 С.Н.Штуркин
 P> SDBVCL:
    + Набор классов позволяющий выполнять сериализацию параметров слияний
      и сортировки: tJoinItem, tJoinInfo, tSortItem, tSortInfo
    + Функции по работе с квалифицированными именами полей
    + Написаны комментарии к существующим функциям и классам в
      интерфейсной секции
    * Название идентификатора события ev_sdbtRequery изменено на
      ev_SonarDB_Table_Requery
    Изменены: SDBVCL, gridincrsearch
    22.03.2007 С.Н.Штуркин
 P* Objects: Удалено определение классов поддержки реестра и всё связанное
    с сохранением объектов в реестре. Причина: поддержка реестра
    переведена на использование классов из модуля Classes.
    Изменены: Objects
    20.03.2007 С.Н.Штуркин
  > Код задачи: 12621. tSDBGrid:
    * Инкрементный поиск перенаправляет клавиши стрелка вниз/вверх, Enter в
      листалку, это необходимо при выборе записей.
    - Клавиша Del не обрабатывалась полем ввода инкрементного поиска так как
      являлась горячей клавишей удаления записей в листалке.
    * Убирание инкр. поиска вынесено в обработчик и производится при
      восстановлении полной выборки в листалке, а не как реакция на Alt-F7.
    * Удалены лишние методы и св-ва.
    Изменены: SDBGrid, SDBVCL, GridIncrSearch.
    19.03.2007 М.А.Степанов
 P+ Адаптирован модуль для кэширования реестра в БД
    Добавлены: DBCache
    13.03.2007 С.Н.Штуркин
 P+ Адаптирован модуль для работы с реестром в БД
    Добавлены: DBReg
    13.03.2007 С.Н.Штуркин
 P* Класс tMemoryBufferStream вынесен в Streams и переименован там в
    tExistentBufferStream
    Изменены: SDBVCL
    13.03.2007 С.Н.Штуркин
 P> Поддержка бинарных данных:
    * EBinDataError, ECryptoStreamError и EEmptyStreamError теперь потомки
      Exception (было - ESException), поскольку сообщения формируются в
      ANSI-кодировке
    - tCRCCountingStream: убрано ограничение на операцию позиционирования
      и обеспечено сохранение базового потока при закрытии объекта
    - tBinDataStorage.GetVolumeStream: исправлена ошибка при создании кэша
      на поток тома
    + При подготовке объекта изменения данных по таблице, хранящей бинарные
      данные обеспечено построение соответствующего обработчика
    * Модуль DBCnstr переведён в кодировку ANSI
    Изменены: BinData, DBCnstr
    Добавлены: BinChn
    13.03.2007 С.Н.Штуркин
 P> Изменения в Streams.pas:
    + tExistentBufferStream: поток на существующий буфер в оперативной
      памяти
    + Поток построенный посредством CreateTempFileStream будет создавать
      файл только в случае переполнения кэша, что должно поднять
      производительность при работе с небольшими объёмами данных,
      сохраняемых во временных потоках
    Изменены: Streams
    13.03.2007 С.Н.Штуркин
 P* Код задачи: 12624. Ускорена поддержка буферизации потоков(tVAStream):
    если в качестве кэша указан поток в памяти (tCustomMemoryStream) при
    чтении из/в кэш вместо метода tStream.CopyFrom используется метод
    записывающий/читающий данные используя указатель на данные кэша, а не
    вычитывая данные в буфер как это делает tStream.CopyFrom.
    Изменены: Streams.
    12.03.2007 М.А.Степанов
 P* Вместо FindString с умолчательными значениями параметров добавлен
    более безопасный перегруженный вариант, позволяющий вызывать
    FindString с автоматическим распределением/освобождением буфера
    Изменены: Streams
    12.03.2007 С.Н.Штуркин
 P* Код задачи: 12624. Поддержка буферизация потоков (tLRU): алгоритм
    адаптирован для файлов размером больше MaxInteger, тип переменных в
    которых записывается псевдовремя сделан Cardinal.
    Изменены: Streams.
    09.03.2007 М.А.Степанов
 P> Поддержка реестра:
    + tRegNode: добавлен метод TryOpenNode
    + Добавлены функции сохранения и восстановления компонентов из
      элементов реестра: WriteComponent/ReadComponent
    + Добавлен тип элемента реестра "компонент" - пока идентичен бинарным
      данным
    * Переделан механизм регистрации типов элементов реестра: стало
      возможным создавать потомки от существующих типов
    Изменены: RegDef, RegTypes
    09.03.2007 С.Н.Штуркин
 P- tPartStream работал некорректно. Теперь этот поток потомок
    tStreamWrapper без поддержки функции записи, т.е. функциональный
    аналог tPartFileReadStream из DSP v2.X
    Изменены: Streams
    09.03.2007 С.Н.Штуркин
 P* Обновлены исходные тексты в каталоге ThirdParty:
    JCL rev. 1947
    JVCL rev. 11201
    Добавлены: JclAnsiStrings, JclUnicode.rc
    Изменены: jcl.py, содержимое каталогов в ThirdParty: JCL, JVCL
    Удалены: JclUnicode.res
    05.03.2007 С.Н.Штуркин
  + Код задачи: 12566, 12356. Редактор запросов: редактирование значений
    производится с помощью tDBEditFrame (построение полей с кнопкой выбора
    из списка), добавлено перемещение узлов по Ctrl-Up, Ctrl-Down,
    добавлен экспорт текстового представления запроса (подключен
    адаптированный к GUI модуль Imp_Obj), добавлена возможность передавать
    nil в качестве параметра аDataSet (при этом необходимо указать
    соединение с БД), выбор полей: добавлена возможность включения режима
    несовпадения имен полей, добавлена строка статуса с информацией о
    полях.
    Добавлена возможность создания полей ввода для отдельных записей:
    добавлен класс tSonarDB_Record, его общая часть с tSonarDB_Table
    вынесена в класс tSonarDB_DataSet.
    Улучшена работа с полями типа "Дата": (стандартная поддержка
    некорректно работает если формат даты "dd/mm/yyyy", св-во текст
    в этом случае все равно возвращает дату в виде "dd/mm/yy").
    Изменены: AppInvis, LibUtils, DBEditFrame, EditReqH, EnterValue,
    frmEnterValue.xml, frmReqTree.xml, frmSelectFields.xml, GridReq,
    ReqImages.rc, IntRecDesigner, JoinDesigner, RelLimitForm, ReqDesigner,
    ReqEditor, ReqFieldViewer, SPopupList, DsLimit, SDBFieldEllipsis,
    SdbVcl, SonarVCL,
    Добавлены: Imp_Obj, imCopyText.bmp, imPlusWithRows.bmp, SVCLFormH.
    05.03.2007 М.А.Степанов
 !> Модули BinData и ZLib переведены на потоки Classes
    * Модуль StreamWrappers перенесён в каталог Lib
    Изменены: BinData, ZLib, RWFExec, LicFile, OldBinData, TabConv2,
    SDBVCL, Lib.dpk, SonarVCL.dpk
    05.03.2007 С.Н.Штуркин
 P> Изменения в модуле Streams:
    ! tStreamWrapper: предок для всех потоков-обёрток. Все существующие
      обёртки пронаследованы от tStreamWrapper.
    * Функция BuildStream переименована в CreateCache
    + DestroyCache, IsCachePresent, CreateFileStream,
      CreateTempFileStream, FindString
    Изменены: Streams, RegUtils
    05.03.2007 С.Н.Штуркин
 P* Добавлен модуль регистрации классов библиотеки VTrees, в SonarVCL.dpk
    добавлена зависимость от Common.dpk.
    Изменены:  VTrees.dpk, SonarVCL.dpk.
    Добавлены: VTrees_Registration.
    22.02.2007 М.А.Степанов
  > Код задачи 12374. Диалог изменения визуализации таблицы. Списки
    визуализации и сортировки.
    * Если названия колонки и соответствующего ей поля не совпадают, то
      название поля, указываемое в скобках, отделяется от названия колонки
      пробелом.
    + Добавлена "разлиновка" списка сортировки.
    Изменены: DBGridHnds, DBGridHnds.xml.
    21.02.2007 П.В.Ветошкин.
  - Код задачи 12496. При уменьшении области "докинга" (размеров главного
    окна приложения) до нуля (или до некоторого небольшого значения) как
    по ширине, так и по высоте, "задоченные" элементы (например, листалки)
    не восстанавливали своих пропорций после соответствующего увеличения
    этой области. Исправлено.
    Изменены: Controls.
    19.02.2007 П.В.Ветошкин.
  + Код задачи: 12356. Доработки и улучшения в редакторе запросов:
    добавлены диалоги редактирования в пользовательских запросах, команды
    добавления, удаления и пр. в дереве ограничений, переименованы
    некоторые файлы изображений, вместо tImageList используется
    tJVImageList, убран заголовок у формы выбора полей, список элементов
    выпадающий при нажатии на ссылки ведет себя как меню, улучшен контроль
    за вводом чисел в полях ввода: добавлены обработчики устанавливающие
    пометку на полях если введено некорректное число. И т.д.
    Изменены: Core.dpk, EditReqH, GridReq, ReqImages.rc,
      IntRecDesigner, JoinDesigner, RelLimitForm, ReqDesigner, ReqEditor,
      ReqFieldViewer, ReqTree, ReqUtils, SPopupList, VSTLink,
      SonarVCL.dpk, sonarvcl.py, jcl.dpk, jcl.py, jvcl.dpk, jvcl.py,
      frmIntRec.xml, frmRelLimit.xml, frmReqTree.xml, frmSelectFields.xml.
    Удалены: imFieldChecked.bmp, imFieldLinkArrow.bmp, imParamDefaults.bmp,
      imSimpleField.bmp, imTable.bmp.
    Добавлены: Masks, ErrIndicator.rc, imErrIndicatorExclamation.bmp,
      frmDiffDialog.xml, frmFieldsPair.xml, imAddFilter.bmp, imChangeValue.bmp,
      imCopyFilter.bmp, imDelFilter.bmp, imDiskette.bmp,
      imFilterAccessLevel.bmp, imGrayCross.bmp, imGreenLetterT.bmp,
      imOpenFromFolder.bmp, imSmallCurveArrow.bmp, imSmallGreenCircle.bmp,
      imTick.bmp, ReqFormH, SValidators, JclUnicode, JvErrorIndicator.rc,
      JvResErrorIndicator.bmp, JvResErrorIndicator.ico, JvErrorIndicator,
      JvValidators.
    15.02.2007 М.А.Степанов
  - Код задачи: 12483. Под Win9x при запуске программы при нехватке места
    на диске для кэша БД в лог-файл постоянно начинали выдаваться ошибки и
    последующие запуски программы приводили к такому же эффекту даже при
    наличии места (до перезагрузки). Также в этом случае при выходе из
    программы могли происходить исключения EInvalidPointer.
    P: tMappedFileStream: При нехватке места на диске под Win9x,
       метод SetResSize (резервирование места), приводил к последующей
       невозможности создать маппированый файл с таким же именем.
       Исправлено: из-за особенностей поведения функции CreateFileMapping
       под Win9x, перед ее вызовом резервируется место путем создания
       файла нужного размера.
    Изменены: Objects2, htCache.
    14.02.2007 М.А.Степанов
 P- При подгрузке компонента из файлового буферизированного потока
    происходила ошибка "Страница отсутствует".
    Изменены: STREAMS.
    15.02.2007 И.В.Ковалев
  + Код задачи 12487. Добавлен режим прорисовки области заголовков
    "задоченных" окон в стиле панели инструментов приложения.
    P: Для включения режима в проекте следует подключить модуль
       ThemedDockCaptions в любом месте секции uses.
    Добавлены: ThemedDockCaptions.
    Изменены: SonarVCL.dpk.
    13.02.2007 П.В.Ветошкин.
 P* Добавлен модуль с фабрикой отчета.
    Добавлены: rwffactory.
    13.02.2007 И.В.Ковалев
  > Changer.pas:
    * Модуль переведён в кодировку ANSI
    * tData_Changer переименован в tChangerBase
   !* Из OverChn выделен класс tdcProject и переименован в tChanger
    * Переименованы идентификаторы и имена типов параметров событий
      объектов изменения данных: произведена формальная замена "ev_dc" -->
      "ev_Changer_" и "tEvent_dc" --> "tEvent_Changer_"
    * Убрана глобальная переменная CCreateData_Ch вместо неё следует
      использовать функцию CreateChanger возвращающую, по-умолчанию
      экземпляр tChanger
    Изменены: Changer, DBUtils, TabInfo, SDBVCL
    13.02.2007 С.Н.Штуркин
  - После русификациии текстовых констант текст в кнопках в сообщениях и
    диалогах ввода мог выходить за пределы кнопки.
    P: Русифицирована функция GetAveCharSize(вычисляет среднюю ширину
       символов).
    Изменены: Dialogs.
    09.02.2007 М.А.Степанов
 P- В фабрике инт. записи неверно устанавливалась длина поля типа Code
    Изменены: INTDATAFACTORY.
    09.02.2007 И.В.Ковалев
 P* Добавлены tFDCollection.CreateStd, tFSCol.CreateStd
    Изменены: RWDATA.
    08.02.2007 И.В.Ковалев
 P- JVImageList.LoadBitMap_EnumResourceModules: Протоколирование
    исключений отключалось, но не включалось.
    Изменены: JVImageList.
    08.02.2007 М.А.Степанов
 P- В фабрике запроса не сохранялась информация об уровне доступа.
    Изменены: ReqFactory.
    08.02.2007 И.В.Ковалев
 P- Код задачи: 12468. EInvalidPointer при закрытии редактора запросов,
    если использовался Core.bpl собранный без отладки. Удалены модули
    Ole2, OleCtl, так как они содержат устаревшую поддержку OLE
    оставленную для совместимости и их использование может приводить к
    проблемам.
    Изменены: FormToRes, Core.dpk.
    Удалены: Ole2, OleCtl.
    07.02.2007 М.А.Степанов
 P+ Добавлена поддержка виртуальных потоков-потомков Classes.tStream
    Добавлены: Core\Streams
    07.02.2007 И.В.Ковалев (в SVN вносил С.Н.Штуркин)
 P+ Поддержка реестра отвязана от модуля Objects и базируется на SonarCore
    и Classes
    Добавлены: в Core\: RegDef, RegTypes, RegUtils, BFReg
    07.02.2007 И.В.Ковалев (в SVN вносил С.Н.Штуркин)
 P> SonarDB:
    * Переструктурирован код в модулях Table, IntData, DBase0, DBase2,
      DBase3, DBase4, DBase5, HtDescr, SDBAPI
    > Table.pas:
      * устранена зависимость от SDBAPI, SndName, DBUtils
      * Поля tTable ManegerField и SubField переименованы, соответственно,
        в MasterField и LinkField
    > IntData.pas:
      > tIARecord:
        + Понятие алиаса интегрировано в инт. запись: добавлено
          соответствующее свойство
        + Добавлено свойство RecordName: "имя" записи, формируемое по
          правилу: алиас, если у записи есть альтернативное имя, и
          DataFName в противном случае
        * CvalFieldFromName работает теперь с учётом алиасного имени
          записи
      > tGRecord:
        + Добавлен перечислитель, индексное свойство Items и свойство
          ItemCount для удобной обработки элементов композитной записи
        * Метод AddData переименован в AddItem
      * Устранена зависимость от DBUtils
    > DBUtils.pas:
      * FieldStr теперь возвращает String (было ShortString)
      * В связи с внесением понятия алиаса в инт. запись удалена поддержка
        алиасов из этого модуля. Удалены: FieldFromAliasRec,
        GetTabByAlias, SetAlias, GetAlias
      * Устранены предупреждения о deprecated-вызовах
    * В функции слияния добавлена возможность указания алиаса
    * SDBAPI.pas: Функции CalcSoundField, ExistOSKField, TestSoundField
      перенесены из Table.pas для устранения зависимости Table от SDBAPI
    * CrcMaker.pas: устранено предупреждение о неинициализированной
      переменной
    * В остальных модулях произведены необходимые адаптации
    Изменены: crcmaker, dbase0, dbase2, dbase3, dbase4, dbase5, dbutils,
    htdescr, intdata, SDBAPI, table, DBGridHnds, gridincrsearch, SdbVcl,
    SVCLUtils
    07.02.2007 С.Н.Штуркин
 P- Загрузка картинок из bpl производилась не всегда: при попытке
    подгрузки из bpl могло возникнуть исключение, прерывавшее процесс,
    кроме того, call-back обработки bpl возвращал неверное значение, что
    приводило к прерыванию процесса поиска картинки, если она не была
    обнаружена в первом bpl, поступившем на обработку. Исправлено.
    Изменены: JvImageList
    01.02.2007 С.Н.Штуркин
  - Код задачи 12422. Листалка таблицы (сетка). При появлении/исчезании
    полос прокрутки сетки не выполнялся перерасчёт количества видимых
    строк, и, если был установлен режим пропорционального масштабирования
    ширин колонок сетки, то масштабирование этих ширин не выполнялось.
    Проявлялось на диалоге выбора таблицы для открытия (Ctrl+Alt+T) в виде
    появления горизонтальной полосы прокрутки, которой при
    пропорциональном масштабировании ширин колонок быть не должно.
    Исправлено.
    Изменены: JvDBGrid, JvDBGrid.pas.patch.
    31.01.2007 П.В.Ветошкин.
 P* В SysUtils добавлена функциональность по управлению протоколированием
    исключений: процедуры DisableExceptionLog и EnableExceptionLog, а
    также функция IsExceptionLog
    Изменены: SysUtils, JDBInit, JCLDebug
    31.01.2007 С.Н.Штуркин
  - Код задачи 12373. Диалог изменения визуализации таблицы. При
    редактировании заголовков элементов списка визуализации нажатие на
    клавишу Enter или Esc приводило к закрытию формы диалога. Исправлено.
    Теперь, нажатие этих клавиш приводит к соответственно принятию или
    отмене отредактированного текста заголовка.
    Изменены: ComCtrls, DBGridHnds.xml.
    31.01.2007 П.В.Ветошкин.
 P- EAccessViolation при вызове LoadComponentFromResource
    Изменены: SVCLUtils.
    31.01.2007 И.В.Ковалев
 P+ Механизм сериализации: добавлена рассылка событий
    ev_Component_GetPersistentName для определения значения ссылки на
    компонент при сериализации и ev_Component_FindNestedComponent для
    преобразования сериализованной ссылки в объект при восстановлении
    Изменены: Classes
    31.01.2007 С.Н.Штуркин
 P- GetOpt.StringToArgV: текст в кавычках обрабатывался неверно, если был
    аргументом параметра
    Изменены: GetOpt
    31.01.2007 С.Н.Штуркин
 P* Устранено использование конструкции class helper для tFont, приводившей
    к невозможности подключить модуль richview.
    Изменены: Graphics.
    31.01.2007 И.В.Ковалев
 P* Изменена кодировка строк, которые хранятся в фабриках в типе
    WideString.
    Изменены: Factory.
    31.01.2007 И.В.Ковалев
  + Код задачи: 12356. Доработки дизайнера запросов: доработана работа с
    параметрами, исправлены ошибки, изменен интерфейс процедуры
    ExeReqForm.
    Изменены: EditReqH, GridReq, IntRecDesigner, JoinDesigner,
    RelLimitForm, ReqDesigner, ReqEditor, ReqFieldViewer, ReqTree,
    ReqUtils, SPopupList, VSTLink, frmEnterValue.xml, frmIntField.xml,
    frmIntRec.xml, frmRelLimit.xml, frmReqTree.xml.
    19.01.2007 М.А.Степанов
  - Код задачи 12381. Если был установлен режим пропорционального
    масштабирования ширин колонок сетки при изменении её размера, то при
    большом числе колонок масштабировалась только последняя. Исправлено.
    Изменены: JvDBGrid.
    Добавлены: JvDBGrid.pas.orig, JvDBGrid.pas.patch.
    19.01.2007 П.В.Ветошкин.
  - Диалог изменения визуализации таблицы. Не сохраялись ширины тех
    колонок, которых не коснулись операции добавления/удаления.
    Изменены: DBGridHnds.
    19.01.2007 П.В.Ветошкин.
  - Код задачи 12387. Диалог изменения визуализации таблицы. Если сетка
    была построена для неслитой таблицы, то удаление колонки из этой сетки
    приводило к EAV. Исправлено.
    Изменены: DBGridHnds.
    19.01.2007 П.В.Ветошкин.
 P* Обновлены исходные тексты в каталоге ThirdParty:
    JCL rev. 1894
    JVCL rev. 11155
    Изменены: содержимое каталогов в ThirdParty: JCL, JVCL
    18.01.2007 С.Н.Штуркин
 P> Controls.pas:
    + tControl: добавлена рассылка события ev_Control_DblClick
    - tWinControl.Destroy: непосредственный вызов деструктора подчинённого
      компонента приводил к тому, что событие ev_Terminate не рассылалось.
      Исправлено: вызов Destroy заменён на вызов Free.
    Изменены: Controls
    18.01.2007 С.Н.Штуркин
 P- В DBGrid не рассылалось событие ev_WinControl_KeyDown, поскольку метод
    KeyDown в этом компоненте был перекрыт так, что метод предка не
    вызывался. Исправлено: событие рассылается явно.
    Изменены: DBGrids
    18.01.2007 С.Н.Штуркин
 P- Название свойства tSonarDB_Connection.Connected было написано
    неправильно (было "Connectd") - исправлено
    Изменены: SDBVCL
    16.01.2007 С.Н.Штуркин
 P- При выполнении Application.MainForm := nil происходило AV - исправлено
    Изменены: Forms
    15.01.2007 С.Н.Штуркин
  - Не работали русские горячие клавиши, размещённые на кнопках -
    исправлено
    Изменены: Forms
    12.01.2007 П.В.Ветошкин
 P* Классы, определённые в указанных ниже модулях, регистрируются
    автоматически при их использовании в секции uses
    Изменены: DBEditFrame, SDBGrid, SDBVCL
    12.01.2007 С.Н.Штуркин
 P* Добавлены модули для регистрации классов. Регистрация выполняется в
    секции инициализации этих модулей.
    Добавлены: vcl_registration, jvcl_registration, tblib_registration
    Изменены: jvcl.dpk, tblib.dpk, vcl.dpk
    12.01.2007 С.Н.Штуркин
  * Переведены на русский язык значения констант, используемых для
    диалогов, создаваемых функциями ShowMessage и MessageDlg
    Изменены: Consts
    12.01.2007 С.Н.Штуркин
 P> Forms:
    * В конструктор tFrame.CreateNew добавлен параметр "Dummy: Integer =
      0" для совместимости с C++ (на самом деле, чтобы успокоить
      компилятор)
    * Добавлен тип параметра tEvent_CustomForm_Close для соотв. события
    Изменены: Forms
    12.01.2007 С.Н.Штуркин
  + Код задачи 12321. Диалог изменения параметров визуализации. Поддержано
    редактрование заголовка колонки с помощью редактирования элемента
    списка визуализации.
    Изменены: DBGridHnds.
    12.01.2007 П.В.Ветошкин.
  + Код задачи 11213. Добавлен диалог изменения параметров визуализации
    таблиц в сетках (листалках). Возможности диалога.
    1. Изменение взаимного расположения колонок (столбцов) в сетке.
       Выполняется с помощью "перетаскивания" мышью выделенного поля (или
       выделенных полей) в списке визуализации, расположенном в левом
       верхнем углу диалога.
    2. Добавление колонок в сетку. Выполняется с помощью
       "перетаскивания" мышью выделенных полей из дерева, визуализирующего
       все таблицы и их поля, на которые можно выйти из основной таблицы,
       т.е. из той, для которой построена сетка. Если перетаскивается поле
       "чужой" таблицы, то после нажатия кнопки "Продолжить" диалога будет
       выполнено слияние этой таблицы с основной.
    3. Удаление колонок из сетки. Выполняется с помощью выделения
       удаляемых полей в спсике визуализации и нажатии клавиши "Del". Если
       удаляются все колонки полей подлитых таблиц, то после нажатия
       кнопки "Продолжить" диалога будет выполнено разлияние
       соответствующих таблиц.
    4. Установка слияний и разлияний таблиц (см. п.п. 2 и 3).
    5. Установка полей сортировки. Выполняется либо с помощью двойного
       щелчка мыши на соответствующем поле списка визуализации, либо
       "перетаскиванием" полей из списка визуализации или из дерева
       визуализатора в список сортировки, расположенный в левом нижнем
       углу диалога.
    6. Изменение направления сортировки по выбранному полю. Выполняется
       двойным щелчком мыши на соответствующем поле списков сортировки или
       визуализации. Примечание. Если щелчки выполняются на полях списка
       визуализации, то после переборе всех направлений сортировки
       соответствующее поле удаляется из списка сортировки.
    7. Удаление полей сортировки. Выполняется аналогично удалению полей
       визуализацуии, но над полями списка сортировки.
    9. Все произведённые действия по изменению визуализации можно отменить
       при нажатии кнопки "Отменить" диалога.
    Добавлены: DBGridHnds, DBGridHnds.xml, подкаталог SonarVCL\Images,
      im_Arrow_Down.bmp, im_Arrow_Up.bmp, im_Checked.bmp,
      im_Connect_Off.bmp, im_Connect_Off_Checked.bmp, im_Connect_On.bmp,
      im_Connect_On_Checked.bmp, im_Empty.bmp, images.rc.
    Изменены: DBase0, sonarvcl.py, SonarVCL.dpk.
    11.01.2007 П.В.Ветошкин.
 P+ Добавлен метод tNodeAdapter.Collapse, позволяющий программно
    сворачивать заданный узел визуализатора.
    Изменены: FieldViewer.
    10.01.2007 П.В.Ветошкин.
 P- tTable.DeleteTable. Перед удалением подлитых таблиц, корректировались
    значения номеров ссылочных полей, находящихся в таблице, которая была
    подлита позже удаляемой.
    Изменены: Table.
    10.01.2007 П.В.Ветошкин.
  * Поддержано масштабирование "задоченных" элементов при изменении
    размеров области "докинга".
    Изменены: CONTROLS.
    10.01.2006 И.В.Ковалев
  * Этот файл истории переведён в кодировку ANSI
    10.01.2007 С.Н.Штуркин
 P* Обновлены исходные тексты в каталоге ThirdParty:
    JCL rev. 1875
    JVCL rev. 11140
    Изменены: содержимое каталогов в ThirdParty: JCL, JVCL
    10.01.2007 С.Н.Штуркин
 P> Поле ввода с выбором из справочника:
    * Перестроение содержимого фрейма теперь происходит при изменении
      имени поля
    * Кнопка выбора из списка (эллипсис) теперь не получает фокус
      посредством кл. Tab в случае, если есть поле ввода значения
    * Смысловое поле теперь может получить фокус, но только в случае
      выбора его мышью, теперь стало возможным скроллирование и отметка
      текста в смысловом поле
    * Изменение размера tDBEditFrame сделано более аккуратно:
      гарантируется визуализация эллипсиса, размер поля ввода значения
      выбирается так, чтобы эллипсис был виден, на смысловое поле место
      отводится по "остаточному" принципу
    Изменены: DBEditFrame
    10.01.2007 С.Н.Штуркин
 P* Добавлен overload-вариант TryFindComponentByName, возвращающий признак
    успешности поиска компонента
    Изменены: SVCLUtils
    10.01.2007 С.Н.Штуркин
 P* Комментарии в модулях переведены в кодировку ANSI
    Изменены: Classes, Controls
    10.01.2007 С.Н.Штуркин
 P- tTable.DeleteTable. Перед удалением подлитых таблиц, корректировались
    значения номеров ссылочных полей, находящихся в основной таблице.
    tGRecord.AddData. Некорректно нумеровались алиасы многократно
    подливаемых таблиц.
    Изменены: IntData, Table.
    09.01.2007 П.В.Ветошкин.
  * Отменена задача 11945. Программы не будут запускаться под Win95 из-за
    отсутствия библиотеки msimg32.dll. Это сделано из-за использования
    функциональности этой библиотеки в стандартном компоненте Delphi.
    P: Добавлены компоненты delphi для использования docking, похожего
    на используемый в IDE Delphi.
    Изменены: GRAPHUTIL, vcl.dpk.
    Добавлены: CaptionedDockTree, Tabs, DockTabSet, tabs.res
    09.01.2007 И.В.Ковалев
 P> Код задачи 12298.
    + tGRecord. Добавлена автоматическая установка алиасов для записей
      подлитых таблиц. Алиас добавляемой записи можно задать вручную. Если
      запись с таким алиасом уже подлита, то генерируется исключение.
    * Алгоритм уникализации имён описателей полей (tFieldDefs) адаптирован
      с учётом алиасов, получаемых у записей подлитых таблиц.
    Изменены: IntData, SDBVCL.
    29.12.2006 П.В.Ветошкин.
 P* tFieldViewer. Устранено использование ресурсного файла FieldViewer.dfm.
    Удалены: FieldViewer.dfm.
    Добавлены: FieldViewer.xml.
    Изменены: FieldViewer, sonarvcl.py.
    28.12.2006 П.В.Ветошкин.
 P* В конструкторе tDBEditFrame устранено использование, фактически
    фиктивного, ресурса из dfm-файла, для инициализации объекта
    используется новый конструктор фрейма CreateNew
    Изменены: DBEditFrame
    Удалены: DBEditFrame.dfm
    28.12.2006 С.Н.Штуркин
 P+ tFrame: добавлен конструктор CreateNew, обеспечивающий возможность
    инициализации фрейма в потомках tFrame без наличия dfm-файла
    Изменены: Forms
    28.12.2006 С.Н.Штуркин
 P+ Добавлен дизайнер запросов. Пока реализована только часть
    функциональности по редактированию запроса.
    Из каталога SonarVCL в каталог SonarVCL\Req перенесены модули касающиеся
    работы с запросами.
    Добавлены: EditReqH, GridReq, IntRecDesigner, JoinDesigner,
    RelLimitForm, ReqDesigner, ReqEditor, ReqFieldViewer, ReqTree,
    ReqUtils, SPopupList, VSTLink, JVMemoryDataSet.
    Изменены: SonarVCL.dpk, SonarVCL.py.
    28.12.2006 М.А.Степанов
 P- Устранено использование переменной SUBD при выполнении запросов.
    Изменены: Joiner, GrProj, RqSData.
    28.12.2006 М.А.Степанов
 P* Добавлен тип tSDBGrid, поддерживающий инкрементный поиск.
    Добавлены: SDBGRID, gridincrsearch.
    Изменены: Type2Str, SonarVCL.dpk
    28.12.2006 И.В.Ковалев
 P+ Код задачи 12290. tFieldViewer. В параметры события
    ev_FieldViewerFilterItem добавлены поля FieldNo и EnableCreateChild
    (см. комментарий к tTevent_FieldViewerFilterItem в модуле
    FieldViewer).
    Изменены: FieldViewer.
    27.12.2006 П.В.Ветошкин.
 P+ Код задачи 12279. Добавлен метод tTable.DeleteTable, удаляющий
    подлитую таблицу. Если по полям этой таблицы подлиты другие таблицы,
    то они также удаляются.
    Изменены: IntData, Table.
    26.12.2006 П.В.Ветошкин.
 P- Модуль FastMM4 не компилировался в режиме FullDebugMode.
    Изменены: FastMM4.
    25.12.2006 С.А.Барсуков.
 P- tFont: установка шрифту стиля fsBold (жирный шрифт) не приводила к
    нужному результату.
    Изменены: Graphics.
    25.12.2006 М.А.Степанов
 P+ Код задачи 12250. tFieldViewer. Добавлено свойство TopItem, содержащее
    адаптер самого верхнего узла дерева.
    Изменены: FieldViewer.
    18.12.2006 П.В.Ветошкин.
 P+ Код задачи 12240. tFieldViewer. Добавлено свойство ShowRoot,
    позволяющее в режиме просмотра полей таблицы визуализировать эту
    таблицу в виде корневого узла дерева. Этот узел создаётся раскрытым.
    Изменены: FieldViewer.
    15.12.2006 П.В.Ветошкин.
  - Не работало чтение/запись для Мемо-поля средствами tSonarDB_Table,
    значение tField.Size для полей типа ASCII, Мемо устанавливалась на 2
    единицы больше.
    Изменены: SdbVcl.
    13.12.2006 И.В.Ковалев
 P+ Код задачи 12222. Добавлены свойства и методы tFieldViewer.Selected,
    tNodeAdapter.Level и tNodeAdapter.Expand.
    Изменены: FieldViewer.
    13.12.2006 П.В.Ветошкин.
 P> Изменена структура каталогов:
    * VCL-based\Sonar перенесён в корень и переименован в SonarVCL
    * VCL-based переименован в ThirdParty
    * В каталоге VCL добавлены подкаталоги DB и VCL для того, чтобы
      структура больше соответствовала принятой в Borland
    * В каталоге VCL убраны все файлы "XXXX, v00.pas", убран также
      oleacc.pas: он включается в пакет Core.bpl
    12.12.2006 С.Н.Штуркин
 P* В каталог VCL добавлен подкаталог XML со стандартной поддержкой XML
    Добавлены: VCL\XML\*.pas
    12.12.2006 С.Н.Штуркин
 P* Добавлен модуль XMLUtils, обеспечивающий, в частности преобразование
    бинарного представления сериализованных объектов в XML и наоборот.
    Изменена программа FormToRes: теперь файл-источник должен быть
    полностью в формате XML.
    Изменены: FormToRes
    Добавлены: SonarVCL\XMLUtils
    12.12.2006 С.Н.Штуркин
 P* Устранен код, вызывавший предупреждения компилятора о понижении области
    видимости метода CreateObject.
    Изменены: dowreqfactory, DsLimit, grprojfactory, IntDatafactory,
    RecReqFactory, ReqFactory, ReqLimFactory, TchReqFactory.
    12.12.2006 И.В.Ковалев
  - Запросы, сохраненные с помощью файбрики запросов с условием "все
    условия выполнены" подгружались с услоием "хотя бы одно из условий
    выполнено".
    Изменены: reqfactory.
    12.12.2006 И.В.Ковалев
 P> Код задачи 12204. tFieldViewer.
    * В режимах связи lm_DataType и lm_FieldName, если по заданному полю
      можно выйти на несколько полей таблицы, то для визуализации этой
      таблицы используется столько узлов, сколько полей связи имеет данная
      таблицы. Имя поля связи указывается в скобках после имени таблицы.
    + В tNodeAdapter добавлено свойство FieldNo. Если узел визуализирует
      поле, то FieldNo - номер этого поля в соответствующей таблице. Если
      узел визуализирует таблицу, то FieldNo - номер поля связи, по
      которому эта таблица может быть связана с вышестоящей. Если
      визуализатор работает в режиме показа таблиц БД, то в узлах самого
      верхнего уровня (т.е. узлах кот. визуализируют эти самые таблицы)
      значение FieldNo < 0.
    Изменены: FieldViewer.
    11.12.2006 П.В.Ветошкин.
 P* tFieldViewer. Поддержан режим ссылок на подсхемы по "перекрёстному"
    совпадению имён полей (алиасных или собственных).
    Изменены: FieldViewer.
    08.12.2006 П.В.Ветошкин.
 P- tFieldViewer. В список подсхем, на которые можно выйти по типу
    заданного поля, входили только те, которые имели главный или
    уникальный ключ этого типа.
    Изменены: FieldViewer.
    08.12.2006 П.В.Ветошкин.
 P+ Код задачи 12182. Поддержка доп. функциональности запросов. Функция
    определения, использует ли данный запрос данный источник данных.
    Изменены: SonarVCL.dpk.
    Добавлены: VCLReq.
    07.12.2006 Д.И.Кобрусев
 P* Функции GetTextWidth вынесены из модуля DBEditFrame в SVLUtils.
    Изменены: DBEditFrame, SVLUtils.
    07.12.2006 М.А.Степанов
 P- tGrProjRequest.hnd_InitInstance: Исключение EAV если SUBD = nil.
    Изменены: GrProj.
    06.12.2006 М.А.Степанов
 P* tUserReq.EditRequest: изменения в типах параметров для нового
    редактора запросов.
    Изменены: Request.
    06.12.2006 М.А.Степанов
 P- Исключение EAV при обработке событий мыши. Проявлялось в редакторе
    запросов.
    Изменены: Controls.
    06.12.2006 М.А.Степанов
 P> tSDataLink:
    - При уничтожении tSDataLink могло происходить EAV. Связи типа "в списке"
      работали только после изменения ведущей таблицы.
    * Поле ReqLinkInfo.hTD устанавливается для любых типов связи.
    Изменены: DSLimit.
    06.12.2006 М.А.Степанов
  - Исключение "Cannot set data of control that has no dock orientation"
    при подгрузке информации о "докинге" при наличии центральной панели
    "докинга".
    Изменены: JvDockTree.
    Добавлены: JvDockTree.pas.patch
    05.12.2006 И.В.Ковалев
 P* Добавлен наследник границы запроса, позволяющий связывать экземпляры
    tSonarDB_Table
    Добавлены: DSLIMIT.
    05.12.2006 И.В.Ковалев
 P- Поддержка не компилировалась из-за отсутствия модуля JVListView.
    Добавлены: JVListView.
    05.12.2006 П.В.Ветошкин.
 P> Код задачи 12180. Визуализатор полей/таблиц (tFieldViewer).
    + Добавлено событие ev_FieldViewerFilterItem фильтрация создаваемых
      узлов дерева. Рассылается перед созданием узла.
    + Добавлено свойство визуализатора MultiSelect, для
      включения/выключения возможности мультивыбора в дереве.
    Изменены: FieldViewer.
    05.12.2006 П.В.Ветошкни.
 P> Код задачи 11213.
    + Добавлен компонент класса tFieldViewer, предназначенный для
      просмотра полей в таблицах заданной БД (подробнее см. комментарий в
      модуле FieldViewer).
    * Устранено дублирование имён в создаваемых описателях полей, которое
      происходило при их создании для слитой таблицы.
    + В скрипт сборки пакета SonarVCL добавлено копирование ресурсных
      dfm-файлов в подкаталог !Bin.
    Добавлены: FieldViewer.
    Изменены: SDBVCL, JVCL.dpk, SonarVCL.dpk, SonarVCL.py.
    04.12.2006 П.В.Ветошкин.
 P+ Из пакета JVCL подключен модуль JvImageList с изменениями,
    обеспечивающими поиск ресурсов в всех BPL, используемых исполняемым
    модулем
    Добавлены: JvImageList, JvImageList.pas.patch
    Изменены: JVCL.dpk
    04.12.2006 С.Н.Штуркин
 P* Исходные тексты JCL приведены в соответствие с rev. 1828,
    JVCL в соответствие с rev. 11070
    04.12.2006 С.Н.Штуркин
 P* Для событий ev_Action_XXXX заведены свои типы параметров, в настоящий
    момент соответствуют tEvent_NotifyEvent
    Изменены: Classes
    04.12.2006 С.Н.Штуркин
 P+ Элементы управления: добавлена рассылка событий ev_Control_MouseUp и
    ev_Control_MouseDown
    Изменены: Controls
    04.12.2006 С.Н.Штуркин
 P* Добавлены модули фабрики запросов, изменены названия
    функциональности в модуле FACTORY.
    Изменены: FACTORY, REQLIMIT, SDBVCL, SONARVCL.DPK.
    Добавлены: reqfactorycnstr, dowreqfactory, IntDataFactory,
    grprojfactory, recreqfactory, reqfactory, reqlimfactory,
    tchreqfactory.
    28.11.2006 И.В.Ковалев
 P* Добавлена возможность отключить фрагмент текста "[+]" при получении
    текстового представления запроса.
    Изменены: REQUESTS.
    23.11.2006 И.В.Ковалев
 P- В проектах, работающих с ANSI-кодировкой при получении текстового
    представления запроса строки, полученные из ресурсов были в
    ANSI-кодировке, а все остальное - в OEM-кодировке, теперь весь текст в
    ANSI-кодировке.
    Изменены: REQUESTS, DOWREQ, REQCONST, REQLIMIT, TCHINFRQ.
    23.11.2006 И.В.Ковалев
 P- Для проектов, работающих в ANSI-кодировке не удавалось загрузить
    запрос с названием из русских букв из файла запроса из-за того что
    нарушался порядок сортировки имен.
    Изменены: OBJECTS.
    23.11.2006 И.В.Ковалев
 P* Поддержано сохранение/восстановление tSonarDB_Table.Request (для этого
    используется published свойство RequestFactory).
    Изменены: SDBVCL, SONARVCL.DPK.
    Добавлены: FACTORY.
    23.11.2006 И.В.Ковалев
 P- Если параметром функции GetOwnDataBase передавался не tSubject и не
    tSubSchema, то происходило исключение EAV.
    Изменены: SDBAPI.
    22.11.2006 П.В.Ветошкин.
 P- Для экземпляра tEdit, вставленного в tGrid не срабатывал обработчик
    события tEdit.OnChange
    Изменены: Grids.
    21.11.2006 И.В.Ковалев
 P* Исходные тексты JCL приведены в соответствие с rev. 1819,
    JVCL в соответствие с rev. 11016
    Изменены: большое количество модулей, изменения связаны, в основном, с
    отличиями в строках расшифровки ключевых слов Subversion.
    13.11.2006 С.Н.Штуркин
 P* Адаптированы изменения в JCL и JVCL на 10.11.2006
    Изменены: JclResources, JvAppXmlStorage, JvCombobox, JvDBGrid,
    JvPropertyStore, JvResources, Jcl.dpk, Jvcl.dpk
    Добавлены: JclSynch, JvStrings
    11.11.2006 С.Н.Штуркин
 P+ Добавлено событие ev_Control_Click: обёртка метода Click элементов
    управления
    Изменены: Controls
    11.11.2006 С.Н.Штуркин
 P> Поддержка фоновых процессов:
    - tIdleClient: Значение в поле fActive игнорировалось при чтении
      значения свойства Active - исправлено
    * Запрос фонового диспетчера у nil теперь возвращает фоновый диспетчер
      приложения. Это даёт возможность обрабатывать фоновые кванты внутри
      компонентов, не вставленных в Application
    - function CreateIdleManager: не инициализировались параметры события
      app_CreateIdleManager - исправлено
    Изменены: IdleMan, IdleVCL
    11.11.2006 С.Н.Штуркин
 P* Для определения активности пользователя используется новое событие
    ev_Application_WindowProc, что позволило контролировать такие действия
    пользователя как перемещение и измененире размеров элементов
    управления
    Изменены: IdleVCL
    08.11.2006 С.Н.Штуркин
 P> tApplication:
    + Добавлено событие ev_Application_WindowProc, рассылаемое в случае
      появления сообщения Windows в каком-либо элементе управления
      приложения
    - tApplication.EventListChange: не вызывался метод предка - исправлено
    Изменены: Forms
    08.11.2006 С.Н.Штуркин
 P+ Добавлено событие ev_Controls_WindowProc: обёртка над WindowProc
    элемента управления
    Изменены: Controls
    08.11.2006 С.Н.Штуркин
 P* tIdleController теперь самозакрывается на событие ev_Finalize
    компонента (ранее для этого обрабатывалось ev_Terminate)
    Изменены: IdleVCL
    05.11.2006 С.Н.Штуркин
 P* Теперь при выполнении деструктора tIdleClient не рассылается событие
    об изменении фонового диспетчера (ev_IdleClient_SetManager). Полезно
    для обработчиков этого события, освобождающих клиент при установки
    диспетчера в nil (см. tIdleClient): в противном случае в этом примере
    возникает бесконечная рекурсия.
    Изменены: IdleMan
    05.11.2006 С.Н.Штуркин
 P* JVCL: адаптированы изменения на 03.11.2006
    Изменены: JvDBGrid, JvTabBar, JvTranslateString
    04.11.2006 С.Н.Штуркин
 P+ Адаптировано содержимое модуля UsrInact: функции, используемые в
    реализации фоновых процессов для увязки их с временем бездействия
    пользователя. В tAppIdleController добавлена функциональность по
    сохранению информации о времени проявления пользователем активности.
    Изменены: IdleVCL
    02.11.2006 С.Н.Штуркин
 P+ Добавлена поддержка фоновых процессов для VCL
    Добавлены: Core\IdleMan, VCL-based\Sonar\IdleVCL
    Изменены: Core.dpk, SonarVCL.dpk
    31.10.2006 С.Н.Штуркин
 P* Добавлена сборка WindowsXP.res и NoOem.res
    Изменены: VCL-based\vcl_based.py
    Добавлены: в "VCL-based\": WindowsXP.Manifest, WindowsXP.rc, nooem.rc
    30.10.2006 С.Н.Штуркин
 B- Код задачи 12594. Не криптовалась часть заголовока HDT с наиболее часто
    используемымим значениями полей.
    !!! Поскольку структура HDT поменялась необходимо запустить
    восстановление.
    Изменены: htstruct, httables.
    12.03.2007 С.А.Барсуков
BP- Код задачи 12601. tDopReqHandler. Если запрос кем-нибудь освобождался,
    в дальнейшем происходил несанкционированный доступ.
    Изменены: GrProj, SonarCore.
    05.03.2007 Д.И.Кобрусев
BP> Код задачи 12612. Адаптированы изменения, произведённые в ветви поддержки.
    - Код задачи 12585. Построение (tBFRegStorage.AddPhysNum) или
      обновление (tBFRegStorage.AddPhysNum) индекса для элемента бинарного
      реестра. Вместо адреса элемента указывался адрес переменной, которая
      содержала адрес этого элемента. Проявлялось при копировании данных
      из бинарного реестра в виде ошибки "Ошибка (tAVLTree): дублирование
      уникального ключа.". При многократном вызове процедуры
      GetFileVerInfo не освобождалась память.
    Изменены: BFReg, FileInfo.
    05.03.2007 П.В.Ветошкин.
BP- Код задачи 12545. Вызов tLimitReq.SetUpLimit запроса по физическому
    номеру и несписочной, т.е. не предназначенной для условий "в списке"
    или "нет в списке" (поле fSrcTD = nil), приводил к ошибке: "Ошибка
    СУБД Неверный параметр (таблица). Код : 1."
    Проявление: Объединение запросов, один из который содержал насписочное
    ограничение на физический номер, с помощью AttachRequest приводило к
    вышеуказанной ошибке.
    Изменены: Requests.
    22.02.2007 Д.И.Кобрусев
 B* Код задачи 12128. Ускорено выполнение слияния при помощи tJoiner.
    Замедление проявлялось в утилите EXP_ASB.
    P: При подлитии при помощи tJoiner таблицы к слиянию выполняется
       уточнение таблицы к которой подливаем результатом слияния.
    Изменены: joinacc, joiner.
    22.02.2007 С.А.Барсуков.
 B- Код задачи 12539. При слиянии при помощи tJoinResult при определенной
    последовательности слияний мог построится неверный результат.
    Изменены: Hytech.
    22.02.2007 С.А.Барсуков
 B- Код задачи 12268. При слиянии при помощи tJoinResult при определенной
    последовательности слияний мог построится неверный результат.
    Изменены: htAsyncR, Hytech.
    22.02.2007 С.А.Барсуков
 B* Код задачи 12017. Ускорено чтение слитого результата.
    Изменены: htAsyncR, htdataio, Hytech.
    22.02.2007 С.А.Барсуков.
 B- Программы не запускались на компьютерах с процессором без MMX.
    Изменены: FastMM4Options.inc.
    19.02.2007 С.А.Барсуков
 B- Код задачи: 12455. В Pil_Adm если выполнить нестрогое отождествление
    ИГ с ИГ с КПП по установочным данным, просаживались две одинаковые
    связи о нестрогом отождествлении если иностранцы совпадали и по
    русским ФИО и по латинским.
    P: DistinctSelect, DistinctSelectByCount: если подаваемый список полей
       был пуст выборка не уникализировалась.
    Изменены: DBase4.
    05.02.2007 М.А.Степанов
 B- Код задачи: 12451. В Лег_Адм при автоматическом отождествлении при
    добавлении связей типа дубль и в Пилигриме при добавлении пачки бланков
    не устанавливались поля ДатаПост/ВремяПост.
    P: При пакетном добавлении не устанавливались поля ДатаПост/ВремяПост,
       если необходимость их установки была заказана флагом botfDateTimeResp.
    Изменены: BatchOpr.
    05.02.2007 М.А.Степанов
 B- Код задачи: 12371. В Легенде при сопоставлении оружия с текстом
    незаполненый калибр в тексте приводил к исключению '"" - некоректное
    значение вещественного числа'.
    Изменены: Records.
    17.01.2007 М.А.Степанов
 B- Код задачи: 12368. При сопоставлении лиц с текстом если в текстовом
    файле у лица дата рождения не указана то такое лицо не совпадало с
    лицом с пустой датой рождения.
    P: Записи из модуля Records, преобразование строки в поле типа
       дата(tDateField._SetAs), если была подана пустая строка в поле
       устанавливалась некая умолчательная непустая дата(из-за особенности
       поведения функции DateStringToDate).
    Изменены: Records.
    16.01.2007 М.А.Степанов
 B- Код задачи 12354. Если в функции Python, вызываемой из отчёта, была
    допущена ошибка в строке, содержащей символ форматирования (например
    "%s"), то вместо сообщения об ошибке вычисления значения ячейки отчёта
    выдавалось сообщение "Нет аргумента для строки форматирования %s".
    Исправлено.
    Изменены: RWFExec.
    15.01.2007 П.В.Ветошкин.
 B* Код задачи 12121. Неверно вычислялся объем использованной памяти
    (AllocMemSize). Проявилось в exp_asb как ошибка "Нет памяти для работы."
    Изменены: FastMM4, getmem.inc.
    25.12.2006 С.А.Барсуков.
BP- В консольных утилитах информация о провисшей памяти выдавалась диалогом, а
    не выводилась в консоль.
    Изменены: FASTMM4.
    31.10.2006 С.А.Барсуков.
BP> Код задачи 12211. Записи из модуля Records:
    + Поле типа дата. Для преобразования из/в строки(-у) формат берётся из
      поля Format, если оно не пустое. Если пустое - LongDateFormat (как и
      было).
    - Установка полей через свойства AsString, AsBinary, AsBoolean,
      AsVariant работала неправильно - поданное начение трактовалось как
      целое число.
    Изменены: Records.
    15.12.2006 Д.И.Кобрусев
 B- Код задачи 12185. Отчёты. Узлы, свзанные с вышестоящими связью вида "в
    списке" или "нет в списке" работали неверно: выполнение отчёта могло
    прпеваться с шибкой HyTech: "Разные таблицы операндов" или другой, а
    если не прерывалось, поля записей в таком узле содержали мусор.
    Изменены: ReqAPI, RWFExec.
    08.12.2006 Д.И.Кобрусев
 B- Код задачи 12169. В VM на выходе возникала ошибка:
    "Несанкционированный доступ..."
    Изменены: Printers2.
    30.11.2006 Д.И.Кобрусев
                                 --- * ---

DSP v3.0.0 (GUI) от 30.10.2006
Базовая версия: DSP v2.6.10 от 27.10.2006
-----------------------------------------

  Версия поддержки для GUI
  30.10.2006 С.Н.Штуркин
  ~~~~~~~~~~~~~~~~~~~~~~~~

  * Глобальная переменная ObjectBeforeFree перенесена в секцию реализации
    и объявлена как threadvar. Для доступа к ней из других пакетов
    добавлены процедуры ObjectBeforeFree и SetObjectBeforeFree
    Изменены: System
  + Новый модуль SonarCore: низкоуровневая поддержка расширенного
    делегирования. Модель выделен из Objects: вынесено всё, что касается
    расширенного делегирования, плюс tSafeRef и tObjRef. Кроме того, для
    компиляции SonarCore в каталог Core перенесены модули Arrays и AVL.
    Изменены: Objects, AVL
  > Модуль Controls:
    + tControl: событие ev_Control_ContextPopUp
    + tWinControl: события ev_WinControl_KeyDown, ev_WinControl_KeyUp,
      ev_WinControl_KeyPress
    + proc. send_ContextPopUpEvent, send_KeyEvent, send_KeyPressEvent
    Изменены: Controls
  > Модуль Forms:
    > tApplication:
      + свойство MainForm теперь доступно для изменения
      + события ev_Application_Idle, ev_Application_Message,
        ev_Application_Activate, ev_Application_Deactivate
    + tCustomForm: событие ev_CustomForm_Close
    + proc. send_CloseEvent
  + Добавлен каталог VCL-Based с подкаталогами:
    JCL: усечённый набор модулей из JEDI Component Library
    JVCL: усечённый набор модулей из JEDI Visual Component Library
    TBLib: поддержка стиля Windows XP для элементов управления
    VirtualTrees: визуальный компонент для отображения древовидных
    структур
    Sonar: специфические компоненты Sonar

  Замечания:
  ~~~~~~~~~~
 1. В остальных модулях поддержки произведены адаптации, соответствующие
    описанным выше изменениям.
 2. В эту версию поддержки не вошли модули, привязанные к Turbo Vision.
                                 --- * ---
