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

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

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

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

Добавлен: 03.07.2023

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

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

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

СОДЕРЖАНИЕ

Введение

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

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

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

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

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

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

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

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

2.5 Описание разработанных подсистем в среде 1С:Предприятие

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

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

Заключение

Список литературы

Приложения

Приложение А

Приложение А.1 –Работа со справочниками

Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт

//Создать вспомокательный обьект Отбор.

Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);

//Получить актуальные значения ресурсов регистра.

ЗначенияРесурсов = РегистрыСведений.РозничныеЦены.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;

КонецФункции

Функция ЗакупочнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт

// Создадим спомогательный объект Отбор.

Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);

// Получить актуальные значения объектов ресурса

ЗначенияРесурсов = РегистрыСведений.ЗакупочныеЦены.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;

КонецФункции

Приложение А.2 – Поступление товара

Модуль формы:

&НаКлиенте

Процедура ТоварыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

&НаКлиенте

Процедура ТоварыЦенаЗаЕдиницуПриИзменении(Элемент)

СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные; РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

&НаКлиенте

Процедура ТоварыТоварПриИзменении(Элемент)

//Получить текущую строку табличной части

СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;

// Установить цену

СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.ЗакупочнаяЦена(Объект.Дата, СтрокаТабличнойЧасти.Товар);

//Пересчитать сумму строки

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Модуль объекта:

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

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

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

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

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

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

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

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

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

Движение.Склад = Склад;

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

// регистр СтоимостьТоваров Расход

Движение = Движения.СтоимостьТоваров.Добавить();

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

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

Движение.Контрагент = Поставщик;


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

// регистр Закупки

Движение = Движения.Закупки.Добавить();

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

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

Движение.Поставщик = Поставщик;

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

Движение.Задолженность = ТекСтрокаТовары.Сумма;

КонецЦикла;

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

Менеджер объекта:

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

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

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

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

"ВЫБРАТЬ

| ПоступлениеТоваров.Дата,

| ПоступлениеТоваров.МатериальноОтветственноеЛицо,

| ПоступлениеТоваров.Номер,

| ПоступлениеТоваров.Поставщик,

| ПоступлениеТоваров.Склад,

| ПоступлениеТоваров.Товары.(

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

| Товар,

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

| Цена,

| Сумма

| )

|ИЗ

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

|ГДЕ

| ПоступлениеТоваров.Ссылка В (&Ссылка)";

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

СуммаИтог = 0;

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

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

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

СуммаИтог = СуммаИтог + ВыборкаТовары.Сумма;

КонецЦикла;

ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог;

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

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

КонецЦикла;

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

Приложение А.3 – Реализация товара»

Модуль формы:

&НаКлиенте

Процедура ПереченьНоменклатурыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

&НаКлиенте


Процедура ПереченьНоменклатурыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

&НаКлиенте

Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)

//Получить текущую строку табличтой части.

СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;

//Установить цену.

СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура);

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

Модуль объекта:

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

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

Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

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

| РеализацияТовараПереченьНоменклатуры.Номенклатура,

| СУММА(РеализацияТовараПереченьНоменклатуры.Количество) КАК Количество

|ПОМЕСТИТЬ ДокТЧ

|ИЗ

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

|ГДЕ

| РеализацияТовараПереченьНоменклатуры.Ссылка = &Ссылка

|

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

| РеализацияТовараПереченьНоменклатуры.Номенклатура

|;

|

|////////////////////////////////////////////////////////////////////////////////

|ВЫБРАТЬ

| ДокТЧ.Номенклатура,

| ДокТЧ.Количество

|ИЗ

| ДокТЧ КАК ДокТЧ";

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

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

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

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

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

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

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

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

Движение.Номенклатура = Выборка.Номенклатура;

Движение.Склад = Склад;

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

КонецЦикла;

Движения.Записать();

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

| Номенклатура,

| КоличествоОстаток КАК Остаток

|ИЗ

| РегистрНакопления.ОстаткиТоваров.Остатки(

| ,

| Склад = &Склад

| И Номенклатура В

| (ВЫБРАТЬ

| ДокТЧ.Номенклатура

| ИЗ

| ДокТЧ КАК ДокТЧ))

|ГДЕ

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

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

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

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

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

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

Сообщение.Текст = "Не хватает товара " + Выборка.Номенклатура + ", после проведения документа остаток составит " + Выборка.Остаток;


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

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

КонецЦикла;

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

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

Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл

// регистр СтоимостьТоваров Приход

Движение = Движения.СтоимостьТоваров.Добавить();

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

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

Движение.Контрагент = Покупатель;

Движение.Сумма = ТекСтрокаПереченьНоменклатуры.Сумма;

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

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

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

Движение.Номенклатура = ТекСтрокаПереченьНоменклатуры.Номенклатура;

Движение.Покупатель = Покупатель;

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

Движение.Выручка = ТекСтрокаПереченьНоменклатуры.Сумма;

КонецЦикла;

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

Модуль менеджера:

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

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

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

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

"ВЫБРАТЬ

| РеализацияТовара.Дата,

| РеализацияТовара.МатериальноОтветствннноеЛицо,

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

| РеализацияТовара.Покупатель,

| РеализацияТовара.Склад,

| РеализацияТовара.ПереченьНоменклатуры.(

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

| Номенклатура,

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

| Цена,

| Сумма

| )

|ИЗ

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

|ГДЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();

СуммаИтог = 0;

Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл

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


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

СуммаИтог = СуммаИтог + ВыборкаПереченьНоменклатуры.Сумма

КонецЦикла;

ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог;

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

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

КонецЦикла;

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

Приложение А.4 – Работа с документами

Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт

СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

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

Приложение А.5 – Товары на складе

ВЫБРАТЬ

ОстаткиТоваровОстаткиИОбороты.Склад,

ОстаткиТоваровОстаткиИОбороты.Номенклатура,

ОстаткиТоваровОстаткиИОбороты.КоличествоНачальныйОстаток,

ОстаткиТоваровОстаткиИОбороты.КоличествоПриход,

ОстаткиТоваровОстаткиИОбороты.КоличествоРасход,

ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток

ИЗ

РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты КАК ОстаткиТоваровОстаткиИОбороты

Приложение А.6 – Реестр документа поступление товара

ВЫБРАТЬ

ПоступлениеТоваров.Склад,

ПоступлениеТоваров.Поставщик,

ПоступлениеТоваров.Товары.(

Товар,

Количество

),

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

ИЗ

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

УПОРЯДОЧИТЬ ПО

Документ

Приложение А.7 – Реестр документа реализация товара

ВЫБРАТЬ

РеализацияТовара.Склад,

РеализацияТовара.ПереченьНоменклатуры.(

Номенклатура,

Количество

),

РеализацияТовара.Покупатель,

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

ИЗ

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

УПОРЯДОЧИТЬ ПО

Документ

Приложение А.8 – Рейтинг продаж

ВЫБРАТЬ

СпрНоменклатура.Ссылка КАК Товар,

ПродажиОбороты.ВыручкаОборот КАК Выручка

ИЗ

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура

ПО ПродажиОбороты.Номенклатура = СпрНоменклатура.Ссылка

УПОРЯДОЧИТЬ ПО

Выручка УБЫВ

Приложение А.9 – Продажи

ВЫБРАТЬ

ПродажиОбороты.Номенклатура,

ПродажиОбороты.Покупатель,

ПродажиОбороты.КоличествоОборот,

ПродажиОбороты.ВыручкаОборот

ИЗ

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

Приложение А.10 – Прайс-лист

ВЫБРАТЬ

РозничныеЦеныСрезПоследних.Номенклатура.ПолноеНаименование КАК Товар,