1

Тема: Некоторые изменения в готовящейся версии 050

Краткий обзор изменений в ядре комплекса за последние месяцы.

PDR-72352
При обновлении первичных документов методом spRootDoc:saveDoc() не обновляются не измененные пользователем поля.
Таким образом повышается безопасность при коллективной работе, а также не выполняются "пустые" транзакции при сохранении формы без какой-либо коррекции.
Также теперь можно всегда обращаться к не измененным значениям переменных полей, которые заполняются из полей в момент выполнения метода :calcVariables().
Они хранятся в новых свойствах :oldDCfield и :oldSDfield и представляют собой слепок полей на момент начала процедуры коррекции. Редактируемые значения, как и ранее, хранятся в свойствах :DCfield и :SDfield. При выполнении сохранения методом :saveDoc() будут обновлены только те поля, которые имеют различное значения в этих свойствах.


PDR-72351
Добавлено новое свойство немодального окна (SpDialogNoModal:lHidden).
Если оно равно .T., то при закрытии оно не разрушается, а скрывается. А для его повторного использования достаточно вызвать функцию FindHidModalWindow(xCargo), где  xCargo - cargo этого окна
Также добавлен 20-ый параметр в функцию создания окна первичных документов  SetViewDoc()
Если этот параметр lHidden равен .T., то окно документа будет затем использоваться для дальнейшего кеширования при его закрытии


PDR-72350
Ускорена работа с максимизированными окнами приложения

PDR-72347
Включена дополнительная обработка числовых полей на NULL при использовании виртуальных документов.
Они автоматически заменяются на 0

PDR-72317
Добавлено новое свойство в связь "Невидимо в связанных документах" с целью, чтобы не все документы, на которые настроили связи визуализировались как дочерние или родительские в форме "Связанные документы"

PDR-72313
Добавлены новые функции и метод для манипуляций с внешним видом форм ввода/коррекции и табличного представления первичных документов.
Имеется возможность динамически изменять отдельные элементы как на форме (EditScreen), так и в колонках
Разработаны новые функции работы с формами ввода/коррекции:
1. GetCurrentEditScreen() - возвращает форму объект окна ввода/коррекции, как в модальном, так и в немодальном режиме
2. GetEditScreenElement(cField, cType)
    параметры:
     - cField - строка, имя поля
     - cType  - строка, тип элемента. Значения : 'SLE' - элемент редактирования, 'STATIC' - элемент-заголовок элемента редактирования
    возвращает объект элемента редактирования
3. SetElementColor(cField, cType, [cTypeColor], [nColor], [cTitleName]) - назначает цвет элемента редактирования и текст заголовка
     - cField - строка, имя поля
     - cType  - строка, тип элемента. Значения : 'SLE' - элемент редактирования, 'STATIC' - элемент-заголовок элемента редактирования
     - cTypeColor строка, тип цвета. Значения : 'BG' - цвет подложки, 'FG' - цвет текста
     - nColor - число, цвет
     - cTitleName - строка или блок кода - текст заголовка
Добавлен новый метод класса SpViewDoc:updateColumnHeader(cFieldName,cHeader)
       замена заголовка колонки.
                          cFieldName     -  имя поля соответствующей колонки
              aMacro         -  строка заголовка (различные строки разделены символом ; (точка с запятой))     

PDR-72310
Добавлена возможность обращаться к комментарию документа в запросах.
При этом добавлена возможность использовать разные комментарии к документу в разных методах просмотра.
Для этой цели в расширенных свойствах документов теперь храниться новое свойство
"SQL-Формула комментария" -
   extdocproperties.koddoc   = doclist.koddoc
   extdocproperties.property = 'MESSCOMPSQL'
В ней поля документа имеют алиас "@cursor___DC".
Для получения комментария с требуемым алиасом возможно воспользоваться функцией
   GetMessComplSql(nKodDoc, cAlias), где
nKodDoc - код документа
cAlias  - алиас таблицы документа
Например, в SpFormBuilder можно выполнить такой запрос
SELECT {|| GetMessComplSql(181, 'dc')} as name, dc.koddoc FROM dc000002 dc WHERE priznak=181