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