Подчинени директории

"Количество на документа" (тип дължина 15, точност 2).

Нека дефинираме един табличен раздел "Продукти", неговия състав:

Количество (тип дължина 10, точност 0);

Цена (тип дължина 10, точност 2);

Сума (дължина на типа 10, точност 2).

Фигура Фигура

Фигура 2.38 Формиране на формуляра на документа.

Създайте формуляр за списък, като добавите към стандартните "Акаунт", "Сума на документа" и формуляр за документ. Когато формираме формата на документа, ще направим променливата "Сума на документа" надпис (Фигура 2.38).

Полученият формуляр ще "зарадва" потребителя малко с неговата функционалност. Вече се счита за правило за добра форма, така че при избор на артикул от справочника, цената автоматично се прехвърля в документа (ако има такава възможност), а след задаване на количеството, общата сума за артикула е изчислено. Освен това списъкът на избраните лица за контакт трябва да се определя от избрания контрагент и т.н.

Първо, нека разберем лицата за контакт.

В свойството "ChoiceParametersLinks" за диалоговия елемент "Лице за контакт" във формуляра на документа задайте стойността "Counterparty" (Фигура 2.39).

директории

Фигура 2.39 Избор на връзка

Задаването на това свойство ще позволи на потребителя, след като избере бизнес партньор, да избере лице за контакт от списъка само на този бизнес партньор.

В резултат формулярът на документа ще изглежда така (Фигура 2.40).

табличния раздел

Фигура 2.40 Формуляр на документ

За нашата задача е необходимо да заместим цената и да изчислим сумите за реда на табличния раздел.

В полето Номенклатура на табличния раздел Продукти напишете процедурата:

// Вмъкване на съдържанието на манипулатора.

Но за да работи тази процедура, трябва да напишете допълнителна функция, която ще бъде изпълнена на сървъра без контекста на формуляра (без данните на формуляра), и да върнете покупната цена:

Текстът на манипулатора на събития (трябва да бъде обвързан с полето "Количество" на табличния раздел), който изчислява сумата на реда в табличния раздел:

Количеството на документа, например, ще бъде изчислено в процедурата "Преизчисляване на сумата на документа" във формуляра на документа:

В обектния модул вместо него (вторият метод) записваме процедурата:

Процедура преди запис (неуспех, режим на запис, режим на публикуване)

// Вмъкване на съдържанието на манипулатора.

Бих искал да отбележа, че това събитие (Преди запис) може да бъде „обработено“ както в обектния модул, така и в модула на формуляра. В този случай е по-добре да използвате манипулатора на събития, съдържащ се в обектния модул (той ще бъде изпълнен както при програмно писане на обекта, така и при интерактивен).

Обърнете внимание, че в нашия случай общото количество на документа се изчислява само след като щракнете върху бутона „Пиши“ във формуляра на документа. Ако трябва да видите сумата на табличния раздел, докато го попълвате, има трети начин:

В свойствата на табличното поле "Продукти" поставете отметка в квадратчето "Сутерен" (Фигура 2.41):

Фигура 2.41 квадратче за отметка „Долен колонтитул“ на табличния раздел

В свойствата на колоната "Количество" трябва да се постави отметка в квадратчето "Показване в мазе" (Фигура 2.42).

Фигура 2.42 Показване в долния колонтитул

За да се покаже Количеството на документа в долния колонтитул, трябва да промените пътя на данните в сутерена на Object.Goods.

Фигура 2.43. Долен колонтитул.

Трябва да обърнете внимание на факта, че в реалните конфигурации трябва да има повече манипулатори на събития дори за такъв прост документ (за прилагане на "защита от глупак", проверка на пълнотата на подробностите и т.н.) Например, необходимо е да се почисти избраното лице за контакт, когато се сменя контрагент. За полето „Контрагент“ ще напишем процедурата: