Всё движение товара в программе осуществляется на основании документов. Ни одно изменение количественного состава и / или приход нового товара не может быть произведено без какого-либо документа.
В программе нет ни одной формы, позволяющей напрямую изменять количественный состав в базе данных. Имеются обработки, позволяющие менять количество остатка на складе, но даже они в фоновом режиме создают документы, по которым осуществляется такое изменение, будь то списание (уменьшение количества) или оприходование (увеличение количества) товара.
По правам доступа к различным режимам работы программы работники делятся по должностям. Должности, в свою очередь, могут быть одного из следующих типов рабочих мест, по возрастанию прав:
Кроме прав доступа к режимам работы, жестко заданных в программе, отдельно в конфигураторе устанавливаются права на доступ к каждому виду документов по каждому из типов рабочих мест.
К настройке прав доступа можно отнести также разрешение/запрещение отдельных функций в конфигураторе программы.
Характеристики товара, по которому осуществляется учет движения на складе, делятся на следующие виды.
В отличие от 1С, в которой одна сущность - ТОВАР - может быть в неограниченном количестве табличных частей разных документов (фактически - разных таблиц базы данных), для которых необходимо программно согласовывать действия по движению партий товаров, в программе "Движение товара" имеется только одна сущность, которая хранится в одной таблице базы данных.
Вычисление остатков по каждой единице товара осуществляется сервером базы данных в триггерах таблицы по характеристикам документа. В результате, количественные расхождения возможны только в случае повреждения базы данных.
Программа позволяет автоматически сформировать входную (приходную) накладную по электронной накладной в формате MS Excel. Практически все поставщики имеют возможность сформировать такие накладные и отправить их по электронной почте или передать на сменных носителях (флешки и т.п.).
Вполне вероятен вариант, когда товар еще находится в пути от поставщика, а накладная уже пришла и с ней можно работать. Автоматизированный ввод такой накладной значительно ускорит поступление товара в продажу, что снизит издержки оборота. Товар можно будет разрешить к продаже сразу после инвентаризации и устранения расхождений в составе прихода.
Алгоритм автоматического ввода распознает по ключевым словам колонки с наименованием товара, артикулом, ценой, количеством, находит строки заголовка, строки с товаром и "подвал" документа, после чего формирует входную накладную.
В процессе автоматического ввода накладной программа по алгоритмам нечеткого сравнения находит список моделей товара, уже имеющихся в базе. Если найдется единственное 100%-ное совпадение, то эта модель будет взята из справочника, если же таких моделей будет несколько или ни одной, то бухгалтеру будет предложено выбрать наиболее подходящую модель или создать новую запись в базе данных для новой модели.
При обнаружении множества совпадающих наименований, будет вычислена оценка совпадения, выраженная в процентах, и список будет отсортирован по этой оценке. Таким образом, наиболее подходящая, с точки зрения алгоритма программы, модель будет выше по списку. Конечно же, это не гарантирует точного совпадения, поэтому выбор всегда остается за человеком.
Программа по нечеткому совпадению (позволяющему делать ошибки в словах), например, может найти модель с наименованием "Веник хозяйственный, 50см" по строке из накладной "Венек хоз. 50", при этом будет вычислена оценка совпадения в процентах.
В торговых предприятиях, получающих товар от разных поставщиков, постоянно складывается ситуация, когда один и тот же товар у разных поставщиков и в справочнике моделей, называется по-разному. При вводе новой приходной накладной вручную для опытного бухгалтера проблемы не существует, так как он (или она) уже наизусть знает наименование товара, находит по справочнику свое наименование и вводит нужную модель.
Возможно, когда-нибудь появятся компьютеры, способные за приемлемое время узнавать товар по внешнему виду, но, пока это только в мечтах, приходится изобретать алгоритмы поиска наименования.
В случае, когда в списке поиска будет обнаружена та же самая модель товара, только с другим наименованием, программа предложит создать "алиас" модели.
Алиас модели (синоним) - такая же запись в справочнике моделей, только имеющая ссылку на "главный алиас", то есть модель, наименование которой принято на вашем предприятии. Фактически, для одного и того же товара создается две или несколько равнозначных записей в справочнике, одна из которых объявляется главной и будет отображаться в списках товаров.
В случае поступления еще одной накладной от этого же поставщика с таким же товаром, программа обнаружит в справочнике моделей его наименование со 100%-ным совпадением, проверит наличие главного алиаса (основного наименования) и возьмет именно его.
При работе часто требуется найти товары по текстовым полям, будь то, наименование, артикул, описание товара, группа и тип, штрихкод, и т.д. Для быстрого поиска в программе реализован фильтр по строке во всех списках товаров.
Поиск осуществляется по всем текстовым полям, отображаемым в текущем представлении списка. Убирая или добавляя колонки с характеристиками товара, отображаемыми в списке, можно управлять областью поиска.
Поиск осуществляется по частям слов, то есть, для выполнения поиска не требуется введения полных слов. Для увеличения вероятности нахождения рекомендуется вводить несколько частей слов, которые обязательно должны быть в искомом наименовании. Например, чтобы найти холодильник "Бирюса 203", можно ввести в строке поиска "хол бир 203". Товар с наименованием "Бирюса 203" и типом "Холодильник", обязательно будет в отфильтрованном списке, если, конечно, тип товара виден в списке.
Как пример, в одном из магазинов было принято давать короткие уникальные артикулы разным моделям товаров. Продавцы очень быстро находили товар по нужному артикулу, который имелся на ценнике, просто вводя "п-214" в строку поиска.
В билде 619 была добавлена операция переоценки товара. Переоценка подразумевает изменение розничных цен, которые были рассчитаны во время оприходования по определенным значениям наценок и скидок.
Со временем в связи с разными причинами, такими как неликвидность товара, инфляция, изменение курса национальной валюты, возникает необходимость изменения цен реализации. Для решения этой задачи и была разработана операция массового изменения цен - переоценка.
Доступна операция переоценки на вкладке "Товары" в режимах "Приход на склад" и "Остатки". Второй режим является основным, так как изменять цены необходимо только для товаров, имеющих ненулевые остатки. Перед запуском операции необходимо из списка отобрать товары для переоценки ([x]). Весь список отобранных товаров будет передан в форму перерасчета
В программе реализовано два метода изменения цен. Желательно выбрать один из предложенных методов перерасчета как основной, чтобы не потерять взаимосвязь при расчетах цен.
Первый метод - изменение цен отобранных товаров по указанному коэффициенту. Коэффициент считается от единицы (1.00). Значение больше 1 увеличивает цены, меньше - уменьшает (уценка товара).
При перерасчете цен по коэффициенту возможен выбор вида расчета "От текущей цены" и "По наценке". В первом случае текущие розничные цены просто умножаются на указанный коэффициент. Во втором случае розничная цена рассчитывается также, как при расчете во входной накладной, умножением на наценку и увеличением на введенный коэффициент.
При перерасчете по коэффициенту также пересчитывается значение наценки и это значение сохраняется в БД как наценка при расчете. Это означает, что первоначальное значение наценки, которое было указано во входной накладной, будет утеряно после сохранения результата переоценки в базе данных.
Второй метод - расчет цены по курсу опорной валюты. Для возможности выполнения такой операции добавлена цена в опорной валюте.
Опорная валюта введена как для продавцов, делающих закупки импортного товара в ценах иной валюты, так и для продавцов, желающих перерассчитывать цены с учетом инфляции. Необходимость возникла в связи с "высокой волатильностью" рубля, отпущенного в "свободное плавание".
Опорная валюта может быть как в одной из единиц "твердой" валюты, так и в валюте учета, зафиксированной на определенную дату. Например, в качестве опорной валюты можно использовать цены в национальной валюте на начало 2013 года. Тогда в качестве коэффициента перерасчета можно будет брать текущий коэффициент инфляции по отношению к выбранной дате.
В случае выбора в качестве опорной валюты, например, доллара или евро, для перерасчета можно будет брать текущий (для пользователя) курс валюты учета.
Поскольку ранее учет в опорной валюте не велся, требуется рассчитать значение цен имеющихся товаров в опорной валюте. Для выполнения этой операции введена обработка "Заполнить опорные цены". Обработка заполняет поле опорной цены закупки, вычисляя значение как результат от деления оптовой цены на текущий курс валюты учета. Обработку необходимо выполнить, если перерасчет цен планируется вести по курсу опорной валюты.
Прим. На форме перерасчета также можно выполнить вычисление цен в опорной валюте перед собственно переоценкой по курсу.
Прим. Сама обработка находится в конфигураторе на вкладке "Обработки".
Вторым элементом расчета по курсу является собственно значение текущего курса опорной валюты. В конфигуратор на вкладку "Значения" добавлена вкладка "Валюта", в которой можно ввести текущий курс, стоимость 1,00 опорной валюты в единицах валюты учета. Дата ввода курса дана для справки и на учет и перерасчет не влияет. Дату желательно указывать, чтобы помнить, когда были произведены изменения
курса.
Перерасчет по курсу опорной валюты расчет всегда выполняется по сохраненной наценке, даже, если она была изменена предыдущим расчетом по коэффициенту.
Расчет производится вычислением новой оптовой цены по текущему курсу и расчета из нее розничных цен по
правилам расчета входной накладной.
Курс может быть как больше опорного, так и меньше.
Опорная цена может быть вычислена или перерассчитана перед выполнением перерасчета. Для расчета опорной цены необходимо указать курс на момент прихода товара. После расчета опорной цены можно ввести текущий курс и пересчитать новые цены.
Форма перерасчета.
В форме перерасчета цен возможен как индивидуальный перерасчет по одному товару, списку отобранных товаров или по полному списку на форме. Если не отобрано ни одного товара, перерасчет выполняется по всему списку. Таким образом можно выполнить расчет с разными коэффициентами по разным наборам товаров в списке формы.
В отличие от операции "Изменения цены", которая проводится индивидуально по каждой позиции товара, массовая переоценка в операции "Перерасчет цен" не сохраняет предыдущие цены и не заносится в ведомость изменения цен.
Заявка формируется на основе анализа остатков по товарам на складе.
Для правильного формирования заявки нужно по каждому товару указать "нормативный запас" - количество, которое обязательно должно быть в наличии на складе для обеспечения бесперебойной торговли.
На основании текущих остатков и нормативного запаса автоматически составляется заявка с расчетом количества, с учетом минимальной партии поставки.
Заявка формируется в формате Excel, далее в заявку можно внести корректировки по количеству, составу товаров, разбить заявку на разных поставщиков.
В программу изначально заложен многопользовательский режим работы. Это означает, что с одной базой данных может работать неограниченное количество рабочих мест.
Однопользовательский режим работы является лишь вариантом, когда в многопользовательском режиме работает только один компьютер. Правда, есть одно ограничение, позволяющее обойтись без установки сервера базы данных на компьютер, так называемый встроенный (Embedded) сервер, когда вместо сервера работает динамическая библиотека (DLL), выполняющая его функции. Набор файлов embedded-варианта просто копируются в папку с программой. В этом случае запрещен режим, в котором к базе данных может подключиться другой пользователь. База данных может быть разрушена.
Для многопользовательского режима рекомендуется устанавливать выделенный файловый сервер (или компьютер, который будет выполнять его функции), где будет установлен собственно сервер баз данных и будет расположена сама база данных.
Вполне возможна конфигурация, когда сервером будет один из компьютеров, подключенных к сети. На этом компьютере возможна работа в программе. Кроме требований к надежности компьютера (комплектующие, дисковый массив), этот компьютер необходимо включать первым и выключать последним. Ни в коем случае не допускать ситуации, когда этот компьютер будет выключен, в то время как на других рабочих местах запущена программа и в ней идет работа.
Кроме внешних, потребительских свойств, охваченных интерфейсом программы, имеется определенное количество модулей, выполняющих низкоуровневую работу. Вот некоторые из них:
Приход товара происходит по следующим документам:
Продажа товара может быть прямой - сразу через кассу. Этот режим используется в малых торговых точках с одной - двумя кассами и без компьютеризированных рабочих мест продавцов.
В больших магазинах с несколькими продавцами, одновременно осуществляющими продажи и отдельными кассами (большие магазины бытовой техники, одежды и пр.) для ускорения обслуживания организуются рабочие места продавцов, на которых продавцы оформляют выписки - документы предварительной продажи товара, отобранного покупателем.
Собственно продажи осуществляются через кассу. Касса может работать в одном из двух режимов.
Первый режим - стандартный. Интерфейс программы в этом случае не отличается от интерфейса бухгалтера, за исключением того, что у кассира есть доступ только к разрешенным ему вкладкам.
Второй режим - специализированный режим "Кассы быстрых продаж". В этом режиме формируется ограниченное количество документов: "Кассовый чек", "Возврат", "Приходный" и "Расходный" ордер.
Скидки предоставляются одним из двух видов.
Первый - произвольный, когда перед продажей кассир указывает процент или сумму скидки. Ограничений в этом случае у кассира нет, может поставить любую сумму или процент.
Второй - выбор вида скидки из справочника. Справочник формируется гл. бухгалтером, у кассиров нет возможности внести в справочник изменения.
В любом случае, значение скидки отмечается в комментариях.
Документы продажи:
В режиме "Кассы быстрых продаж" - покупатель всегда "розничный", оплата - смешанная, если при оплате есть сумма безналом, или "наличными", если сумма безналом равна 0.00
"Выписка", поскольку по ней не осуществляется фактической продажи, отнесена к неплатежным документам.
Для учета брака, отправки его в сервисные организации, служат три вида документов, назначение которых понятно из их наименования: "Брак (ремонт)", "Возврат из брака", "Списание брака".
Инвентаризация проводится в электронном виде в четыре этапа.
На первом этапе бухгалтер выписывает Инвентаризационную ведомость, в которую включаются все товары выбранного типа с остатками больше нуля. В электронном виде бухгалтер может видеть остатки по выписанной ведомости. При формировании ведомости бухгалтер указывает ответственное за инвентаризацию лицо. Для объективности, обычно, это не одно и то же лицо, которое принимает товар по внутренним накладным. После формирования ведомости бухгалтер извещает ответственного о начале инвентаризации.
На втором этапе ответственный открывает сформированную ведомость, распечатывает "пустографку" с незаполненным количеством. Если права у ответственного ниже бухгалтера (кассиры и продавцы), то он не может увидеть остаток по товару по ведомости (на момент начала проведения ревизии). Далее проверяется наличие товара и его количество вносится в ведомость ответственным или иным лицом. Ответственный перепроверяет заполненную в электронном виде ведомость и закрывает ее. Закрыть ведомость может только ответственное лицо или бухгалтер.
На третьем этапе после доклада ответственного об окончании инвентаризации, бухгалтер закрывает инвентаризационную ведомость. До закрытия бухгалтер может проанализировать расхождения в количестве проинвентаризированного товара. Недостача и излишки товара в ведомости выделяются цветом. При закрытии инвентаризационной ведомости автоматически формируется "Сличительная ведомость", в которую попадают только товары, у которых имеются количественные расхождения.
На четвертом этапе бухгалтером принимается решение о списании недостачи, оприходовании излишков и перераспределении количества при пересортице.
По результатам восьмилетней эксплуатации программы на обычных компьютерах, использующихся в качестве сервера, без применения специальных средств обеспечения бесперебойного питания, при наличии многочисленных отключений питания "сервера" в сумме было найдено скриптом подсчета количественных расхождений порядка 10-15 проблемных движений товара, связанных с 2-мя документами.
Основная заслуга в этом, конечно же, сервера баз данных Firebird, но и правильное проектирование структуры базы данных тоже играет не последнюю роль.