1с регулирование изменить шаг
Глобальные действия - это действия, которые вы можете выполнять в любом состоянии программы. При этом не важно, что на данный момент открыто в "1С:Предприятии". Главное, чтобы приложение не было занято выполнением какой-либо задачи.
Глобальные действия - это действия, которые можно вызывать в любом месте запущенной платформы "1С:Предприятие 8". Независимо от того, что именно происходит в запущенной конфигурации, смысл глобальных действий не меняется (например, нажатие Ctrl+N всегда будет вызывать диалог создания нового документа).
"Горячие" клавиши для глобальных действий
Действие
Сочетания клавиш
Как работает программа
Создать новый документ
Открывает окно, в котором будет предложено выбрать тип создаваемого нового документа в различных форматах - например, в текстовом, табличном или HTML
Открыть существующий документ
Открывает стандартное диалоговое окно "Открыть", доступное через меню "Файл/Открыть…"
Активизация поля поиска в командной панели
Устанавливает курсор в это поле
Alt + Enter
Ctrl + E
В зависимости от того, на что установлен курсор, открывает соответствующую палитру свойств этого объекта или элемента. Полезно при работе с таблицами, текстом, HTML и т. п.
Вызвать содержание справки
Вызывает содержание справки
Вызвать индекс справки
Вызывает индекс справки
"Горячие" клавиши: глобальные действия
Глобальные действия - это действия, которые вы можете выполнять в любом состоянии программы. При этом не важно, что на данный момент открыто в "1С:Предприятии". Главное, чтобы приложение не было занято выполнением какой-либо задачи.
Глобальные действия - это действия, которые можно вызывать в любом месте запущенной платформы "1С:Предприятие 8". Независимо от того, что именно происходит в запущенной конфигурации, смысл глобальных действий не меняется (например, нажатие Ctrl+N всегда будет вызывать диалог создания нового документа).
"Горячие" клавиши для глобальных действий
Действие
Сочетания клавиш
Как работает программа
Создать новый документ
Открывает окно, в котором будет предложено выбрать тип создаваемого нового документа в различных форматах - например, в текстовом, табличном или HTML
Открыть существующий документ
Открывает стандартное диалоговое окно "Открыть", доступное через меню "Файл/Открыть…"
Активизация поля поиска в командной панели
Устанавливает курсор в это поле
Alt + Enter
Ctrl + E
В зависимости от того, на что установлен курсор, открывает соответствующую палитру свойств этого объекта или элемента. Полезно при работе с таблицами, текстом, HTML и т. п.
Вызвать содержание справки
Вызывает содержание справки
Вызвать индекс справки
Вызывает индекс справки
"Горячие" клавиши: общие действия
Общие действия - действия, которые имеют один и тот же смысл в различных объектах конфигурации, но поведение платформы "1С:Предприятие 8" меняется в зависимости от того где именно вы используете то или иное общее действие. Например, нажатие на клавишу "Del", помечает на удаление текущий элемент справочника, если вы находитесь в окне списка элементов справочника. Или удаляет содержимое текущей ячейки табличного документа, если вы его редактируете.
"Горячие" клавиши для общих действий
Действие
Сочетания клавиш
Как работает программа
Удаляет элемент под курсором (текущий элемент) или выделенную группу элементов
Позволяет добавить новый элемент
Сохранить активный документ
Сохраняет активный документ
Печать активного документа
Вызывает диалог печати для активного документа
Печать на текущий принтер
Инициирует непосредственную печать активного документа на принтер, назначенный в системе по умолчанию (без открытия диалога печати)
Копировать в буфер обмена
Ctrl + C
Ctrl + Ins
Копирует необходимый элемент или выделенную группу элементов в буфер обмена ОС Windows
Вырезать в буфер обмена
Ctrl + X
Shift + Del
Вырезает необходимый элемент или выделенную группу элементов в буфер обмена ОС Windows. Отличается от копирования тем, что копируемый элемент или группа после попадания в буфер удаляется
Вставить из буфера обмена
Ctrl + V
Shift + Ins
Вставляет в место, отмеченное курсором находящиеся данные из буфера обмена ОС Windows
Добавить к буферу обмена как число
Используется для числовых значений
Добавить к буферу обмена
Используется для числовых значений. Операция сложения с данными в буфере обмена
Вычесть из буфера обмена
Используется для числовых значений. Операция вычитания с данными в буфере обмена
Выделяет все доступные элементы в активном документе
Отменить последнее действие
Ctrl + Z
Alt + BackSpace
Отменяет последнее совершенное действие
Вернуть отмененное действие
Ctrl + Y
Shift + Alt + BackSpace
Позволяет отменить "Ctrl + Z", иными словами - вернуть то, что вы сделали до нажатия отмены последнего совершенного действия
Открывает диалог настройки параметров поиска в активном объекте конфигурации и выполнения этого поиска
Находит следующий элемент, соответствующий указанным в настройках поиска параметрам
Найти следующий выделенный
Находит следующий элемент, соответствующий тому, который вы выделили (например, на котором установлен курсор)
Находит предыдущий элемент, соответствующий указанным в настройках поиска параметрам
Найти предыдущий выделенный
Ctrl + Shift + F3
Находит предыдущий элемент, соответствующий тому, который вы выделили
Открывает диалог поиска и замены значений (там, где это разрешено)
Свернуть (узел дерева, группу табличного документа, группировку модуля)
Используется там, где доступны узлы деревьев, отмеченные значками "+" или "-"
Выделяет все доступные элементы в активном документе
Отменить последнее действие
Ctrl + Z
Alt + BackSpace
Отменяет последнее совершенное действие
Вернуть отмененное действие
Ctrl + Y
Shift + Alt + BackSpace
Позволяет отменить "Ctrl + Z", иными словами - вернуть то, что вы сделали до нажатия отмены последнего совершенного действия
Открывает диалог настройки параметров поиска в активном объекте конфигурации и выполнения этого поиска
Находит следующий элемент, соответствующий указанным в настройках поиска параметрам
Найти следующий выделенный
Находит следующий элемент, соответствующий тому, который вы выделили (например, на котором установлен курсор)
Находит предыдущий элемент, соответствующий указанным в настройках поиска параметрам
Найти предыдущий выделенный
Ctrl + Shift + F3
Находит предыдущий элемент, соответствующий тому, который вы выделили
Открывает диалог поиска и замены значений (там, где это разрешено)
Свернуть (узел дерева, группу табличного документа, группировку модуля)
Используется там, где доступны узлы деревьев, отмеченные значками "+" или "-"
Свернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные
Свернуть (все узлы дерева, группы табличного документа, группировки модуля)
Ctrl + Shift + Num + (-)
Развернуть (узел дерева, группу табличного документа, группировку модуля)
Развернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные
Развернуть (все узлы дерева, группы табличного документа, группировки модуля)
Ctrl + Shift + Num + (+)
Ctrl + Page Down
Ctrl + Alt + F
Быстрое листание активного документа
Ctrl + Page Up
Ctrl + Alt + B
Используется там, где поддерживается и возможно форматирование текста
Переход к предыдущей web-странице/главе справки
Используется в HTML-документах
Переход к следующей web-странице/главе справки
Прервать исполнение отчета системы компоновки данных
"Горячие" клавиши: управление окнами
В этом разделе объединены общие для всех окон и форм платформы "1С:Предиприятие" "горячие" клавиши.
"Горячие" клавиши для управления окнами
Действие
Сочетания клавиш
Как работает программа
Закрыть активное свободное окно, модальный диалог или приложение
Этой комбинацией можно быстро завершить работу всей конфигурации на платформе "1С:Предприятие", поэтому пользуйтесь ей осторожно
Закрыть активное обычное окно
Закрывает текущее обычное окно
Закрыть активное окно
Закрывает текущее активное окно
Активизировать следующее обычное окно
Ctrl + Tab
Ctrl + F6
Позволяет активизировать следующее окно среди открытых в рамках конфигурации. Нажатие в цикле с удерживанием клавиши Ctrl позволяет листать отрытые окна "вперед"
Активизировать предыдущее обычное окно
Ctrl + Shift + Tab
Ctrl + Shift + F6
Позволяет активизировать предыдущее окно среди открытых в рамках конфигурации. Нажатие в цикле с удерживанием клавиши Ctrl позволяет листать отрытые окна "назад"
Активизировать следующую секцию окна
Активирует следующую секцию текущего окна
Активизировать предыдущую секцию окна
Активирует предыдущую секцию текущего окна
Вызвать системное меню приложения или модального диалога
Позволяет увидеть системное меню операций (свернуть, переместить, закрыть и т. п.) над окном программы или открытого модального диалога
Вызвать системное меню окна (кроме модальных диалогов)
Alt + Hyphen + (-)
Alt + Num + (-)
Позволяет увидеть системное меню операций (свернуть, переместить, закрыть и т. п.) над активным окном
Вызвать главное меню
Активирует главную панель с кнопками текущего окна. Тем самым вы можете выбирать действия без участия мыши
Вызвать контекстное меню
Отображает контекстное меню над текущим активным элементом. Аналогично нажатию правой кнопки мыши на нем
Вернуть активность обычному окну
Возвращает активность обычному окну после работы с контекстным меню. Внимание! В любом другом случае, Esc инициирует закрытие активного окна
"Горячие" клавиши: управление формами
Здесь собраны "горячие" клавиши, упрощающие и ускоряющие работу с различными формами, которые созданы в конфигурациях, написанных на платформе "1С:Предприятие".
"Горячие" клавиши для управления формами
Действие
Сочетания клавиш
Как работает программа
Перейти на следующий элемент управления/вызов кнопки по умолчанию
Переход между элементами управления на форме "вперед" (см. Tab)
Вызов кнопки по умолчанию
Как правило, у различных форм назначена кнопка по умолчанию (она отличается от других - например, выделена жирным). Использование этой комбинации клавиш позволяет из любого места открытой формы активировать кнопку по умолчанию
Перейти на следующий элемент управления
Переход между элементами управления на форме "вперед"
Перейти на предыдущий элемент управления
Переход между элементами управления на форме "назад"
Активизирует командную панель, связанную с активным элементом управления/формой
Активирует главную панель с кнопками текущей формы. Тем самым вы можете выбирать действия без участия мыши
Перемещение по элементам управления, объединенным в одну группу
Используя клавиши-курсоры можно быстро перемещаться между сгруппированными элементами управления
Закрывает окно текущей формы
Восстановить положение окна
Если сбились какие-то параметры окна формы, эта комбинация позволяет вернуть все назад
"Горячие" клавиши: работа со списком и деревом
"Горячие" клавиши этого раздела помогут эффективно работать без использования мыши в многочисленных списках и деревьях, которые активно используются в различных объектах конфигураций на платформе "1С:Предприятие 8".
"Горячие" клавиши для работы со списком и деревом
Действие
Сочетания клавиш
Как работает программа
Открывает для изменения элемент, на который установлен курсор. Клавиша аналогична действию "Изменить" на стандартной панели кнопок формы
Ctrl + Shift + R
F5
Обновляет данные в списке или дереве. Особенно актуально для динамических списков (например, список документов), когда для них не включено автообновление
Создает новый элемент списка, используя в качестве шаблона текущий элемент. Аналогично кнопке "Добавить копированием"
Создает новую группу. Аналогично кнопке "Добавить группу"
Непосредственное удаление текущего элемента. Внимание! Используйте эту комбинацию с большой осторожностью в динамических списках, так как отменить удаление нельзя
Перемещение строки вверх
Ctrl + Shift + Up
В списках, где разрешено изменение порядка строк, позволяет передвинуть текущую строку вверх. Аналогично кнопке "Переместить вверх"
Перемещение строки вниз
Ctrl + Shift + Down
В списках, где разрешено изменение порядка строк, позволяет передвинуть текущую строку вниз. Аналогично кнопке "Переместить вниз"
Перенести элемент в другую группу
Ctrl + Shift + M
Ctrl + F5
Позволяет быстро переместить текущий элемент (например, справочника) в другую группу
Перейти на уровень вниз с одновременным раскрытием группы
Переходит внутрь папки, на которой был установлен курсор
Перейти на уровень вверх (к "родителю")
Выходит наверх из папки, в которой вы находились
Завершает с сохранением изменений редактирование элемента списка
Раскрыть узел дерева
Используется там, где доступны узлы деревьев, отмеченные значками "+" или "-"
Закрыть узел дерева
Раскрыть все узлы дерева
Инвертирует значение флажка текущего элемента (включает или отключает его)
"Горячие" клавиши: поле ввода
Поле ввода - активно используемый элемент управления во множестве мест форм конфигураций. "Горячие" клавиши для поля ввода позволяют быстро выполнить часто используемые действия над ним. Особенно полезно использовать эти клавиши там, где разработчик конфигурации не вывел нужные вам кнопки управления полем ввода.
"Горячие" клавиши для поля ввода
Действие
Сочетания клавиш
Как работает программа
Переключить режим вставки/замены
Аналогично поведению при редактировании обычного текста, позволяет либо добавлять новые символы при вводе к старым, либо затирать старые новыми
Выбор соответствующего объекта, связанного с полем ввода (например, выбор нужного документа из списка). Аналогично кнопке поля ввода "Выбор"
Ctrl + Shift + F4
Открытие формы выбранного объекта в текущем поле ввода. Аналогично нажатию кнопки поля ввода "Открыть"
Очистить поле ввода от текущего в нем значения
Удалить символ слева от курсора
Работа с набранным текстом в поле ввода
Удалить символ справа от курсора
Удалить слово слева от курсора
Удалить слово справа от курсора
Перейти в начало строки
Перейти в конец строки
Нажатие указателем мыши кнопки "Вверх" для кнопки регулирования
Использование регулировки, если это разрешено в поле ввода. Например, изменение дат, счетчиков и т. п. Аналогично нажатию на кнопку "вверх" регулятора поля ввода
Нажатие указателем мыши кнопки "Вниз" для кнопки регулирования
Использование регулировки, если это разрешено в поле ввода. Например, изменение дат, счетчиков и т. п. Аналогично нажатию на кнопку "вниз" регулятора поля ввода
"Горячие" клавиши: поле картинки
Поле картинки - это стандартный элемент платформы "1С:Предприятие 8" для отображения графических изображений. "Горячие" клавиши помогут, например, комфортно просмотреть изображение, расположенное в поле картинки.
Особенности редактирования колонок табличного поля
Для уведомления о начале или окончании редактирования строки в табличном поле предназначены два события : ПередНачаломИзменения() и ПередОкончаниемРедактирования() .
Событие ПередНачаломИзменения() возникает перед началом интерактивного изменения строки табличного поля, т.е. при входе в редактирование при нажатии клавиши Enter или двойном щелчке левой кнопки мыши, а также при выполнении команды " Изменить " . Обработчик данного события имеет параметр Отказ , позволяющий отменить редактирование строки табличного поля. Важной особенностью данного события является то, что обработчик данного события вызывается только при начале редактирования существующей строки, а при добавлении новой строки не вызывается. Другой важной особенностью является то, что данное событие указывает именно на начало изменения строки табличного поля в целом, а не какого-либо значения в ячейке строки табличного поля. Поэтому при переходе с одной колонки табличного поля, находящегося в состоянии редактирования, на другую обработчик данного события не вызывается.
Событие ПередОкончаниемРедактирования () возникает перед окончанием редактирования строки, т.е. при нажатии клавиши Enter , выполнении команды " Закончить редактирование " или при щелчке мышью в другую строку табличного поля. Обработчик данного события имеет параметры НоваяСтрока , ОтменаРедактирования и Отказ . Параметр НоваяСтрока указывает, что заканчивается редактирование добавленной строки. Параметр ОтменаРедактирования указывает причину, по которой происходит окончание редактирования строки. Если значение данного параметра равно Истина , то происходит отмена редактирования в результате нажатия клавиши Esc . Наконец, параметр Отказ позволяет отменить окончание редактирования. Важной особенностью данного события является то, что обработчик данного события вызывается только при окончании редактирования строки и не вызывается при переходе от одной колонки табличного поля к другой.
Если же необходимо отслеживать изменение данных в ячейке строки табличного поля, находящегося в состоянии редактирования, то можно воспользоваться событием ПриИзменении() элемента управления, связанного с редактируемой ячейкой. Обработчик данного события вызывается после изменения значения в элементе управления при переходе от одной редактируемой ячейки табличного поля к другой.
Данный материал будет полезен и начинающим программистам 1С, и тем, кто хочет сделать свои разработки удобнее для пользователей. Кроме того, рассмотрим некоторые новшества платформы 8.3.10.
Начнём с того, что условимся о некоторых ограничениях:
- В статье рассматриваются концепции. Поэтому за рамками останутся решения, основанные на библиотеках / внешних компонентах
- Примеры, приведённые в статье, не претендуют на «Единственно-верное-решение».
В статье последовательно будет рассмотрено: как было в обычных формах, что случилось с приходом управляемых форм и какие сюрпризы нам преподнесла платформа 8.3.10.
Итак, давайте приступим.
Думаю, никого не требуется убеждать, что информирование о ходе выполнения длительного процесса в программе очень важно. Каждый пользователь может привести примеры, когда смотришь в экран и думаешь – «перезагружать не надо ждать» (пишите в комментариях – где вы предпочитаете ставить запятую).
И платформа «1С:Предприятие 8» в этом не исключение – в ней для отображения хода процесса имеется специальный элемент обычных форм «Индикатор» (или вид поля управляемой формы «Поле индикатора»). Давайте рассмотрим нюансы его использования.
Обычные формы
Придумать что-то проще, чем вывод индикатора выполнения процесса в обычных формах – сложная задача. А всё это благодаря тому, что в режиме толстого клиента в «1С:Предприятие 8» по умолчанию отсутствуют границы между клиентской частью и серверной частью. То есть выполнение программного кода и интерфейсных методов происходит, как правило, в одном контексте. Поэтому у разработчика не возникает необходимости задумываться о доступности необходимых свойств, процедур и функций.
Схематично работу «1С:Предприятие» в толстом клиенте можно представить следующим образом:
Рисунок 1. Схема работы «1С:Предприятие» в режиме толстого клиентаВ обычном режиме клиентский сеанс открывает постоянное соединение с базой данных, а выполнение программного кода на встроенном языке преимущественно происходит на стороне клиента.
В связи с этим в любой строчке кода, описывающего длительный процесс, можно оценить объем обработанных данных, получить процент его выполнения и поместить полученное значение в реквизит формы, связанный с выведенным на форму элементом «Индикатор». В этот момент пользователь увидит графическое изменение отображения полосы индикатора в интерфейсе – опять же, благодаря тому, что всё действие происходит на клиенте.
Самый простой «длительный процесс» с выводом процента выполнения в обычном режиме может выглядеть следующим образом:
Рисунок 2. Обычные формы – пример длительной операции с выводом процента выполнения в индикаторКак говорится – «проще не придумаешь». Никакого «лишнего» кода, всё максимально прозрачно, понятно и самое главное – работает!
На этом моменте кто-то из читателей ностальгично вздохнёт, так как мы переходим к следующей части статьи – к управляемым формам.
Управляемые формы
С приходом платформы 8.2 и управляемых форм ситуация с индикатором в корне изменилась. Но дело совсем не в версии платформы и не в новых формах, а в появлении новых видов клиентов для «1С:Предприятие» – тонкого и web-клиента. Схематично работу в управляемом режиме можно представить в следующем виде:
Рисунок 3. Схема работы «1С:Предприятие» в управляемом режимеЕсли провести сравнение с обычным режимом, то сразу бросаются следующие отличия:
- Постоянного соединения клиентской части с базой данных нет – их взаимодействие происходит только через сервер 1С (в файловом режиме вместо сервера 1С выступает некоторая эмуляция, но это уже другая история)
- Отсутствует постоянное соединение клиентской части с серверной
- Встроенный язык разделён на клиентский и серверный.
Как всё это повлияло на использование индикатора для отображения информации о ходе выполнения длительного процесса? Давайте подробно в этом разберёмся.
Обычно длительный процесс заключается в сложной обработке данных. Будь то групповое проведение документов, проведение сложных расчётов или выборка данных и заполнение ими отчётной формы.
Получается, что в том или ином виде всегда требуется доступ к базе данных и/или выполнение методов, доступных только на стороне сервера. Для этого на него необходимо передать управление.
Во время выполнения серверного вызова клиентская часть 1С становится неактивной и блокируется для дальнейшей работы до тех пор, пока вызов не завершится и управление не вернётся на сторону клиента. Поэтому, даже если во время выполнения процедуры на сервере производить изменение значения реквизита, отвечающего за данные индикатора, то на клиент вернётся только финальная величина.
Получается, что если взять код из предыдущего примера и просто разбить его на клиентскую и серверную часть, то получим долгое подвисание приложения, после чего индикатор резко установится в значение «100%».
Рисунок 4. Попытка использовать код из обычного режима в управляемомПри таком использовании индикатора от него пользы никакой нет. Поэтому разработчики идут на различные хитрости – выполняют длительные процессы «порционно» с отображением на полосе индикатора значений относительно «порций»; используют динамическое уменьшение скорости движения индикатора в зависимости от времени выполнения процесса; или придумывают другие варианты. Но ни один из них не имеет ничего общего с отображением выполнения конкретного процесса в режиме реального времени.
Именно поэтому при обновлении типовых конфигураций рядом с индикатором мы наблюдаем фразу примерно следующего содержания: «эта операция может занять длительное время – от нескольких минут до нескольких часов». И отчасти поэтому при формировании отчётов крутятся «безликие» круги-индикаторы, которые в виде простой анимации указывают на то, что программа вовсе не зависла.
Кстати, в «1С:Бухгалтерии предприятия, ред. 3.0» разработчики нашли интересное решение (видимо, чтобы бухгалтеры не скучали) – вместо кругов разместили милого котёнка.Не знаю, как на счет настроения, но понимания о планируемом времени окончания выполнения процесса этот котёнок точно не прибавляет.
Один из вариантов вывода индикатора для отображения хода выполнения длительного процесса заключается в следующем:
- Длительная операция запускается в виде фонового задания, в ходе выполнения которого промежуточные результаты помещаются во временное хранилище.
- На стороне клиента запускается обработчик ожидания, который с определённой периодичностью опрашивает временное хранилище и выводит данные из него в полосу индикатора.
Программный код будет состоять из двух частей: из кода интерфейсной части (в нашем случае – обработки) и кода общего модуля. Модуль формы обработки будет выглядеть примерно так:
Рисунок 5. Управляемые формы – пример длительной операции с выводом процента выполнения в индикатор. Модуль формы обработкиА общий модуль будет содержать процедуру для запуска в фоновом режиме:
Рисунок 6. Управляемые формы – пример длительной операции с выводом процента выполнения в индикатор. Общий модульДля тех, кто захочет проверить работоспособность данного примера, дополнительно приведём скриншот формы обработки:
Рисунок 7. Управляемые формы – пример длительной операции с выводом процента выполнения в индикатор. Форма обработкиНесмотря на то, что индикатор будет «живым», сказать, что эффект достигнут и пример рабочий, на сто процентов нельзя. Потому что между реальным состоянием выполнения процесса и интерфейсом пользователя есть аж целых две «прослойки» – временное хранилище и обработчик ожидания. При таком подходе мало того, что отображение идёт не в режиме реального времени, так ещё и возрастает возможность возникновения различного вида сбоев из-за использования промежуточных звеньев.
Подводя итог получаем, что для «правильной» работы индикатора в управляемых формах (то есть, как в обычном режиме – с привязкой к выполнению процесса в реальном времени) не хватает возможности инициировать сервером отправку данных на сторону клиентской части. И тут наступает самое время поговорить про сюрприз, который фирма «1С» преподнесла разработчикам в новой платформе «8.3.10».
Платформа «8.3.10»
На самом деле в платформе «1С:Предприятие 8.3.10» касательно индикатора ровным счётом ничего не изменилось. Там есть много других интересных «фишек». Например, система взаимодействий, инкрементальная выгрузка конфигурации в XML, новые режимы основного окна. Но всё это не относится к теме данной статьи. Поэтому, можно было бы уже закончить писать… Если бы не наши «пытливые умы».
Давайте чуть-чуть пристальнее взглянем на систему взаимодействий. Для этого возьмём описание с одного из сайтов фирмы «1С»:
Теперь посмотрим на определение протокола WebSocket на сайте Википедии:
Обратите внимание на ключевые слова: двухсторонняя связь между клиентом и сервером в режиме реального времени! То, чего так не хватало для нормального функционирования индикатора в управляемых формах! Давайте для лучшего понимания взглянем на схему работы «1С:Предприятие» и системы взаимодействий:
Рисунок 8. Схема работы «1С:Предприятие» с системой взаимодействийОстаётся вопрос: можно ли использовать систему взаимодействий для вывода хода выполнения процесса в индикатора? Ответ – можно конечно, но… Давайте сначала рассмотрим возможность информирования пользователя о ходе выполнения длительного процесса при помощи только системы взаимодействия.
Для этого нам потребуется длительный процесс, выполняемый в фоне:
Рисунок 9. Платформа 8.3.10 – пример длительной операции, выполняющейся в фоновом задании. Модуль формы обработки Рисунок 10. Платформа 8.3.10 – пример длительной операции, выполняющейся в фоновом задании. Общий модульКоторый мы дополним программным кодом работы с системой взаимодействия, достаточным для информирования пользователя о ходе выполнения процедуры в виде оповещений. Для этого нам будет необходимо немного изменить процедуру обработки фонового задания в общем модуле:
Рисунок 11. Платформа 8.3.10 – пример длительной операции с выводом процента выполнения в виде оповещения. Общий модуль Рисунок 12. Платформа 8.3.10 – пример длительной операции с выводом процента выполнения в виде оповещения. Пример работыТаким образом, у пользователя будет возможность увидеть процент выполнения фонового задания в режиме реального времени. Если он знает, куда смотреть.
Рисунок 13. Платформа 8.3.10 – пример длительной операции с выводом процента выполнения в индикатор. Процедуры обработчика ожиданияКонечно, это очередное использование промежуточного звена, неоправданные серверные вызовы и как следствие – запоздание отображения от режима реального времени.
Связано это с тем, что некоторые методы работы с системой взаимодействия не доступны на клиенте. Но это будет меняться, и разработчики платформы «1С:Предприятие» уже анонсировали, что в версии 8.3.11 на основе системы взаимодействий появится возможность инициирования сервером передачи информации на сторону клиента!
Вместо заключения
В настоящее время эргономика инструмента играет большую роль в дальнейшей его судьбе – будет оно активно использоваться/применяться или его отложат/выкинут.
И если раньше достаточно было показать пользователю куда/какие вводить данные в программе и где/какой он от этого будет видеть результат, то сейчас важно – удобно ли эти данные вносить и как быстро можно получить обратную связь.
Скорость реакции программы на действия пользователя тоже выходит на первый план. Даже минимальное ожидание отклика начинает вызывать раздражение, а задержка в обратной связи, длящаяся даже всего несколько секунд, может стать поводом к аварийному завершению работы приложения.
Поэтому при разработке конфигураций необходимо обращать внимание на программный код, выполнение которого может занять продолжительное время. И предусматривать механизмы оповещения пользователя о том, что программа выполняет процесс, а не зависла.
Конечно, не всегда представляется возможным в начале длительной операции предвидеть объем обрабатываемых данных или время выполнения операции. В этих случаях использование индикатора не будет давать пользователю достоверной информации о ходе процесса и его использование становится нецелесообразным. Поэтому порой приходится выкручиваться различными способами, чтобы работа в программе вызывала меньше негативных эмоций – использовать анимированные кольца или милых котят.
Если вас заинтересовала система взаимодействий, и вы хотели бы попробовать с ней поработать, но не знаете, что это такое и с чего начать – читайте следующую статью Система взаимодействий в платформе 8.3.10.
А пока – пишите в комментариях истории из своего опыта по работе с индикаторами!
Эта статья является логическим продолжением цикла статей «Первые шаги в разработке на 1С». В ней описывается среда разработки на платформе 1С, которая получила название “Конфигуратор”. Изучив данный материал, вы узнаете:
- Что такое дерево объектов, для чего оно нужно и как с ним работать?
- Для чего нужна палитра свойств, как её открыть, как в ней что-то отыскать?
- Когда нужно настраивать различные параметры конфигуратора и как это сделать?
- Что нужно сделать, чтобы можно было внести изменения в типовую конфигурацию?
- Как запустить конфигурацию в режиме отладки?
- Как подключиться к клиентской сессии в режиме отладки и посмотреть, что там происходит?
Рекомендуем ознакомиться с этой информацией не только начинающим программистам, но и всем тем, кто уже работал с конфигуратором и хочет ознакомиться с тонкостями его работы.
Применимость
В статье рассматривается платформа «1С:Предприятие» версии 8.3, поэтому вся информация актуальна для текущих релизов.
Основные приемы работы в конфигураторе
Дерево объектов – это первое, с чем Вы сталкиваетесь при запуске конфигуратора.
После запуска конфигурации для разработки, чтобы увидеть дерево объектов, необходимо выбрать один из двух пунктов меню Конфигурация (Открыть конфигурацию, если конфигурация еще не открыта, или Окно конфигурации, если закрыто просто само окно конфигурации).
Также можно использовать соответствующие кнопки.
Дерево объектов конфигурации отображает: какие сущности есть в конфигурации.
С помощью дерева объектов можно создавать новые элементы, редактировать, добавлять новые реквизиты и свойства.
Данное окно имеет режим закрепления. Кнопка с пиктограммой в виде скрепки в правом верхнем углу окна Конфигурация позволяет делать его прячущимся в тот момент, когда оно не активно.
Возможен поиск нужного объекта по первым буквам. Курсор автоматически позиционируется на нужном объекте.
Иногда дерево объектов называют метаданными. Во встроенном языке есть специальное свойство, которое так и называется Метаданные (т.е. данные о данных).
Одна из функций конфигуратора – это выгрузка/загрузка информационной базы. При выгрузке информационной базы получается упакованный файл с расширением dt.
Эту функцию мы уже подробно рассматривали в предыдущих статьях. Она используется в следующих случаях:
- для переноса базы данных из одного места в другое;
- как один из вариантов выполнения архивирования;
- для перевода файлового режима работы базы в клиент-серверный.
Для редактирования свойств объектов конфигурации существует три метода. Первый из них – вызов окна редактирования объекта (двойным кликом мыши).
Удобен для объектов с большим количеством свойств. Окно редактирования объекта «Документ1» представлено на рисунке.
Данный метод существует не для всех объектов. Например, исключением являются константы.
Следующий метод редактирования свойств объектов – с помощью палитры свойств, которая есть у всех объектов (и у простых, и у сложных). Соответственно, ее можно вызвать для любого объекта.
Вызов осуществляется через контекстное меню, пункт Свойства объекта (комбинация клавиш Alt+Enter).
В палитре все свойства представлены в виде списка. Можно выбирать соответствующие свойства и редактировать.
Метод удобен для объектов с небольшим количеством свойств, но может быть применен для любого объекта.
У палитры свойств есть режим закрепления (т.е. окно можно либо закрепить, либо сделать его прячущимся).
Свойства могут группироваться либо по категориям (как на рисунке), либо быть упорядоченными по алфавиту (удобно, когда точно известно название свойства, но не известна его категория). Группировки свойств можно сворачивать и разворачивать.
Возможно отображение только важных свойств. Переход в данный режим осуществляется нажатием на кнопку в виде воронки.
Если Вы не можете найти какое-то свойство, то, скорее всего, у Вас нажата данная кнопка.
Для каждого свойства существует описание (отображается внизу окна). Описание может быть скопировано в буфер и использовано для поиска по справке.
Возможно расположить категории свойств на отдельных закладках. Для включения данного режима на самой палитре свойств в контекстном меню выбирается пункт Закладками. Однако чаще удобнее работать именно списком.
С помощью палитры свойств удобно редактировать однотипные свойства для нескольких объектов, так как при переходе от одного объекта к другому палитра свойств отображается уже для другого объекта, при этом курсор остается на том же свойстве.
Еще один метод редактирования свойств объектов при помощи окна «Дополнительно». Для открытия этого окна выбирается объект конфигурации, затем в контекстном меню выбирается пункт Дополнительно.
В этом окне можно проставлять различные свойства данного объекта, которые, в основном, представлены в виде различных галочек.
Удобно использовать данное окно, если нужно провести классификацию нескольких объектов, например, по подсистемам. В этом случае вызывается данное окно и при переключении по объектам присваивается вхождение в подсистемы данного объекта.
Аналогично можно поступать с правами доступа, функциональными опциями, настройками командного интерфейса. Для того, чтобы настроить конфигуратор, нужно в меню Сервис выбрать пункт Параметры.
Откроется окно с достаточно большим количеством настроек и закладок.
На закладке Запуск 1С:Предприятия можно указать, какое приложение автоматически будет использоваться при запуске из конфигуратора (тонкий клиент, толстый клиент (управляемое приложение) и т.д.).
Если установлено значение Выбирать автоматически, то система будет ориентироваться на настройки самой конфигурации.
Внимание! Данная настройка влияет только на запуск из конфигуратора.
Здесь же можно настроить использование низкой скорости соединения (т.е. использование группировки данных, передаваемых на сервер, в пакеты).
При отладке, чтобы понять, как приложение работает на тонких каналах связи, можно настроить имитацию задержки при вызовах сервера.
На закладке Запуск 1С:Предприятие есть также подзакладка Дополнительные, где с помощью галочек можно установить ряд дополнительных параметров, которые влияют на запуск приложения из конфигуратора (будут ли отображаться показатели производительности, будет ли отображаться команда Все функции и т.д.).
На закладке Общие указывается: нужно ли только создавать объекты управляемого приложения или следует создавать объекты, которые есть и в обычном приложении.
На закладке Тексты можно настроить принципы редактирования и отображения текста (указываются шрифт, ширина табуляции и другие параметры).
На закладке Модули существует ряд подзакладок. Здесь настраивается, каким образом будет отображаться текст в модулях.
Каким образом будет выполняться Проверка, Группировка и Контекстная подсказка.
На закладке Справка указывается, каким образом будет выводиться справка.
Галочками можно указать те разделы, которые интересуют.
Чтобы получить возможность редактировать (видоизменять) типовую конфигурацию, необходимо в меню Конфигурация выбрать пункт Поддержка, далее Настройка поддержки.
Появится форма «Настройка поддержки». В данной форме следует нажать на кнопку Включить возможность изменения.
Система сделает предупреждение, что в дальнейшем невозможно будет обновлять конфигурацию полностью автоматически.
Если мы все же намерены вносить изменения, требуется нажать на кнопку Да. Появится окно «Настройка правил поддержки».
Если мы не стремимся к глобальным изменениям конфигурации, а будем пытаться обходиться лишь добавлением некоторых объектов, то изменять параметры по умолчанию в данной форме не стоит. Следует сразу нажать на кнопку ОК.
После этого нужно будет настроить правило поддержки для всей конфигурации в целом.
Для этого следует в табличной части формы «Настройка поддержки» в верхней строке (в которой указывается название конфигурации) в поле справа двойным кликом мыши вызвать форму «Настройка правил поддержки» (для данного объекта).
В появившейся форме необходимо выбрать правило Объект поставщика редактируется с сохранением поддержки и нажать на кнопку ОК.
Фому «Настройка поддержки следует закрыть». В результате произведенных действий у нас появится возможность добавления новых объектов. В окне конфигурации активизируется кнопка Добавить.
Если потребуется вносить изменения в уже существующие объекты конфигурации, то для каждого из этих объектов можно также изменить правило поддержки, как это мы сделали для всей конфигурации в целом.
Следует отметить, что программист не напрямую видоизменяет конфигурацию базы данных, а работает со своей конфигурацией, которая называется основной.
Если в основную конфигурацию были внесены какие-либо изменения, то в заголовке окна конфигурация появится маленькая звездочка (*).
Если основную конфигурацию требуется сохранить, то можно использовать пункт Сохранить из меню Файл или нажать соответствующую кнопку с пиктограммой дискеты.
В этом случае конфигурация базы данных еще не обновлена, о чем будет свидетельствовать восклицательный знак в названии окна «Конфигурация ».
Для обновления конфигурации базы данных в соответствии с произведенными программистом изменениями нужно вызвать пункт Обновить конфигурацию базы данных из меню Конфигурация, использовать клавишу F7 или соответствующую кнопку.
Чтобы запустить конфигурацию в пользовательском режиме можно выбрать пункт 1С:Предприятие из меню Сервис или использовать сочетание клавиш Ctrl+F5.
Можно запустить конфигурацию в режиме отладки (пункт Начать отладку из меню Отладка, клавиша F5 или соответствующая кнопка командной панели).
Отличие режима отладки от запуска в пользовательском режиме в том, что возможна остановка приложения в нужные моменты времени, считывание значений переменных и т.д.
При разработке в случае изменения конфигурации удобно сразу начинать отладку, система автоматически предложит сохранить базу данных, останется только дать подтверждение.
Если приложение запущено пользователем (не в режиме отладки), тем не менее при необходимости можно подключиться к процессу пользователя из конфигуратора и сделать отладку.
Сначала для заданного сеанса в режиме 1С:Предприятие через главное меню Сервис/Параметры нужно открыть окно «Параметры» и установить галочку Отладка в текущем режиме разрешена.
На будущее можно поставить галочку Устанавливать режим разрешения отладки при запуске.
После этого в конфигураторе нужно выбрать пункт Подключение из меню Отладка.
При этом появится окно «Предметы отладки» со списком процессов, которые можно отлаживать. В этом списке необходимо выбрать требуемый предмет отладки (сеанс пользователя) и осуществить к нему подключение нажатием на кнопку Подключить.
В следующих статьях цикла мы еще не раз будем обращаться к изучению возможностей конфигуратора. Так что не переживайте, если что-то в его интерфейсе вам пока не понятно.
Кстати, в следующей статье мы рассмотрим специальный инструмент конфигуратора – отладчик, без знания которого разработчику практически невозможно отладить свой программный код.
PDF-версия статьи для участников группы ВКонтакте
Статья в PDF-формате
Комментарии / обсуждение (14):
Добавляем на форму рамку группы и на нее размещаем переключатели через пункт меню:
Форма -> Вставить элемент управления… и в открывшемся окне выбираем переключатели:
В правой части окна добавляем значение переключателя столько, сколько нам необходимо, ставим галочку на «Акции – первый в группе», для того чтоб данный переключатель выбирался автоматически.
После того как добавим переключатели выберем тип данных для первого значения «Акции», в нашем случае присваиваем значение «ТипЦБ»:
А само значение переключателя вводится в Данные -> Выбираемое значение. Для Акции это 0, Облигации – 1, Векселя - 2 и Паи – 3. Но до введения этих данных необходимо проверить порядок.
Если переключатели идут не по порядку, то не будет осуществлено переключение, то есть не сможем выбрать значение облигации. Для того чтобы включить эту возможность, необходимо выбрать меню Форма -> Настройка порядка обхода и все переключатели разместить по порядку.
Проверьте значение выбираемого значения переключателей после исправления порядка.
Остается только в событии переключателя «акции» «При изменении» написать код программы:
Теперь при выборе переключателя «Облигации» дается возможность редактировать значение колонки НКД:
Похожие FAQ
Использование Web-сервисов для синхронизации баз данных в режиме online 1с 8.х 11Часто при ведении учета в различных конфигурациях 1с возникает необходимость выполнения обмена данных. Для решения этой задачи принято использовать Универсальный обмен данными XML или другие внешние обработки, общим у которых является использование Использование предложения ДЛЯ ИЗМЕНЕНИЯ 0
Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные (которые могут читаться транзакцией другого соединения) уже при считывании, чтобы исключить взаимные блокировки при записи. ДЛЯ ИЗМЕНЕНИЯ дает возможность указать в Использование транзакций 2
Использование транзакций в 1С Транзакция предназначена для записи в информационную базу согласованных изменений. Все изменения, внесенные в информационную базу после начала транзакции, будут затем либо целиком записаны, либо целиком отменены. Ключе Как заблокировать считываемые в транзакции данные, чтобы они не могли читаться из другой транзакции 0
Используется режим управляемых транзакционных блокировок (в автоматическом режиме для этой цели используется конструкция ДЛЯ ИЗМЕНЕНИЯ). Для того чтобы запретить чтение данных другими управляемыми транзакциями, следует устанавливать исключительный ре Как заблокировать считываемые в транзакции данные,чтобы они не могли изменяться из другой транзакции 0
Используется режим управляемых транзакционных блокировок (в автоматическом режиме ничего делать не нужно, система сама блокирует все считываемые данные). Для того чтобы запретить изменение данных другими транзакциями, следует устанавливать разделяемы Посмотреть все результаты поиска похожих
Еще в этой же категории
Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора
Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Поле выбора
Как ограничить список выбора? 8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Реквизит
Как активизировать, перевести фокус на необходимый элемент на форме? 6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Читайте также: