Кнопка записать в 1с код

Обновлено: 07.07.2024

№1 Шпаргалка 1С. Добавление кнопок на форму.

№1 Шпаргалка 1С. Добавление кнопок на форму.

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


Кнопка является одним из наиболее часто используемых элементов управления в формах прикладных решений программы 1С:Предприятие. В этом видео-уроке мы вместе с вами создадим простейший прикладной объект 1С - так называемую "обработку", далее мы создадим основную форму обработки и научимся добавлять в эту форму такой важный элемент управления, называемый "Кнопка"

1. Создание тестовой обработки

Здравствуйте дорогие друзья! С вами Дегтярев Роман. Тренинг - Центр “Старт в 1С”.

Прочтите текст, и одновременно посмотрите короткую видео-шпаргалку, в которой речь пойдет о вставке интерфейсных элементов в форму какого-либо прикладного объекта 1С, ( в том числе и обработки 1С, на примере которой мы рассмотрим этот процесс)

Видео, на котором показан весь процесс, расположено ниже.

Вы можете просматривать это видео в высоком качестве и в полноэкранном режиме, используя кнопки управления проигрыванием видеоролика

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

Мы поговорим о вставке одного из видов интерфейсных элементов, использующихся в любом прикладном решении 1С:Предприятии, о вставке кнопок в форму.

Давайте с вами запустим наше учебное прикладное решение в режиме конфигурирования (разработки) Эта инструкция, об учебном прикладном решении, касается тех, кто обучается на наших курсах программирования 1С.

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

Для того, что бы нам было куда вставлять кнопки - предварительно создадим какую то отдельную обработку в дереве объектов конфигурации.

Итак , мы вошли в режим конфигурирования прикладного решения. Давайте с вами создадим обработку. Правдой кнопкой мыши нажимаем на узле “Обработки” и выпадает меню.

Выбираем в выпавшем меню пункт с именем “добавить”. Откроется окно визуального конструктора обработки.

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

Например, давайте дадим нашей обработке имя “Тестовая обработка”. Вы сами называйте так как вам требуется , если вы создаете обработку.

После присвоения имени нашей обработке можем внизу окна конструктора сразу же нажать кнопку “Закрыть” - поскольку иных действий выполнять не требуется.

Тестовая обработка создана, мы видим ее имя в дереве конфигурации, в узле “Обработки”. Давайте, щелкнем мышью на имени нашей обработки, развернем этот пункт и увидим под-элементы, которые могут входить в состав нашей обработки: “Реквизиты”, “Формы”, “Макеты” и так далее.

2. Создание основной формы обработки

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

Она является аналогом окна, формы любой другой программы под Windows - и может иметь в своем составе элементы меню, командные панели, поля ввода, надписи, кнопки, выпадающие списки и иные элементы управления - все те элементы, к которым мы привыкли при работе с большинством обычных программ.

Давайте нажмем правой кнопкой мыши на узле “Формы”, далее, выбираем в появившемся контекстном меню пункт с именем “Добавить”

Перед нами появляется окно конструктора формы обработки. С его помощью, на начальном этапе, мы можем указать некоторые особенности вновь создаваемой формы (ее программное имя, тип, является ли она основной, и так далее)

Но нам сейчас никаких особых настроек делать не нужно, поэтому мы просто нажимаем кнопку “Готово”, в нижней части окна конструктора формы обработки.

После этого перед нами открывается вновь созданная форма обработки 1С.

3. Теперь рассмотрим процесс создания кнопок в форме обработки

Итак, как же происходит вставка кнопок?

Обратим внимание, что по умолчанию, во вновь созданной форме, некоторые кнопки уже вставлены во время конструирования обработки. Эти кнопки вставлены автоматически.
Это стандартные кнопки “действий” двух, так называемых, командных панелей, что имеются в верхней части окна формы, и в нижней части окна.

Нас же сейчас интересуют те кнопки, которые мы вставим сами, “вручную”.

Для того, чтобы вставить какой то интерфейсный элемент, в том числе и кнопки, в конструируемую форму, мы должны нажать специальную кнопку с “иконкой” (на иконке виден желтый значок “плюс” ), открывающую окно выбора интерфейсного элемента для вставки.

Эта специальная кнопка с “иконкой” находится, как правило, на панели инструментов, под главным меню основного окна конфигуратора.
При наведении мыши над нужной кнопкой возникает подсказка “Вставить элемент управления”.

Если кнопка на панели инструментов отсутствует (это зависит от настроек панелей инструментов), у нас имеет альтернативный путь: Когда перед нами на экране имеется окно конструктора формы, мы можем выбрать из главного меню конфигуратора пункт: “Форма”/ “Вставить элемент управления”.

Независимо от того, нажали ли мы кнопку в панели инструментов, или выбрали действие из главного меню - перед нами открывается специальное окно выбора элемента управления, для вставки. Окно имеет заголовок “Вставка элемента управления”

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

Сейчас же нас интересует элемент “Кнопка”. По умолчанию, после открытия окна “Вставка элемента управления”, для вставки как раз выбран именно первый элемент из списка возможных и этот элемент управления - “Кнопка”.

Выбор вида элемента управления для вставки осуществляется в левой части окна, а в правой части окна дана возможность установить некоторые свойства элемента перед тем, как он будет вставлен в форму.

То есть, перед вставкой какого-то элемента управления в форму, его можно предварительно “подготовить”, установив основные его свойства: имя, заголовок, текст подсказки при наведении мыши, и некоторые другие свойства.

Например, любому элементу, в том числе и “кнопке”, мы можем присвоить какое то имя перед вставкой. Это имя будет являться именем объекта на встроенном языке 1С:Предприятие, именем программного объекта.

Это то имя, к которому потом можно будет обращаться из встроенного языка программирования .

Аналогично, мы можем присвоить какой то заголовок кнопке, надпись на ней. В нашем примере присвоим кнопке заголовок “Наша кнопка”.

Если мы желаем, чтобы по нажатию этой кнопки выполнялось какое-то действие на встроенном языке программирования, тогда мы не должны снимать галочку-флажок “создать процедуру”. По-умолчанию этот флажок включен.

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

Там же, в окне “Вставка элемента управления” мы можем вести текст подсказки, если желаем. Давайте в поле ввода “Подсказка” напишем - ”Это наша кнопка”. Эта подсказка будет появляться при наведение курсора мыши на вставленную кнопку.

Все, подготовка перед вставкой завершена, теперь нажимаем кнопку “Ок”.

После этого окно “Вставка элемента управления” закрывается и теперь мы можем вставить нашу кнопку в произвольное место нашей формы. Значок курсора мыши временно изменен на крупный “плюс” - таким образом система подсказывает, что мышью нужно указать конкретное место на форме, куда мы собираемся вставить элемент управления.

Выбираем место под кнопку в любой части нашей формы и нажимаем левую кнопку мыши. Наша новая кнопка вставилась в форму, и одновременно конструктор формы моментально переключает нас в окно редактора программного модуля формы.

Он показывает нам тело обработчика события нажатия вновь вставленной кнопки . То есть, мы сразу же можем написать код, который будет у нас вызываться при нажатии кнопки .

Давайте, все-таки, вернемся на закладку “Диалог” (закладки конструктора формы находятся снизу окна) и убедимся, что кнопка в форме появилась. Да, наша кнопка здесь!

Мы можем поменять ее размер, “потянув мышью” за угол кнопки, или куда-то сдвинуть нашу кнопку в пределах окна формы.

А перейдя снова в программный модуль (закладка “Модуль”) -мы можем писать код на языке программирования, для выполнения действий по нажатию нашей кнопки.

Впишем некоторый код, пусть он, для простоты, состоит всего из одной строчки “Сообщить(“Нажата наша кнопка!”);

Давайте проверим, запустим наша прикладное решение в режиме пользователя.

Далее, выберем в главном меню пункт “Операции”/”Обработки”. Вспоминаем, что мы создали обработку и назвали ее “Тестовая обработка”, поэтому обработку с таким именем мы и выбираем из открывшегося списка.

Тмк, мы видим перед собой форму нашей обработки. В форме мы видим нашу кнопку с заголовком “Наша кнопка”. Обратите внимание, подсказка “Это наша кнопка” появляется при наведение курсора мыши над кнопкой.

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

Резюме: Мы успешно вставили кнопку на форму обработки, и теперь вы должны уметь это делать. До встречи в видеоуроках .

С вами был Дегтярев Роман.

Тренинг-центр “Старт в 1С”

Как научиться программировать в 1С с нуля?

Как работать программистом 1С и получать до 150 000 рублей в месяц?


ЗАПИШИСЬ НА БЕСПЛАТНЫЙ

"ПРОГРАММИРОВАНИЕ в 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" для отображения графических изображений. "Горячие" клавиши помогут, например, комфортно просмотреть изображение, расположенное в поле картинки.

Запись и проведение документа в форме

Для понимания особенностей записи и проведения документа в форме следует, прежде всего, разделять особенности записи самого объекта ( ДокументОбъект ) и особенности работы расширения формы. Расширение формы документа действует, если основной реквизит формы имеет тип ДокументОбъект . Оно обеспечивает специфическую функциональность формы при редактировании и записи документа. Задача расширения заключается в реализации удобного для пользователя поведения формы. Но собственно запись и проведение документа выполняет, разумеется, объект, являющийся реквизитом формы. Расширение документа обрабатывает различные команды пользователя, выполняет предварительные проверки и другие сервисные действия, а затем вызывает запись объекта. Запись объекта выполняется так же, как и если бы она вызывалась средствами встроенного языка. То есть с точки зрения объекта запись в форме и запись средствами языка ничем не различаются. Таким образом, расширение обеспечивает некоторую сервисную функциональность, обращаясь в конечном итоге к функциональности объекта. Следует учитывать, что расширение формы действует, только если используются механизмы формы и не действует, если выполняется обращение непосредственно к объекту. Например, если вызвать метод Записать() у объекта ДокументОбъект , то никакие действия расширения формы не будут выполняться. Чтобы они выполнялись нужно вызывать метод ЗаписатьВФорме() .

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

Установка даты документа

При открытии формы нового документа, если дата документа не установлена (равна значению типа Дата по умолчанию), то документу устанавливается рабочая дата. Следует заметить, что используется именно рабочая дата, а не текущая (если не установлено использование текущей даты в качестве рабочей). Это дает возможность пользователю настроить рабочую дату так, чтобы новые документы вводились определенной датой. При этом в качестве даты устанавливается начало дня (дата без времени), даже если в качестве рабочей даты выступает текущая дата. Но если свойство АвтоВремя имеет значение НеИспользовать , и рабочая дата равна текущей, то устанавливается текущая дата, вместе со временем. Таким образом, для варианта АвтоВремя = НеИспользовать при открытии берется рабочая дата (если она отличается от текущей) или текущая дата вместе со временем, а для остальных вариантов установка времени откладывается на момент записи документа.

При записи нового документа в форме если свойство АвтоВремя имеет значение отличное от НеИспользовать , и не используется оперативное проведение, и время документа пустое (0:00:00), то выполняется автоматическая установка времени на основании значения свойства АвтоВремя . Действие расширения формы в этом случае аналогично вызову метода УстановитьВремя() с вариантом выбранном в свойстве АвтоВремя и с использованием журналов документа.

Расширение формы так же предоставляет команды для установки времени документа в начало дня, конец дня, перед предыдущим и за последующим документом.

Установка режима записи

При нажатии кнопки " ОК ", если для документа в метаданных разрешено проведение, документ записывается в режиме проведения.

Кроме того, расширение формы предоставляет две отдельные команды для записи с проведением и записи с отменой проведения.

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

Установка режима оперативного проведения

При записи документа в форме, расширение формы выполняет установку режима проведения (оперативное или неоперативное проведение). Установка выполняется по следующему алгоритму.

Вначале если свойство ИспользоватьРежимПроведения имеет значение Авто выполняется первичный подбор режима проведения из вариантов Оперативный , Неоперативный и Запрашивать .

Если у пользователя нет права на неоперативное проведение – используется оперативное проведение.

Если документ не проведен – используется оперативное проведение.

Если дата документа равна текущей, а время меньше или равно текущему, то используется режим Запрашивать . Здесь и далее в этой статье сравнение даты имеется в виду без учета времени, а сравнение времени описывается отдельно.

Если дата документа меньше текущей, то используется неоперативное проведение.

Если дата документа равна текущей и время больше текущего – используется оперативное проведение.

Дальнейшие действия системы определяются уже исходя из трех вариантов ( Оперативный , Неоперативный и Запрашивать ) установленных непосредственно в свойстве ИспользоватьРежимПроведения или на основании описанного алгоритма для варианта Авто .

Если дата документа меньше текущей, используется оперативный режим и у пользователя есть права на неоперативное проведение, то пользователю предлагается использовать неоперативный режим. Если пользователь отказывается, то запись документа отменяется.

Если дата документа меньше текущей, используется оперативный режим и у пользователя нет права на неоперативное проведение, то запись документа отменяется.

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

Если дата документа больше текущей и используется оперативный режим, то запись документа отменяется. Штатное поведение расширения формы не разрешает проведение документа завтрашней датой, даже если у пользователя есть права на неоперативное проведение. Это объясняется тем, что после появления документов проведенных завтрашней датой текущие остатки регистров используемых проводимыми оперативно документами перестают соответствовать реальным остаткам и механизм оперативного проведения для всех пользователей перестает работать адекватно.

Далее если используется режим Запрашивать , то пользователю выдается диалог с выбором режима проведения.

Полученный таким образом режим проведения ( Оперативный или Неоперативный ) используется при выполнении записи документа.

Проверка прав

При открытии формы документа, если документ проведен, а у пользователя нет права "Интерактивное изменение проведенных", то расширение переводит форму в режим ТолькоПросмотр .

При записи документа в форме выполняется проверка прав на интерактивное проведение и интерактивную отмену проведения в соответствии с текущим режимом записи.

Считывание движений

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

Читайте также: