воскресенье, 24 июня 2012 г.

Извлечение характеристик из строки


Нередко перед сотрудниками отвечающими, за справочник товаров стоит задача ввести в справочник новую группу товаров, предлагаемую поставщиком. Товары нужно завести качественно, со всеми характеристиками, но поставщик, как на зло все характеристики включил в наименование товара и нельзя ни файл для загрузки новых товаров подготовить быстро, да и пока вручную будешь вбивать товары, все глаза сломаешь...
Данный мастер-класс предназначен для тех, кому знакома данная проблема. Файл с мастер-классом можно скачать здесь, а приложение к нему здесь.

суббота, 17 декабря 2011 г.

Виды отчётов по товарным остаткам. Использование оперативных остатков.

По существу, в работе торгового предприятия используется два вида отчётов по товарным остаткам.

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

Второй вид остатков — оперативные остатки, это остатки на текущий момент. Эти остатки корректируются каждый раз, когда какое-либо изменение вносится в базу. Они хранятся в отдельной таблице. Главное достоинство таких остатков — это быстрота получения данных, которые уже рассчитаны. Их недостаток состоит в том, что в них может быть внесена ошибка, которая сама собой не исправится и которая может привести к другим ошибкам.

Систематические ошибки в оперативных остатках необходимо регулярно выявлять и избавляться от них. Для этого нужно иметь возможность сопоставлять эти два вида отчётов и видеть все их расхождения, а также периодически пересчитывать и перезаписывать оперативные остатки в нерабочее время.

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

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

Такую проблему можно избежать, если при выписывании товара вчерашним числом, брать не в чистом виде оперативные товарные остатки, а оперативные остатки за вычетом всего поступления товара, которое имело место после момента, которым нужно выписать товар. При этом ни в коем случае нельзя прибавлять то количество, которое было израсходовано, т.к. это может привести к повторному расходованию и отрицательным остаткам. Рассчитанные таким образом остатки можно получить быстро и при этом они позволят выписать лишь тот товар, что был доступен на интересующую дату и не был реализован с того момента.

среда, 21 сентября 2011 г.

Система быстрых переходов между связанными документами.

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

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



Также встречаются документы одного уровня, существующие параллельно.



Между всеми этими документами должна быть налажена возможность перехода по цепочке от одного к следующему, связанному с ним, затем к следующему и т.п.
Из документа «A» должен быть настроен переход на документ «B». Из документа «B» должен быть настроен переход на документы «А», «D» и «C». Из документа «С» должен быть настроен переход на документ «B». Из документа «D» должен быть настроен переход на документ «B». Других переходов быть не должно, иначе они только усложнят понимание взаимосвязей.

Переходы обозначаются текстом, содержащим идентификатор документа (обычно это тип, номер и дата документа) и символическое обозначение перехода. Переход на документ, который был сформирован на основании данного обозначается символом «>>». Переход на сопутствующий документ того же уровня – символом «<-->». Переход на документ, на основании которого был создан данный документ обозначается символом «<<». Первыми отображаются переходы на документы предыдущего звена цепи, вторыми – переходы на документы, находящиеся на том же уровне, третьими – документы, следующего звена цепи.



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


среда, 24 августа 2011 г.

Дебиторка

Если вы когда-либо сталкивались с проблемой подсчета дебиторской задолженности по клиенту, то этот материал может оказаться интересным для вас.

Несколько лет назад я столкнулся с тем, что на предприятии никак не удавалось взять под контроль дебиторскую задолженность. Это проявлялось, например так, что периодически обнаруживалась нечистоплотность то одного менеджера по продажам, то другого, которые отгружали товар клиентам и не получали с них денег (для организации). Как это они умудрялись делать я точно не знаю, но каждый раз когда это вскрывалось, разгорался очередной скандал, который сопровождался увольнениями и судебными разбирательствами.

Одна из причин, по которой это происходило состояла в том, что не было инструмента, позволявшего отделять просроченную дебиторскую задолженность от текущей. В результате "умный менеджер" мог завуалировать клиентов не плательщиков в общей массе честных клиентов, а когда это вскрывалось, то было уже поздно.

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

Казалось бы, всё просто, но попытки построить такой отчет упиралась в тупик. Менеджеры дружно утверждали, что им нужно видеть точно по каким накладным клиент оплатил, а по каким - нет, и это верно, поскольку это важно при проведении сверок.

С вопросом о возможности разнесения платежей я шел в бухгалтерию и там все бухгалтера утверждали, что все клиенты платят по-разному: кто-то в назначении платежа указывает конкретный счет или накладную, а кто-то платит общей суммой, которая определяется не суммой по накладным, а тем, есть ли у клиента деньги или нет, и при таких условиях они не понимали как можно точно разнести платеж.

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

Что касается самого инструмента, то тут всё крайне просто.
Чтобы его сделать нужно:
1. Собрать в единый список абсолютно все документы влияющие на задолженность клиента - расходные накладные, возвратные накладные, акты оказания услуг, платежные банковские и кассовые документы, сальдо на начало периода использования базы данных.
2. Из всех документов выделить те, за которые клиент должен заплатить - расходные накладные и акты оказания услуг.
3. Просуммировать все остальные документы в единый платеж (тут нужно не запутаться со знаками, что с плюсом суммировать а что с минусом).
4. Выстроить все накладные и акты за оказанные нами услуги в порядке дат, в которые они должны быть оплачены. Если предусмотрена оплата в несколько этапов, то разбить ожидаемые платежи соответствующим образом.
5. Распределить общую сумму платежа по накладным и актам, двигаясь накопительным итогом от самого первого ожидаемого платежа к настоящему времени.
6. На сколько платежей хватило, столько считаем оплаченными.

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

Результат произведенных расчетов удобно представить в виде таблицы c колонками:


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

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

С уважением, Прохор

Мой вклад

Мои сильные стороны — анализ и синтез данных. Я делаю это и вручную, с использованием электронных таблиц либо использую для этих целей программирование.
Мне нравится разрабатывать и предоставлять людям программные инструменты, позволяющие им быстрее и с более высокой точностью видеть, либо находить проблемы, а затем устранять и предотвращать их.
Мне нравится из всего моря данных, выявлять и выводить на поверхность то, что создает проблему. Мне нравится помогать людям видеть картину в целом и одновременно предоставляя важные детали, гарантируя при этом возможность проверить корректность предоставленных мною данных.
Моя работа практически всегда сопровождается новым пересмотром и упорядочиванием данных, доработкой или созданием систем учета, описанием идеального состояния дел в данной области. Я отвечаю за то, что люди получают инструмент, самый точный, удобный и правильный из тех, что возможен в текущей ситуации.
Я обучаю людей анализу, синтезу данных для контроля над областью, при помощи различных инструментов, в качестве которых я уверен.
Я работаю для тех, кто не сидит без дела, для тех, кто действует, наводит порядок, предоставляет услуги и оказывает помощь другим. И я испытываю огромное удовлетворение когда вижу, что качественные инструменты используются и приносят пользу!

21.07.2011 Прохор Лейкин

среда, 10 августа 2011 г.

Мастер-класс. Использование ВПР

Ещё один мастер-класс, который будет полезен любому офисному работнику, который много работает с таблицами Эксель.

Скачать мастер-класс можно отсюда ссылка

Приложение лежит здесь ссылка

С уважением, Прохор

среда, 3 августа 2011 г.

Мастер-класс по программированию макросов в Эксель. Объявление переменных, использование циклов.

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

Мастер класс будет полезен офисным работникам, и всем, кто работает с таблицами Excel.

Файл с мастер-классом можно взять от сюда . Задание можно взять от сюда .