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

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 27.06.2023

Просмотров: 439

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

Глава 1. Аналитическая часть

1.1. Выбор комплекса задач автоматизации

1.2. Характеристика документооборота, возникающего при решении задачи

1.3. Обоснование проектных решений по информационному обеспечению

Глава 2. Проектная часть

2.1. Характеристика разработанных справочников в среде 1С:Предприятие и(справочники, константы, перечисления).

2.2. Характеристика разработанных экранных форм документов в среде 1С:Предприятие

2.2.1. Описание документов, необходимых для получения исходной информации (разработка документов и регистров)

2.2.2 Описание разработанных форм отчетов, необходимых для отражения результатов решения задачи

2.3. Описание реализации периодических расчетов в среде 1С:Предприятие

2.4. Описание созданной / откорректированной карты маршрута бизнес процесса в среде 1С:Предприятие

2.6 Описание разработанного интерфейса пользователя в среде 1С:Предприятие (разработка управляемого интерфейса)

2.7. Контрольный пример реализации проекта в среде 1С:Предприятие и его описание

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

КонецЕсли;

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

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

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

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

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

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

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

"ВЫБРАТЬ

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

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

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

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

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

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

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

| Товар,

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

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

| Сумма

| )

|ИЗ

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

|ГДЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

КонецЦикла;

//}}

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

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

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

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


Иначе

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

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

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

"ВЫБРАТЬ

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

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

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

|ИЗ

| (ВЫБРАТЬ

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

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

| ИЗ

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

|

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

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

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

| &Момент,

| Товар В

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

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

| ИЗ

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

| ГДЕ

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

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

|ГДЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

КонецЕсли;

КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

КонецЕсли;

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

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

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


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

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

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

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

"ВЫБРАТЬ

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

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

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

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

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

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

| Товар,

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

| Цена,

| Сумма

| )

|ИЗ

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

|ГДЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

КонецЦикла;

//}}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

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

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

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

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


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

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

КонецЦикла;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

КонецЕсли;

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

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

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

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

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

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

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

"ВЫБРАТЬ

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

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

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

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

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

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

| Товар,

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

| Цена,

| Сумма

| )

|ИЗ

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

|ГДЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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