Разработка информационной системы для оптимизации торгово-закупочных операций ГКУ СО "Самарафармация"

Классификация информационных систем и требования к функциональности. Исследование программного комплекса "1С: Предприятие" при проектировании и создании информационной системы для оптимизации торгово-закупочных операций. Структура представления данных.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.08.2018
Размер файла 3,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Номенклатурную группу, по которой будет формироваться заказ можно выбрать в поле «Отбор товара», также возможно указать отдельную номенклатурную позицию, принадлежащую выбранной товарной группе.

В поле «Диапазон анализа» слева - направо задается:

Дата окончания диапазона анализа - неделя, к которой принадлежит эта дата будет последней неделей по которой обрабатываются данные.

Рабочая дата - при расчете объема заказа поставщику, текущий объем складского запаса (Vтекущ) будет рассчитываться на эту дату, кроме этого от рабочей даты считается количество дней до планируемого прихода.

Плановая дата поставки - дата планируемого прихода товара на склад,

Количество рабочих дней до планируемого дня поставки - эту величину задавать не нужно - система сама рассчитает количество дней исходя из рабочей даты и плановой даты поставки, при расчете текущая дата и дата прихода не считаются.

Глубина анализа - количество недель, предшествующее неделе, которой принадлежит дата окончания диапазона анализа, по которым обрабатываются данные.

После задания вышеперечисленных параметров система готова для формирования выборки данных, необходимых для прогнозирования продаж и составления заказа.

Формирование такого отчета производится по нажатию кнопки «Анализ данных. Подготовка планирования закупок.» После нажатия кнопки программа перейдет в форму «Планирование» и сформирует отчет, содержащий содержащих недельные объемы заказов на товар, величину остатка на складе по каждой номенклатурной позиции на день, выбранный в качестве рабочей даты и среднего значения спроса на товар, в качестве справочной величины. Внешний вид формы «Планирование» представлен на рис. 3.3.

Рис. 3.3 - Окно программы, форма «Планирование»

После формирования исходных данных в виде такого отчета система готова к прогнозированию спроса и составлению заказа на поставку товара, что производится нажатием кнопки «Линейный анализ». Функция «Убрать отрицательные остатки» приравнивает к нулю значение остатка товара на складе на рабочую дату, чтобы неоправданно не увеличивать заказ.

После нажатия кнопки «Линейный анализ» программа проводит линейный регрессионный анализ товарного спроса на каждую позицию, оценку значений коэффициентов уравнения регрессии для каждой позиции, прогнозирует значение товарного спроса и составляет заказ согласно алгоритму, описанному в пункте 3.2 бакалаврской работы.

Рис. 3.4 - Форма «Заказ»

В табличной части отображаются: остаток товара на рабочую дату, прогнозируемый недельный объем продаж, коэффициенты уравнения линейной регрессии, минимальный (страховой) и максимальный уровни складского запаса, размер заказа в базовых единицах измерения (рис. 3.4).

По расчетным данным может быть сформирован документ заказ поставщику, на основании этого документа возможно вводить приходную накладную. Формируется документ после подготовки бланка заказа, в котором указывается поставщик, нажатием кнопки «Заказ поставщику».

При формировании документа осуществляется пересчет размера заказа из минимальных единиц измерения (штук) в закупочные, с округлением вниз с точностью до товарного короба (в 1С - закупочной единицы измерения). При этом в случае, если расчетная величина заказа по позиции менее одного товарного короба, то в документ «Заказ поставщику» эта позиция не записывается.

Такой процесс формирования заказа имеет достаточно простой и наглядный для пользователя порядок. Программа, в процессе составления заказа, в удобной форме показывает все данные, которыми оперирует при вычислении объема заказа и после формирования документа «Заказ поставщику» он остается в системе и доступен для внесения корректировок, распечатывания и дальнейшего анализа, например, сравнения приходной накладной с заказом.

Стоит отметить, что данная работа посвящена разработке и анализу результатов использования программного обеспечения (ПО), отвечающего за составление заказов поставщикам. Для оценки новизны, качества, технико-экономической и эксплуатационной прогрессивности данной работы необходимо оценить показатель научно-технического прогресса разработки (НТПр) со следующих позиций:

научно - технический уровень (новизна) НИР;

перспективность НИР;

возможность применения результатов НИР.

Определим уровни научно - технического прогресса по признакам научно - технического эффекта, в баллах.

Таблица 3.1

Уровни научно-технического прогресса

Уровни научно - технического прогресса

Основные параметры

Передовой отечествен.

Теоретич. возможн.

Базовый

Намечаемый

Научно-технический уровень (новизна)

5

10

2

3

Перспективность

7

10

1

6

Возможность применения результатов

6

10

3

6

Обобщенный количественный показатель научно - технического уровня определяется следующим образом:

(3.7)

где Qij значение j-го показателя i-го признака научно- технического прогресса в баллах.

Ri значение “весового коэффициента” i-го признака.

Зададим значимость признаков научно- технического эффекта НИР (Табл. 3.2).

Таблица 3.2

Значимость признаков научно- технического эффекта НИР

Признак научно - технического эффекта НИР

Значимость признаков научно- технического эффекта НИР

Научно-технический уровень, R1

0,4

Перспективность, R2

0,6

Возможность применения результатов, R3

0,6

Заключение

Любой торговой компании в процессе работы приходится иметь дело с обработкой больших массивов разнородной информации, вести учет движения товаров, денег, обрабатывать большое количество первичной документации, планировать финансовые потоки. Если до появления ПЭВМ данная работа велась вручную, то в настоящее время существует целый класс программ, призванный решать круг задач по автоматизации работы предприятия, ведению управленческого и бухгалтерского учета. Наибольшее распространение в нашей стране получили программные продукты компании “1С” серий «1С: Предприятие», которое и было использовано в работе.

В ходе выполнения работы были решены следующие задачи:

произведены преобразования структуры представления данных,

преобразован основной номенклатурный справочник,

введены новые сущности - «система прайсов» и «каталог анализа и планирования»,

внедрение в конфигурацию «1С: Предприятие» системы прайсов и каталога анализа и планирования позволило сформировать представление данных в наиболее естественной, удобной и привычной для сотрудников компании форме,

добавлены документы - «заказ покупателя» и «заказ поставщику», позволяющие планировать заказы.

изменена система расчета цен.

Для достижения результата были пройдены следующие этапы: определена постановка задачи и проведен анализ путей её решения, разработана модульная структура, составлены алгоритмы работы ПС и основных модулей, построена структура БД, создана схема информационных потоков программного средства.

Перенос системы расчета цен с «1С: Предприятие» позволил ликвидировать большое количество ручного труда, связанного с проставлением и расчетом цен реализации и контролем входных цен.

Также был разработан алгоритм вычисления объема заказа, опирающийся на средства статистического анализа и методы цифровой обработки информации.

Разработано программное обеспечение, формирующее заказы поставщикам, исходя из прогнозирования товарного спроса. Достоинством программы является возможность ее модернизации с учетом пожеланий пользователя, процесс модернизации упрощается благодаря тому, что сама программа находится во внешней обработке и внесение изменений в программу не влечет за собой необходимость изменения конфигурации системы «1С: Предприятие».

Разработанное программное обеспечение полностью удовлетворяет требованиям заказчика и представляет практическую ценность для ГКУ СО «Самарафармация».

Список используемых источников

1. Божко, В.П. Организационно- методологические основы построения АСИС [Текст]/ В.П. Божко. - МЭСИ, 2004, - 177 с.

2. Волков, С.И. Организация машинной обработки экономической информации [Текст] / С.И. Волков, А.Н.. Романов- «Финансы и статистика», 2005. - 384 с.

3. Голицына, О.Л. Базы данных [Текст]: учебное пособие /О. Л. Голицына. - Изд. 2-е, испр. и доп. - М.: ФОРУМ: ИНФРА-М, 2009. - 400 с.

4. Диго, С.М. Проектирование и использование баз данных [Текст]/ С.М. Диго. «Финансы и статистика». 2005 -с. 87.

5. Заикин, О.А. Проектирование интегрированных систем обработки информации и управления [Текст]: учебное пособие / О.А. Заикин, Б.Я. Советов. - МГАП "Мир Книги", 2004 - 190 с.

6. Косиненко, Н. С. Информационные системы и технологии в экономике [Text]: учеб. пособие / Н. С. Косиненко, И. Г. Фризен - М.: Дашков и К, 2012. - 304 с.

7. Радченко, М.Г. 1C: Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы [Текст]: учеб. пособие / М.Г.Радченко, Е.Ю. Хрусталева. - Издательство: Питер, 1С-Паблишинг, 2009. - 874 с.

8. Рудинский, И. Д. Технология проектирования автоматизированных систем обработки информации и управления [Текст]: учеб. пособие для вузов / И. Д. Рудинский - М.: Горячая линия - Телеком, 2011. - 303 с.

9. Батищев, П.С. Электронный учебник по программе

10. «1С: БУХГАЛТЕРИЯ 7.7» [Электронный ресурс] /П.С. Батищев- Электрон. дан. - Орлово-Вятский сельскохозяйственный колледж, 2013. - Режим доступа: http://psbatishev.narod.ru/1sbuh/b000.htm, свободный. - Загл. с экрана.

11. Кириллов, В. В. Основы проектирования реляционных баз данных [Электронный ресурс] / В. В. Кириллов - Электрон. дан. - СПб.: Изд-во С.-Петерб. ин-та, 2013. - Режим доступа: http://citforum.ru/database/dbguide/index.shtml, свободный. - Загл. с экрана.

Приложение А

Модуль программы формирования заказов

//----------

Функция Титул()

Если Пустое Значение (ВыбПрайс)=1 Тогда Возврат "<<Прайс не указан>>" Конец Если;

Х=?(Выб Прайс. Выбран()=0,"",

?(ВыбПрайс.Уровень()=1,""+ВыбПрайс,?(ВыбПрайс.Уровень()=2,ВыбПрайс.Родитель,""+ВыбПрайс.Родитель.Родитель+" - "+ВыбПрайс.Родитель)))+?(ВыбТовар.Выбран()=0,"",": "+ВыбТовар);

//?(ВыбПрайсЛогистика.Выбран()=0,"",?(ВыбПрайсЛогистика.Уровень()=1,"",?(ВыбПрайс.Уровень()=2,ВыбПрайс.Родитель,""+ВыбПрайс.Родитель.Родитель+" - "+ВыбПрайс.Родитель)))+?(ВыбТовар.Выбран()=0,"",": "+ВыбТовар)

Возврат Х;

КонецФункции // Титул

//----------

Процедура Товары Прайса (Прайс, Список Товаров) // Список товаров (указанной части) прайса

Прс=СоздатьОбъект("Справочник._Прайсы");

СпрТов=СоздатьОбъект("Справочник._Прайс_товар");

Если ПустоеЗначение(Прайс)=0 Тогда

Если Прайс.ЭтоГруппа()=1 Тогда

Прс.ИспользоватьРодителя(Прайс.ТекущийЭлемент()); // и переходим к перебору

Иначе // итак, единственная прайсовая группа, товар перечислен в подчинённом справочнике...

СпрТов.ИспользоватьВладельца(Прайс.ТекущийЭлемент());

СпрТов.ВыбратьЭлементы();

Пока СпрТов.ПолучитьЭлемент()=1 Цикл

Если СпрТов.Товар.Выбран()=0 Тогда Продолжить КонецЕсли;

Если СпрТов.Товар.ПометкаУдаления()=1 Тогда Продолжить КонецЕсли;

Если СпрТов.ПометкаУдаления()=1 Тогда Продолжить КонецЕсли;

Если СписокТоваров.Принадлежит(СпрТов.Товар.ТекущийЭлемент())=0 Тогда

СписокТоваров.ДобавитьЗначение(СпрТов.Товар.ТекущийЭлемент())

КонецЕсли

Продолжение приложения А

КонецЦикла;

Возврат

КонецЕсли;

КонецЕсли;

Прс.ВыбратьЭлементы();

Пока Прс.ПолучитьЭлемент()=1 Цикл

Если Прс.ЭтоГруппа()=1 Тогда Продолжить КонецЕсли;

// Выведем все товары-строки

СпрТов.ИспользоватьВладельца(Прс.ТекущийЭлемент());

СпрТов.ВыбратьЭлементы();

Пока СпрТов.ПолучитьЭлемент()=1 Цикл

Если СпрТов.Товар.Выбран()=0 Тогда Продолжить КонецЕсли;

Если СпрТов.Товар.ПометкаУдаления()=1 Тогда Продолжить КонецЕсли;

Если СпрТов.ПометкаУдаления()=1 Тогда Продолжить КонецЕсли;

Если СписокТоваров.Принадлежит(СпрТов.Товар.ТекущийЭлемент())=0 Тогда

СписокТоваров.ДобавитьЗначение(СпрТов.Товар.ТекущийЭлемент())

КонецЕсли

КонецЦикла;

КонецЦикла;

КонецПроцедуры // ТоварыПрайса

//------------

Функция НазваниеДня(ДатаХ)

i=НомерДняНедели(ДатаХ);

Если i=1 Тогда Возврат "понедельник" КонецЕсли;

Если i=2 Тогда Возврат "вторник" КонецЕсли;

Если i=3 Тогда Возврат "среда" КонецЕсли;

Если i=4 Тогда Возврат "четверг" КонецЕсли;

Если i=5 Тогда Возврат "пятница" КонецЕсли;

Если i=6 Тогда Возврат "суббота" КонецЕсли;

Если i=7 Тогда Возврат "воскресенье" КонецЕсли;

КонецФункции // НазваниеДня

//----------

Процедура ПоПрайсу()

Если Форма.Закладки.ТекущаяСтрока()=1 Тогда

ВыбТовар="";

Продолжение приложения А

ЕстьТовар=?(ВыбПрайс.Выбран()=0,0,?(ВыбПрайс.ЭтоГруппа()=1,0,1);

Форма.ВыбТовар.Видимость(ЕстьТовар);

Форма.ВТх.Видимость(ЕстьТовар);

Форма.ВТхх.Видимость(ЕстьТовар);

Если ВыбПрайс.Выбран()=0 Тогда Возврат КонецЕсли;

Голова=?(ВыбПрайс.Уровень()=1,ВыбПрайс,?(ВыбПрайс.Уровень()=2,ВыбПрайс.Родитель,ВыбПрайс.Родитель.Родитель));

ПризнакОтбора=СокрЛП(Голова);

КонецЕсли;

КонецПроцедуры // ПоПрайсу

//------------

Процедура ЗаказПоставщику()

Если ВыбЗаказ.Выбран()=0 Тогда

//Х="Предварительно в поле справа д.б. показан предыдущий заказ

//|или введён новый, без заполнения табличной части!";

Х="Предварительно в поле справа должен быть введён новый заказ

|без заполнения табличной части!";

Предупреждение(Х);

Возврат

КонецЕсли;

Если ВыбЗаказ.КоличествоСтрок()>0 Тогда

Если Вопрос("В указанном заказе строк в табличной части "+ВыбЗаказ.КоличествоСтрок()+"."+РазделительСтрок+

"Формируем заказ заново ?","Да+Нет")="Нет" Тогда Возврат КонецЕсли;

КонецЕсли;

ВЗ=СоздатьОбъект ("Документ."+ВыбЗаказ.Вид());

Если ВЗ.НайтиДокумент(ВыбЗаказ)=0 Тогда

Предупреждение ("СОШ-529");Возврат

КонецЕсли;

ВЗ.УдалитьСтроки();

ВЗ.ДатаОтгрузки=ВЗ.ДатаДок;

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

ЕстьОШИБКИ=0;

ТП.ВыбратьСтроки();

Пока ТП.ПолучитьСтроку()=1 Цикл

Если ПустоеЗначение(ТП.Заказ)=1 Тогда Продолжить; КонецЕсли;

Продолжение приложения А

ВЗ.НоваяСтрока();

ВЗ.Номенклатура=ТП.Товар;

ЕстьЕД=1;

Если ТП.Товар.ЗакупочнаяЕдиница.Выбран()=0 Тогда

ЕстьЕД=0;

КонецЕсли;

Если ЕстьЕД=0 Тогда

Единица=ТП.Товар.БазоваяЕдиница.ТекущийЭлемент();

Сообщить ("Закупочная единица не указана или коэффициент<=1. Строка "+ТП.НомерСтроки+", товар: "+ТП.Товар);

Иначе

Единица=ТП.Товар.ЗакупочнаяЕдиница.ТекущийЭлемент();

КонецЕсли;

К=Единица.Коэффициент;

Если К < 1 Тогда

Сообщить("Нет коэффициента у единицы. Строка "+ТП.НомерСтроки+", товар: "+ТП.Товар,"!");

К=1;

ЕстьОШИБКИ=1

КонецЕсли;

Если К=1 Тогда

Кц=ТП.Заказ;

Иначе

//Кц=Цел(ТП.Заказ/К);

//Если Кц*К<>ТП.Заказ Тогда

//Сообщить("Указано количество не кратное упаковке (кф.уп."+К+"). Строка "+ТП.НомерСтроки+", товар: "+ТП.Товар,"!");

//ЕстьОШИБКИ=1

//КонецЕсли;

Кц=Цел(ТП.Заказ/К);

Если Кц*К<>ТП.Заказ Тогда Кц=Кц+1 КонецЕсли;

КонецЕсли;

ВЗ.Единица=Единица;

ВЗ.Коэффициент=К;

ВЗ.Количество=Кц;

глПересчетТаблЧасти(ВЗ.ТекущийДокумент(),"Номенклатура");

КонецЦикла;

Продолжение приложения А

ВЗ.Записать();

Х="Заказ сформирован."+?(ЕстьОШИБКИ=1," Есть ОШИБКИ!!!","");

Предупреждение(Х);

КонецПроцедуры // ЗаказПоставщику

//------------

Процедура ДиапазонПоДате(Дата0="",Дата1,Дата2)

Если ПустоеЗначение(Дата0)=0 Тогда

Если Дата0>ПолучитьДатуТА() Тогда Дата0=ПолучитьДатуТА(); Предупреждение("Итоги расчитаны по "+Дата0); КонецЕсли;

Понедельник=Дата(Дата0-НомерДняНедели(Дата0)+1);

Дата2=Дата(Понедельник-3);

КонецЕсли;

хх=НомерДняНедели(Дата0);

х=Число(Дата0Х)-Число(Дата0);

Если (х>7)ИЛИ(х<(8-хх)) Тогда Дата0Х=Дата(Дата0+7);КонецЕсли;

Если НЕ(НомерДняНедели(Дата2)=5) Тогда

Дата2=Дата(Дата2-НомерДняНедели(Дата2)+5);

КонецЕсли;

Понедельник=Дата(Дата2-НомерДняНедели(Дата2)+1);

Дата1=Дата(Понедельник-7*(ГлубинаАнализа-1));

РабочихДнейДоПоставки=Число(Дата0Х)-Число(Дата0)-3;

КонецПроцедуры // ДиапазонПоДате

//------------

Процедура Аппроксимация(Данные,А,В)

А=0;В=0;

Если ПустоеЗначение(Данные)=1 Тогда Возврат КонецЕсли;

Хсред=Данные.Итог("Х")/Данные.КоличествоСтрок();

Усред=Данные.Итог("У")/Данные.КоличествоСтрок();

Числитель=0;

Знаменатель=0;

Данные.ВыбратьСтроки();

Пока Данные.ПолучитьСтроку()=1 Цикл

Числитель=Числитель+(Данные.Х-Хсред)*Данные.У;

Знаменатель=Знаменатель+(Данные.Х-Хсред)*(Данные.Х-Хсред);

КонецЦикла;

Если Знаменатель=0 Тогда

А=Усред; В=0;

Продолжение приложения А

Иначе

В=Числитель/Знаменатель;

А=Усред-Хсред*Числитель/Знаменатель;

КонецЕсли;

КонецПроцедуры // Аппроксимация

//------------

Процедура АнализЛинейный() // Линейная апроксимация

ПеремПрогноз,А,В,Хмин,Хмакс,Заказ;

ТП.Очистить();

ТТ.Выгрузить(ТП,,,"Товар,Остаток");

ТП.НоваяКолонка("ПрогнозПродаж","Число",7,0,"Прогноз",6);

ТП.НоваяКолонка("А","Число",17,0,"А",6);

ТП.НоваяКолонка("В","Число",17,0,"В",6);

ТП.НоваяКолонка("Мин","Число",17,0,"min",6);

ТП.НоваяКолонка("Макс","Число",17,0,"max",6);

ТП.НоваяКолонка("Заказ","Число",7,0,"Заказ",6)

Данные=СоздатьОбъект("ТаблицаЗначений");

Данные.НоваяКолонка("Х","Число",3,0);

Данные.НоваяКолонка("У","Число",7,0);

Если ТТ.КоличествоКолонок()<> ГлубинаАнализа+3 Тогда Сообщить("СОШ-682");Возврат КонецЕсли;

ном=0;

ТТ.ВыбратьСтроки();

Пока ТТ.ПолучитьСтроку()=1 Цикл

ном=ном+1;

ТП.ПолучитьСтрокуПоНомеру(ном);

Данные.УдалитьСтроки();

Для i=1 По ГлубинаАнализа Цикл

у=ТТ.ПолучитьЗначение(ном,i+3);

Если (ПустоеЗначение(у)=1)И(ПустоПропускать=1) Тогда // пропускаем

Иначе

Данные.НоваяСтрока();

Данные.Х=i;

Данные.У=у;

КонецЕсли;

КонецЦикла;

Продолжение приложения А

Если ПустоеЗначение(Данные)=1 Тогда Сообщить("Строку "+ТТ.ТекущаяСтрока()+" не обрабатываем.");Продолжить КонецЕсли;

Аппроксимация (Данные,А,В);

// Параметры заказа

//Прогноз1=А+В*(ГлубинаАнализа+1);

Прогноз2=А+В*(ГлубинаАнализа+2);

Расчётный Остаток На Моменть Поступления Заказа=Макс(ТТ.Остаток-ТТ.Расходимость*РабочихДнейДоПоставки,0);

Заказ=Прогноз2*1.3-РасчётныйОстатокНаМоментьПоступленияЗаказа;

Хмин=Прогноз2*0.5;

Хмакс=Прогноз2*1.5;

ТП.А=А;

ТП.В=В;

ТП.ПрогнозПродаж=Прогноз2;

ТП.Заказ=Заказ;

ТП.Мин=Хмин;

ТП.Макс=Хмакс;

КонецЦикла;

ТТ.ТекущаяСтрока(1);

ТП.ТекущаяСтрока(1);

Форма.Закладки.ТекущаяСтрока(3);

Форма.ИспользоватьСлой("Основной,Даты,Заказ", 2);

КонецПроцедуры // АнализЛинейный

//------------

Процедура УбратьОтрицательныеОстатки() // Возможна пересортица...

ТТ.ВыбратьСтроки();

Пока ТТ.ПолучитьСтроку()=1 Цикл

Если ТТ.Остаток<0 Тогда ТТ.Остаток=0; КонецЕсли;

КонецЦикла;

КонецПроцедуры // УбратьОтрицательныеОстатки

//------------

Процедура Хроника() // Построение графика продаж по неделям

СписокТоваров=СоздатьОбъект("СписокЗначений");

ТоварыПрайса(ВыбПрайс,СписокТоваров);

// Остаток расчитываем на конец предыдущей недели...

// Нет, берём текущий остаток, на рабочую дату.

Продолжение приложения А

ОстаткиПоТоварам=СоздатьОбъект("Запрос");

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

"//{{ЗАПРОС(Остатки)

|Период с Дата0 по Дата0;

|Товар=Регистр.ОстаткиТМЦ.Номенклатура;

|КолВо = Регистр.ОстаткиТМЦ.Количество;

|Функция КО = КонОст(КолВо);

|Группировка Товар Без Групп;

|Условие (Товар В СписокТоваров);

|"//}}ЗАПРОС

;

Если Остатки По Товарам. Выполнить (ТекстЗапроса) = 0 Тогда Предупреждение("Запрос по остаткам не выполнен!");Возврат КонецЕсли;

ЗапросПоТоварам=Создать Объект ("Запрос");

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

"//{{ЗАПРОС(Товар)

|Период с Дата1 по Дата2;

|Товар=Регистр.ПартииНаличие.Номенклатура;

|КодОперации=Регистр.ПартииНаличие.КодОперации;

|КолВо = Регистр.ПартииНаличие.Количество;

//|Функция Закупка = Приход(КолВо) когда (КодОперации=глКО.Закупка);

//|Функция ВозвратПоставщику = Расход(КолВо) когда (КодОперации=глКО.ВозвратПоставщику);

|Функция Продажа = Расход(КолВо) когда (КодОперации=глКО.Продажа);

//|Функция ВозвратОтПокупателя = Приход(КолВо) когда (КодОперации=глКО.ВозвратОтПокупателя);

|Группировка Неделя;

|Группировка Товар Без Групп;

//|Без итогов;

|Условие (Товар В СписокТоваров);

|"//}}ЗАПРОС;

Если ЗапросПоТоварам.Выполнить(ТекстЗапроса) = 0 Тогда Предупреждение("Запрос по товарам не выполнен!");Возврат КонецЕсли;

ТТ.Очистить();

ТХ=СоздатьОбъект("ТаблицаЗначений");

Продолжение приложения А

ТХ.НоваяКолонка("Товар","Справочник.Номенклатура",,,,10);

ТХ.НоваяКолонка("Остаток","Число",7,0,"КонОст",5);

ТХ.НоваяКолонка("Расходимость","Число",7,0,"СрРсх",5);

КолонкиПрихода=СоздатьОбъект("СписокЗначений");

КолонкиРасхода=СоздатьОбъект("СписокЗначений");

Д=0;

Пока ЗапросПоТоварам.Группировка("Неделя") = 1 Цикл

День=Дата(ЗапросПоТоварам.Неделя);

Состояние(""+День);

Д=Д+1;

КолонкаРасхода="Д"+Д;

ТХ.НоваяКолонка(КолонкаРасхода,"Число",7,0,""+День,6);

КолонкиРасхода.ДобавитьЗначение(КолонкаРасхода);

Пока ЗапросПоТоварам.Группировка("Товар") = 1 Цикл

Товар=ЗапросПоТоварам.Товар.ТекущийЭлемент();

СтрокаХ=0;

Если ТХ.НайтиЗначение(Товар,СтрокаХ,1)=0 Тогда

ТХ.НоваяСтрока();

ТХ.Товар=Товар.ТекущийЭлемент();

Если ОстаткиПоТоварам.Получить(Товар.ТекущийЭлемент())=1 Тогда

//ОстаткиПоТоварам.Группировка("Товар");

ТХ.Остаток=Число(ОстаткиПоТоварам.КО);

КонецЕсли;

СтрокаХ=ТХ.КоличествоСтрок();

Иначе

ТХ.ПолучитьСтрокуПоНомеру(СтрокаХ);

КонецЕсли;

//Приход=ЗапросПоТоварам.Закупка-ЗапросПоТоварам.ВозвратПоставщику;

//Расход=ЗапросПоТоварам.Продажа-ЗапросПоТоварам.ВозвратОтПокупателя;

Расход=ЗапросПоТоварам.Продажа;

ТХ.Расходимость=ТХ.Расходимость+Расход;

//ТХ.УстановитьЗначение(СтрокаХ,КолонкаПрихода,Приход);

ТХ.УстановитьЗначение(СтрокаХ,КолонкаРасхода,Расход);

КонецЦикла;

КонецЦикла;

Продолжение приложения А

Если ПустоеЗначение(ТХ)=1 Тогда Предупреждение("Данных не найдено!");Возврат КонецЕсли;

ТХ.ВыбратьСтроки();

Пока ТХ.ПолучитьСтроку()=1 Цикл

ТХ.Расходимость=ТХ.Расходимость/Д;

КонецЦикла;

ТХ.Выгрузить(ТТ);

Форма.Закладки.ТекущаяСтрока(2);

Форма.ИспользоватьСлой("Основной,Даты,Планирование", 2);

КонецПроцедуры // Хроника

//------------

Процедура ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)

Если НомерЗакладки = 1 Тогда

Форма.ИспользоватьСлой("Основной,Анализ,Даты",2);

ПоПрайсу();

ИначеЕслиНомерЗакладки = 2 Тогда

Форма.ИспользоватьСлой("Основной,Даты,Планирование", 2);

ИначеЕслиНомерЗакладки = 3 Тогда

Форма.ИспользоватьСлой("Основной,Даты,Заказ", 2);

КонецЕсли;

КонецПроцедуры // ПриВыбореЗакладки

//------------

Процедура ПриОткрытии()

Если ПустоеЗначение(Дата0)=1 Тогда Дата0=РабочаяДата(); КонецЕсли;

Если Дата0>ПолучитьДатуТА() Тогда Дата0=ПолучитьДатуТА(); КонецЕсли;

ДиапазонПоДате(Дата0,Дата1,Дата2);

Спр = Форма.Параметр;

Если ПустоеЗначение(Спр) =0 Тогда

Если Спр.Вид() = "_Прайсы" Тогда

ВыбПрайс=Спр.ТекущийЭлемент();

КонецЕсли;

КонецЕсли;

Форма.ИспользоватьЗакладки(1);

Форма.Закладки.ДобавитьЗначение(1, "Анализ");

Форма.Закладки.ДобавитьЗначение(2, "Планирование");

Продолжение приложения А

Форма.Закладки.ДобавитьЗначение(3, "Заказ");

//Форма.Закладки.ДобавитьЗначение(4, "Данные");

//Форма.Закладки.ДобавитьЗначение(5, "Метод");

Форма.ИспользоватьСлой("Основной,Анализ,Даты",2);

ПоПрайсу();

КонецПроцедуры//ПриОткрытии

Приложение Б

Презентационный материал

1 слайд

2 слайд

3 слайд

4 слайд

5 слайд

6 слайд

7 слайд

8 слайд

9 слайд

10 слайд

11 слайд

12 слайд

13 слайд

14 слайд

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.