Аналоги номенклатуры в 1с 8.3. Что необходимо получить

to Senya

Не совсем верное опеределение, я бы сформулировал несколько иначе:
"В штатном режиме аналоги используются только для заполнения списания (правильнее - отнесения) материалов из НЗП на выпуск готовой продукции/наработку в полуавтоматическом режиме для документов "Отчет производства за смену".

Вообще, работу с фактом в УПП я бы поделил на два режима:

1. Нормативное списание
2. Списание по факту

1-й вариант подразумевает изначально выполненую близко к идеальной предпроизводственную подготовку, т. е. - имеем весь набор спецификаций и задел на складе, полностью покрывающий дефицит до старта производства, по этим спецификациям без использования аналогов. В этом случае, мы формируем НЗП "Требованиями-накладными" и затем этот самый, сформированный НЗП относим на готовую продукцию документами "Отчет производства за смену". При таком, нормативном списании, прямой зависимости между документам производственного учета нет. Мы формируем корзину, а затем дербаним ее.

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

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

Плюсы второго варианта: оперативная фиксация выпусков ГП вне зависимости от состояния НЗП. Т.е., опять же в зависимости от диктуемой учетной политики, мы не тормозим отгрузки, мы фиксируем события по месту их возникновения, мы можем требовать отражать списание материалов не по нормам, а по факту, что даст возможность более тщательно в дальнейшем анализировать нормативные отклонения.
Минусы: придется отключать контроль остатков, т. е. отслеживать списание будет возможно только по отклонениям, при этом отклонения надо отслеживать оперативно, иначе, за месяц бухгалтерия утонет в "минусах", указанный фактаж не по результатам инвентаризаций, а в оперативном режиме может содержать ошибки или сознательные отклонения (другими словами - воровство).

Итог: как видите, ни один из двух вариантов не требует доработок типовой конфигурации, все эти действия можно реализовать на типовом функционале.

О чем эта статья

В этой статье мы рассмотрим, как система может подсказывать товары-заменители .

Это актуально, если основного товара нет на складе, а отпускать клиента с пустыми руками нехорошо:)

Для компаний с огромным ассортиментом это крайне полезный функционал.

Применимость

Статья написана для двух редакций 1С:Управление торговлей – 11.1 и 11.2 . Если вы используете эти редакции, отлично – прочтите статью и внедряйте рассмотренный функционал.

Если же Вы планируете начать внедрение УТ 11, то скорее всего будет использоваться более свежая редакция. Интерфейсы и её функционал могут отличаться.

Поэтому, мы рекомендуем пройти курс Практические задачи уровня 1С:Специалист по УТ 11, КА 2 и 1С:ERP 2 , это поможет вам избежать ошибок и потери времени / репутации.

Постановка задачи

Компания «Мебель-дизайн» занимается оптовой торговлей мебелью. В компании присутствует один оптовый склад, с которого осуществляется отгрузка товара.

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

Бывают ситуации, что клиент заказал товар, которого сейчас нет на остатках и привезти его нельзя.

В таком случае менеджер по продажам предлагает клиенту похожий (аналогичный) товар, но который есть на складе. То есть менеджер предлагает аналогичный товар того же производителя и с такого же материала с остатками на складе.

Все процессы компании отражаются средствами программы «1С:Управление торговлей 11».

Что необходимо получить

Требуется продемонстрировать функционал аналогов номенклатуры в программе «1С:Управление торговлей 11».

Решение задачи по аналогам товаров

Для начала создадим в базе организацию «Мебель-дизайн».

Поскольку в нашей компании используется только одна организация, то флажок «Несколько организаций» в разделе «Администрирование» – «Организации и денежные средства» устанавливать не будем (в УТ 11.2 это раздел «НСИ и администрирование» – «Предприятие»).

Для создания организации перейдем в раздел «Нормативно-справочная информация» – «Настройки и справочники» – «Сведения об организации» (в УТ 11.2 это раздел «НСИ и администрирование» – «Сведения об организации»).

Опять же, поскольку мы используем только один склад, то в разделе «Администрирование» – «Склад и доставка» флажок «Несколько складов» включать не будем (в УТ 11.2 это раздел «НСИ и администрирование» – «Склад и доставка»).

Перейдем в раздел «Нормативно-справочная информация» – «Настройки и справочники» – «Настройка складского учета» (в УТ 11.2 это раздел «НСИ и администрирование» – «Сведения о предприятии» – «Настройка складского учета»).

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

Если открыть карточку номенклатуры, то мы увидим, что поле «Производитель» в карточке товара есть на вкладке «Описание».

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

Поэтому поле «Материал» заведем для номенклатуры как дополнительный реквизит.

Перейдем в раздел «Администрирование» – «Общие настройки» и установим флажок «Дополнительные реквизиты и сведения» (в УТ 11.2 это раздел «НСИ и администрирование» – «Общие настройки»).

По умолчанию в программе используется два вида номенклатуры «Товар» и «Услуга».

Посмотреть их можно в разделе «Нормативно-справочная информация» – «Настройки и справочники»:

  • Настройка ведения товаров.
  • Настройка ведения услуг.

Если открыть «Настройки ведения товаров», то страницы «Панель быстрого отбора» мы не увидим.

Для того, чтобы включить в программе возможность использования панели быстрого отбора необходимо в разделе «Администрирование» – «Номенклатура» включить флажок «Множество видов номенклатуры» (в УТ 11.2 это раздел «НСИ и администрирование» – «Номенклатура»).

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

Как видим, карточка вида немного изменилась по сравнению с предыдущим скриншотом вида номенклатуры. В первую очередь появилась страница «Панель быстрого отбора», которая нам необходима для использования функционала аналогов номенклатуры.

Но сначала перейдем на страницу «Дополнительные реквизиты» карточки вида номенклатуры и создадим новый дополнительный реквизит «Материал».

В поле «Тип значения» оставим вариант по умолчанию как «Дополнительное значение».

Нажмем кнопку «Создать» в дополнительном реквизите «Материал» и добавим, например, три вида материалов: ДСП, Дуб и Ясень.

После этого на странице «Дополнительные реквизиты» карточки вида номенклатуры у нас появится одна запись – «Материал».

На вкладке «Описание» теперь есть дополнительное поле «Материал», где мы можем указать один из созданных нами материалов для вида номенклатуры «Товар».

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

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

Согласно условию нашей задачи, аналоги номенклатуры мы определяем по производителю и материалу номенклатуры.

Перенесем реквизиты «Производитель» и «Материал» в карточку вида номенклатуры «Товар» нажав на кнопку «Добавить в панель».

Запишем карточку вида номенклатуры.

Отлично! Панель быстрого отбора для поиска аналогов номенклатуры мы настроили.

Закупим все товары из справочника «Номенклатура» кроме товара «Стол дубовый».

При необходимости установим на товары цену в разделе «Маркетинг и планирование».

Теперь представим себе ситуацию, что к нам поступил заказ на товар «Стол дубовый».

Менеджер по продажам формирует документ «Заказ клиента» (включить использование заказов можно в разделе «Администрирование» – «CRM и продажи»).

Перейдем в раздел «Продажи» – «Заказы клиентов» и нажмем кнопку «Создать».

Заполним все необходимые реквизиты документа.

Перед нами откроется окно подбора товаров в заказ клиента.

Как видим, номенклатура «Стол дубовый» отсутствует на нашем складе.

Менеджер решает предложить клиенту аналогичный товар того же производителя и с того же материала.

Для этого в списке товаров следует установить курсор на нужный товар (в нашем случае «Стол дубовый») и выполнить команду контекстного меню «Товары со схожими свойствами».

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

Программа автоматически установит фильтр по тем параметрам (реквизитам), которые мы определили на странице «Параметры быстрого отбора» в виде номенклатуры и покажет аналогичные товары.

  • по виду номенклатуры «Товар»;
  • по производителю «ДАНА-мебель»;
  • по материалу «Дуб».

Менеджер видит все аналоги товара «Стол дубовый» и их наличие на складе.

Предлагает аналоги товара клиенту и в случае, если клиент соглашается на предложение, переносит необходимые товары в документ «Заказ клиента».

Дополнительно в этом же окне подбора товара можно устанавливать свои произвольные фильтры по нескольким реквизитам номенклатуры. То есть, по нескольким производителям и материалам.

Менеджер может установить флажки напротив материалов «Дуб» и «Ясен», снять фильтр по производителю и увидеть только товары, сделанные с выбранных материалов.

Поиск аналогов может производиться во всех документах, где есть возможность вызвать обработку «Подбор товаров».

Заключение

Итак, мы рассмотрели функционал аналогов номенклатуры в программе «1С: Управление торговлей 11».

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

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

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

Возможно, кому-то пригодится краткий обзор доступных на рынке Украины систем:


Bookkeeper SaaS

Буккипер - это новый web-сервис для автоматизации бухгалтерского учета ФЛП и небольших фирм (от наших, украинских, разработчиков!).

Первый месяц работы бесплатен, затем 295 грн. в месяц.

Сервис Буккипер постоянно развивается и постепенно наращивает функционал.

Обновления выходят, как минимум, еженедельно.

Видим, что буквально на дату публикации обзора (13/09/18) есть свежее обновление:


Функциональность стандартная для ведения бухгалтерского учета в Украине:

  • Покупки (Входящий счет, Приходная накладная, Возвраты);
  • Продажи (Расходная накладная, Прайс-листы, Остатки);
  • Запасы (Списание, Инвентаризация, Производство);
  • Бухгалтерия (Банк и Касса, Валютные операции);
  • Персонал (Зарплата и кадры, отчеты);
  • НДС (Налоговые накладные, Корректировки, Декларация по НДС);
  • Отчетность (Единый налог, НДС, ЕСВ, НДФЛ и прочие);
  • Реализована возможность отправки налоговых отчетов через программу Соната.

Согласно информации из открытых источников разработчика, веб-интерфейс Bookkeeper SaaS стабильно работает в любых современных браузерах. Ограничения касаются лишь сильно устаревших версий. Базы данных хранятся на серверах Microsoft, что обеспечивает высокую надежность и безопасность.

Онлайн-бухгалтерия имеет несколько непривычный, на первый взгляд, но достаточно удобный и понятный интерфейс, который вот так сейчас выглядит:


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


Зато онлайн доступна документация, правда, к сожалению, тоже пока без визуализации форм:


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

На сайте регулярно публикуются актуальные новости: последнее обновление от 02.08.2016


OpenERP

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

Система начала развиваться усилиями Fabien Pinckaers в 2000 году. Вскоре Tiny ERP начала внедряться на рынке публичных торгов.

Вплоть до конца 2004 года Fabien Pinckaers совмещал в одном лице и разработчика, и менеджера, и дистрибьютора компании Tiny. В сентябре 2004 года (когда он закончил свои исследования), другие программисты были привлечены к развитию и дистрибуции Tiny ERP.

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

В это время открывается ресурс TinyForge. С этого времени к разработке модулей подключаются разработчики со всего мира.

Каждые 4-6 месяцев выходит стабильная версия, каждый месяц версия для разработчиков. В июне 2007 в версии 4.1.1 появился «веб-клиент», позволяющий с помощью обычного браузера использовать все возможности системы.

В июле 2008 года платформой для организации работы сообщества OpenERP становится Launchpad, а сама система становится более открытой для переводчиков и разработчиков. Также в 2008 году пишется первая версия книги OpenERP, заменяющая документацию системы. С 2009 года OpenERP представлена в составе пакетов Ubuntu и Debian.

Технические особенности

  • Язык программирования Python
  • Взаимодействие сервер-клиент реализовано на протоколе XML-RPC
  • Серверная часть, в качестве СУБД использует PostgreSQL
  • Клиенты на основе GTK
  • Веб-клиент на основе Ajax
  • Разработан веб-клиент для работы с помощью мобильных устройств (пока доступ через него только на чтение)
  • Модульная структура
  • Бухгалтерия
  • Учет активов
  • Бюджет
  • Управление персоналом - HRM
  • Продукция (товары)
  • Производство
  • Продажи
  • Закупки
  • Управление складом
  • SCRUM - управление проектами для разработки ПО
  • Заказ обедов в офис
  • Управление проектами

Принципы работы Tria

Платформа Tria создавалась по образу и подобию самого распространенного на просторах бывшего СССР программного продукта - 1С:Підприємство. Так же, как и 1С:Підприємство, готовое решение состоит из двух частей - платформы (запускаемого приложения) и базы данных.

Сравнение с 1С:Підприємство или немного истории

Система Tria родилась не на пустом месте. Сначала разработчики занимались созданием нестандартных решений на базе 1С:Підприємство 7.7. В результате последовательных изысканий родился механизм хозяйственных операций.

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

Как результат, получили следующие плюсы:

  • Логику работы документов можно менять “на лету”, при этом остальные пользователи продолжают работать в базе.
  • Значительно упростился и ускорился процесс вноса изменений в конфигурацию, а следовательно, значительно снизилась стоимость сопровождения. То, что программист делает в 1С:Підприємство за день, в ТРИА можно сделать за час.
  • Значительно снизился уровень требований к настройщику/внедренцу ТРИА. Люди, не умеющие программировать, сами настраивали проводки, меняли коренным образом логику работы программы. Сместился акцент в требованиях к внедренцам: в первую очередь специалисты должны знать предметную область, понимать методологию работы, а уже затем быть специалистами в ТРИА.

Естественно, что Tria получилась идеологически похожа на 1С:Підприємство. Те же справочники иерархической структуры, документы, журналы документов, регистры. Пока нет плана счетов и периодических реквизитов – планируется со временем. По сути, перед вами нечто похожее на компоненту “Оперативный учет” или “торговля” в 1С:Підприємство.

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

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

Конфигурации, предлагаемые в ТРИА, содержат весь опыт успешного ведения бизнеса наших клиентов. Они получают не только программу, но и постоянные рекомендации и предложения по увеличению прибыльности их компаний. Мы гордимся достижениями наших клиентов, что за 4 года использования ТРИА в Луганской области ни один из клиентов не прекратил свой бизнес, а наоборот, несмотря на кризис, они успешно развиваются.

Технические характеристики Tria

Для нормальной работы Tria достаточно Pentium 150, 32 мегабайта оперативной памяти, 15 мегабайт дискового пространства. Чем больше размер базы данных и объемы вводимой информации, тем большей мощности требуется компьютер, на котором размещена БД.

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

В качестве хранилища данных используется бесплатный SQL-сервер Firebird (существуют версии сервера как под Windows, так и под бесплатные операционные системы (Linux, FreeBSD).

Для однопользовательской работы по умолчанию предлагается работа с embedded-версией сервера Firebird, которая не требует его отдельной установки и администрирования.

Оценка 3.22 из 5 на основе 23 оценок

Please enable JavaScript to view the

Поскольку задача написания «аналогов» и «альтернатив» 1С нетривиальная, есть смысл изложить свое видение и ключевые моменты на основе опыта написания своей наколенной поделки. Ну и как бонус услышать критику и вовремя переделать где промахнулся.

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

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

Это плюсы. Но есть и масса минусов. Чтобы не описывать тут можно почитать например .

Попыток вытеснить 1С предпринимается великое множество. Большинство проектов пытается переплюнуть плюсы 1С. Тягаться с огромной корпорацией дело малоперспективное. Продукты, писанные на Делфи или.NET, то есть требующие перекомпиляции, вообще неконкурентные, те, кто пытаются прикручивать в качестве DSL движки javascript или VBA выглядят чуть получше, но в любом случает такие решения могут использоваться в основном если есть штатный программист, чего малый бизнес, как правило, позволить себе не может.

Попробуем подобраться с другой стороны. Не пытаться переплюнуть достоинства 1С а предложить решения тех проблем где 1С имеет минусы.

Поскольку минусы где то уравновешивают плюсы а у нас этих минусов не будет то, даже если у нас не будет плюсов на уровне 1С, сальдо примерно будет такое же.

Итак, какие характеристики должны быть у создаваемой системы.

Open source. Кросплатформенность.
Тут объяснений не требуется.
Веб приложение.
Многопользовательский режим с возможностью прямого доступа с мобильных устройств без необходимости писать специальных клиентов, синхронизировать справочники и т.д.
PHP
Язык с низким порогом вхождения, знакомый большинству веб разработчиков. Для внесения изменений требуется только текстовый редактор. Веб приложение легко обновляется заменой отдельных файлов (привет конфигуратору 1С). Скриптовый слаботипизированный язык в сочетании с набором высокоуровневых бизнес-объектов хорошо подходит для написания бизнес-логики.

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

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

Когда я давал фрилансерам заполнять свою систему демо данными (типа как демо - конфигурация в 1С), ни разу не возник вопрос - а как тут работать.

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

Программист обычно делает систему максимально гибкой (а как же иначе!) тратит две трети времени на написание многочисленных настроек, визардов, генераторов или того хуже тулсов для командной строки и т.д.

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

Примером является и сама 1С - от версии 2.0, где бухгалтера действительно вводили формулы на специальном «птичьем» языке до монстра 8.3. Попробуйте дать мануал непосвященному и посчитайте с какой попытки он врубится в витиеватую словесную конструкцию «план видов характеристик».

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

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

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

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

А теперь некоторые общие технические идеи, которые могут пригодиться «велосипедистам» при написании собственного «убийцо» 1С.

Хранение документов
Типичный вопрос на форумах, задаваемый писателями CRM, учетных, складских систем и систем документооборота. Как хранить документы, которые очевидно, имеют разнородную структуру. Отдельная таблица под каждый тип документа, общая таблица с кучей универсальных полей, модные нынче NoSQL хранилища…
Предлагается хранить все документы в одной таблице в блобе, упакованными в XML. Отдельно - только общие поля, которые показываются в списках и журналах - номер документа, дата создания, автор, статус. Упаковка в XML имеет преимущество перед сериализацией или json - каждое значение обрамлено именованным тегом, а значит, можно выполнять сквозной поиск, не натыкаясь не лишние строки. То есть найти ссылку на контрагента по
12
не представляет труда, тем более большинство серверов БД поддерживают XPath. Упаковка-распаковка происходит автоматически в базовом классе, например, Document который содержит два предопределенных ассоциативных массива - header и details (массив массивов для табличной части) и которые заполняются дочерними классами - первичными документами как им по кайфу. Ключ ассоциативного массива становится тегом, значение - содержимым.

Функции упаковки и распаковки вызываются соответственно перед записью и после чтения документа из БД.
Кроме того, рекомендуется использовать денормализацию. Например, в документ пишется не только id контрагента а и его наименование, которое предъявляется пользователю. Много есть не просит, зато позволяет обойтись без джойнов к другим таблицам и использования «исторических» атрибутов.

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

Печатные формы документов и отчетов.
Просто HTML. Плюс несложный шаблонизатор, например, Fenom .

Преимущества очевидны - можем создать любую печатную форму без всяких построителей, отобразить ее в браузере или распечатать. Кроме того, HTML экспортируется в Word и Excel. Делается это просто - HTML сохраняется с расширением docx или xslx. При открытии файла офис (во всяком случае, майкрософтовский) сам сконвертит в нужный формат. Да, убого. Но зато просто, универсально и не требует специального кодирования. В крайнем случае, всегда можно подправить руками в том же екселе.

При желании можно конвертить и в pdf но библиотеки типа TCPDF чувствительны к верстке и стилизации посему, кому надо, поставит PDFCreator и будет ему счастье.

Впрочем, с введением электронной отчетности и обмена электронными документами на первый план выходит экспорт-импорт а не печать на бумаге, поэтому смысл печатных форм в основном - оперативный просмотр документов а экране.

Хранение аналитики
Аналитические данные, связанные с синтетическими счетами в проводках. Субконто в терминах 1С. Реализация - одна таблица, по сути представляющая собой таблицу фактов в ROLAP типа звезда. Ссылка на документ, синтетический счет (отдельная запись на каждый корреспондирующий счет -типа полупроводки), количество, сумма. Дополнительные измерения - ссылки на основные бизнес сущности - контрагенты, партии товаров, сотрудники, денежные счета. Количество и сумма (отмасштабированные в целые числа) для дебета пишутся с плюсом для кредита - с минусом. Это позволяет простым суммированием путем полного пересчета получать остатки и обороты на любой период в разрезах основных бизнес-сущностей без необходимости хранить промежуточные итоги. Так же просчитываются и синтетические счета в проводках.

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

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

Модульность
То, отсутствием чего страдает 1С. В некотором смысле систему можно разделить на условные «платформу» и «конфигуратор». Собственно структуру сайта, системные объекты и страницы можно считать платформой (ядром). Объекты бизнес логики - справочники, документы, отчеты и т.д могут быть подключены в произвольном сочетании. По сути каждый объект реализуется несколькими файлами. Для самого сложного - документа это 4 файла: шаблон страницы ввода, php файл - класс страницы ввода (бек-енд), файл шаблона печатной формы и php файл персистентной сущности (Entity), отвечающий за сохранение документа в хранилище. Файлы и классы PHP в них должны иметь общее «родовое» имя. Например, invoice или goodsissue. Файлы копируются в предопределенные папки. Затем в админпанели добавляется новый пункт меню со ссылкой на это имя и наименованием пункта меню, соответственно Счет или Накладная. При открытии основной страницы меню генерится автоматически, группируется, если указано, и получаем как бы “конфигурацию”. При выборе пункта меню система находит заведомо незнакомый файл страницы по «родовому» имени а дальше подтягиваются шаблоны и печатные формы…

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

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

Может показаться, что предлагается какое-то низкоуровневое программирование - все захардкодить. Но ведь язык 1С по сути ничем не высокуровневее того же PHP. Просто там манипуляция бизнес-данными производится с помощью высокоуровневых бизнес-объектов (документов, справочников) что предлагается делать и здесь.

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

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

Расширение позволяет вести полноценный учет аналогов номенклатуры и использовать их в оптовых и розничных продажах.

Настройка учета аналогов

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

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


В открывшейся форме необходимо заполнить следующие данные:

  • исходный товар и характеристику (если ведется учет по характеристикам),
  • аналог и его характеристику,
  • кратность (количество базовых единиц аналога, которое соответствует одной базовой единице исходного товара),
  • приоритет (в случае использования нескольких аналогов одной номенклатуры их применение будет ранжироваться в зависимости от этого значения; 0 - максимальный приоритет, такой товар будет предлагаться для замены в первую очередь),
  • обратная аналогия - если признак установлен, то аналогия товаров работает "в обе стороны", т.е. исходная номенклатура также будет являться аналогом текущего аналога.

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


Тут нужно заполнить:

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

Нажимаем Загрузить , аналоги записываются в базу. Если в процессе загрузки возкникнут какие-то ошибки/коллизии, они будут отражены в протоколе загрузки.


При желании можно сформировать отчет по зарегистрированным аналогам:


Из номенклатурной карточки можно увидеть список всех аналогов данного товара:



Подбор аналогов в документы продажи

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


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

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


После выполнения обработки появится протокол замены.


В табличной части исходная строка отменяется и появляется новая строка с аналогом, происходит пересчет документа.


Автозамена срабатывает при соблюдении слеудующих условий:

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

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

Подбор аналогов в документы закупки

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

Для доступа к новому функционалу создано две роли:

  • Аналоги (использование) - только доступ к таблице аналогов на форме подбора номенклатуры + доступна автозамена на аналоги,
  • Аналоги (редактирование) - вдобавок к правам предыдущей роли можно загружать новые аналоги и корректировать текущие.