Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка регламента выполнения процесса «Складской учет.

Содержание:

Введение

Целью исследования является разработка автоматизированной системы складского учета. Для достижения цели были сформулированы и решены следующие задачи:

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

2. Систематизирован документооборот.

3. Изучен процесс функционирования предприятия. Разработана функциональная модель существующей системы.

4. Предложен новый проект делового процесса и разработана модель деятельности отдела после внедрения автоматизированной системы.

Объектом проектирования является автоматизированная система учета материальных ценностей и их размещение в адресном пространстве склада.

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

1 Построение бизнес-процессов «как есть»

1.1 Описание предметной области. Постановка задачи

Создаваемая система будет способна решать задачи оптимального размещения и учёта товаров на складе. Она позволяет проводить оптимизацию размещения единиц хранения с учётом топологии склада; используется оптимизационный алгоритм размещения единиц хранения и пополнения зон отбора.

Функции, реализуемые системой:

  1. аутентификация пользователя;
  2. ведение справочников (пользователи, единицы измерения, номенклатура, адреса, поставщики, виды операций, материально-ответственные лица);
  3. ведение оперативной информации (операции на складах, размещение единиц хранения, комплектация заказа, результаты инвентаризации);
  4. поиск оптимального места хранения для принятого товара;
  5. формирование отчётов (наличие товара на складе, перемещение заданного товара по складу, приём товара на склад, отгрузка товара со склада; товары готовые к отгрузке, результат инвентаризации и коррекции товарных запасов) в экранной и документальных формах;
  6. выдача справок по размещению заданного товара и по его остаткам на текущий момент.

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

1.2 Выбор средства для моделирования бизнес-процессов

CASE – средства моделирования

Хотя рисовать модели на бумаге не возбраня­ется, современное моделирование бизнес-процессов обычно осуществляется с использованием CASE–средств. Эта аббревиатура означает Computer Aided System Engineering, что переводится как «проектирование систем с помощью компьютера». На современном рынке программного обеспечения CASE–средств не одна сотня. В такой ситуации имеет смысл обсудить их классификацию и задачи, которые можно решить с их помощью (применительно к процессному подходу).

Из информационных технологий к CASE–средствам обычно относят инструменты, позволяющие автоматизировать процессы жизненного цикла IT–решений.

Особенностью современных CASE-средств являются:

а) наглядные графические средства для создания моделей;

б) использование средств их хранения в виде файлов или в виде данных в специальном репозитарии;

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

Часто CASE-средства содержат инструменты для генерации отчетов на основе моделей, сред­ства реинжиниринга – генерации моделей на основе имеющихся данных (например, содержащихся в реляционной базе данных). Нередко CASE-средства включают прикладные программные интерфейсы и даже среду разработки решений на собственной основе.

CASE–средства можно классифицировать по типам:

а) средства анализа и моделирования, предназначенные для создания описаний процессов и иных предметных областей;

б) средства анализа и проектирования, используемые для управления требованиями и документирования IT–проектов;

в) средства проектирования данных, обеспечивающие моделирование данных и генерацию структуры СУБД;

г) средства моделирования приложений (сегодня наиболее распространенной категорией таких средств является семейство средств UML–моделирования).

К наиболее популярным средствам описания бизнес-процессов можно отнести следующие программные продукты:

– Together Architect фирмы Borland;

– семейство AllFusion Business Process Modeler (фирма BPwin) для описания бизнес-процессов с помощью методологии IDEF0 (Computer Associates) и организации коллективной работы над единым репозитарием моделей;

– ARIS Bisiness Architect (фирма IDS Scheer) – инструмент коллектив­ной работы над совокупностью взаимосвязанных моделей различных типов, предназначенных для описания бизнес-процессов, данных и информационных систем, деятельности компаний;

– Visio (фирма Microsoft) – средство создания моделей бизнес-процессов и данных с применением различных методологий.

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

BPWin и ERWin компании СотрШвгAssociates. Computer Associates International, Inc. (CA) входит в пятерку ведущих производителей программного обеспечения, предлагая средства моделирования, резервного копирования, управления инфраструктурой предприятия (сетями, серверами и т. д.), информационной безопасности, business intelligence и т. д. Пакет BPWin основан на методологии IDEF и предназначен для функционального моделирования и анализа деятельности предприятия. Методология IDEF, являющаяся официальным федеральным стандартом США, представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель IDEF0 отображает функциональную структуру объекта, то есть производимые им действия и связи между этими действиями.

Возможности BPwin:

- поддерживает сразу три стандартные нотации – IDEF0 (функциональное моделирование), DFD (моделирование потоков данных) и IDEF3 (моделирование потоков работ). Эти три основных ракурса позволяют описывать предметную область наиболее комплексно;

- позволяет оптимизировать процедуры в компании;

- полностью поддерживает методы расчета себестоимости по объему хозяйственной деятельности (функционально-стоимостной анализ, ABC);

- позволяет облегчить сертификацию на соответствие стандартам качества ISO9000;

- интегрирован с ERwin (для моделирования БД), Paradigm Plus (для моделирования компонентов ПО) и др.;

- интегрирован со средством имитационного моделирования Arena;

- содержит собственный генератор отчетов;

- позволяет эффективно манипулировать моделями – сливать и расщеплять их;

- имеет широкий набор средств документирования моделей, проектов.

Пакет ERWin – это средство концептуального моделирования БД. Используется при моделировании и создании баз данных произвольной сложности на основе диаграмм «сущность – связь». В настоящее время ERWin является наиболее популярным пакетом моделирования данных благодаря поддержке широкого спектра СУБД самых различных классов. Возможности ERWin:

- поддерживает методологию структурного моделирования SADT и следующие нотации: стандартную нотацию IDEFlx для ER-диаграмм моделей данных, нотацию IE и специальную нотацию, предназначенную для проектирования хранилищ данных – Dimensional;

- поддерживается прямое (создание БД на основе модели) и обратное (генерация модели по имеющейся базе данных) проектирование для 20 типов СУБД: настольные, реляционные и специализированные СУБД, предназначенные для создания хранилищ данных;

- интегрирован линейкой продуктов Computer Associates для поддержки всех стадий разработки ИС, CASE-средствами Oracle Designer, Rational Rose, средствами разработки и др.;

  • позволяет повторно использовать компоненты созданных ранее моделей, а также использовать наработки других разработчиков;

- возможна совместная работа группы проектировщиков с одними и теми же моделями (с помощью AllFusion Model Manager);

- позволяет переносить структуру БД (не сами данные!) из СУБД одного типа в СУБД другого;

- позволяет документировать структуру БД.

1.3 Моделирование бизнес-процессов «как есть»

Рисунок 1.1 - Контекстная диаграмма функционирования склада AS-IS.

Рисунок 1.2 - Диаграмма декомпозиции IDEF0. Деятельность склада AS-IS

Рисунок 1.3 -Диаграмма декомпозиции IDEF0. «Хранение» AS-IS

Рисунок 1.4 - Диаграмма декомпозиции IDEF0. «Складирование»AS-IS

2 Построение бизнес-процессов «как должно быть»

2.1 Предлагаемые мероприятия по улучшению бизнес-процессов

Предлагаемые мероприятия по улучшению бизнес-процессов:

  1. аутентификация пользователя;
  2. ведение справочников (пользователи, единицы измерения, номенклатура, адреса, поставщики, виды операций, материально-ответственные лица);
  3. ведение оперативной информации (операции на складах, размещение единиц хранения, комплектация заказа, результаты инвентаризации);
  4. поиск оптимального места хранения для принятого товара;
  5. формирование отчётов (наличие товара на складе, перемещение заданного товара по складу, приём товара на склад, отгрузка товара со склада; товары готовые к отгрузке, результат инвентаризации и коррекции товарных запасов) в экранной и документальных формах;
  6. выдача справок по размещению заданного товара и по его остаткам на текущий момент.

2.2 Моделирование бизнес-процессов «как должно быть»

Рисунок 1.5 - Контекстная диаграмма функционирования склада AS-TO-BE

Рисунок 1.6 - Диаграмма декомпозиции IDEF0. Деятельность склада AS-TO-BE

Рисунок 1.7 - Диаграмма декомпозиции IDEF0. «Хранение» AS-TO-BE

Рисунок 1.8 - Диаграмма декомпозиции IDEF0. «Складирование»AS-TO-BE

Рисунок 1.9 - Диаграмма дерева узлов AS-IS

Рисунок 1.10 - Диаграмма дерева узлов AS-TO-BE

Рисунок 1.11 - ER-диаграмма потоков данных «Сущность-связь»

Заключение

В ходе выполнения работы была разработана и протестирована автоматизированная информационная система учета товаров на оптовом складе, позволяющая вести партионный учет товаров с методом списания партии LIFO.

Были созданы объекты , содержащие следующую информацию:

- Документ «ПриходнаяНакладная», который служит для отражения в системе факта прихода товаров, введенных в табличной части, по ценам закупки;

- Документ «РасходнаяНакладная», который реализует товары покупателям, введенные в табличной части, со склада;

- Периодический регистр сведений «Цены номенклатуры» для хранения как закупочных, так и розничных цен по каждому товару.

- Документ «Ввод цен номенклатуры», который при проведении записывает данные в регистр сведений «Цены номенклатуры»;

- Регистр накопления «ТоварыНаСкладе», который должен обеспечивать ведение количественного и стоимостного учета товаров на складе в разрезе партий.

- Справочники «Номенклатура», «Поставщики», «Склады» и «Ставка НДС».

Было проведено функциональное тестирование системы, все тесты завершились успешно.

Список использованной литературы

  1. Григорьева В. - 1СПредприятие 8.0. Управление торговлей
  2. А.П. Габец, Д.И. Гончаров - 1С Предприятие 8.0. Простые примеры разработки
  3. Селищев Н. - 1С Предприятие 8.2. Управление торговлей (1Специалист) – 2011
  4. М.Г.Радченко «1C Предприятие 8.2 Практическое пособие разработчика»

Приложение А - Проектирование системы

А.1 Проектирование пользовательского интерфейса

При запуске программы 1С: Предприятие 8 открывается основное окно программы, там отображается панель разделов и рабочий стол.

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

Рабочий стол программы 1С: Предприятие 8 — это стандартный раздел, содержащий часто используемые документы, отчеты, справочники и т.п. Работа любого пользователя с программой 1С: Предприятие 8 всегда начинается с рабочего стола. Внешний вид рабочего стола также можно настраивать под себя: менять взаимное расположение форм, добавить или удалить формы.

Раздел — один из элементов командного интерфейса программы 1С: Предприятие 8. Раздел представляет собой выделенную функциональную часть программы, которая предназначена для решения определенного фиксированного круга задач.

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

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

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

Наша конфигурация состоит из следующих разделов: “Бухгалтерия”, “Предприятие”, “Справочники”.

  1. Бухгалтерия, раздел включает в себя 3 документа, это “Ввод цен номенклатуры”, “Приходная накладная”, “Расходная накладная”, регистр сведений “Цены” и регистр накопления “Товары на складе”.
  2. Предприятие, включает регистр накопления “Товары на складе” и отчеты “Ведомость поступления товаров” и “Ведомость реализации товаров”.
  3. Справочники, содержит справочники, используемые при работе с программой.

Окно приложения отображено на рисунке А.1

Панель разделов

Панель команд текущего раздела

Панель инструментов

Рабочая область

Рисунок А.1– Окно приложения

А.2 Реализация системы

Реализация партионного списания находится в модуле объекта документа “Расходная накладная”, в процедуре обработки проведения документа, код процедуры представлен в приложении А.

Были составлены следующие процедуры и функции:

  1. Функция “АктуальнаяЗакупочнаяЦена (АктуальнаяДата, ЭлементНоменклатуры)”, находится в общем модуле “РаботаСоСправочниками”, используется в обработчике изменений значений поля “Номенклатура” в табличной части документа “Приходная накладная”, возвращает последнее значение закупочной цены, которое было указано для заданной номенклатуры товара, функция извлекает данные из регистра сведений “ЦеныНоменклатуры”.
  2. Функция “АктуальнаяРозничнаяЦена (АктуальнаяДата, ЭлементНоменклатуры)”, используется в обработчике изменений значений поля “Номенклатура” в табличной части документа “Расходная накладная” находится в общем модуле “РаботаСоСправочниками”, функция аналогична функции “АктуальнаяЗакупочнаяЦена”, но в отличие от нее возвращает значение розничной цены.
  3. Функция “ПоставщикНоменклатуры (АктуальнаяДата, ЭлементНоменклатуры)”, используется в обработчике изменений значений поля “Номенклатура” в табличной части документа “Приходная накладная” и “Расходная накладная”, возвращает значение поставщика номенклатуры, которое было указано для заданной номенклатуры товара, функция извлекает данные из регистра сведений “ЦеныНоменклатуры”.
  4. Процедура “РассчитатьСумму (СтрокаТабличнойЧасти)” используется в обработчике изменений значений поля “Номенклатура”, “Цена”,”Количество” в табличной части документа “Приходная накладная” и “Расходная накладная”, устанавливает значения суммы купли, продажи.
  5. Процедура “РассчитатьИтоговуюСумму (СтрокаТабличнойЧасти)” используется в обработчике изменений значений поля “Сумма”, “СтавкаНДС” в табличной части документа “Приходная накладная” и “Расходная накладная”, устанавливает значения итоговой суммы купли, продажи.
  6. Функция “СтрокаВЧисло (Знач Строка, Знач Пусто = 0, Знач Ошибка = 0)”. Дополнительная функция необходимая для работы приложения, в связи с несовместимостью некоторых типов данных.

Листинг функций и процедур представлены в “Приложении Б”.

А.3 Объектная структура ПО

В программе использовались стандартные объекты конфигурации системы “1С Предприятие”. Перечислим их.

  1. Приходная накладная. Содержит стандартные для документов реквизиты (“Номер” и “Дата”). Также в документе присутствует табличная часть “ПереченьНоменклатуры” с реквизитами: “Номенклатура”, “Поставщик”, “Склад”, “Цена”, “Количество”, “Сумма”, “Ставка НДС” и “Итоговая сумма”.
  2. Расходная накладная. В табличной части документа имеются следующие реквизиты: “Номенклатура”, “Покупатель”, “Цена”, “Количество”, “Сумма” и “Итоговая сумма”.
  3. Периодический регистр сведений “Цены”. Содержит измерения: “Период”, “Номенклатура” и “Поставщик”. Ресурсами являются: Закупочная цена, “Розничная цена”.
  4. Документ “Ввод цен номенклатуры”. Содержит реквизиты “Дата”, “Номенклатура”, “Поставщик”, “Закупочная цена”, “Розничная цена”.
  5. Регистр накопления “Товары на складе”. Содержит измерения: “Номенклатура”, “Склад”, “Партия”, “Ставка НДС”. Ресурсами регистра будут: “Цена”, “Количество”, “Стоимость”, “Сумма”, “Итоговая сумма”.

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

Номенклатура, Поставщики, Покупатели, Склады и Ставка НДС.

А.4 Тестирование системы

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

Задать цены на номенклатуру товаров

Откроем документ “Ввод цен номенклатуры” и добавим в него следующие записи (Рисунок А.2).

Рисунок А.2 – создание нового документа “Ввод цен номенклатуры”

После этого проведем документ и откроем регистр сведений “Цены” (Рисунок А.3).

Рисунок А.3 – регистр сведений “Цены”

Движение документа зафиксировалось в регистре сведений. Теперь актуальная цена для “Лист а4 300 шт.” изменилась.

Оприходовать партию товаров

Создадим новую приходную накладную и добавим туда следующие данные (РисунокА.4).

Рисунок А.4 – ввод данных в приходную накладную

При выборе номенклатуры в поле цена сразу появилась актуальная цена из регистра сведений “Цены”. Поле сумма вычисляется автоматически.

Проведем этот документ и перейдем к регистру “Товары на складе” (Рисунок А.5).

Рисунок А.5 – записи в регистре накопления

Как мы видим движения документа фиксируются в регистре накопления.

Реализовать товары

Выберем документ расходная накладная и создадим в ней следующие записи (Рисунок А.6).

Рисунок А.6 – заполнение расходной накладной

Проведем этот документ и посмотрим, что какие движения создались в нашем регистре (Рисунок А.7).

Рисунок А.7 – записи в регистре накопления

Две последние записи – это движения, которые образовались при проведении документа Расходная накладная. Сначала полностью была реализована 2-ая партия, затем уже реализована часть 1-ой партии.

Сформировать ведомость поступления товаров

Откроем отчет “Ведомость поступления товаров”, установим начальный и конечный период. Затем нажмем кнопку Сформировать. В результате получим отчет, показанный на рисунке А.8.

Рисунок А.8 – Ведомость поступления товаров за период

На отчете показаны партии поступивших товаров за указанный период, подсчитывается их цена, количество и общая стоимость.

Сформировать ведомость реализации товаров

Откроем отчет “Ведомость реализации товаров”, установим начальный и конечный период. Затем нажмем кнопку “Сформировать”. В результате получим отчет, показанный на рисунке А.9.

Рисунок А.9 – Ведомость реализации товаров за период

На рисунке показаны все продажи товаров за выбранный период.

Все проведенные тесты завершились успешно.

Приложение Б – Код модуля объекта документа “Расходная накладная”.

Листинг 1 – Модуль объекта

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

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

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

"ВЫБРАТЬ

| РасходнаяНакладнаяПереченьНоменклатуры.Номенклатура,

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

| РасходнаяНакладнаяПереченьНоменклатуры.Цена,

| РасходнаяНакладнаяПереченьНоменклатуры.Сумма,

| РасходнаяНакладнаяПереченьНоменклатуры.ИтоговаяСумма

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

|ИЗ

| Документ.РасходнаяНакладная.ПереченьНоменклатуры КАК РасходнаяНакладнаяПереченьНоменклатуры

|ГДЕ

| РасходнаяНакладнаяПереченьНоменклатуры.Ссылка = &Ссылка

|

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

| РасходнаяНакладнаяПереченьНоменклатуры.Номенклатура,

| РасходнаяНакладнаяПереченьНоменклатуры.Цена,

| РасходнаяНакладнаяПереченьНоменклатуры.Сумма,

| РасходнаяНакладнаяПереченьНоменклатуры.ИтоговаяСумма

|;

|

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

|ВЫБРАТЬ

| Док.Номенклатура КАК Номенклатура,

| ТоварыНаСкладеОстатки.Партия КАК Партия,

| Док.Количество КАК Количество,

| Док.Цена КАК Цена,

| Док.Сумма КАК Сумма,

| Док.ИтоговаяСумма КАК ИтоговаяСумм,

| ЕСТЬNULL(ТоварыНаСкладеОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,

| ЕСТЬNULL(ТоварыНаСкладеОстатки.СуммаОстаток, 0) КАК СуммаОстаток,

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

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

|ИЗ

| Док КАК Док

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладе.Остатки(

| &МоментВремени,

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

| (ВЫБРАТЬ РАЗЛИЧНЫЕ

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

| ИЗ

| Док КАК Док)) КАК ТоварыНаСкладеОстатки

| ПО Док.Номенклатура = ТоварыНаСкладеОстатки.Номенклатура

|

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

| ТоварыНаСкладеОстатки.Партия УБЫВ

|ИТОГИ

| МАКСИМУМ(Количество),

| СУММА(КоличествоОстаток)

|ПО

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

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

Запрос.УстановитьПараметр("МоментВремени", МоментВремени());

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

ВыборкаИтогов=РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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

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

Если ВыборкаИтогов.Количество>ВыборкаИтогов.КоличествоОстаток Тогда

Сообщить("Товара "+ВыборкаИтогов.Номенклатура+" в наличии только "+

ВыборкаИтогов.КоличествоОстаток+" шт. Документ """+Ссылка+""" не проведен!");

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

Продолжить;

Иначе

НадоСписать=ВыборкаИтогов.Количество;

Выборка=ВыборкаИтогов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока Выборка.Следующий() И НадоСписать<>0 Цикл

СписатьСПартии=МИН(НадоСписать, Выборка.КоличествоОстаток);

Если Выборка.КоличествоОстаток > 0 Тогда

СуммаСписания=СписатьСПартии*Выборка.СуммаОстаток/Выборка.КоличествоОстаток;

Иначе

CуммаСписания=Выборка.СуммаОстаток;

КонецЕсли;

НадоСписать=НадоСписать-СписатьСПартии;

Движение=Движения.ТоварыНаСкладе.ДобавитьРасход();

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

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

Движение.Партия=Выборка.Партия;

Движение.Количество=СписатьСПартии;

Движение.Стоимость=СуммаСписания;

Движение.Сумма=СписатьСПартии*Выборка.Цена;

РаботаСоСправочниками.СтрокаВЧисло(Выборка.СтавкаНДС);

Движение.ИтоговаяСумма= (РаботаСоСправочниками.СтрокаВЧисло(Выборка.СтавкаНДС)/100+1)*СписатьСПартии*Выборка.Цена;

Движение.Цена=Выборка.Цена;

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

Движение.Склад=Выборка.Склад;

КонецЦикла;

КонецЕсли;

КонецЦикла;

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

Приложение Г – Функции и процедуры конфигурации

Листинг 2 – Модуль “РаботаСоСправочниками”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция СтрокаВЧисло(Знач Строка, Знач Пусто = 0, Знач Ошибка = 0) Экспорт

Перем Результат, НомерСимвола, МаксНомерСимвола, ТекущийСимвол, Алфавит

, Отрицательное, ЕстьДробнаяЧасть;

Если Не ПустаяСтрока(Строка) Тогда

Строка = СокрЛП(Строка);

МаксНомерСимвола = СтрДлина(Строка);

// Определяем знак числа и удаляем его из исходной строки.

ТекущийСимвол = Лев(Строка, 1);

Алфавит = "+-";

Если Найти(Алфавит, ТекущийСимвол) > 0 Тогда

Строка = Сред(Строка, 2);

МаксНомерСимвола = МаксНомерСимвола - 1;

Отрицательное = (ТекущийСимвол = "-");

Иначе

Отрицательное = Ложь;

КонецЕсли;

// С начала исходной строки определяем последовательность максимальной длины,

// конторая может быть распознана как число.

НомерСимвола = 1;

Алфавит = "0123456789 .," + Символы.НПП;

Пока НомерСимвола <= МаксНомерСимвола Цикл

ТекущийСимвол = Сред(Строка, НомерСимвола, 1);

Если Найти(Алфавит, ТекущийСимвол) = 0 Тогда

Прервать;

КонецЕсли;

НомерСимвола = НомерСимвола + 1;

КонецЦикла;

// Удаляем правую часть строки, которая не участвует в распознавании.

Если НомерСимвола <= МаксНомерСимвола Тогда

Строка = Лев(Строка, НомерСимвола - 1);

МаксНомерСимвола = НомерСимвола - 1;

КонецЕсли;

Если МаксНомерСимвола > 0 Тогда

// Очищаем строку слева и справа от пробельных символов.

Алфавит = " " + Символы.НПП;

Пока Найти(Алфавит, Лев(Строка, 1)) > 0 Цикл

Строка = Сред(Строка, 2);

МаксНомерСимвола = МаксНомерСимвола - 1;

КонецЦикла;

Пока Найти(Алфавит, Прав(Строка, 1)) > 0 Цикл

Строка = Лев(Строка, МаксНомерСимвола - 1);

МаксНомерСимвола = МаксНомерСимвола - 1;

КонецЦикла;

// Определяем максимальное количество цифр справа, которые могут быть

// распознаны как дробная часть

НомерСимвола = МаксНомерСимвола;

Алфавит = "012345679";

Пока НомерСимвола >= 1 Цикл

ТекущийСимвол = Сред(Строка, НомерСимвола, 1);

Если Найти(Алфавит, ТекущийСимвол) = 0 Тогда

Прервать;

КонецЕсли;

НомерСимвола = НомерСимвола - 1;

КонецЦикла;

Если НомерСимвола > 0 Тогда

// Для строки "123,456": "456" - дробная часть

// Для строки "1,123,456": "456" - последняя триада целой части

Если Найти(".,", ТекущийСимвол) > 0

И Не (МаксНомерСимвола - НомерСимвола = 3

И МаксНомерСимвола >= 9

И Сред(Строка, НомерСимвола - 4, 1) = ТекущийСимвол) Тогда

Строка = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Лев(Строка, НомерСимвола - 1), ".", ""), ",", ""), " ", ""), Символы.НПП, "") + "." + Сред(Строка, НомерСимвола + 1);

Иначе

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

КонецЕсли;

КонецЕсли;

Строка = ?(Отрицательное, "-", "") + Строка;

КонецЕсли;

КонецЕсли;

Если ПустаяСтрока(Строка) Тогда

Результат = Пусто;

Иначе

Попытка

Результат = Число(Строка);

Исключение

Результат = Ошибка;

КонецПопытки;

КонецЕсли;

Возврат Результат;

КонецФункции // СтрокаВЧисло()

Листинг 3 – Модуль “РаботаСДокументами”

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

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

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

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

СтрокаТабличнойЧасти.ИтоговаяСумма = СтрокаТабличнойЧасти.Сумма * ((СтрокаВЧисло(СтрокаТабличнойЧасти.СтавкаНДС)/100)+1);

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