1С Предприятие. Практика программирования на платформе v7


Обращение к позиционированному документу в журнале документов


Обращение к записи журнала документов отличается от аналогичной операции в форме списка справочника, потому что в журнале документов могут располагаться записи различных объектов — видов документов. В каталоге справочника располагаются записи одного объекта. Обращение к записи журнала документов производится с помощью атрибута журнала ТекущийДокумент, который дает доступ к выбранному в журнале документу (только для чтения). Его можно использовать только в локальном контексте Модуля формы журнала документов. Чтобы возвратить значение типа документ по значению атрибута, надо применить метод ТекущийДокумент():

ТекущийДокумент.ТекущийДокумент()

Создадим, для примера, в форме списка журнала документов кнопку, по нажатию на которую будет производиться проведение позиционированного в журнале документа. Используем следующие методы:

НайтиДокумент(<Документ>) позволяет найти документ по значению типа 'Документ'. Возвращает: 1 - если действие выполнено (документ найден);

О - если действие не выполнено. <Документ> - выражение со значением типа 'Документ'. Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. Провести(<Режим>,<Знач>) позволяет выполнить проведение документа. Возвращает: 1 - если проведение документа выполнено, 0 - иначе.

<Режим> - необязательный параметр. Число: 0 - проводить документ без сдвига ТА; 1 - проводить непроведенный документ реальным временем (со сдвигом ТА); 2 - перепроводить проведенный документ реальным временем (со сдвигом ТА); 3 - проводить любой (непроведенный, проведенный) документ реальным временем (со сдвигом ТА). Значение по умолчанию - 0. <3нач> - выражение произвольного типа, которое передается при запуске предопределенной процедуры ОбработкаПроведения (необязателен, по умолчанию - пусто).

Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения. Если этот метод применяется в Модуле формы документа непосредственно к документу локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой "#Провести". В этом случае, если параметр <Режим> опущен, то документ проводится в режиме, соответствующем установкам системы меню Сервис-Параметры.




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

Алгоритм проведения приводится ниже.

Процедура ПровестиДок()

Если ТекущийДокумент.Выбран()=1 Тогда



Док=Создать0бъект("Документ");

VIII. Документы и журналы документов_________________________________________ 121

Док.НайтиДокумент(ТекущийДокумент.ТекущийДокумент());

Если Док.Провести()=1 Тогда

Предупреждение("Документ "+ Док + "проведен.");

Иначе

Предупреждение("Документ "+Док+ * НЕ ПРОВЕДЕН!!!!!!!!!");

КонецЕсли;

КонецЕсли;

КонецПроцедуры //ПровестиДок



Различия в использовании Общих реквизитов документов и Граф отбора

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

Графы отбора это реквизиты документов, кроме Общих реквизитов - Общий реквизит не может быть Графой отбора, по которым ведётся сортировка и отбор документов. При включении реквизита документа в графу отбора по нему строится индекс в индексном файле, что существенно ускоряет сортировку документов и формирование запроса по этому реквизиту (см. 1 т. Конфигурирование и администрирование 1С:Предприятия 7.7, стр. 186-187).

Вопросы для самоконтроля

Какие отличия в структуре, в упорядочивании и в формах документов по сравнению со справочниками?

122______________________ 1С:Предприятие. Практика программирования на платформе V7

С помощью, каких объектов метаданных можно просмотреть существующие документы?

Чем отличается подчинение документов от справочников?

Какие реквизиты формы можно использовать в модуле документа?

Какие реквизиты и переменные можно использовать в шаблоне печатной формы?

Какой метод выводит на экран результирующую печатную форму?

/Х. Основы построения «Оперативного учёта» в системе 1С:Предприятие_________ 123


Содержание раздела