Разработка регламента выполнения процесса «Складской учет.
Содержание:
Введение
Целью исследования является разработка автоматизированной системы складского учета. Для достижения цели были сформулированы и решены следующие задачи:
1. Выполнен анализ характеристик объекта автоматизации. Изучен организационная и функциональная структура предприятия.
2. Систематизирован документооборот.
3. Изучен процесс функционирования предприятия. Разработана функциональная модель существующей системы.
4. Предложен новый проект делового процесса и разработана модель деятельности отдела после внедрения автоматизированной системы.
Объектом проектирования является автоматизированная система учета материальных ценностей и их размещение в адресном пространстве склада.
Разработано информационное и частично программное обеспечение системы по методологии UML. В качестве оптимизационного алгоритма планируется использование математического аппарата задачи о ранце.
1 Построение бизнес-процессов «как есть»
1.1 Описание предметной области. Постановка задачи
Создаваемая система будет способна решать задачи оптимального размещения и учёта товаров на складе. Она позволяет проводить оптимизацию размещения единиц хранения с учётом топологии склада; используется оптимизационный алгоритм размещения единиц хранения и пополнения зон отбора.
Функции, реализуемые системой:
- аутентификация пользователя;
- ведение справочников (пользователи, единицы измерения, номенклатура, адреса, поставщики, виды операций, материально-ответственные лица);
- ведение оперативной информации (операции на складах, размещение единиц хранения, комплектация заказа, результаты инвентаризации);
- поиск оптимального места хранения для принятого товара;
- формирование отчётов (наличие товара на складе, перемещение заданного товара по складу, приём товара на склад, отгрузка товара со склада; товары готовые к отгрузке, результат инвентаризации и коррекции товарных запасов) в экранной и документальных формах;
- выдача справок по размещению заданного товара и по его остаткам на текущий момент.
Целью данной работы является создание универсальной объектно-ориентированной логистической системы складского хранения. В практической части работы будут рассматриваться вопросы прикладной логистики. Будет создана логистическая система складского хранения, включающая в себя экспертную систему, которая будет способна решать задачи (и выдавать рекомендации) оптимального размещения и учёта товаров на складе.
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 Предлагаемые мероприятия по улучшению бизнес-процессов
Предлагаемые мероприятия по улучшению бизнес-процессов:
- аутентификация пользователя;
- ведение справочников (пользователи, единицы измерения, номенклатура, адреса, поставщики, виды операций, материально-ответственные лица);
- ведение оперативной информации (операции на складах, размещение единиц хранения, комплектация заказа, результаты инвентаризации);
- поиск оптимального места хранения для принятого товара;
- формирование отчётов (наличие товара на складе, перемещение заданного товара по складу, приём товара на склад, отгрузка товара со склада; товары готовые к отгрузке, результат инвентаризации и коррекции товарных запасов) в экранной и документальных формах;
- выдача справок по размещению заданного товара и по его остаткам на текущий момент.
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СПредприятие 8.0. Управление торговлей
- А.П. Габец, Д.И. Гончаров - 1С Предприятие 8.0. Простые примеры разработки
- Селищев Н. - 1С Предприятие 8.2. Управление торговлей (1Специалист) – 2011
- М.Г.Радченко «1C Предприятие 8.2 Практическое пособие разработчика»
Приложение А - Проектирование системы
А.1 Проектирование пользовательского интерфейса
При запуске программы 1С: Предприятие 8 открывается основное окно программы, там отображается панель разделов и рабочий стол.
Панель разделов программы 1С: Предприятие 8 — это один из элементов командного интерфейса. Панель разделов показывает основную структуру прикладного решения и позволяет перемещаться между разделами программы. Панель разделов формируется платформой программы автоматически. Первый раздел — это всегда рабочий стол. Однако набор других разделов у разных пользователей одного и того же прикладного решения может варьироваться. Вы сможете настроить состав панели разделов на свое усмотрение: добавить или удалить разделы, изменить их внешнее представление; программа автоматически запомнит новые настройки. Панель разделов расположена в верхней части основного окна и соответствует верхнему уровню подсистем, добавленных в конфигурацию 1С: Предприятие 8. С помощью панели разделов осуществляется переход к другим разделам программы.
Рабочий стол программы 1С: Предприятие 8 — это стандартный раздел, содержащий часто используемые документы, отчеты, справочники и т.п. Работа любого пользователя с программой 1С: Предприятие 8 всегда начинается с рабочего стола. Внешний вид рабочего стола также можно настраивать под себя: менять взаимное расположение форм, добавить или удалить формы.
Раздел — один из элементов командного интерфейса программы 1С: Предприятие 8. Раздел представляет собой выделенную функциональную часть программы, которая предназначена для решения определенного фиксированного круга задач.
Панель навигации в программе 1С: Предприятие 8 содержит навигационные команды, которые позволяют перейти к той или иной точке определенного раздела. Как правило, это команды перехода к спискам. При вызове навигационной команды соответствующий ей список отображается в рабочей области раздела, замещая прежнее содержимое рабочей области.
Одним из элементов интерфейса программы 1С: Предприятие 8 является панель действий, которая содержит наиболее востребованные и часто используемые команды, позволяющие быстро создавать новые объекты, выполнять типовые обработки или составлять отчеты. Такие команды называются командами действия, поскольку их вызов приводит к открытию нового, вспомогательного окна приложения, и на некоторое время переключает пользователя на выполнение другой задачи.
В нижней части основного окна приложения отображается информационная панель. Информационная панель предназначена для отображения последних оповещений – действий, выполненных в системе. При вызове команд ввода новых и редактирования существующих объектов, а также при открытии отчетов и обработок открываются вспомогательные окна приложения.
Наша конфигурация состоит из следующих разделов: “Бухгалтерия”, “Предприятие”, “Справочники”.
- Бухгалтерия, раздел включает в себя 3 документа, это “Ввод цен номенклатуры”, “Приходная накладная”, “Расходная накладная”, регистр сведений “Цены” и регистр накопления “Товары на складе”.
- Предприятие, включает регистр накопления “Товары на складе” и отчеты “Ведомость поступления товаров” и “Ведомость реализации товаров”.
- Справочники, содержит справочники, используемые при работе с программой.
Окно приложения отображено на рисунке А.1
Панель разделов
Панель команд текущего раздела
Панель инструментов
Рабочая область
Рисунок А.1– Окно приложения
А.2 Реализация системы
Реализация партионного списания находится в модуле объекта документа “Расходная накладная”, в процедуре обработки проведения документа, код процедуры представлен в приложении А.
Были составлены следующие процедуры и функции:
- Функция “АктуальнаяЗакупочнаяЦена (АктуальнаяДата, ЭлементНоменклатуры)”, находится в общем модуле “РаботаСоСправочниками”, используется в обработчике изменений значений поля “Номенклатура” в табличной части документа “Приходная накладная”, возвращает последнее значение закупочной цены, которое было указано для заданной номенклатуры товара, функция извлекает данные из регистра сведений “ЦеныНоменклатуры”.
- Функция “АктуальнаяРозничнаяЦена (АктуальнаяДата, ЭлементНоменклатуры)”, используется в обработчике изменений значений поля “Номенклатура” в табличной части документа “Расходная накладная” находится в общем модуле “РаботаСоСправочниками”, функция аналогична функции “АктуальнаяЗакупочнаяЦена”, но в отличие от нее возвращает значение розничной цены.
- Функция “ПоставщикНоменклатуры (АктуальнаяДата, ЭлементНоменклатуры)”, используется в обработчике изменений значений поля “Номенклатура” в табличной части документа “Приходная накладная” и “Расходная накладная”, возвращает значение поставщика номенклатуры, которое было указано для заданной номенклатуры товара, функция извлекает данные из регистра сведений “ЦеныНоменклатуры”.
- Процедура “РассчитатьСумму (СтрокаТабличнойЧасти)” используется в обработчике изменений значений поля “Номенклатура”, “Цена”,”Количество” в табличной части документа “Приходная накладная” и “Расходная накладная”, устанавливает значения суммы купли, продажи.
- Процедура “РассчитатьИтоговуюСумму (СтрокаТабличнойЧасти)” используется в обработчике изменений значений поля “Сумма”, “СтавкаНДС” в табличной части документа “Приходная накладная” и “Расходная накладная”, устанавливает значения итоговой суммы купли, продажи.
- Функция “СтрокаВЧисло (Знач Строка, Знач Пусто = 0, Знач Ошибка = 0)”. Дополнительная функция необходимая для работы приложения, в связи с несовместимостью некоторых типов данных.
Листинг функций и процедур представлены в “Приложении Б”.
А.3 Объектная структура ПО
В программе использовались стандартные объекты конфигурации системы “1С Предприятие”. Перечислим их.
- Приходная накладная. Содержит стандартные для документов реквизиты (“Номер” и “Дата”). Также в документе присутствует табличная часть “ПереченьНоменклатуры” с реквизитами: “Номенклатура”, “Поставщик”, “Склад”, “Цена”, “Количество”, “Сумма”, “Ставка НДС” и “Итоговая сумма”.
- Расходная накладная. В табличной части документа имеются следующие реквизиты: “Номенклатура”, “Покупатель”, “Цена”, “Количество”, “Сумма” и “Итоговая сумма”.
- Периодический регистр сведений “Цены”. Содержит измерения: “Период”, “Номенклатура” и “Поставщик”. Ресурсами являются: Закупочная цена, “Розничная цена”.
- Документ “Ввод цен номенклатуры”. Содержит реквизиты “Дата”, “Номенклатура”, “Поставщик”, “Закупочная цена”, “Розничная цена”.
- Регистр накопления “Товары на складе”. Содержит измерения: “Номенклатура”, “Склад”, “Партия”, “Ставка НДС”. Ресурсами регистра будут: “Цена”, “Количество”, “Стоимость”, “Сумма”, “Итоговая сумма”.
Кроме того для удобства ввода данных в системе используются справочники:
Номенклатура, Поставщики, Покупатели, Склады и Ставка НДС.
А.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); КонецПроцедуры |
- СТРУКТУРА И ОПИСАНИЕ САЙТА
- .Разработка проекта информационной системы подбора, найма и сопровождения трудовых ресурсов
- Эволюция мировой валютной
- Формы и методы управления инновационными проектами
- Основные понятия управления ресурсами инновационного проекта
- Организация кассового обслуживания в современном коммерческом банке
- .Понятие и виды трудового стажа
- Истоки формирования и современное понятие предпринимательского права в России
- Современный маркетинг
- Физические лица − субъекты предпринимательства
- .Порядок и условия назначения и выплаты пособия по временной нетрудоспособности
- Теоретические основы изучения коллектива, социальной группы