Файл: Разработка конфигурации «Продажи» в среде 1С:Предприятие 8.3. (1 АНАЛИТИЧЕСКАЯ ЧАСТЬ).pdf

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

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

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

Добавлен: 30.06.2023

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

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

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

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.5 Описание разработанных подсистем в среде 1С:Предприятие

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

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

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

Приложение А

Рисунок А1 – Форма «Препараты для пчел»

Рисунок А2 – Форма «Медовая косметика»

Рисунок А3 – Инвентарь пчеловода

Рисунок А4 – Установка количества

Рисунок А5 – Выбор товаров

Рисунок А6 – Отчет «Движение товара»

Приложение Б

Программные коды

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

СписокЗначений = Новый СписокЗначений;

СписокЗначений.Добавить(«Оформить продажу!»);

СписокЗначений.Добавить(«Может еще чего к медку?»);

ТекстВороса =

«Оформление продажи»;

Если Вопрос(ТекстВороса, СписокЗначений, , ) = «Оформить продажу!» Тогда

СформироватьРеализацию();

Товары.Очистить();

Иначе

Возврат

КонецЕсли;

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

Процедура МЁДНажатие(Элемент)

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница2;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Значение = Справочники.НоменклатурныеГруппы.Сувениры;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Использование = Истина;

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

Процедура ПРЕПАРАТЫНажатие(Элемент)

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница2;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Значение = Справочники.НоменклатурныеГруппы.ПрепаратыДляПчел;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Использование = Истина;

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

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

Процедура Инвентарь1Нажатие(Элемент)

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница2;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Значение = Справочники.НоменклатурныеГруппы.Инвентарь;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Использование = Истина;

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

Процедура КОСМЕТИКАНажатие(Элемент)

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница2;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Значение = Справочники.НоменклатурныеГруппы.ДляЗдоровья;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Использование = Истина;


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

Процедура ИНВЕНТАРЬНажатие(Элемент)

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница2;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Значение = Справочники.НоменклатурныеГруппы.Инвентарь;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Использование = Истина;

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

Процедура ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

ФормаКолВо = ПолучитьФорму(«ВводКоличества»);

КолВо = ФормаКолВо.ОткрытьМодально();

Если КолВо = Неопределено Тогда

Возврат;

КонецЕсли;

Номенклатура = ВыбраннаяСтрока.Ссылка;

УстановитьКоличествоЦену(КолВо, Номенклатура);

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

Процедура УстановитьКоличествоЦену(КолВо, Номенклатура)

Отбор = Новый Структура;

Отбор.Вставить(«Номенклатура», Номенклатура);

НайденыеСтроки = Товары.НайтиСтроки(Отбор);

Если КолВо > 0 Тогда

Если НайденыеСтроки.Количество() > 0 Тогда

Если ЭлементыФормы.СладкоеЧудо.ЦветФонаКнопки = WebЦвета.ЗеленоватоЖелтый Тогда

Если НайденыеСтроки.Количество() > 1 Тогда

Для Каждого СтрНайдено из НайденыеСтроки Цикл

Нашлось = Ложь;

Если СтрНайдено.Цена = 0 Тогда

НомерСтроки = НайденыеСтроки[0].НомерСтроки;

Стр = Товары[НомерСтроки -1];

Стр.Количество = Стр.Количество + КолВо;

Нашлось = Истина;

КонецЕсли;

КонецЦикла;

Если НЕ Нашлось Тогда

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

Стр.Номенклатура = Номенклатура;

Стр.Количество = КолВо;

КонецЕсли;

Иначе

Если НайденыеСтроки[0].Цена = 0 Тогда

НомерСтроки = НайденыеСтроки[0].НомерСтроки;

Стр = Товары[НомерСтроки -1];

Стр.Количество = Стр.Количество + КолВо;

Нашлось = Истина;

Иначе

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

Стр.Номенклатура = Номенклатура;

Стр.Количество = КолВо;

КонецЕсли;

КонецЕсли;

Иначе

Если НайденыеСтроки[0].Цена <> 0 Тогда

НомерСтроки = НайденыеСтроки[0].НомерСтроки;

Стр = Товары[НомерСтроки -1];

Стр.Количество = Стр.Количество + КолВо;

Иначе

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

Стр.Номенклатура = Номенклатура;

Стр.Количество = КолВо;

КонецЕсли;

КонецЕсли;

Иначе

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

Стр.Номенклатура = Номенклатура;

Стр.Количество = КолВо;

КонецЕсли;

ЦенаРег = РегистрыСведений.ЦеныНоменклатуры.СрезПоследних(ТекущаяДата(), Отбор);

Стр.ЕдиницаИзмерения = Стр.Номенклатура.БазоваяЕдиницаИзмерения;

Стр.Коэффициент = 1;

Если ЭлементыФормы.СладкоеЧудо.ЦветФонаКнопки = WebЦвета.ЗеленоватоЖелтый Тогда


ЭлементыФормы.СладкоеЧудо.ЦветФонаКнопки = ЦветаСтиля.ЦветФонаКнопки;

Стр.ПроцентСкидкиНаценки = 100;

Иначе

Если ЦенаРег.Количество() > 0 Тогда

Стр.Цена = ЦенаРег[0].Цена;

Иначе

ТекстВороса = «Цена не установлена, установить цену в ручную?»;

Если Вопрос(ТекстВороса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да) = КодВозвратаДиалога.Да Тогда

СтандартнаяОбработка = Ложь;

ФормаКолВо = ПолучитьФорму(«ВводКоличества»);

ФормаКолВо.Заголовок = «Укажите цену»;

ФормаКолВо.ЭлементыФормы.НадписьКоличество.Заголовок = «Цена»;

ЦенаНаТовар = ФормаКолВо.ОткрытьМодально();

Если ЦенаНаТовар = Неопределено Тогда

Возврат;

Иначе

Если Вопрос(«Запомнить цену на товар?», РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да) = КодВозвратаДиалога.Да Тогда

НайтиДок = Документы.УстановкаЦенНоменклатуры;

Док = НайтиДок.НайтиПоНомеру(«00000000001», ТекущаяДата());

Если Док = Документы.УстановкаЦенНоменклатуры.ПустаяСсылка() Тогда

Док = НайтиДок.ПолучитьФормуСписка();

КонецЕсли;

ДокОб = Док.ПолучитьОбъект();

ТоварыЦены = ДокОб.Товары;

УстТовар = ТоварыЦены.Добавить();

ЗаполнитьЗначенияСвойств(УстТовар, ТоварыЦены[0]);

УстТовар.Номенклатура = Номенклатура;

УстТовар.Цена = ЦенаНаТовар;

УстТовар.Валюта = Справочники.Валюты.НайтиПоКоду(«643»);

ДокОб.Записать(РежимЗаписиДокумента.Проведение);

КонецЕсли;

КонецЕсли;

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

КонецЕсли;

КонецЕсли;

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

КонецЕсли;

КонецЕсли;

Если ЭлементыФормы.Поступление.ЦветФонаКнопки <> WebЦвета.ЗеленоватоЖелтый Тогда

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница1;

КонецЕсли;

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

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

СтрокаТов = ЭлементыФормы.Товары.ТекущаяСтрока;

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

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

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

СтрокаТов = ЭлементыФормы.Товары.ТекущаяСтрока;

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

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

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

Отчет = Отчеты.пиПродажи.Создать();

Отчет.НачалоПериода = ТекущаяДата();

Отчет.КонецПериода = ТекущаяДата();

Отчет.НастройкаПериода.ДатаНачала = ТекущаяДата();

Отчет.НастройкаПериода.ДатаОкончания = ТекущаяДата();

ФормаОтчета = Отчет.ПолучитьФорму();

ФормаОтчета.Открыть();


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

Процедура СладкоеЧудоНажатие(Элемент)

Элемент.ЦветФонаКнопки = WebЦвета.ЗеленоватоЖелтый;

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница2;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Значение = Справочники.НоменклатурныеГруппы.Сувениры;

ТабличноеПоле1.Отбор.НоменклатурнаяГруппа.Использование = Истина;

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

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

Если Элемент.ЦветФонаКнопки = WebЦвета.ЗеленоватоЖелтый Тогда

ОформитьПоступление();

Элемент.ЦветФонаКнопки = ЦветаСтиля.ЦветФонаКнопки;

Иначе

Элемент.ЦветФонаКнопки = WebЦвета.ЗеленоватоЖелтый;

Элемент.Заголовок = «Оформить поступление»;

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница2;

КонецЕсли;

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

Процедура ОформитьПоступление()

ПосГотово = Ложь;

ТекстВороса = «Оформить поступление?»;

Если Вопрос(ТекстВороса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да) = КодВозвратаДиалога.Да Тогда

СформироватьПоступление();

ПосГотово = Истина;

Иначе

Возврат

КонецЕсли;

Если ПосГотово Тогда

Товары.Очистить();

КонецЕсли;

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

Процедура НазадНажатие(Элемент)

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница1;

ЭлементыФормы.СладкоеЧудо.ЦветФонаКнопки = ЦветаСтиля.ЦветФонаКнопки;

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

Процедура ОчиститьНажатие(Элемент)

Товары.Очистить();

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

Процедура УдалитьПродажуНажатие(Элемент)

Документы = Реализации.Отбор;

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

Процедура РеализацииЗаДеньНажатие(Элемент)

ЭлементыФормы.Выбор.ТекущаяСтраница = ЭлементыФормы.Выбор.Страницы.Страница3;

Реализации.Отбор.Дата.ЗначениеС = НачалоДня(ТекущаяДата());

Реализации.Отбор.Дата.ЗначениеПо = КонецДня(ТекущаяДата());

Реализации.Отбор.Дата.Использование = Истина;

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

Процедура ТабличноеПоле1ПриАктивизацииСтроки(Элемент)

ТекСтрока = ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока;

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

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

«ВЫБРАТЬ

| ТоварыНаСкладахОстатки.КоличествоОстаток

|ИЗ

| РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки»;

Если ТекСтрока = Неопределено Тогда

Возврат;

КонецЕсли;

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

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

Пока Результат.Следующий() Цикл


ЭлементыФормы.Остаток.Заголовок = Результат.КоличествоОстаток;

Если Результат.КоличествоОстаток >= 20 Тогда

ЭлементыФормы.Остаток.ЦветТекста = WebЦвета.Зеленый;

ИначеЕсли Результат.КоличествоОстаток <= 19 и Результат.КоличествоОстаток >= 10 Тогда

ЭлементыФормы.Остаток.ЦветТекста = WebЦвета.СветлоЗеленый;

ИначеЕсли Результат.КоличествоОстаток <= 9 и Результат.КоличествоОстаток >= 5 Тогда

ЭлементыФормы.Остаток.ЦветТекста = WebЦвета.ОранжевоКрасный;

ИначеЕсли Результат.КоличествоОстаток <= 4 Тогда

ЭлементыФормы.Остаток.ЦветТекста = WebЦвета.Красный;

КонецЕсли;

КонецЦикла;

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

Процедура РеализацииУдалитьПриИзменении(Элемент)

СписокЗначений = Новый СписокЗначений;

СписокЗначений.Добавить(«Удалить реализацию»);

СписокЗначений.Добавить(«Оставить без изменений»);

ТекстВороса =

«УДАЛЕНИЕ РЕАЛИЗАЦИИ»;

Если Вопрос(ТекстВороса, СписокЗначений, , «Удалить реализацию») = «Удалить реализацию» Тогда

СформироватьРеализацию();

Товары.Очистить();

Иначе

Возврат

КонецЕсли;

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

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

Процедура РеализацииПриАктивизацииКолонки(Элемент)

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

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

Процедура РеализацииВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

Если Элемент.ТекущаяКолонка.Имя = «Удалить» Тогда

Если Элемент.ТекущаяКолонка.ЦветФонаПоля = WebЦвета.Красный Тогда

Элемент.ТекущаяКолонка.ЦветФонаПоля = ЦветаСтиля.ЦветФонаКнопки;

Иначе

Элемент.ТекущаяКолонка.ЦветФонаПоля = WebЦвета.Красный;

КонецЕсли;

КонецЕсли;

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

Функция ПолучитьОстатокТовара(Номенклатура)

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

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

«ВЫБРАТЬ

| ТоварыНаСкладахОстатки.КоличествоОстаток

|ИЗ

| РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки»;

Запрос.УстановитьПараметр(«Номенклатура», Номенклатура);

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

Если Результат.Количество() > 0 Тогда

Возврат Результат[0].КоличествоОстаток;

Иначе

Возврат 0;

КонецЕсли;

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

Процедура ДвижениеТовараНажатие(Элемент)

Отчет = Отчеты.ДвижениеТовара.ПолучитьФорму();

Отчет.Открыть();

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

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

ДокЦены = Документы.УстановкаЦенНоменклатуры.ПолучитьФормуСписка();