7.2. Ввод нового документа
Ввод документа может осуществляться различными способами.
Если активным является окно какого-либо из существующих в системе журналов документов, то для ввода нового документа выберите пункт «Действия – Добавить» либо используйте кнопку
панели инструментов журнала.
Если в журнале могут отображаться документы нескольких видов, на экран будет выдан запрос для выбора вида документа. В этом списке будут выданы наименования документов только тех видов, которые могут отображаться в текущем журнале.
Если в журнале хранятся документы только одного вида, список видов документов выдаваться не будет, а сразу будет выдан диалог для заполнения реквизитов документа.
Пользовательский интерфейс может включать команды меню или кнопки панели инструментов, которые могут позволять сразу начать ввод документа – без открытия журнала, в котором отображаются эти документы. Для этого следует выбрать соответствующий пункт меню или нажать специально созданную для этого кнопку на пользовательской панели инструментов. Информация о порядке ввода конкретных документов может находиться в общем описании конфигурации.
Рассмотрим порядок заполнения реквизитов документов на примере документа «Счет на оплату покупателю».
В шапке любого документа присутствуют обязательные реквизиты «Номер» и «Дата», которые заполняются автоматически (номер – следующим за последним документом того же типа, дата – рабочей датой программы), но могут быть изменены вручную. Кроме этого, в шапке документов присутствуют и другие реквизиты, необходимые для записи данных об операции (в Счете это контрагент-покупатель, заключенный с ним договор, склад, откуда планируется отгружать продаваемый товар, банковский счет нашей организации, на который планируется поступление денег и т.д.). Эти реквизиты заполняются, как правило, выбором из соответствующих справочников.
Документ может содержать табличную часть. В нашем примере в ней отражается список продаваемой номенклатуры. Строки табличной части могут вводиться с использованием кнопки «Добавить»
или клавиши INS. Часть значений в колонках табличной части после выбора номенклатуры заполняется автоматически, но могут быть при необходимости исправлены вручную. При большой номенклатуре, вводимой в табличную часть документа, удобно пользоваться кнопкой
позволяющей осуществить множественный подбор из открывающегося справочника. При вводе таким способом следует только уточнять количество вводимой номенклатуры, необходимость же ввода новой строки для каждой новой позиции списка отпадает. Подбор осуществляется двойным щелчком мыши на нужной позиции, нажатием клавиши ENTER.
Выбранные позиции автоматически переносятся в табличную часть документа.
Строки табличной части документа можно:
? Вводить копированием – кнопкой
(или двойным щелчком по строке)
? Записывать после редактирования – кнопкой
? Менять местами – кнопками
? Выстраивать по возрастанию или убыванию реквизита выделенной колонки – кнопками
Например, если нужно выстроить введенные строки в порядке возрастания количества или цены товаров или в алфавитном порядке их названия.
или клавишей DEL. Причем удаление строки происходит без дополнительного предупреждения.
В нижней части любого документа находится текстовая строка комментария, в которой можно указать полезную информацию (например, а планируемом сроке оплаты). В печатную форму документа она не выводится.
Кнопка «Перейти» служит для просмотра движений по регистрам, которые были сделаны в результате проведения документа, если таковое предусмотрено модулем документа.
При нажатии кнопки формы документа, для которой определено проведение документа (обычно это кнопка «ОК» или «Провести»), производится проведение документа. При проведении документа информация, содержащаяся в документе, учитывается в регистрах путем создания записи регистров. Записи регистров – это информация о том, как изменяется состояние регистра в результате проведения документа.
В журнале документов проведенный документ будет помечен галочкой в колонке пиктограмм.
Чтобы сделать документ не проведенным, следует выбрать пункт «Действия» – «Отмена проведения». При отмене проведения, отменяются все действия, которые документ выполнил в процессе проведения. Не проведенный документ в журнале документов будет помечен пиктограммой без галочки.
Обычно при проведении документа кнопкой «ОК» после проведения документ закрывается. В некоторых случаях при проведении документа возникает ситуация, из-за которой проведение не может быть выполнено. Тогда на экран выводится сообщение:
При этом в нижней части экрана в служебном окне выводится сообщение о допущенной ошибке:
Если нужно ввести новый документ, реквизиты которого во многом совпадают с уже имеющимся в базе документом, можно воспользоваться копированием. Для этого в журнале курсор устанавливается на документ – образец и выбирается пункт меню «Действия – Скопировать» или нажимается пиктограмма
панели инструментов журнала.
На экран будет выведена форма нового документа с реквизитами, заполненными из документа – образца. Не копируются при использовании этого режима реквизиты «Номер» (новому документу присваивается очередной порядковый номер) и «Дата» (в качестве которой будет использована рабочая дата программы). После внесения необходимых изменений документ следует записать и провести.
В этой статье я приведу небольшой пример, который может возникнуть в реальной жизни, и который будет полезен начинающим программистам 1С, особенно тем, кто столкнулся с открытием одной управляемой формы из другой формы и передачей значений с формы на форму.
Рассмотрим следующую задачу: в табличной части некоторого документа есть реквизит «Пояснение» (тип строка), для удобства работы пользователей необходимо сделать так, чтобы при нажатии на кнопку «Лупа» поля ввода этого реквизита текущей строки табличной части, открывалась форма с многострочным полем ввода, где пользователь может ввести нужный ему текст. После нажатия на кнопку «Поместить» открывшейся формы вся информация из поля ввода должна быть передана в соответствующее поле текущей строки табличной части.
Для демонстрации решения, я использую учебную конфигурацию, где в табличной части документа «Поступление товаров и услуга» имеется реквизит «Пояснение» (строка (250)).
На форме документа у поля «Пояснение» таблицы формы в свойство «КнопкаОткрытия» установим значение «Да».
В результате у нас у соответствующего поля на форме появится кнопка Открыть.
Теперь создадим произвольную форму документа, которую назовем ФормаВводаПояснения.
У этой формы создадим реквизит управляемой формы «Ввод пояснения» (строка (250))
И поместим этот реквизит на форму в виде поля ввода. У поля ввода установим многострочный режим и уберем заголовок.
У командной панели формы снимем флаг «Автозаполнение»
Создадим команду формы «Поместить», которую разместим в командной панели формы в виде кнопки. И у этой кнопки установим флаг у свойства «Кнопка по умолчанию»
Теперь займемся параметрами. Вполне возможно, что в нашем поле таблицы формы документа уже будет какая-то информация, поэтому её необходимо будет передать в форму ввода пояснения. Для этого на форме ввода пояснения создадим параметр ПриемникПояснения, в который, впоследствии, и будем передавать значение пояснения из формы документа.
Теперь сделаем так, чтобы при открытии формы значение из этого параметра передавалось в реквизит «Ввод пояснения» из нашей формы. Для этого у нашей формы ввода пояснения создадим событие при создании на сервере.
В этом обработчике напишем следующий код
Нам осталось отработать нажатие на кнопку «Поместить», для этого создадим обработчик соответствующей команды в клиентском контексте.
В этом обработчике мы будем закрывать форму, а в качестве параметра закрытия передадим реквизит формы.
С этой формой мы закончили, перейдем к форме документа. На форме документа у поля Пояснения таблицы формы создадим обработчик события ПриОткрытии в клиентском контексте.
Это событие возникает, когда пользователь нажимает на кнопку «Открыть» соответствующего поля.
В обработчике события, первым делом, в параметр СтандартнаяОбработка установим значение Ложь. Тогда при нажатии на кнопку открытия, не будет срабатывать стандартная обработка платформы, которая срабатывает при нажатии на эту кнопку.
Теперь в этой же процедуре нам нужно получить значение поля Пояснение текущей строки.
Это значение мы будем передавать в качестве параметра в форму ввода пояснения при её открытии. Для этого я создам структуру, где в качестве ключа будет название параметра из формы ввода пояснения (ПриемникПояснения), который мы создали в форме ввода пояснения, а в качестве значения структуры будет значение, которое мы только что получили.
Открывать формы мы будем при помощи метода глобального контекста ОткрытьФорму, передадим в неё параметры ввода, а также установим, чтобы блокировалось окно владельца.
Если мы на этом остановимся, то у нас форма ввода пояснения откроется, информация из формы документа там появится, но информация с формы пояснения не будет передана в форму документа, как мы планировали. Для того, чтобы это произошло необходимо создать описание оповещения, в котором будет указан метод, который сработает после закрытия формы ввода описания. В конечном итоге у нас должен получиться следующий обработчик события нажатия на кнопку открытия.
В описании оповещения мы указали процедуру ПослеВыбораПояснения. Нам необходимо создать такую процедуру в клиентском контексте, и сделать её экспортной.
В этой процедуре, мы текущему значению поля Пояснение присваиваем результат закрытия формы ввода пояснения.
На этом наше программирование закончено. Работа выполнена.
Другие статьи про открытие управляемых форм:
Подробно вопросы передачи параметров, открытия форм рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.
Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Эти книги плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы в соцсетях, и будьте в курсе всех новостей
Разработка интерфейса в 1С состоит из двух частей – разработка меню или рабочего стола и разработка экранных форм 1С. Окна, с которыми пользователь работает в 1С, называют экранные формы 1С или просто формы 1С.
Пользователи в программе работают с формами 1С. Мало того — пользователи видят только формы 1С. Поэтому с точки зрения удобства работы в программе это один из важных элементов. При этом убить времени на разработку формы 1С можно больше, чем на программирование самого сложного алгоритма.
Частой ошибкой программистов является попытка нарисовать все по своему вкусу. Сделать фон синим, а надписи зеленым. Или желтый на черном. Или как он ему нравится в какой-то другой его любимой программе.
К сожалению, этот подход ошибочен, так как пользователи привыкли работать с типовыми формами 1С, которых в конфигурации большинство. Рисовать собственный велосипед, помечать его надписями Courier вида «Copyright Vasya Pupkin» — это явно дурной тон.
Сейчас мы с Вами пройдем краткий ликбез по рисованию форм 1С.
Что такое Формы 1С
Форма 1С – это метод представления объекта 1С пользователю. Обычно форма представляет собой ряд полей, которые требуется заполнить и набор кнопок (команд меню) для управления. Форма 1С есть у большинства объектов 1С.
В толстом клиенте 1С используются «обычные» формы 1С. Это значит, что программист просто рисует мышкой форму 1С также как это делается в Visual Studio и других фреймфорках.
В тонком клиенте 1С и веб клиенте 1С используются управляемые формы 1С. Это значит, что их размер, форму 1С и расположение на них полей нельзя изменить мышкой. Они генерируются автоматически на основании настроек. Про управляемые формы 1С мы поговорим в следующих уроках.
Большинство форм 1С типовых конфигураций в 1С имеют свое, типовое представление, привычное пользователю.
- Форма списка 1С
В 1С есть множество списков. Когда мы говорим «справочник номенклатуры», то подразумеваем «список элементов номенклатуры (т.е. товаров)». Когда мы говорим документы банка, то имеем ввиду «список документов ПКО и РКО».
Для отображения списков есть формы списков 1С. Это всегда табличная часть на всю форму 1С и над ней командная панель с кнопками Добавить, Скопировать и т.п., отображенными в виде картинок.
Колонки и их порядок можно посмотреть в любом типовом справочнике и документе.
Форма элемента/документа 1С
Когда с помощью списка пользователь определился, с каким конкретным документом он собирается работать – открывается форма документа/элемента справочника 1С.
Она обычно состоит из шапки (списка обязательных полей) и закладок с таблицами. Вверху находится также панель с кнопками, но на ней часто бывают текстовые меню Действия, Цены и валюта, Операция.
Форма выбора 1С
Похожа на форму списка 1С. Зачастую форма списка 1С и используется в качестве формы выбора 1С. Она используется в том случае, когда при заполнении документа (или элемента справочника) пользователь нажимает кнопку выбора «…» и открывается форма 1С для выбора значения.
Форма отчета 1С
o Верхняя командная панель, обычно с кнопкой Настройка, по нажатию на которую открывается вторая форма отчета 1С – форма Настроек
o Выбор периода «С .. ПО . кнопка изменения периода»
o Одно или несколько полей быстрых отборов (например организация)
o Большое табличное поле, куда будет выведен отчет
o Кнопка формирования обычно вверху, крайняя справа «Сформировать».
Форма обработки 1С
o Имеет часто две командных панели – вверху и внизу, кнопка запуска и закрытия обычно внизу справа.
o Может не иметь формы вообще (см. использование обработок как классы)
o У отчетов и обработок формы списка нет.
Как работают формы 1С
Логика (порядок) работы пользователя в 1С следующая:
- Пользователь заходит в программу, видит интерфейс (в толстом клиенте обычно это меню, в тонком клиенте рабочий стол)
Пользователь выбирает пункт меню или гиперссылку на рабочем столе – открывается форма списка 1С
В форме списка 1С пользователь выбирает команду (например добавить) или существующий элемент списка (элемент справочника или документ) и начинает работать с формой 1С.
Таким образом пользователь работает всегда с формами 1С, начиная с форма списка 1С и переходя к форме элемента 1С. Если программист не нарисовал формы, то 1С генерирует формы по умолчанию. Они естественно лишены идеальной красоты и совершенства, но работать позволяют.
Автоматически сгенерированная форма списка 1С обычно содержит минимум полей (код/наименование и дата/номер соответственно). Автоматически сгенерированная форма элемента обычно содержит все поля (реквизиты), перечисленные сверху вниз.
Задача формы 1С – открыться и ждать действий пользователя. При действии – отреагировать. Таким образом основу модуля формы 1С составляют обработчики событий. Это такие функции, которые вызываются тогда, когда пользователь совершает какое то действие на форме 1С.
Где находятся формы 1С
В режиме 1С Предприятие при выборе практически любого объекта 1С (справочника, документа, отчета, обработки и т.п.) Вам откроется форма этого объекта.
В конфигураторе, в окне конфигурации, выберите нужный Вам объект, раскройте его ветку, чтобы увидеть вложенную ветку Формы 1С.
Другой вариант – открыть редактор объекта (два раза мышкой или поставить курсор и Enter) и перейти на закладку Формы 1С.
Здесь расположен список форм 1С. Одну из добавленных форм 1С можно добавить как форма по-умолчанию (форма списка 1С, форма элемента 1С и так далее).
Создание форм 1С
Чтобы добавить новую форму 1С, нужно нажать кнопку Добавить (Ins на клавиатуре). Чтобы войти в существующую – нажмите на нее два раза мышкой.
Конструктор предложит Вам выбрать вид формы 1С – форма элемента 1С, списка. Здесь же можно добавить или убрать командные панели на форме 1С. Чаще всего эти настройки оставляются как есть, по умолчанию.
Открывается форма 1С, заполненная по умолчанию — на нее добавились все реквизиты объекта 1С, которые есть. Отметить галочками конкретный список требуемых полей можно на второй закладке конструктора.
Ненужные реквизиты можно удалить. Для этого выделите одно или несколько полей и нажмите Del.
Чтобы в освободившееся место сдвинуть другие реквизиты –выделите их так же и перетащите мышкой.
Чтобы добавить на форму 1С новые реквизиты, нажмите кнопку на панели Размещение данных (меню Форма/Размещение данных), установите галочки на тех элементах, которые нужно добавить, а также галочки «Вставить надписи» и «Разместить автоматически».
По другому можно просто добавить элемент управления, нажав соответствующую кнопку на панели внизу или выбрав в меню Форма/Вставить элемент управления. Нажмите на элементе управления (поле) два раза левой кнопкой мыши и откроются его свойства. Свойство «Данные» содержит название реквизита объекта 1С. Здесь его можно изменить или назначить.
Свойства элемента управления также содержат галочки управления внешним видом элемента управления. С помощью галочек можно включать и отключать кнопки выбора, выпадающий список, очистки, видимости и доступности.
Почти на всех формах документа используются закладки. Добавляется закладка так же, как и другой элемент управления (см. выше), только нужно выбрать элемент управления «Панель». Чтобы добавить страницу панели, нажмите на нее правой кнопкой мыши и выберите «Добавить страницу». Другие элементы управления (поля) на страницы панели просто перетаскиваются.
Чтобы изменить размер формы 1С, просто подведите курсор к краю формы 1С, нажмите левую кнопку мышки и просто перетащите край формы 1С.
Чтобы форма 1С заработала – т.е. делала что-то в ответ на действия пользователя – нужно добавить функции обработчики. Войдите в свойства любого элемента (щелкнув на нем два раза левой кнопкой мыши) или самой формы 1С (аналогично на заголовке формы). В самом низу окна свойств есть раздел «События». Выберите удобное событие (для всех полей это обычно «ПриИзменении», для формы «ПриОткрытии») и нажмите кнопку с лупой. Откроется ее обработчик события.
Для кнопок добавление происходит так же. Однако кроме произвольных обработчиков можно выбрать один из стандартных для этой формы (для формы справочника это одни стандартные действия, для формы документа – другие). Просто выберите одно из стандартных действий в свойстве «Действие» или нажмите крестик, если хочется сделать свой обработчик.