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

  73c64bed     

Ввод документов на Основании


Для документов, помимо операции копирования документов одного вида, которая выполняется аналогично копированию элементов справочников, определена операция ввода документов одного вида на основании документов другого вида. Особенность этого метода в различном составе реквизитов документов разных видов. Поэтому сопоставление реквизитов документов при вводе на основании делается программно в предопределенной процедуре модуля формы документа ВводНаОсновании(<Документ-основание>). Текст этой процедуры можно составить с помощью конструктора, работа с которым описана в 1 т. Конфигурирования и администрирования 1С:Предприятия 7.7, стр.161-163.

Чтобы конструктор работал правильно, желательно сначала отредактировать свойство документов «Ввод на основании». Это свойство определяет список видов документов, которые можно вводить на основании выбранного Документа.

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

Нажмем на кнопку «Ввод на основании» в окне свойств документа «Приход» или выберем соответствующий пункт в контекстном меню документа.

В списке документов «Является основанием для» выберем документ «Амортизация». Таким образом, мы определили, что документ «Амортизация» может быть введен на основании документа «Приход».

Обратите внимание на флажок в левом верхнем углу окна. Он устанавливается по умолчанию для любого нового документа, что позволяет вводить на основании этого документа любой существующий документ. Мы не будем вводить документ «Приход» на основании документа «Амортизация», поэтому отключите этот флажок в окне «Ввод на основании» документа «Амортизация».

V///. Документы и журналы документов_________________________________________ 119

Теперь войдите в модуль формы документа «Амортизация» и запустите конструктор ввода на основании.

Обратите внимание, что в списке реквизитов текущего документа нет общего реквизита «Основание» - конструктор не видит общих реквизитов, поэтому текст, введенный конструктором, мы отредактируем.

Процедура ВводНаОсновании(ДокОснование)

Если ДокОснование.Вид() = "Приход" Тогда

// !!!конструктор не видит общих реквизитов!!!

Основание=ДокОснование;

ДокОснование.ВыбратьСтроки();

Пока ДокОснование.ПолучитьСтроку() = 1 Цикл

НоваяСтрока();

Оборудование = ДокОснование.Оборудование;

Результат = ДокОснование.Сумма*ДокОснование.Оборудование.КоэффАморт*176/100;

// 176 - это количество рабочих часов в месяце (22 р. дня)

// Последнее выражение будет уточнено после конфигурирования Расчета.;

КонецЦикла;

КонецЕсли;

КонецПроцедуры

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

Упражнение 22. При вводе новых документов в информационную базу, установите префиксы для номеров документов. (Документы могут вводиться копированием и на основании документа другого вида).



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