Процедура Кнопка2Нажатие(Элемент)

// Вставить содержимое обработчика.

Док=ПолеВвода1.ПолучитьОбъект();

Для каждого ТекСтр из Док.Товары цикл

если Флажок1= Ложь тогда

ТекСтр.Количество=ТекСтр.Количество-ПолеВвода2

иначе

ТекСтр.Количество=ТекСтр.Количество-(ТекСтр.Количество*ПолеВвода2/100);

КонецЕсли;

ТекСтр.Количество=Макс(0,ТекСтр.Количество);

КонецЦикла;

Док.Записать();

ЭлементыФормы.ТабличноеПоле1.Значение=ПолеВвода1.Товары.Выгрузить();

ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

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

Рисунок 3-Задание 3.3

4. Создать внешнюю обработку «Задание 3.4». Форма обработки представлена на рисунке. При нажатии кнопки «Выполнить» должна создаваться копия документа «Поступление товаров и услуг», выбранного пользователем, при этом в его табличную часть переносятся те строки, количество товара в которых больше указанного пользователем.

Процедура КнопкаВыполнитьНажатие(Кнопка)

// Вставить содержимое обработчика.

Док=документы.ПоступлениеТоваровИУслуг.СоздатьДокумент();

Док.Дата=ПолеВвода1.Дата;

Док.Контрагент=ПолеВвода1.Контрагент;

Док.Сумма=ПолеВвода1.Сумма;

для каждого Стр из ПолеВвода1.Товары цикл

если Стр.Количество>ПолеВвода2 тогда

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

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

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

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

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

конецесли;

Ф=Док.ПолучитьФорму();

Ф.Открыть();

конецЦикла;

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


Рисунок 4 – Задание 3.4

5. Изменить документ «Поступление товаров и услуг» таким образом, чтобы при наличии повторяющихся товаров в разных строках табличной части, документ не проводился, а пользователю выводилось соответствующее сообщение.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

// Вставить содержимое обработчика.

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ

| ПоступлениеТоваровИУслугТовары.Товар,

| КОЛИЧЕСТВО(ПоступлениеТоваровИУслугТовары.Товар) КАК Товар1

| ИЗ

| Документ.ПоступлениеТоваровИУслуг.Товары КАК ПоступлениеТоваровИУслугТовары

| ГДЕ

| ПоступлениеТоваровИУслугТовары.Ссылка = &Ссылка

| СГРУППИРОВАТЬ ПО

| ПоступлениеТоваровИУслугТовары.Товар";

Запрос.УстановитьПараметр("Ссылка",Ссылка);

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

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

Если Выборка.Товар1>1 тогда

Сообщить ("Товар "+Выборка.Товар+" Встречается больше одного раза");

Отказ=истина;

КонецЕсли;

КонецЦикла;

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

Рисунок 5- Задание 3.5


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



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