Курсовая работа: Разработка конфигурации «Планирование закупок и размещение заказов поставщикам» в среде 1С Предприятие 8.3

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

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

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

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

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

Основание = ДанныеЗаполнения;

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

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

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

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

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

КонецЦикла;

КонецЕсли;

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

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

Процедура Печать(ТабДок, Ссылка) Экспорт

//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)

Макет = Документы.Закупка.ПолучитьМакет("Печать");

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

Запрос.Текст =

"ВЫБРАТЬ

| Закупка.Дата,

| Закупка.Номер,

| Закупка.Основание,

| Закупка.Поставщик,

| Закупка.СуммаДокумента,

| Закупка.Товары.(

| НомерСтроки,

| Товар,

| Количество,

| ЦенаЗакупки,

| Сумма

| )

|ИЗ

| Документ.Закупка КАК Закупка

|ГДЕ

| Закупка.Ссылка В (&Ссылка)";

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

Выборка = Запрос.Выполнить().Выбрать();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

Шапка = Макет.ПолучитьОбласть("Шапка");

ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка");

ОбластьТовары = Макет.ПолучитьОбласть("Товары");

Подвал = Макет.ПолучитьОбласть("Подвал");

ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;

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

Если ВставлятьРазделительСтраниц Тогда

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);

ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьТоварыШапка);

ВыборкаТовары = Выборка.Товары.Выбрать();

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

ОбластьТовары.Параметры.Заполнить(ВыборкаТовары);

ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень());

КонецЦикла;

Подвал.Параметры.Заполнить(Выборка);

ТабДок.Вывести(Подвал);

ВставлятьРазделительСтраниц = Истина;

КонецЦикла;

//}}

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

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

Если Режим = РежимПроведенияДокумента.Неоперативный Тогда

РаботаСРегистрами.ЗаписатьНаборВБазу(ЭтотОбъект,"Продажа");

Иначе

РаботаСРегистрами.ЗаписатьНаборВБазу(ЭтотОбъект,"Продажа");

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

Запрос.Текст=

"ВЫБРАТЬ

| ОстаткиОстатки.Товар,

| ОстаткиОстатки.КоличествоОстаток КАК НехваткаТовара ,

| Док.НомерСтроки

|ИЗ

| (ВЫБРАТЬ

| МИНИМУМ(РеализацияТовары.НомерСтроки) КАК НомерСтроки,

| РеализацияТовары.Товар КАК Товар

| ИЗ

| Документ.Реализация.Товары КАК РеализацияТовары

|

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

| РеализацияТовары.Товар) КАК Док

| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки.Остатки(

| &Момент,

| Товар В

| (ВЫБРАТЬ РАЗЛИЧНЫЕ

| РеализацияТовары.Товар

| ИЗ

| Документ.Реализация.Товары КАК РеализацияТовары

| ГДЕ

| РеализацияТовары.Ссылка = &Ссылка)) КАК ОстаткиОстатки

| ПО Док.Товар = ОстаткиОстатки.Товар

|ГДЕ

| ОстаткиОстатки.КоличествоОстаток < 0";

Граница = Новый Граница(МоментВремени(),ВидГраницы.Включая);

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

ЗАпрос.УстановитьПараметр("Момент",Граница);

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

Если Не Результат.Пустой() Тогда

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

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

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

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Нехватка позиций в количестве: "+(-Выборка.НехваткаТовара);

Сообщение.Поле ="Товары["+(Выборка.НомерСтроки-1)+"].Количество";

Сообщение.УстановитьДанные(ЭтотОбъект);

Сообщение.Сообщить();

КонецЦикла;

КонецЕсли;

КонецЕсли;

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

СуммаДокумента =Товары.Итог("Сумма");

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

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

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

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

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

СуммаДокумента = ДанныеЗаполнения.СуммаДокумента;

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

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

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

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

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

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

КонецЦикла;

КонецЕсли;

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

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

Процедура Печать(ТабДок, Ссылка) Экспорт

//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)

Макет = Документы.Реализация.ПолучитьМакет("Печать");

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

Запрос.Текст =

"ВЫБРАТЬ

| Реализация.Дата,

| Реализация.Клиент,

| Реализация.Номер,

| Реализация.СуммаДокумента,

| Реализация.Товары.(

| НомерСтроки,

| Товар,

| Количество,

| Цена,

| Сумма

| )

|ИЗ

| Документ.Реализация КАК Реализация

|ГДЕ

| Реализация.Ссылка В (&Ссылка)";

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

Выборка = Запрос.Выполнить().Выбрать();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

Шапка = Макет.ПолучитьОбласть("Шапка");

ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка");

ОбластьТовары = Макет.ПолучитьОбласть("Товары");

Подвал = Макет.ПолучитьОбласть("Подвал");

ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;

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

Если ВставлятьРазделительСтраниц Тогда

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);

ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьТоварыШапка);

ВыборкаТовары = Выборка.Товары.Выбрать();

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

ОбластьТовары.Параметры.Заполнить(ВыборкаТовары);

ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень());

КонецЦикла;

Подвал.Параметры.Заполнить(Выборка);

ТабДок.Вывести(Подвал);

ВставлятьРазделительСтраниц = Истина;

КонецЦикла;

//}}

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

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

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр Остатки Приход

Движения.Остатки.Записывать = Истина;

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

Движение = Движения.Остатки.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Товар = ТекСтрокаТовары.Товар;

Движение.Количество = ТекСтрокаТовары.Количество;

Движение.Сумма = ТекСтрокаТовары.Сумма;

Движение.ЗакупочнаяЦена = ТекСтрокаТовары.Цена;

КонецЦикла;

// регистр Продажа

Движения.Продажа.Записывать = Истина;

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

Движение = Движения.Продажа.Добавить();

Движение.Период = Дата;

Движение.Клиент = Клиент;

Движение.Товар = ТекСтрокаТовары.Товар;

Движение.Количество = ТекСтрокаТовары.Количество;

Движение.Сумма = ТекСтрокаТовары.Сумма;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

СуммаДокумента =Товары.Итог("Сумма");

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

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

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

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

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

СуммаДокумента = ДанныеЗаполнения.СуммаДокумента;

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

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

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

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

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

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

КонецЦикла;

КонецЕсли;

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

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

Процедура Печать(ТабДок, Ссылка) Экспорт

//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)

Макет = Документы.Реализация.ПолучитьМакет("Печать");

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

Запрос.Текст =

"ВЫБРАТЬ

| Реализация.Дата,

| Реализация.Клиент,

| Реализация.Номер,

| Реализация.СуммаДокумента,

| Реализация.Товары.(

| НомерСтроки,

| Товар,

| Количество,

| Цена,

| Сумма

| )

|ИЗ

| Документ.Реализация КАК Реализация

|ГДЕ

| Реализация.Ссылка В (&Ссылка)";

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

Выборка = Запрос.Выполнить().Выбрать();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

Шапка = Макет.ПолучитьОбласть("Шапка");

ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка");

ОбластьТовары = Макет.ПолучитьОбласть("Товары");

Подвал = Макет.ПолучитьОбласть("Подвал");

ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;

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

Если ВставлятьРазделительСтраниц Тогда

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);

ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьТоварыШапка);

ВыборкаТовары = Выборка.Товары.Выбрать();

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

ОбластьТовары.Параметры.Заполнить(ВыборкаТовары);

ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень());

Источник: https://files.student-it.ru/previewfile/104312