Должен знать каждый разработчик

38 18

Данный материал предназначен разработчикам для снижения своих временных трудозатрат.

Ниже описано то, что в справке не найти или находится с трудом, но необходимо на практике. 

Для доступа к Справке - сделать ярлык для справки и в свойствах указать Быстрый запуск по заданной комбинации клавиш - справка всегда доступна на экране и можно нормально копировать, т.к. при вызове через F1 не работает Ctrl+C ("...\NPO Computer\IS-Builder\7.X.X\Localization\ru\UnitedHelp.chm" - найдите поиском этот файл справки по диску где установлен клиент DIRECTUM). 

В Windows 7 справку можно вызывать так: нажать кнопку Win, набрать с клавиатуры "Справочная" и нажать Enter.

Утилиты разработчика: в сценариях, справочниках, функциях ... сделать видимой колонку: Дата изменения и при сортировке последние изменения будут сразу видны.

Сохранить вид справочника по умолчанию (видимость колонок) для все пользователей - Меню Вид -> Сохранить (у пользователя меню Вид->Восстановить). 
Алексей Дядин: «Вид по умолчанию применится только если пользователь открывает справочник впервые или если он делает восстановление вида.»

Если на карточке есть реквизит типа справочник, то открыть карточку значения в этом поле можно нажав на Ctrl + "..." (если нет вычислений на реквизите) или Ctrl+F4 если поле на форме только для просмотра.

Стандартный поиск документов в меню Поиск можно переопределить в записи EDOCUMENT_SEARCH (Утилиты администратора-Общее администрирование-Поиски) и включить нужные критерии (реквизиты) в стандартный поиск.

Условия поиска подтверждаются клавишей .
Дата сегодня задается нажатием Ctrl+Ж.

В редакторе вычислений:

Ctrl+Shift+I и Ctrl+Shift+U – сдвинуть выделенный блок текста на символ табуляции соответственно вправо или влево;
Ctrl+Alt+> и Ctrl+Alt+< - соответственно закомментировать или раскомментировать выделенный блок текста;
Ctrl+T – удалить слово справа от курсора;
Ctrl+U, Ctrl+L и Ctrl+I – изменить регистр букв выделенного текста соответственно на верхний, нижний или противоположный текущему регистру;
Ctrl+Shift+0…9 – установить закладку на выделенный текст, если ее нет, и снять, если есть;
Ctrl+0…9 – перейти к закладке.

Вызов справки по функции Ctrl+F1
Вызов подсказки осуществляется при нажатии комбинации клавиш Ctrl+Space на пустой области.
С помощью комбинации клавиш Ctrl+J вызывается подсказка с шаблонами операторов языка ISBL.
Подсказка по параметрам функции появляется при нажатии клавиш Ctrl+Shift+Space в области параметров функции.

Переход на указанную строку Alt+G 
Выполнить сценарий F9
Удобнее всего выходить из редактора вычислений c сохранением по Ctrl+Q
- F2 или Ctrl+S – сохранить изменения данных окна. Сохранение выполняется, если в окне есть измененная информация.

Если в редакторе вычислений пропал курсор, например после вызова справки функции, то вернуть его можно нажав два раза на клавишу Ins (это например, есть и другие способы вернуть курсор не выходя из редактора вычислений).

Для объекта Карточка для событий Сохранение До и Сохранение После - нельзя использовать функции, выводящие диалоговые окна, т.к. это может привести к блокировкам работы других пользователей на время показа диалогового окна.

Если нужно вставить картинку в несохраняемый реквизит при открытии карточки, чтобы кнопка Сохранить не становилась активной, можно использовать следующий вариант:

if not Object.Inserted
  Events = Object.Events
  Events.DisableAll()
  Rules = Object.Rules
  Rules.DisableAll()
  Object.Save
  Rules.EnableAll()
  Events.EnableAll()
endif

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

if Object.Inserted or Object.Modified
    Action = Object.Form.Actions.FindAction('SaveAndCloseAction')
  else
   Action = Object.Form.Actions.FindAction('EscAction')
endif
Action.Execute

Сделать колонку только для просмотра в детальном разделе - таблице:

//колонка только для просмотра
if not VarIsNull(Object.Form.Controls.FindControl("STcxGrid1"))
  Grid = Object.Form.Controls.FindControl("STcxGrid1")
  ReqColumn = Grid.FindColumnByRequisiteName("ISBVersionAuthor")
 if not VarIsNull(ReqColumn)
   ReqColumn.ReadOnly = TRUE
 endif
endif

Если нужно скрыть колонку в отображении справочника (меню Вид->Видимые колонки), то это можно сделать добавив запись на событие открытия набора данных:  Object.Requisites('Имя_реквизита').IsHidden = True. Таким образом, например, можно скрыть системные реквизиты или реквизиты, которые не всем нужно видеть.

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

View = Sender.Component.View
if not VarIsClear(View)
  View.Forms(FORMLIST_NAME).Actions.FindAction("DeleteAction").Enabled = FALSE //отключить действие справочника удалить
endif

Открыть карточку документа в указанном представлении, например тестовом, можно следующим образом:

if object.ISBEDocKind == "ПСД"
  object.ViewName = "Тест"
  object.Form.ShowModal
  Exit()
endif

Если нужно чтобы в одном главном представлении справочника открывались соответствующие представления карточек, то пример можно посмотреть в справочнике РКК, где в главном представлении открываются соответствующие карточки Входящих, Исходящих и Внутренних документов.

В редакторе форм:

Изменить размеры и положение выделенных элементов на форме можно с помощью мыши и с помощью клавиатуры +стрелки – для изменения размеров, Ctrl+стрелки – для изменения положения на форме (соответственно можно выделить несколько элементов с Shift).

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

Конечно же подразумевается, что вы не закрывая проводник с правами разработчика, запускаете второй проводник на своем компьютере с правами пользователя для проверки работоспособности внесенных изменений, указав в трее перед запуском логин и пароль соответствующей тестовой записи пользователя (щелкнуть в трее по значку службы паролей DIRECTUM (ключики) и в окне службы паролей указать логин\пароль пользователя).

Дополнительно:

Скопировать в буфер обмена можно следующим образом:

if assigned(Object.Текст)
  текст = Object.Текст
  buf = CreateObject("htmlfile")
  buf.ParentWindow.ClipboardData.Setdata("Text"; текст)
endif

14.09.12

Отправить POST запрос на Web-сервер из DIRECTUM можно следующим образом:

url="http://....."
ExceptionsOff()
FreeException()
  !XHR = CreateObject("Msxml2.XMLHTTP.3.0")
  !XHR.Open("POST"; url; false)
  !XHR.send(null)
ExceptionsOn()
if ExceptionExists()
  ....
endif

26.11.13

Если нужно написать поиск по критериям, получить быстро список реквизитов можно следующим способом:

SearchDescription = Searches.CreateNew(CkEDocument) // аналогично для ckFolder и т.д.
реквизиты = 'Критерии поиска:'
foreach RequisiteDescription in SearchDescription.RequisiteDescriptionList
  реквизиты = AddSubString(RequisiteDescription.Name & TAB & RequisiteDescription.Title; реквизиты; CR)
endforeach
EditText(реквизиты)

Пример с ИЛИ:

Search = Searches.CreateNew(ckEDocument)
Criteria = Search.SearchCriteria
критерий1 = Criteria.Add("ISBEDocKind")
критерий1.SetCompleteValue(" Д000064"&" ИЛИ "& " Д000063")

критерий2 = Criteria.Add('Проект')
критерий2.SetCompleteValue(код)

Search.Description = "Выберите ..."
Search.Show(ssmMultiSelect;False)

Заключение

Если всё описанное выше вы уже знаете и используете на практике - это значит что вы действительно разработчик! 

 

Ещё надо знать:

Варианты запроса данных в DIRECTUM

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

В помощь разработчику:

Альтернативный отладчик DIRECTUM

Подсветка синтаксиса ISBL в Notepad++

WebHelp

Дополнительно:

DIRECTUM 4.9.1 Обновление №1820

DIRECTUM 4.9.1. Интеграция с внешней справочной системой
Пример реализации: 

DIRECTUM 4.9.1. Изменения в платформе

DIRECTUM 4.9.1. Выпуск документации на версию системы DIRECTUM 4.9.1

DIRECTUM 4.9. Приятные дополнения для прикладных разработчиков

DIRECTUM 4.9. Поля множественного выбора

DIRECTUM 4.9. Новые возможности документации

DIRECTUM 4.8. Чиним баги, реализуем идеи. Недорого

DIRECTUM 4.8. Подсказки к объектам системы

DIRECTUM 4.8. Обновление документации

DIRECTUM 4.8. Изменения в платформе. Try - except

DIRECTUM 4.8. Раскрашиваем задачи

DIRECTUM 4.8. Изменения в платформе. Локализация.

DIRECTUM 4.8. Изменения в платформе. Прочие изменения

DIRECTUM 4.8. Изменения в платформе. Наименование

DIRECTUM 4.7/4.8. Новые события ТКЭД, типов справочников, заданий и уведомлений

DIRECTUM 4.8. Изменения в платформе: иерархия в справочниках

DIRECTUM 4.7. Веб представления папок

DIRECTUM 4.7. Универсальные папки

38
Авторизуйтесь, чтобы оценить материал.
3
Алексей Язынин
Если всё описанное выше вы уже знаете и используете на практике - это значит что вы действительно разработчик!
Или преподаватель )
Людмила Клевкова
Утилиты разработчика: в сценариях, справочниках, функциях ... сделать видимой колонку: Дата изменения и при сортировке последние изменения будут сразу видны.
А как быть с ТМ? :) Не могу найти колонку "Дата изменения"?
Александр Павлов

У типовых маршрутов нет колонки Дата изменения.

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

Андрей Манаков
Стандартный поиск документов в меню Поиск можно переопределить в записи EDOCUMENT_SEARCH (Утилиты администратора-Общее администрирование-Поиски)
Нужно ли что-то еще дополнительно делать для появления данной записи в компоненте "Поиски"? Т.к. по умолчанию там отображаются только поиски настроенные вручную.
 
С помощью комбинации клавиш ctrl+j вызывается подсказка с шаблонами операторов языка ISBL.
В каких случаях и в каких версиях она вызывается данным сочетанием?
Иван Чурбаков
Нужно ли что-то еще дополнительно делать для появления данной записи в компоненте "Поиски"? Т.к. по умолчанию там отображаются только поиски настроенные вручную.

 Если ее сейчас нет, надо создать и заполнить все необходимые критерии.
Петр Федотов

к вопросам отладки, еще есть сочетание Alt+G, позволяет перейти к строке с указанным номером. Если видите ошибку "... в строке 100500 ..." то жмете alt+g и сразу переходите на эту строку.

Александр Павлов
С помощью комбинации клавиш ctrl+j вызывается подсказка с шаблонами операторов языка ISBL. В каких случаях и в каких версиях она вызывается данным сочетанием?

В редакторе событий на свободном месте в 4.5.1 точно появляется.
Алексей Язынин

Еще: Механизм "ведущий-ведомый" работает только в визуальном режиме. Если вы заполняете ведомый реквизит программно, то нужно и ведущий реквизит заполнить программно. Система сама его не заполнит в этом случае.

Илья Мезян
Стандартный поиск документов в меню Поиск можно переопределить в записи EDOCUMENT_SEARCH (Утилиты администратора-Общее администрирование-Поиски) и включить нужные критерии (реквизиты) в стандартный поиск.
Данные манипуляции приводят к косякам в работе поиска в Веб доступе. Может в 4.8 исправят)
Александр Павлов
Данные манипуляции приводят к косякам в работе поиска в Веб доступе.
В 4.5.1 поиск работает нормально и в веб-доступе. Поясните пожалуйста, что конкретно работает не так.
Андрей Манаков

 

 
Данные манипуляции приводят к косякам в работе поиска в Веб доступе. Может в 4.8 исправят)

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

Илья Мезян

Когда мы изменили набор атрибутов поиска EDOCUMENT_SEARCH - в Веб доступе в области критериев поиска электронных документов, перестали отображаться ряд критериев и сама кнопка "Поиск", в толстом клиенте всё прекрасно работает.

Обратился с проблемой в службу поддержки, там сказали, что дефект зарегистрируют в следующих версиях исправят. Так что может в 5.7 только))

Мария Макарцева
-Условия поиска подтверждаются клавишей .

вобще волшебная кнопочка, она еще подтверждает указание параметров в отчетах и в других подобных диалогах, включая этот

- Переход на указанную строку Alt+G

 
Мария Макарцева
Если на карточке есть реквизит типа справочник, то открыть карточку значения в этом поле можно нажав на Ctrl + "..." (если нет вычислений на реквизите) или Ctrl+F4 если поле на форме только для просмотра.
Для реквизитов типа справочник с непереопределенным выбором Ctrl + F4 всегда показывает карточку - независимо от доступности изменения реквизита, а вот Ctrl + "..." - только если реквизит доступен. Для реквизитов с переопределенным выбором эту возможность должен обеспечить программист, например, функция SelectFromReferenceAction это предусматривает. 
Николай Перфильев

Подскажите какие еще есть имена действий и меню, аналогичные "DeleteAction" ?

Благодарю!

Иван Чурбаков

Свойство Actions - это список, так что можно по всем пройтись и посмотреть. Для формы-списка справочника их очень много.

Николай Перфильев

Иван, спасибо! Нашёл всё что искал ;) 

Николай Перфильев

И года в год,  актуальность не теряется! yes

Авторизуйтесь, чтобы написать комментарий