- •Документы
- •6.1. Документы и журналы документов
- •6.2. Структура документа
- •6.3. Экранные формы документа
- •6.4. Макеты документа
- •6.5. Проведение документов
- •Оперативная отметка времени
- •6.6. Модуль документа
- •6.7. Приемы программирования
- •Обращение к менеджеру документа
- •Выборка документов
- •Создание и проведение документа
- •Поиск документа
- •Удаление документа
- •Открытие форм документа
- •Работа с табличным частями
- •Движения документа
- •6.8. Нумерация документов
- •Нумераторы
- •Префиксы номеров
- •6.9. Журналы документов
- •Графы журнала
- •6.10. Последовательности
6.3. Экранные формы документа
Документ может иметь несколько экранных форм, некоторые из которых назначаются в качестве основных.
Форма документа
Основная экранная форма, представляющая документ на экране. Она необязательно должна совпадать по внешнему виду с печатной формой реального документа. Ее первейшая обязанность - обеспечить удобный способ ввода и просмотра данных.
Форма списка
Данная экранная форма отображает список документов определенного вида и является аналогом журнала, содержащего документы одного вида.
Форма выбора
Форма выбора обычно вызывается системой, когда пользователь заполняет реквизиты типа ДокументСсылка.
Если какая-то из форм не была создана разработчиком, то система сгенерирует нужную форму «на лету», когда в ней возникнет необходимость. Конечно, это может быть недостаточно для удобного ввода и просмотра информации, поэтому рекомендуется, когда это необходимо, создавать собственные формы с эргономичным интерфейсом. Особенно это актуально для ежедневно используемых документов. Пользователь работает с этими документами каждый день, и малейшая недоработка будет постоянно мешать, снижая его производительность и повышая утомляемость.
При разработке экранной формы обратите внимание на логичную группировку элементов управления, последовательность ввода данных, поведение формы при изменении размеров (см. главу «Интерфейс пользователя»), насыщенность формы элементами управления и возможность использования горячих клавиш. Все эти факторы необходимо учитывать при разработке любой экранной формы, а не только форм документов, но с документами пользователь работает чаще всего, поэтому именно здесь требуется высокая скорость и безошибочность работы.
Замечание. У экранных форм могут быть собственные реквизиты.
6.4. Макеты документа
Макеты документа предназначены для формирования его печатных форм, которые могут быть показаны на экране и напечатаны на принтере.
У документа может быть несколько печатных форм, поэтому и макетов может быть несколько. Например, из документа «Поступление основных средств» могут быть напечатаны «Реестр принятых основных средств», «Акт приема-передачи ОС», «Счет-фактура» и т.д. Первые два макета могут принадлежать этому документу, а макет счета-фактуры может быть общим для всей конфигурации или может принадлежать документу СчетФактура.
Процесс формирования печатной формы на основе макета рассматривался в главе «Отчеты».
6.5. Проведение документов
Как правило, при регистрации события изменяется состояние регистров, например, требуется сформировать бухгалтерские проводки, изменить количество товара на складе и т.д. Все эти действия обычно совершаются при проведении документа. Какие именно это будут действия, настраивается в Конфигураторе разработчиком.
С точки зрения программиста при проведении документа вызывается процедура-обработчик события ОбработкаПроведения, в которой определяются все действия данного документа на встроенном языке.
Проведенные документы помечаются в списке специальным значком с галочкой. Документы, для которых проведение запрещено, в списке отображаются с почти таким же значком, как и проведенные документы. Считается, что после записи таких документов с точки зрения пользователя их обработка полностью завершена, аналогично проведенным документам. Непроведенные документы, которые могут проводиться, также отмечаются в списке особым значком.
Ниже показана закладка «Движения», на которой задаются основные параметры проведения документа.
Самый первый параметр разрешает или запрещает проведение документа.
В списке регистров нужно выбрать только те регистры, по которым данный документ может делать движения. Не стоит отмечать все регистры подряд, так как это может отрицательно сказаться на производительности. В этом списке должны быть помечены только те регистры, по которым документ действительно может делать движения.
Замечание. Не снимайте флажок напротив регистра, если вы точно не уверены, что делаете. При снятии флажка и реструктуризации базы данных все существующие движения документа по этому регистру будут уничтожены! Даже если вы вновь установите флажок, движения по регистру не восстановятся, и потребуется перепроведение документов или повторный ввод движений, если движения были введены вручную.
Стоит отметить, что в 1С:Предприятии 8 проведение документа и движения по регистрам не связаны жестко. Документ может быть не проведен и иметь движения.
Рассмотрим параметр «Оперативное проведение». При таком проведении можно контролировать текущие остатки регистров, например, при проведении расходной накладной нужно проверить, достаточно ли товара на складе.
Однако иногда бывает так, что документы проводятся не текущей датой, а «задним числом». Обычно такое случается, когда в документе была обнаружена ошибка или какой-то документ раньше не был введен в базу данных. В таких случаях применяется неоперативное проведение, при котором в конфигурации не должно быть обращений к текущим итогам регистров.
Таким образом, документ проводится оперативно в момент совершения самой операции в жизни предприятия, и такое проведение должно помочь выполнить эту операцию непротиворечиво. А неоперативное проведение отражает уже свершившийся факт, при этом не следует использовать реальные итоги регистров.
Например, в модуле документа расходной накладной в процедуре ОбработкаПроведения могут быть следующие строки:
Процедура ОбработкаПроведения(Отказ, Режим)
//проверка остатка производится только при оперативном проведении
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Если ОстатокНаСкладе < СтрокаСостава.Количество Тогда
Сообщить("Товара " + СокрЛП(СтрокаСостава.Номенклатура) +
" имеется только " + Остаток);
Отказ = Истина;
Возврат;
КонецЕсли;
КонецЕсли;
……..
КонецПроцедуры
При удалении документа или при отмене его проведения движения документа обычно удаляются автоматически, но это можно регулировать установкой параметра «Удаление движений». Для некоторых видов документов разработчик может отменить данную возможность и управлять удалением движений самостоятельно через свойство Движения, предоставляющее доступ к коллекции движений документа.
