Создание журналов «Счета» и «Заказы»

1. Создать в дереве конфигурации 2 новых Журнала документов: «Заказы» и «Счета», заполнив для них только имена и синонимы.

2. Создать документ «Заказ». На закладке «Данные» добавить:

Ø Реквизит шапки – Покупатель с типом СправочникСсылка.Покупатели;

Ø Реквизиты табличной части с именем Товары:

§ Товар с типом СправочникСсылка.Номенклатура;

§ Количество с типом Число, длиной 10, неотрицательный;

§ Цена с типом Число, длиной 10, точностью 2, неотрицательный;

§ Сумма с типом Число, длиной 10, точностью 2, неотрицательный.

3. На закладке «Нумерация» установить периодичность «в пределах года». На закладке «Журналы» установить флаг напротив «Заказы».

4. На закладке «Формы» создать:

Ø Форму списка и выбора (Добавить → установить флаг «основная форма списка и выбора» → установить флаг напротив «Покупатель» → Готово);

Ø Форму документа (Добавить → установить флаг «форма документа» → Готово).

5. В открывшейся форме перейти к закладке Модуль (в нижней части окна) и ввести процедуру:

Процедура ПриВводеИИзменении(Элемент)

//Рассчитать сумму в табличной части

СтрокаТЧ=ЭлементыФормы.Товары.ТекущиеДанные;

СтрокаТЧ.Сумма=СтрокаТЧ.Цена*СтрокаТЧ.Количество;

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

6. Перейти к закладке «Диалог». Дважды щелкнуть по полю ввода «Количество». В открывшейся палитре свойств в группе «События» в поле «При изменении» выбрать процедуру «ПриВводеИИзменении». Аналогичные действия совершить относительно поля ввода «Цена».

7. Перейти к закладке Модуль и ввести процедуру:

Процедура ПолучитьЦенуНоменклатуры()

Перем Наим1;

Перем Цена1;

СтрокаТЧ=ЭлементыФормы.Товары.ТекущиеДанные;

//преобразуем в строковые данные

Наим1=Строка(СтрокаТЧ.Товар);

Выборка=Справочники.Номенклатура.Выбрать();

Пока Выборка.Следующий() Цикл

Если Выборка.Наименование=Наим1 Тогда

Цена1=Выборка.Цена;

КонецЕсли;

КонецЦикла;

СтрокаТЧ.Цена=Цена1;

КонецПроцедуры //ПолучитьЦенуНоменклатуры()

8. Перейти к закладке «Диалог». Дважды щелкнуть по полу ввода «Товар». В открывшейся палитре свойств в группе «События» в поле «При изменении» набрать (обратить внимание!) процедуру «ПолучитьЦенуНоменклатуры».

9. Создать документ «Счет». На закладке «Данные» добавить:

Ø Реквизиты шапки:

§ Покупатель с типом СправочникСсылка.Покупатели;

§ ИтоговаяСумма с типом Число, длиной 15, неотрицательный;

Ø Реквизиты табличной части с именем Товары:

§ Товар с типом СправочникСсылка.Номенклатура;

§ Количество с типом Число, длиной 10, неотрицательный;

§ Цена с типом Число, длиной 10, точностью 2, неотрицательный;

§ Сумма с типом Число, длиной 10, точностью 2, неотрицательный.

10. На закладке «Нумерация» установить периодичность «в пределах года». На закладке «Журналы» установить флаг напротив «Счета».

11. На закладке «Формы» создать:

Ø Форму списка и выбора (Добавить → установить флаг «основная форма списка и выбора» → установить 2 флага напротив «Покупатель» и «ИтоговаяСумма» → Готово);

Ø Форму документа (Добавить → установить флаг «форма документа» → Готово).

12. Увеличить появившуюся форму документа по вертикали (схватив за нижнюю границу формы). В результате этого должно появиться свободное место под полосой прокрутки. На это место перетащить мышью реквизит «Итоговая сумма», а также его поле.

13. На закладке «Ввод на основании» в верхней части окна нажать пиктограмму «Редактировать элемент списка» → установить флаг «Заказ»ОК. Открыть «Конструктор ввода на основании» и в поле «Реквизиты объекта основания» дважды щелкнуть по строке «Покупатель», а затем по кнопке «Заполнить выражения» → ОК. Изменитьоткрывшийся модуль (изменения выделены жирным шрифтом).

Процедура ОбработкаЗаполнения(Основание)

//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора

//внесенные вручную изменения будут утеряны!!!

Перем Сумма2;

Сумма2=0;

Если ТипЗнч(Основание) = Тип("ДокументСсылка.Заказ") Тогда

// Заполнение шапки

Покупатель = Основание.Покупатель;

Для Каждого ТекСтрокаТовары Из Основание.Товары Цикл

НоваяСтрока = Товары.Добавить();

НоваяСтрока.Количество = ТекСтрокаТовары.Количество;

НоваяСтрока.Цена = ТекСтрокаТовары.Цена;

НоваяСтрока.Сумма = ТекСтрокаТовары.Сумма;

Сумма2=Сумма2+НоваяСтрока.Сумма;

НоваяСтрока.Товар = ТекСтрокаТовары.Товар;

КонецЦикла;

КонецЕсли;

ИтоговаяСумма=Сумма2;

//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ

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

14. На закладке «Макеты» нажать кнопку «Конструкторы» → «Конструктор печати» → установить флаг «В модуле формы» → выбрать форму «Форма документа» → Далее. С помощью кнопки ← перенести влево реквизиты шапки печатной формы: Номер, Дата, Покупатель. В следующем окне перенести влево все реквизиты документа → Далее → в реквизит подвала перенести «ИтоговаяСумма» → Далее → установить флаг «Новая кнопка» → ОК.

15. Отладить созданные объекты конфигурации.

16. В режиме отладки добавить новый документ «Заказ» с данными (игнорируя сообщение «поле объекта не обнаружено (цена)» - нажать ОК):

Покупатель Товар Количество (шт.) Цена (руб.)
Феофанова Ю.В. Ремонт стиральной машины    

Документ не проводить. Дополнительно открыть журнал «Заказы» (Операции → Документы → Заказы). Провести документ Заказ, обращая внимание на изменения в журнале «Заказы». Не закрывая журнал, внести новый заказ:

Покупатель Товар Количество (шт.) Цена (руб.)
Жеребцова Г.В. Уплотнительная резина для холодильника    

Провести новый заказ.

17. Дополнительно открыть 2 списка «Документы Счет» и «Документы Счета» - (журнал «Счета»). Встать курсором на первый заказ в журнале «Заказы», нажать правую кнопку мыши и выбрать «На основании» → Счет. Провести открывшийся счет, обратив внимание на изменения в журнале «Счета». Аналогично поступить со вторым заказом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: