Отчет по практике в ЗАО “Бриджтаун Фудс”

Автор работы: Пользователь скрыл имя, 13 Апреля 2013 в 11:07, отчет по практике

Краткое описание

Производственный процесс связан с перемещением сырья и материалов из одного промышленного предприятия в другое, а также с перемещением готовой продукции из среды производства в среду потребления. Это перемещение невозможно без образования в определённых местах необходимых материальных запасов, для хранения которых нужны соответствующие складские устройства.
Основное назначение складов – хранение сырья, материалов и различных изделий. Кроме того, на складах выполняются работы, связанные с подготовкой материалов к производственному потреблению и централизованной доставке их непосредственным потребителям.

Прикрепленные файлы: 1 файл

Диплом Готовый.doc

— 750.00 Кб (Скачать документ)

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

Встроенный в систему язык программирования предназначен для специалистов, выполняющих конфигурирование системы для решения конкретной задачи автоматизированного учёта. Язык представляет собой предметно-ориентированный язык программирования, специально разработанный с учётом возможности его применения не только профессиональными программистами. В частности, все операторы языка имеют как русское, так и англоязычное написание, которое можно использовать одновременно в одном исходном тексте. При своей относительной простоте язык обладает некоторыми объектно-ориентированными  возможностями, например, правила доступа к атрибутам и методам специализированных типов данных (документам, справочникам и т. п.) подобны свойствам и методам объектов, используемых в других объектно-ориентированных языках.

Для размещения текста программы на встроенном языке предназначены модули прикладного решения (например, модуль приложения, общие модули,  модули объектов, модули форм и т. д.). Эти модули располагаются в различных местах конфигурации и имеют различное назначение.

 

 

2.3.2 Описание программы

Рассмотрим документ Реализация. В шапку документа добавлены два поля ввода: способ доставки и маршрут. Сделаем способ доставки по умолчанию Поставщик, т.к доставлять товар в основном будут водители компании “Бриджтаун Фудс”.

СпособДоставки = Перечисление.СпособДоставки.Поставщик;

Рассмотрим созданные  документы: РеестрНакладнойПоСкладуДоставки  и ПередачаТМЦЭкспедитору.

Документ РеестрНакладнойПоСкладуДоставки нужен для формирования накладных. Он выглядит так.

Рассмотрим в модуле формы процедуру Заполнить(). Эта процедура нужна для того, чтобы при выборе даты и склада выводился полный список сформированных накладных со способом доставки Поставщик.

// Процедура заполняет  табличную часть документами  отгрузки 

Процедура Заполнить() 

// Предупредим пользователя  о перезаполнении табличной части.

Если Вопрос("При  заполнении данные будут удалены . Продолжить?", "Да+Нет", 60) <> "Да" Тогда

Возврат;

Иначе

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

КонецЕсли;

 

// Заполняем табличную  часть документами отгрузи

// по выбранному складу  со способом доставки "Поставщик" 

Док = СоздатьОбъект("Документ.Реализация");

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

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

    Если  Не (Док.Проведен() = 1) Тогда

        Продолжить;

    КонецЕсли;

    Если  Не (Док.СпособДоставки = Перечисление.СпособДоставки.Поставщик)  Тогда

        Продолжить;

    КонецЕсли;

    Если  Не (Док.Склад = Склад) Тогда

        Продолжить;

    КонецЕсли;

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

Накладная = Док.ТекущийДокумент();

Контрагент = Док.Контрагент;

Маршрут = Док.Маршрут;

Сумма = Док.СуммаВзаиморасчетов;

КонецЦикла;

 

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

Процедура Сформировать() формирует документ "ПередачаТМЦЭкспедитору" по выбранному маршруту.

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

 

Если ВыбМаршрут.Выбран() = 0 Тогда

    Предупреждение("Для  формирования передачи ТМЦ выберите  маршрут!");

Возврат;

КонецЕсли;

 

// Проверяем, есть уже такой документ или нет - перезаписываем или формируем новый.

ЕстьДокумент = 0;

Док = СоздатьОбъект("Документ.ПередачаТМЦЭкспедитору");

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

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

Если Док.ПометкаУдаления() = 1 Тогда

    Продолжить;

КонецЕсли;

    Если (Док.Маршрут = ВыбМаршрут) И (Док.Склад  = Склад) Тогда

Если Вопрос("Передача ТМЦ эскспедитору по маршруту "+ СокрЛП(ВыбМаршрут)+" уже существует, перезаписать его?", "Да+Нет", 60) <> "Да" Тогда

Возврат;

КонецЕсли;

Если Док.Проведен() = 1 Тогда

    Док.СделатьНеПроведенным();

КонецЕсли;

ДокПередачи = Док;

ЕстьДокумент = 1;

        Прервать;

    КонецЕсли;

КонецЦикла;

// Если документа нет, создаем новый

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

ДокПередачи = СоздатьОбъект("Документ.ПередачаТМЦЭкспедитору");

ДокПередачи.Новый();

КонецЕсли;

ДокПередачи.ДатаДок = ДатаДок;

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

ДокПередачи.Склад = Склад;

ДокПередачи.Маршрут = ВыбМаршрут;

ДокПередачи.Маршрут = ВыбМаршрут;

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

 

// Заполним табличную  часть документа

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

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

    Если  Маршрут = ВыбМаршрут Тогда

        ДокПередачи.НоваяСтрока();

ДокПередачи.Накладная = Накладная;

ДокПередачи.Контрагент = Контрагент;

ДокПередачи.Сумма = Сумма;

КонецЕсли; 

КонецЦикла;

ДокПередачи.Записать();

ДокПередачи.Провести();

Конт ="";

ОткрытьФорму(ДокПередачи.ТекущийДокумент(),Конт);

 

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

 

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

ПриЗаписиПерепроводить(1);

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

При нажатии на кнопку Сформировать передачу ТМЦ открывается форма документа "ПередачаТМЦЭкспедитору"

При нажатии на кнопку Печать можно просмотреть в печатном виде складской отгрузочный лист. Он содержит такую информацию как: номер накладной, кто сдал товар, кто его принял, сколько и какого товара передали экспедитору.

Нажатие кнопки печать вызывает процедуру Печать().

// Печать Складского  отгрузочного листа

Процедура Печать(СразуНаПринтер=0, Кол=1);

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

Т.ИсходнаяТаблица("СкладскойОтгрузочныйЛист");

 

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

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

ТЗ.НоваяКолонка("Разновидность","Справочник.ЗначенияСвойств");

ТЗ.НоваяКолонка("Количество");

ТЗ.НоваяКолонка("КоличествоКор");

 

СтрНомераНакладных = "";

КоличествоНакладных = 0;

    Счетчик  = 0;

// Перебираем строки документа - накладные

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

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

 

// Не рассматриваем накладные, помеченные на удаление и пустые       строки

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

Продолжить;

КонецЕсли; 

Если Накладная.ПометкаУдаления()=1 Тогда

Продолжить;

КонецЕсли;

 

// формируем список  номеров накладных и подсчитываем  их количество

Счетчик = Счетчик + 1;

Если СтрНомераНакладных = "" Тогда

СтрНомераНакладных = СтрНомераНакладных + СокрЛП(Накладная.НомерДок);

Иначе    

СтрНомераНакладных = СтрНомераНакладных + "," + СокрЛП(Накладная.НомерДок);

КонецЕсли;

 

// Суммируем данные  накладных по номенклатуре и количеству в таблицу значений

Накладная.ВыбратьСтроки();

Пока Накладная.ПолучитьСтроку()=1 цикл

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

ТЗ.Номенклатура   = Накладная.Номенклатура;

ТЗ.Разновидность  = Накладная.Номенклатура.ОсновноеСвойство.ЗначениеСвойства;

ТЗ.Количество =Накладная.Количество* Накладная.Коэффициент;

ТЗ.КоличествоКор  = ?(Накладная.Номенклатура.ОсновнаяЕдиница.Коэффициент = Накладная.Коэффициент, Накладная.Количество, Накладная.Количество * Накладная.Коэффициент / Накладная.Номенклатура.ОсновнаяЕдиница.Коэффициент);

КонецЦикла; 

 

КонецЦикла; 

 

// Выводим таблицу  значений на печатной форме

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

 

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

ТЗ.Выгрузить(ТЗРазновидностей);

ТЗРазновидностей.Свернуть("Разновидность","Количество,КоличествоКор");

ТЗРазновидностей.Сортировать("Разновидность"); 

 

ТЗ.Свернуть("Номенклатура,Разновидность","Количество,КоличествоКор"); 

ТЗ.Сортировать("Разновидность,Номенклатура");

 

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

Пока ТЗРазновидностей.ПолучитьСтроку()=1 Цикл

Т.ВывестиСекцию("РазновидностьШапка");

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

Ном=0;

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

    Если  ТЗ.Разновидность<>ТЗРазновидностей.Разновидность  Тогда

        Продолжить;

КонецЕсли;

Ном=Ном+1;

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

КонецЦикла;    

КонецЦикла;

Т.ВывестиСекцию("РазновидностьИтог");

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

Т.Опции(0,0,0,0,"ОпцииПечатиРеестрЭкспедитора","ОпцииПечатиРеестрЭкспедитора");

Т.ПараметрыСтраницы(1,,1);

Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда

Т.Защита(1);

Иначе

Т.Защита(0);

КонецЕсли;

Если СразуНаПринтер=1 Тогда 

Т.КоличествоЭкземпляров(Кол);

Т.Напечатать(0);

Иначе  

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

Т.Показать("Складской  отгрузочный лист",""); 

КонецЕсли;

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

Для получения сводной  выходной информации используем объект метаданных, называемый «Отчет». В готовом виде он выглядит так:

 

Для реализации такого отчета необходимо в модуле формы написать код.

// Процедура генерации  запроса Сформировать.

 

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

   

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

 

// Таблица остатков

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

ТаблТ.НоваяКолонка("Группа","Справочник.ЗначенияСвойств");

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

ТаблТ.НоваяКолонка("КолПриходШт","Число",15);

ТаблТ.НоваяКолонка("КолПриходКор","Число",15,5);

ТаблТ.НоваяКолонка("КолРасходШт","Число",15);

ТаблТ.НоваяКолонка("КолРасходКор","Число",15,5);

ТаблТ.НоваяКолонка("КолКонОстШт","Число",15);

ТаблТ.НоваяКолонка("КолКонОстКор","Число",15,5);

 

// Таблица групп номенклатуры

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

ТаблИт.НоваяКолонка("Группа","Справочник.ЗначенияСвойств");

   

// Таблица движений по группам номенклатуры

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

ТаблДв.НоваяКолонка("Группа","Справочник.ЗначенияСвойств");

ТаблДв.НоваяКолонка("Документ","Документ");

Информация о работе Отчет по практике в ЗАО “Бриджтаун Фудс”