Рубанов Сергей

80
Рейтинг

rsergio
Сергей Рубанов



  •   Регистрация: 19.10.2010 (13 лет назад)

  •   Был(а) на сайте: 18.03.2024

Подписчики 4

Группы

Профессиональный разработчик

Рейтинг 80

miniCRM - простая система управления контактами

Отчеты и формы Пользователь Платформа 1С v8.3 Управленческий учет Абонемент ($m) Архив с данными Управление взаимоотношениями с клиентами (CRM) Управление услугами и сервисом

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

1 стартмани

01.10.2015    13999    11    rsergio    6       

9

WMS на базе 1С:Предприятие 8 - покупка готового решения или самостоятельная разработка?

Статья Для всех Платформа 1С v8.3 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Бесплатно (free) Нет файла Логистика, склад и ТМЦ

То что 1С:Предприятие 8 сейчас используется в большинстве компаний в качестве системы управленческого, торгового, финансового и бухгалтерского учета - уже давно не секрет. Но на складах 1С чаще применяется лишь как часть модуля Управление Торговлей и все больше задаются вопросы "А можно ли 1С 8 использовать на складе как полноценную WMS систему?" Давайте попробуем разобраться и попытаться ответить на два вопроса: 1. Можно ли использовать 1С на складе? 2. Что выбрать - купить готовое решение или самостоятельно разработать собственный продукт?

13.11.2010    54305    rsergio    116       

71

Комментарии

Управление проектамиБессознательное и внедрение ERP-систем. Роль системного архитектора в проекте#11 03.05.17 10:06
Очень здорово описано.

С WMS похожая ситуация - когда заказчик решается самостоятельно поддерживать систему, то сколько бы документации не было, а результат один - за два три года система начинает деградировать, хотя до этого 5 лет развивалась и оставалась актуальной. Плюс еще накладывается, что программисты постоянно меняются и каждый приходит и привносит свой вклад.
ПубликацииНаблюдения, которые указывают на решимость предприятия к изменениям#7 07.12.16 14:45
Хорошая статья и ролик тоже.

Тоже стараюсь понять насколько компания заказчика обладает ресурсами к внедрению, но часто вижу непонимание в их глазах, т.к. считают что они деньги платят и уже не важно что я думаю об успешности запуска проекта :)
DevМетод Кларка-Райта. Оптимальное планирование маршрутов грузоперевозок#9 17.02.16 10:58
Давно использую данный метод, но не как конечный вариант решения задачи, а как первый приближенный т.к. по времени расчет производится почти мгновенно.
Получив первый вариант решение дальше оптимизация производится другими алгоритмами перебора, которые более точнее находят оптимальное решение с учетом всех факторов (время доставки, стоимость километра и часа пути и т.д.)

Касаемо вопроса расстояний между точками - я использую три метода:
1) Через API Яндекса
2) Через API Openstreetmap
3) Расчет прямого расстояния по GPS координатам

API Яндекса работает быстрее всего т.к. обрабатывает сразу все запросы и выдает результат порциями. Но есть ограничение - не более 2000 запросов в день.
Поэтому резервный канал - OSM. Работает дольше т.к. каждый запрос обрабатывается отдельно.
В некоторых случаях (очень удаленные точки) проще посчитать прямое расстояние по формуле.
Естественно все данные кэшируются и обновляются с определенной периодичностью.

Пока только не удалось прикрутить актуальные пробки на нужный час т.к. Яндекс позволяет учитывать только пробки на текущий момент.
CRMminiCRM - простая система управления контактами#5 02.10.15 22:58
В принципе можно переписать на управляемые формы, самих форм не так много.
Осталось только найти время :)
DevНелинейная многомерная оптимизация - это просто. Часть 2. Генетический алгоритм#6 02.10.15 16:12
Скачал, посмотрел.

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

Нашел не оптимальность - в алгоритме мутации переменная КоличествоМутирующихГенов может быть равна нулю, но все-равно проходит пустой цикл мутации и вычисления целевой функции, которая собственно не меняется.
Скорость работы еще можно увеличить, но код будет еще сложнее для понимания.

В целом неплохой пример с внешним хорошим оформлением.
CRMminiCRM - простая система управления контактами#3 02.10.15 14:03
Это место стало обобщающим, содержащее всю нужную информацию для моей жены, которая работала менеджером по ключевым клиентам.

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

Инструмент рабочий, но не супер универсальное решение.

Конечно хорошо, когда стоит полноценная CRM система со встроенным документооборотом, но часто это лишь мечты.
Поэтому приходится решать вопросы локально. Это одно из частных решений.
CRMminiCRM - простая система управления контактами#0 30.09.15 19:12
Простая система ведения списка клиентов, контактных лиц, заметок, форм документов (например, договоров), работа с инцидентами.
ПубликацииWMS на базе 1С:Предприятие 8 - покупка готового решения или самостоятельная разработка?#113 19.12.14 19:18
ctpayc, вы хоть текст выше читали? В материале не разбираются конкретные системы, не отслеживается история применения тех или иных приемов, идет лишь анализ в целом проблематики построения высокоэффективных систем класса WMS на базе платформы 1С.

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

КлючАналитикиУчетаНоменклатуры - новая сущность, которая будет размножаться вместе со справочником Номенклатуры, умножаясь на количество статусов для каждого товара, а также количество партий. Поиск по нескольким реквизитам в самом справочнике невозможен из-за ограничения платформы 1С. Для обхода этого ограничения был добавлен регистр сведений АналитикаУчетаНоменклатуры с реквизитами Номенклатура, Статус, Партия и ресурсом в виде ссылки на справочник. Использование регистра сведений позволит выполнять поиск сразу по нескольким значениям, но опять же имеем в нем то же количество строк, что и в справочнике.

Требуется проверка производительности выполнения запросов, где в качестве условия при получение данных из регистра ОстаткиТоваров указывается вхождения ключа аналитики в список элементов ключей, полученных из регистра АналитикаУчетаНоменклатуры. Дело в том, что основным ключом (primary key) таблицы справочника является длинный код, который создается уникальным на каждый элемент справочника. Когда мы пытаемся установить отбор по списку элементов с одной номенклатурой, но разными статусами или партиями, то для одного и того же товара будут существовать несколько элементов справочника, а значит они могут обладать разными основными ключами (IDRRef), т.е. нужные записи могут находится в разных частях таблицы т.к. таблицы упорядочены по этому ключу. Это как минимум приведет к чтению большого количества страниц таблицы и увеличение операций ввода/вывода, как максимум к невозможности использовать индекс для поиска элементов и использование перебора всей таблицы (Table scan или Index Scan). Если бы в таблице остатков напрямую находились реквизиты Номенклатура, Статус и Партия, то записи остатков одного товара всегда бы находились рядом т.к. основной ключ Номенклатуры (первого измерения в регистре остатков) был бы для всех строк неизменным.

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

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

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

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

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

И так далее, вопросов очень много к архитектуре решения...
Но это статья совсем не об этом!
DevЯндекс-карта (API 2) + геокодер Яндекс#12 19.04.14 18:20
Хорошо сделано. Только не нашел возможности получения GPS координат.
ПубликацииWMS на базе 1С:Предприятие 8 - покупка готового решения или самостоятельная разработка?#110 19.04.14 6:49
CheBurator, рано или поздно на любом складе нужно менять процессы или для оптимизации, или в связи с изменением внешних факторов - бизнеса компании, появление новых товарных групп и т.п. И специализированное решение уже не может поддержать все изменения, когда универсально быстро адаптируется под новые требования.
Например, сейчас есть клиент, который на своем региональном складе решил внедрить нашу WMS т.к. та система, что стоит на центральном складе не справляется по производительности и главное не поддерживает множество процессов, которые клиент хотел бы запустить. Попытки дописать требуемый функционал на старой системе в итоге привели к необходимости сменить систему т.к. после каждой такой доработки возникало множество ошибок в других местах ("тут лечим, там колечим").
Но если свой штат специалистов готов поддерживать систему быстро и качественно, то согласен, что специализированная система всегда будет более быстрой т.к. содержит прямой код без необходимости поддерживать универсальные механизмы.