Модернизация автоматизированной информационной системы учета товара

Характеристика информационной системы и действующей системы-прототипа ОАО "Центрпродсервис". Организационная структура, информационно-технологическое сопровождение и алгоритмическое обеспечение системы. Проектирование базы данных. Расчет проектных затрат.

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

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

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

Таб.ВывестиСекцию("Шапка");

Таб.ВывестиСекцию("ШапкаТаблицы");

// выводим шапку на каждой странице

НачПовт = Таб.ВысотаСекции("Кнопки") +

Таб.ВысотаСекции("Шапка");

КонПовт = НачПовт + Таб.ВысотаСекции("ШапкаТаблицы");

Таб.ПовторятьПриПечатиСтроки(НачПовт + 1, КонПовт);

глОживить(1);

//Если нужен порядок по списку элементов МФ Тогда

//Организовать цикл по элементам списка МФ и позиционировать

//запрос на элементе

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

Номенклатура = Запрос.Номенклатура;

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

Продолжить;

КонецЕсли;

// подсчет количества дней продажи товара (рабочие дни когда он

лежал на складе

// или день (даже нерабочий) когда была сделана продажа)

ПроданоВсего = Запрос.Продано;

КолДнейПродажи = 0;

ТекДата = ДатаНачала;

ТекДатаУчтена = 0;

ОстатокНачалаПериода = Запрос.НачОст;

ПоступлениеПериода = Запрос.Приход;

ОстатокОкончанияПериода = Запрос.КонОст;

ОстатокНачалаПериодаП=0;

ОстатокОкончанияПериодаП=0;

ПроданоВсегоП=0;

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

ОстатокНачалаПериодаП = Запрос2.НачОст;

ОстатокОкончанияПериодаП = Запрос2.КонОст;

ПроданоВсегоП = Запрос2.Продано;

конецесли;

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

Если ТекДата <> Запрос.Документ.ДатаДок Тогда

ТекДатаУчтена = 0;

ТекДата = Запрос.Документ.ДатаДок;

КонецЕсли;

Если ТекДатаУчтена = 0 Тогда

Если (Запрос.Продано > 0) тогда// возвраты не считаем.

КолДнейПродажи = КолДнейПродажи + 1;

ТекДатаУчтена = 1;

КонецЕсли;

КонецЕсли;

КонецЦикла; // по документам

СредняяСкорость = ?(КолДнейПродажи = 0, 0,ПроданоВсего /

КолДнейПродажи);

ОбщаяСкорость = ?(КолДнейПродажи = 0, 0,ПроданоВсего /

ЧислоРабочихДнейМежду(ДатаНачала, ДатаКонца));

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

ПечТекстСтроки = Номенклатура;

ТекРасшифровка = Номенклатура;

ПечКодТекстСтроки = Номенклатура.код;

ПечПроданоВсего = глФРМКоличество(ПроданоВсего, Ед);

ПечПроданоВсегоП = глФРМКоличество(ПроданоВсегоП, Ед);

ПечПриходВсего =глФРМКоличество(ПоступлениеПериода, Ед);

ПечКолДнейПродажи = Формат(КолДнейПродажи,"Ч10");

ПечСредняяСкорость = глФРМКоличество(СредняяСкорость,Ед);

ПечОбщаяСкорость=глФРМКоличество(ОбщаяСкорость, Ед);

ПечОстатокНачалаПериода =

глФРМКоличество(ОстатокНачалаПериода, Ед);

ПечОстатокОкончанияПериода =

глФРМКоличество(ОстатокОкончанияПериода, Ед);

ПечОстатокНачалаПериодаП =

глФРМКоличество(ОстатокНачалаПериодаП, Ед);

ПечОстатокОкончанияПериодаП =

глФРМКоличество(ОстатокОкончанияПериодаП, Ед);

Таб.ВывестиСекцию("Строка1");

глОживить(1);

КонецЦикла;

ОстатокНачалаПериодаП = Запрос2.НачОст;

ОстатокОкончанияПериодаП = Запрос2.КонОст;

ПроданоВсегоП = Запрос2.Продано;

ПечПроданоВсего = глФРМКоличество(ПроданоВсегоП, Ед);

ПечОстатокНачалаПериода =

глФРМКоличество(ОстатокНачалаПериодаП, );

ПечОстатокОкончанияПериода =

глФРМКоличество(ОстатокОкончанияПериодаП, );

ОстатокНачалаПериода = Запрос.НачОст;

ОстатокОкончанияПериода = Запрос.КонОст;

ПроданоВсего = Запрос.Продано;

ПечПроданоВсего = глФРМКоличество(ПроданоВсего, Ед);

ПечОстатокНачалаПериода =

глФРМКоличество(ОстатокНачалаПериода, );

ПечОстатокОкончанияПериода =

глФРМКоличество(ОстатокОкончанияПериода, );

Таб.ВывестиСекцию("Всего");

глОживить(1);

Таб.Опции(0, 0, 8, 0, "ПланированиеЗакупок",

"ПланированиеЗакупок");

Таб.ОбластьПечати(3);

// Вывод заполненной формы

Таб.ТолькоПросмотр(1);

Таб.Показать("Планирование закупок", "");

Если (Обновить = 2)ИЛИ(ЗакрытьДиалог=1) Тогда

СтрокаДействийФормы = "#Закрыть";

КонецЕсли;

КонецПроцедуры // Сформировать()

// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ

//************************************************************

// Предопределенная процедура

Процедура ПриОткрытии(ФлагВосстановленияНастройки)

Если ФлагВосстановленияНастройки = 0 Тогда

ДатаНачала = Константа.ДатаНачалаПериода;

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

ДатаНачала = НачМесяца(ДатаКонца);

КонецЕсли;

// инициализация границ периодов

ДатаНачалаЗак = ДатаКонца+1;

ДатаКонцаЗак = КонМесяца(ДатаНачалаЗак);

ВидРазделителя = 1;

КонецЕсли;

Если глФлагРасшифровки = 1 Тогда

Обновить = глОбновить;

// восстанавливаем настройки из списка

ДатаНачала = глРасшифровка.Получить("ДатаНачала");

ДатаКонца = глРасшифровка.Получить("ДатаКонца");

ДатаНачалаЗак= глРасшифровка.Получить("ДатаНачалаЗак");

ДатаКонцаЗак = глРасшифровка.Получить("ДатаКонцаЗак");

ВыбТМЦ = глРасшифровка.Получить("ВыбТМЦ");

Если

ТипЗначенияСтр(глРасшифровка.Получить("ТаблицаМФ"))="Таблица

Значений" Тогда

ТаблицаМФ.Загрузить(глРасшифровка.Получить("ТаблицаМФ"));

КонецЕсли;

Если Обновить <> 0 Тогда

Таб = глТаблица;

КонецЕсли;

Если Обновить <> 2 Тогда

Сформировать();

СтатусВозврата(0);

Возврат;

КонецЕсли;

Иначе

Обновить = 0;

КонецЕсли;

ПерерисовкаНазванийЗакладок();

ТаблицаМФ.ВидимостьКолонки("Тип",0);

ТаблицаМФ.ВидимостьКолонки("Вид",0);

ТаблицаМФ.ВидимостьКолонки("СписокЭлементов",0);

ТаблицаМФ.ВидимостьКолонки("ТипМФ",0);

ТаблицаМФ.ВидимостьКолонки("ИмяПеременной",0);

ТаблицаМФ.ВыводитьПиктограммы("ФлВкл");

УправлениеДиалогом();

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

//************************************************************

// Предопределенная процедура.

Процедура ВводНового()

// эта предопределенная процедура выполняется при восстановлении настройки

ПерерисовкаНазванийЗакладок();

УправлениеДиалогом();

ТаблицаМФ.ВыводитьПиктограммы("ФлВкл");

КонецПроцедуры // ВводНового()

//************************************************************

// Предопределенная процедура

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

// закладки

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

глПриСменеСтрокиТаблицыМФ(1,ТекСтрокаВТаблице,Контекст); //

записываем изменения если они были

КонецЕсли;

УправлениеДиалогом();

ПерерисовкаНазванийЗакладок();

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

//************************************************************

// Предопределенная процедура

Процедура ОбработкаПодбора(Значение)

Если (СписокЭлементовМФ.НайтиЗначение(Значение)=0) Тогда

Представление=""+Значение;

Если ТипЗначенияСтр(Значение)="Справочник" Тогда

Если СокрЛП(Метаданные.Справочник(Значение.Вид()).Владелец) <>

"Метаданные" Тогда

Представление=Представление+" ("+Значение.Владелец+")";

КонецЕсли;

КонецЕсли;

СписокЭлементовМФ.ДобавитьЗначение(Значение,Представление);

ТаблицаМФ.ФлВкл=2;

КонецЕсли;

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

ДатаКонца = ПолучитьДатуТА();

// инициализация списков

// инициализация переменных множественного фильтра

ТипМФ.УдалитьВсе();

ТипМФ.ДобавитьЗначение("одно из");

ТипМФ.ДобавитьЗначение("все кроме");

ТаблицаМФ.УдалитьСтроки();

Пока ТаблицаМФ.КоличествоКолонок()>0 Цикл

ТаблицаМФ.УдалитьКолонку(1);

КонецЦикла;

ТаблицаМФ.НоваяКолонка("Тип");

ТаблицаМФ.НоваяКолонка("Вид");

ТаблицаМФ.НоваяКолонка("ИмяПеременной");

ТаблицаМФ.НоваяКолонка("СписокЭлементов"); // список элементов,

по которым производим фильтрацию

ТаблицаМФ.НоваяКолонка("ТипМФ"); // текущая строка списка

ТипМФ

ТаблицаМФ.НоваяКолонка("ФлВкл","Число",1,,"Вкл",5,,); // фильтр

включен ("1" или "0")

ТаблицаМФ.НоваяКолонка("Представление",,,,"Вид фильтра:");

ТаблицаМФ.ВыводитьПиктограммы("ФлВкл");

// тип вид переменная название

глДобавитьВТаблицуМФ(ТаблицаМФ,"Справочник","Товары",

"Номенклатура", "По номенклатуре");

глДобавитьВТаблицуМФ(ТаблицаМФ,"Справочник","Организации",

"Поставщик", "По поставщикам");

глДобавитьВТаблицуМФ(ТаблицаМФ,"Справочник","ЗначенияСвойст

в", "Номенклатура", "По свойствам номенклатуры");

ТекСтрокаВТаблице = "";

// Инициализируем закладки

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

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

Форма.Закладки.ДобавитьЗначение(2,"Множественный фильтр");

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

Приложение Б

Листинг программной реализации отчета «Нулевая реализация»

//*******************************************

// Процедура генерации запроса Осталось.

Процедура Осталось()

Перем Запрос, ТекстЗапроса, Таб;

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

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

Период с ВыбДатаНач по ВыбДатаКон;

Обрабатывать НеПомеченныеНаУдаление;

Предприятие =

Регистр.Остатки.Подразделение,Регистр.Продажи.Подразделение;

Товар = Регистр.Остатки.Товар,Регистр.Продажи.Номенклатура;

Количество = Регистр.Остатки.Количество;

КоличествоП=Регистр.Продажи.Количество;

Поставщик =

Регистр.Остатки.ПрихДок.Агент,Регистр.Продажи.Поставщик;

СуммаРозн = Регистр.Остатки.СуммаРозн;

Функция КолОст = КонОст(Количество);

Функция СуммаРознОст = КонОст(СуммаРозн);

Функция КолПриход = Приход(Количество);

Функция КолРасход = Расход(Количество);

Функция Продано = Сумма(КоличествоП);

Группировка Товар упорядочить по КолОст;

Условие(Предприятие в ВыбПредприятие);

Условие(Товар в ВыбТовар);

Условие(Поставщик в ВыбПоставщик);

Условие(КоличествоП = 0);

"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса

//Рег=СоздатьОбъект("Регистр.ОстаткиТоваров");

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

Таб.ИсходнаяТаблица("Таблица1");

// Заполнение полей "Заголовок"

Усл="";

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

Усл=Усл+"По подразделению: "+ВыбПредприятие+".";

КонецЕсли;

Если ПустоеЗначение(ВыбПоставщик)=0 Тогда

Усл=Усл+"По поставщику: "+ВыбПоставщик+".";

КонецЕсли;

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

Усл=Усл+"По товарам: "+ВыбТовар+".";

КонецЕсли;

Таб.ВывестиСекцию("Заголовок");

Состояние("Заполнение выходной таблицы...");

Ном=0;

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

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

Таб.ВывестиСекцию("ГрТовар");

Иначе

Если Запрос.Продано<>0 Тогда Продолжить; КонецЕсли;

Если Запрос.КолРасход<>0 Тогда Продолжить; КонецЕсли;

Ном=Ном+1;

Если Ном%50=0 Тогда

Состояние("Обработано строк "+Ном);

КонецЕсли;

ЦенаЗ=Запрос.Товар.ЦенаЗакуп;

ЦенаР=Запрос.Товар.ЦенаРозн;

Таб.ВывестиСекцию("Товар1");

КонецЕсли;

КонецЦикла;

// Заполнение полей "Итого"

Таб.ВывестиСекцию("Итого");

// Вывод заполненной формы

Таб.Опции(0, 0, 3, 0, "НулеваяРеализация","НулеваяРеализация");

Таб.ТолькоПросмотр(1);

Таб.Показать("НулеваяРеализация: "+ВыбПредприятие, "");

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

Приложение В

Листинг программной реализации отчета «Пакетная печать инвентаризаций»

Процедура Сформировать()

таб=создатьобъект("Таблица");

Таб.Опции(0,0,0,0,"ВедомостьСнятияОстатков","ВедомостьСнятияОста

тков");

ДОК=создатьобъект("Документ.инвентаризация");

док.выбратьДокументы(выбдата,выбдата1);

пока док.получитьДокумент()=1 цикл

если док.проведен()=1 тогда продолжить; конецесли;

если док.пометкаудаления()=1 тогда продолжить; конецесли;

если пустоезначение(выбагент)=0 тогда

если док.агент<>выбагент тогда продолжить; конецесли;

конецесли;

если (начлист>число(док.лист)) или (Конлист<число(док.лист)) тогда

продолжить; конецесли;

для я=1 по экз цикл

таб.вывестисекцию("шапкаИнв");

Ном=0;

док.выбратьСтроки();

пока док.получитьстроку()=1 цикл

Ном = Ном + 1;

таб.вывестисекцию("Строка");

Если Ном%2=0 Тогда

ОблТаб=Таб.Область(Таб.ВысотаТаблицы(),1,Таб.ВысотаТаблицы(),7);

ОблТаб.РамкаСнизу(7);

КонецЕсли;

конеццикла;

таб.вывестисекцию("Итог");

таб.вывестисекцию("Подвал");

таб.новаястраница();

конеццикла;

конеццикла;

таб.показать();

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

выбдата=рабочаядата();

начлист=1;

конлист=1;

экз=2;

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


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

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