Файл: Информационные технологии и платформы разработки информационных систем.pdf
Добавлен: 05.04.2023
Просмотров: 354
Скачиваний: 2
2.
//объект ДокументыМенеджер
// .
// []
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: получить макет для печати документа "Оказание услуги".
Макет = Документы["ОказаниеУслуги"].ПолучитьМакет("Печать");
// Пример: получить ссылку на каждый из документов, существующих в конфигурации.
Для Каждого ОчереднойДокумент Из Документы Цикл
Ссылка = ОчереднойДокумент.ПолучитьСсылку();
…
КонецЦикла;
3.
// объект ДокументМенеджер.
// НайтиПоНомеру()
// НайтиПоРеквизиту()
// ПустаяСсылка()
// Пример: Проверить, проведен ли документ ПриходнаяНакладная с номером 3.
Если Документы.ПриходнаяНакладная.НайтиПоНомеру(3).Проведен Тогда
Сообщить("Документ с номером 3 проведен");
КонецЕсли;
// Пример: Проверить, что во всех документах ПриходнаяНакладная заполнен реквизит Склад.
ПустаяСсылкаСклада = Справочники.Склады.ПустаяСсылка();
Если Не Документы.ПриходнаяНакладная.НайтиПоРеквизиту("Склад", ПустаяСсылкаСклада).Пустая() Тогда
Сообщить("Есть документы, у которых не заполнен реквизит Склад");
КонецЕсли;
4.
// объект ДокументМенеджер.
// Выбрать()
// Пример: Выбрать все документы ПриходнаяНакладная за текущий месяц.
Выборка = Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
Пока Выборка.Следующий() Цикл
Сообщить(Выборка);
КонецЦикла;
5.
// объект ДокументМенеджер.
// СоздатьДокумент()
// Пример: Создать новый документ ПриходнаяНакладная.
НовыйДокумент = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Склад = Справочники.Склады.Основной;
// Заполнить табличную часть Материалы
НоваяСтрокаТабличнойЧасти = НовыйДокумент.Материалы.Добавить();
НоваяСтрокаТабличнойЧасти.Материал = Справочники.Номенклатура.НайтиПоКоду(6);
НоваяСтрокаТабличнойЧасти.Количество = 10;
НоваяСтрокаТабличнойЧасти.Цена = 22.5;
НоваяСтрокаТабличнойЧасти.Сумма = 225;
НовыйДокумент.Записать();
6.
// объект ДокументОбъект., объект ДокументСсылка.
// Ссылка
// Пример: в модуле объекта вызвать процедуру проверки заполнения реквизитов документа.
Если Не ПроверитьЗаполнениеРеквизитов(ЭтотОбъект.Ссылка) Тогда
Сообщить("Реквизиты документа не заполнены!");
КонецЕсли;
7.
// объект ДокументСсылка., объект ДокументОбъект.
// ПолучитьОбъект()
// Скопировать()
// Пример: пометить документ на удаление.
НенужныйДокумент = Документы.ОказаниеУслуги.НайтиПоНомеру(13).ПолучитьОбъект();
НенужныйДокумент.УстановитьПометкуУдаления(Истина);
8.
// объект ДокументВыборка.
// Ссылка
// Сформировать список ссылок на все документы "ПриходнаяНакладная" за текущий месяц.
СписокНакладных = Новый СписокЗначений;
Выборка = Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
Пока Выборка.Следующий() Цикл
СписокНакладных.Добавить(Выборка.Ссылка);
КонецЦикла;
9.
// объект ДокументВыборка.
// ПолучитьОбъект()
// Пример: удалить все документы "ПриходнаяНакладная".
Выборка = Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
Выборка.ПолучитьОбъект().Удалить();
КонецЦикла;
Р ис. 16. Пр имер ы использован ия объектов
Докумен т Пр иход товар а включает дополн ительн ые р еквизиты в шапке докумен та: Фир ма, поставщик, Коммен тар ий; в табличн ой части: Н аимен ован ие, количество, Цен а, Сумма. (рис.17) [2 с 33]
Рис. 17 Окн о создан ия докумен та
Поле Н аимен ован ие имеет кн опку выбор а для выбор а товар а из спр авочн ика, это указывается в свойствах:
Рис.18 Окн о свойства Товар ы Н аимен ован ие
Поле Количество должн о иметь кн опку выбор а для вызова калькулятор а:
Рис.19 Окн о свойства Товар ы Количество
Зн ачен ие поля Цен а подставляется из спр авочн ика, и в модуле докумен та пр описываем пр оцедур у:
Пр оцедур а Товар ыН аимен ован иеПр иИзмен ен ии (Элемен т)
Стр ока=Элемен тыФор мы. Товар ы. ТекущиеДан н ые;
Стр ока. Цен а=Стр ока. Н аимен ован ие. Цен аПокупки;
КонецПроцедуры.
Пр и измен ен ии количества измен яется сумма н а это число, пр описываем эту пр оцедур у в модуле докумен та:
Пр оцедур а Товар ыКолВоПр иИзмен ен ии (Элемен т)
Стр ока=Элемен тыФор мы. Товар ы. ТекущиеДан н ые;
Стр ока. Сумма=Стр ока. КолВо*Стр ока. Цен а;
СуммаДок=Товар ы. Итог ("Сумма");
КонецПроцедуры.
Под табличн ой частью выводится итоговая сумма по всем стр окам.
Рис.20 Окн о докумен та Пр иход товар а
В модуле также пр описываем пр оцедур у пр и откр ытии:
Пр оцедур а Пр иОткр ытии ()
Фир ма=Кон стан ты. Н аимен ован иеФир мы. Получить ();
КонецПроцедуры.
Фор мир уется печатн ая фор ма докумен та виде в виде пр иходн ой н акладн ой:
Рис.21 Окн о печатн ой фор мы докумен та
Пр оцедур у пр описываем в модуле:
Пр оцедур а Печать1 (Элемен т)
ТабДок = Н овый Табличн ыйДокумен т;
Макет = Докумен ты. Пр иходТовар а. ПолучитьМакет ("Печать");
// Заголовок
Область = Макет. ПолучитьОбласть ("Заголовок");
Область. Пар аметр ы. Заполн ить (ЭтотОбъект);
ТабДок. Вывести (Область);
// Шапка
Шапка = Макет. ПолучитьОбласть ("Шапка");
Шапка. Пар аметр ы. Заполн ить (ЭтотОбъект);
ТабДок. Вывести (Шапка);
// Товары
Область = Макет. ПолучитьОбласть ("Товар ыШапка");
ТабДок. Вывести (Область);
КолВо = 0;
ОбластьТовар ы = Макет. ПолучитьОбласть ("Товар ы");
Для Каждого ТекСтр окаТовар ы Из Товар ы Цикл
ОбластьТовар ы. Пар аметр ы. Заполн ить (ТекСтр окаТовар ы);
КолВо = КолВо + 1;
ТабДок. Вывести (ОбластьТовар ы);
КонецЦикла;
// вывод области "Всего"
Область = Макет. ПолучитьОбласть ("Всего");
Область. Пар аметр ы. ИтогСумма = Товар ы. Итог ("Сумма");
СуммаДок = Область. Пар аметр ы. ИтогСумма;
СуммаН ДС = СуммаДок - (СуммаДок/1.18);
Область. Пар аметр ы. СуммаН ДС = СуммаН ДС;
Область. Пар аметр ы. Заполн ить (ЭтотОбъект);
ТабДок. Вывести (Область);
// вывод области "Сумма"
Область = Макет. ПолучитьОбласть ("Сумма");
Область. Пар аметр ы. СуммаДокумен та = ЧислоПр описью (СуммаДок,, "Р убль, р убля, р ублей, м, копейка, копейки, копеек, ж");
Область. Пар аметр ы. КолВо = КолВо;
Область. Пар аметр ы. Заполн ить (ЭтотОбъект);
ТабДок. Вывести (Область);
ТабДок. Отобр ажатьСетку = Ложь;
ТабДок. Защита = Ложь;
ТабДок. ТолькоПр осмотр = Ложь;
ТабДок. Отобр ажатьЗаголовки = Ложь;
ТабДок. Показать ();
КонецПроцедуры.
Докумен т Заявка Покупателя включает дополн ительн ые р еквизиты в шапке докумен та: Фир ма, Покупатель, Коммен тар ий; в табличн ой части: Н аимен ован ие, Количество, Цен а, Сумма. Поле Н аимен ован ие должн о иметь кн опку выбор а для выбор а товар а из спр авочн ика, поле Количество должн о иметь кн опку выбор а для вызова калькулятор а. Зн ачен ие поля Цен а должн о подставляться из спр авочн ика. Сумма в стр оке должн а р ассчитываться автоматически. Под табличн ой частью должн а выводиться итоговая сумма по всем стр окам. Должн а фор мир оваться печатн ая фор ма докумен та в виде Счета.
Рис. 22 Окн о печатн ой фор мы докумен та
Пр оцедур а Печатъ (Элемен т)
ТабДок = Н овый Табличн ыйДокумен т;
Макет = Докумен ты. ЗаявкиПокупателя. ПолучитьМакет ("Печать");
// Заголовок
Область = Макет. ПолучитьОбласть ("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Шапка = Макет. ПолучитьОбласть ("Шапка");
Шапка. Пар аметр ы. Заполн ить (ЭтотОбъект);
ТабДок. Вывести (Шапка);
// Товары
Область = Макет. ПолучитьОбласть ("Товар ыШапка");
ТабДок. Вывести (Область);
КолВо = 0;
ОбластьТовар ы = Макет. ПолучитьОбласть ("Товар ы");
Для Каждого ТекСтр окаТовар ы Из Товар ы Цикл
ОбластьТовар ы. Пар аметр ы. Заполн ить (ТекСтр окаТовар ы);
КолВо = КолВо + 1;
ТабДок. Вывести (ОбластьТовар ы);
КонецЦикла;
// вывод области "Всего"
Область = Макет. ПолучитьОбласть ("Всего");
Область. Пар аметр ы. ИтогСумма = Товар ы. Итог ("Сумма");
СуммаДок = Область. Пар аметр ы. ИтогСумма;
СуммаН ДС = СуммаДок - (СуммаДок/1.18);
Область. Пар аметр ы. СуммаН ДС = СуммаН ДС;
Область. Пар аметр ы. Заполн ить (ЭтотОбъект);
ТабДок. Вывести (Область);
// вывод области "Сумма"
Область = Макет. ПолучитьОбласть ("Сумма");
Область. Пар аметр ы. СуммаДокумен та = ЧислоПр описью (СуммаДок,, "Р убль, р убля, р ублей, м, копейка, копейки, копеек, ж");
Область. Пар аметр ы. КолВо = КолВо;
Область. Пар аметр ы. Заполн ить (ЭтотОбъект);
ТабДок. Вывести (Область);
ТабДок. Отобр ажатьСетку = Ложь;
ТабДок. Защита = Ложь;
ТабДок. ТолькоПр осмотр = Ложь;
ТабДок. Отобр ажатьЗаголовки = Ложь;
ТабДок. Показать ();
КонецПроцедуры.
Докумен т Пр одажа товар а включает дополн ительн ые р еквизиты в шапке докумен та: Фир ма, Покупатель, Коммен тар ий; в табличн ой части: Н аимен ован ие, Количество, Цен а, Сумма. Поле Н аимен ован ие должн о иметь кн опку выбор а для выбор а товар а из спр авочн ика, поле Количество должн о иметь кн опку выбор а для вызова калькулятор а. Зн ачен ие поля Цен а должн о подставляться из спр авочн ика. Сумма в стр оке должн а р ассчитываться автоматически. Под табличн ой частью должн а выводиться итоговая сумма по всем стр окам. Должн а фор мир оваться печатн ая фор ма докумен та в виде р асходн ой н акладн ой. В печатн ых фор мах всех докумен тов р ассчитывается и указывается сумма Н ДС, общее количество н аимен ован ий товар а и сумма пр описью. Докумен ты должн ы иметь возможн ость записи без пр оведен ия и с пр оведен ием.
Текст пр оцедур пр описываем в модуле докумен та:
Пр оцедур а Товар ыН аимен ован иеПр иИзмен ен ии (Элемен т)
Стр ока=Элемен тыФор мы. Товар ы. ТекущиеДан н ые;
Стр ока. Цен а=Стр ока. Н аимен ован ие. Цен аПокупки;
КонецПроцедуры.
Пр оцедур а Товар ыКолВоПр иИзмен ен ии (Элемен т)
Стр ока=Элемен тыФор мы. Товар ы. ТекущиеДан н ые;
Стр ока. Сумма=Стр ока. КолВо*Стр ока. Цен а;
СуммаДок=Товар ы. Итог ("Сумма");
КонецПроцедуры
Пр оцедур а Пр иОткр ытии ()
Фир ма=Кон стан ты. Н аимен ован иеФир мы. Получить ();