Версии 7.7.17.179 от 1.12.22 и 7.7.17.301 от 4.03.24

Два года не обновлял программу. Не было заявок на расширение функционала. Теперь возникла необходимость в дистанционном управлении «из дома» и в синхронизации остатков локального и интернет магазина. В связи с этим добавлена возможность обмена данными по ftp с использованием промежуточного ресурса на сервере интернет магазина. Для этого на сервере создается специальный ftp- пользователь со своей папкой (директорией), которая работает по принципу почтового ящика. Из магазина на центральный (домашний) ПК отправляется бэкап базы данных. В магазин по его номеру можно отправить файл БД (в программе не бывает БД больше 300 МБ, в сервисе предусмотрена срезка БД), бэкап БД (файл в 10 — 20 раз меньше файла БД), обновление номенклатуры , данные таблицы закупки (приходная накладная). В карточке товара добавлены поля для расширенного наименования товара для интернет магазина и его статуса. Синхронизация с opencart 2.x  выполнена с применением дополнения к opencart «anyCSV/XLS™ PRO PIM v.7«.

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

PS. В декабре круглая дата — 10 лет с момента рождения проекта.

P.P.S В 2023 году вышло несколько версий по просьбе хозяина СТО из г.Москва. Там очень специфический учет и без подсказок спеца в этом бизнесе тяжело сделать удобный механизм. Так и наращивали функционал с непосредственной проверкой на практике.

А в 2024 понадобилось вести учет при разделке мяса с хранением в нескольких холодильниках в упаковке на палеттах. В меню появился пункт Рперации/Отгрузка.

Новые фишки тандема.

Тут меня попросили добавить в программу еще пару фишек. На форме продажи и закупки поставил кнопку открытия денежного ящика. Типа замок поломался. И еще, добавить возможность списания товара рядовым продавцом (овощи у них портятся). Добавил в настройки (Сервис/Система/Режимы).

Delphi. Подключение фискального регистратора ATOL, STRICH-M

В связи с последними событиями связанными с массовым внедрением он-лайн касс, в сети (на фрилансе в частности) появилось много запросов от программистов. У нас это сделано в lazarus, но суть от этого не меняется. Используется подключение по COM к драйверу ККМ. Синтаксис у атола и штрих-м немного отличается, ознакомиться с примерами можно в примерах для атол- C:\Program Files\ATOL\Drivers8\Samples\FprnM\JScript.

Сам код полностью не привожу, тут все бурно меняется.

//создали объект
ECR := CreateOleObject(‘AddIn.FprnM45′);
ECR.ApplicationHandle := Application.Mainform.Handle;
//заняли порт
ecr.DeviceEnabled:=1;
//пароль кассира=1
pwd_kass:=’1’;

…………………………………………………………………………

Главное — это принцип, использование COM-объекта. Также можно посмотреть этот принцип в примере для 1С 7.7. И вообще, чем писать свой софт, может лучше Tandem7pi использовать ? Ключ к одной торговой точке — 2500 р. Количество рабочих мест в одной торговой точке не ограничено.

——- Добавлено 20.09.19

«Грабли» при переходе на ATOL DTO 10…..

Ну во первых нужно пользоваться 32 разрядной версией.

Во вторых при запуске установки не забыть отметить, чтобы установилась поддержка 1С 8… Это и есть поддержка работы через COM — объекты.

Попутно. Как определяет драйвер имя кассира? По его паролю. Народ просто ставит везде пароль 30 (и кассиру и сис.админу) и в тест-драйвере меняет имя сис.админ на Ф.И.О. продавца, там же и ИНН вводят.

Код с переходом на драйвер 10 поменялся значительно.

FR := CreateOleObject(‘AddIn.Fptr10′);
fr.setSingleSetting(Fr.LIBFPTR_SETTING_ACCESS_PASSWORD,0);
fr.setSingleSetting(Fr.LIBFPTR_SETTING_USER_PASSWORD,30);
fr.applySingleSettings();
FR.open;

//активируем кассира
FR.operatorLogin;
FR.checkDocumentClosed;//закрыли на всяк случай зависший чек

if fr.errorDescription<>’Ошибок нет’ then

showmessage(fr.errorDescription);

if vid=’prodaga’ then
begin
FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL);
end else
if vid=’vozvrat’ then
begin
FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL_RETURN);
end;
//открыли чек
FR.openReceipt;

//наименование
FR.setParam(FR.LIBFPTR_PARAM_COMMODITY_NAME,str);
//цена
FR.setParam(FR.LIBFPTR_PARAM_PRICE,  form1.strtocurrmy(stringgrid1.Cells[1,i]));
//кол-во
FR.setParam(FR.LIBFPTR_PARAM_QUANTITY,form1.strtocurrmy(stringgrid1.Cells[2,i]));
//ндс
FR.setParam(FR.LIBFPTR_PARAM_TAX_TYPE,FR.LIBFPTR_TAX_NO);
//режим 105
//   fr.setParam(1212, 1);// # товар
//     fr.setParam(1214, 4);// # полный расчет
if marka<>» then  fr.setParam(FR.LIBFPTR_PARAM_MARKING_CODE, marka);//хрен его знает ?
//зарегистрировали позицию
predmet:=1;
FR.setParam(1212,predmet);
FR.registration;

Он-лайн розница. Плюсы и минусы.

В настоящее время мы присутствуем при рождении нового течения в автоматизации розничной торговли. Программа для выполнения торговых операций и получения отчетности в виде он-лайн сервиса.

Начнем с плюсов.

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

Очень даже весомые плюсы!

Теперь минусы.

Низкая скорость работы, обусловленная требовательностью WEB-приложений к производительности компьютера и к скорости канала связи. Обязательное наличие лицензионного антивирусного  продукта (это еще один тормоз). Невозможность быстрого восстановления работоспособности торговой точки в случае закрытия интернет-сервиса (например проверка контролирующих органов). Оплата интернет-трафика в разы выше для сотового интернета, чем при оплате за передачу чеков в ОФД. Недостаточный опыт разработчиков таких сервисов в особенностях розничной торговли. Отсутствие «горячих» клавиш. Быстрый ввод возможен только при чтении сканером штрих кода. Наличие  сервисов розничной торговли, как приложение (часто экспериментальное) к большому бухгалтерскому сервису (соответственно и такое отношение к нему внутри  фирмы). Часто невозможность подключения дополнительных устройств (экран покупателя, весы и т.п.). Ну и самое главное- полная зависимость от провайдера связи, а здесь Вам не тут, это не Германия (комментарии излишни).

Ну и рекомендации.

Сами понимаете, что за 10 р в сутки Вы не получите достойного сервиса, разве Вы выступите в роли тестера на какой то период. Потом расценки поменяются. Соответственно нужно при большом желании, пользоваться интернет сервисом солидных фирм, имеющих большой опыт в написании программ для розницы. Это должно быть дорого (не 10 р в сутки). Или использовать преимущества локальных программ в сочетании с различными сервисами удаленного доступа (TeamViewer, Supremo, Ammyy Admin и т.п.) и сервисами хранения резервных копий данных в облачных хранилищах .

О принципах и подходах

Имея громадный опыт внедрения и сопровождения чужого ПО (более 20 лет), я в 2012 году придумал свой подход к разработке проекта программы для розничной торговли. Тогда в этом была настоятельная потребность. 1С поставила крест на 1с7.7, а 1с «Розница» еще не была так популярна, как сейчас. Народ тогда пользовался дешевой 1с «Управление торговлей» и дурел от непонимания логики работы этого софта. Идея нового подхода заключалась в том, что программа рождалась непосредственно в магазине. То есть каждая новая функция была предложена продавцом, менеджером или хозяином торговой точки и через пару дней им же была протестирована в «боевом» режиме. Так примитивный tandem7l перерос в супер функциональный tandem7pi. Причем некоторые моменты в смысле удобства не сразу понятны. Например корявый шрифт вместо «причесанного» шрифта в 1С «Розница» снижает утомляемость глаз продавца (эта идея есть кстати и в разработках от Штрих-М). Или размер файла базы данных. Он критичен для резервного копирования. Он у tandem7pi вырастает за  год круглосуточной торговли продуктами питания (~18000 наименований) лишь до 100 МБ (меньше нулевой БД иных брендовых софтов). Небольшой размер формы продажи (и соответственно жирный шрифт) позволяет использовать на рабочем месте продавца маленький монитор. А также торговать без мышки и без специальной торговой клавиатуры используя несколько вариантов «горячих» клавиш обычной клавиатуры. В одном варианте можно убрать клавиатуру под прилавок на выдвижную полку и использовать самый нижний ряд клавиш, чуть выдвинув клавиатуру.

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

«Фишки» Tandem7PI

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

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

Предельно простая настройка сканера штрих кодов (точнее — обычно никакой настройки не требуется).   Никаких «танцев с бубнами» при настройке портов и установке драйверов.

Поддерживаются фасовочные весы «Масса-К»  и CAS. Электронные весы фирмы CAS  или Штрих-М подключаются по COM порту.

Программа имеет клиент-серверную конфигурацию. Ставится на все версии Windows кроме WinXP HomeEdition.

Система разработана на free pascal с применением free сервера БД FireBird, без нарушения чьих то авторских прав.

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

Можно создавать продажи по закупкам и т.п.

Операция «Продажа» осваивается продавцом за несколько минут, а если продавец запомнит назначение  3-5  «горячих» клавиш, то через час тренировки, скорость проведения продажи будет не хуже, чем при использовании спец. клавиатуры (стоимость которой больше 3000) .

Возможна печать чеков продаж  на одном принтере (или ККМ) с нескольких рабочих мест.

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

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

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

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

Есть три  механизма распечатки этикеток с штрих кодом. На лист формата А4, на специализированном принтере и на фасовочных весах (в том числе для штучного товара).

Механизм ценообразования состоит из двух подсистем-  при закупке товара (цены изменяются одновременно с изменением остатков) и через форму «Переоценка».

Добавление товара в номенклатуру можно оперативно выполнить  при заполнении прихода товара из меню подбора.

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

Отчет «Движение товара» позволяет быстро разобраться в ошибках пересортицы для конкретного товара.

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

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

Предусмотрена простая система скидок. В том числе и с применением бонусных карточек с штрих кодами.

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

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

Предусмотрена возможность перевода интерфейса программы на любой язык. Для этого нужно включить режим «Использование альтернативного языка интерфейса» и  перевести, например с помощью интернет переводчика, текстовые файлы в папке lang программы. Причем можно перевести на туземный язык только часть форм (например форму продаж и кассовый отчет).

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

Имеется настраиваемая система звукового оповещения.

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

Начальный размер файла базы данных Tandem почти в 50 раз меньше, чем у 1С 8.X. Что позволяет быстро выполнять резервное копирование на внешний носитель.

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

Есть механизм вывода изображения товара по горячей клавише (F7) и на форме продажи в режиме работы с серийными номерами товара.

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

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

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

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

Загрузка данных в номенклатуру и в таблицу остатков из сторонних источников, осуществляется через файлы обмена формата csv (текстовый файл с символами-разделителями — «;», выгружаемый из Excel)

Tandem7pi работает в linux при поддержке wine. Инструкция по настройке есть на портале pi-d.ru.

Срез сильно выросшей базы данных в Tandem7pi занимает не более 20 минут (актуально при круглосуточной торговле продуктами в «бойком» месте). Есть механизм переключения между несколькими БД. При этом менеджеру доступны старая и «боевая» база данных (значки на рабочем столе), а  продавцу только «боевая». В зависимости от интенсивности торговли, срез делается раз в 1-3 года.

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

Параллельно изменению БД, ведется протокол, лог-файл, в котором можно найти- время, код и количество товара . Можно создать операцию по выбранным записям в протоколе (Сервис/Аудит).

Для торговли авто.запчастями предусмотрен фильтр по VIN.

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

Есть два варианта продажи «в долг».  Можно отложить продажу без проведения по складу (см.выше) или провести по складу без проведения по кассе. Выборка долгов в отчете «Задолженности».

Есть отчеты для анализа прибыли.

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

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

В программе есть встроенный механизм резервного копирования.

В 2022 году  добавлена возможность взаимодействия с БД интернет магазина на движке opencart.

В 2023 году программа была адаптирована для ведения учета на СТО в г.Москва.

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

Процесс совершенствования ПО Tandem7PI идет непрерывно с 2012 года в виде бесплатных доработок по просьбам наших клиентов. Причем  новые возможности не сразу попадают в документацию (папка docs в папке программы), не успевают. Кроме того в данной папке есть рекомендации по отдельным ситуациям, косвенно связанным с нашей программой. Например, как «разруливать» сбои в работе ККМ Штрих-М.

Tandem7PI и Закон 54-ФЗ

В последнем релизе Tandem7PI можно на несколько ПК использовать один фискальный регистратор. Выбирается базовая машина (обычно это ПК продавца-кассира, на которой, кстати, нужно держать сервер FireBird и базу данных). Базовая машина включается первой и выключается последней. К ней подключается фискальный регистратор. На базовой машине включаем  обработку чеков из БД.     На остальных ПК в настройках Tandem7PI включаем режим сохранения чеков в БД. Таким образом решается проблема проведения по регистратору на ПК, предназначенных в основном не для продаж (ПК менеджера, хозяина или ноутбук, подключенный временно в связи с предпраздничной горячкой). На базовом ПК задаются группы товаров, которые должны учитываться в фискальном регистраторе. У данной технологии есть два некорректных момента. В таком чеке не будет правильного e-mail покупателя (будет вноситься test@test.ru) и все чеки пройдут кассой№1. Однако это проблема того, кто придумал такую глупость. А что если покупатель назовет почтовый адрес какого нить террориста? Типа пошутит? Проверить то нельзя, а шутников у нас достаточно. Ну а много касс там, где Tandem7PI не пользуются (впрочем как и 1С). И есть уникальное свойство. Что происходит в другом ПО, если кассу «заело»? Бумага застряла, просто «подвис» аппарат. Торговля останавливается. В Tandem7PI в базе данных записывается задание на последующую распечатку чека. После приведения в чувство ККМ, чеки распечатаются и эл.копии уйдут куда надо.

Переход на FireBird 3.0

Для перехода Tandem7PI на новую, 3.0, версию нужно выполнить следующее:

  1. Сохранить БД (Сервис/Резервное копирование БД).
  2. Закрыть программу Tandem7PI. Скачать комплект по ссылке
  3. Распаковать содержимое комплекта поверх, имеющихся в папке Tandem7pi_srv или Tandem7pi_client, файлов с перезаписью.
  4. Запустить с правами администратора (из меню правой кнопки мышки) файл c:\tandem7pi_srv\FireBird\bin\uninstall.bat
  5. Скачать и установить сервер FireBird 3.0 по ссылке  (32) или с другого ресурса. При установке выбрать конфигурацию classic. Установить, как службу Windows, запускаемую при загрузке. Разрешить запуск службы FireBird .
  6. Проверить наличие работающей службы FireBird (Компьютер/Управление/Службы)
  7. Запустить Tandem7PI. Не обращая внимание на сообщения об ошибках, перейти в Сервис/Система/База данных и восстановить БД, сохраненную в п.1 .

1C 7.7 -ностальгия

Прошло уже прилично времени с того момента, как фирма 1С перешла на версию 8. Однако до сих пор у моих знакомых предпринимателей неприятие к такому супер мощному софту. Все с тоской вспоминают «семерку». Однако они не пробовали в свое время поработать в конфигурации 1С 7.7 А.Величко («Конкурент»).  Вот это была наверное самая удобная конфа для розничной торговли. Представляете, создано это чудо было в прошлом тысячелетии. Предельная простота интерфейса. Я знаю людей, которые и сейчас торгуют с ее использованием. Так вот нами была использована в Tandem7PI идеология из этого релиза. При этом был поднят уровень функциональности до современных требований. Конечно, то , что в 1С 7.7 можно было легко доработать код и БД под «свои тараканы», в Tandem7PI реализовать не возможно. Однако есть свои «плюшки» для тех, кто умеет программировать и от этого еще и кормится. Начнем с того, что система здесь клиент-серверная. Это не говорит, что нужно в магазине ставить сервер в виде отдельного компа (кстати так делают те, кто «превращает» одно пользовательскую   «восьмерку» в сетевой вариант). Просто нужно быть чуть грамотнее, чем продвинутый пользователь, чтобы установить и настроить систему из нескольких компов на базе Tanden7PI (IP адресация, синхронизация времени, бэкапы и т.п.). Кроме того, можно в Delphi или в чем либо, написать дополнительный софт , который будет пользоваться БД параллельно с Tandem. Учитывая, что  себестоимость системы будет на треть ниже, чем при 1С ( Tandem очень не требователен к производительности ПК, а ключ к программе для одной торговой точки всего 2500 ру.), то хозяин может позволить себе  нанять на стартовый период грамотного спеца (которого мы проконсультируем бесплатно до распечатки ценников). Кто же экономит и на этом, то получает у нас стартовую онлайн тех.поддержку по TeamViewer (2500 ру за торговую точку). Напоследок скажу, что мы уже год, как перевели всех своих клиентов с 1С 7.7 на Tandem7PI.

Весы с печатью этикеток

Пора поделиться своим опытом по работе с весами с печатью этикеток. Как построен механизм у большинства торговых программ? Обычно берется драйвер от Атол и через него осуществляется обмен данными. Есть несколько явных параметров для настройки. Это указать имя драйвера в настройках программы и адрес доступа к весам и тип весов в самом драйвере. В то же время, изготовители весов сопровождают их продажу своим программным обеспечением (ПО). Причем отдельные производители умудряются таким ПО торговать параллельно  весам. В связи с заложенной в торговой программе идеи «объять необъятное», возникают различные проблемы. Так например в настройках весов нужно указать количество ячеек памяти, что вводит в ступор не только предпринимателя, но и меня, который  знает эту науку так сказать изнутри. По умолчанию стоит 1000, а сколько нужно? Допустим это максимальное количество PLU,  тогда так и укажите.

В Tandem7PI заложен другой принцип. Например с весами МАССА-К обмен данными производится напрямую, с использованием программ, разработанных в этой фирме.

В  штрих коде, применяемом в таких весах,  есть ограничение по величине кода товара- 99999. Поэтому собственно и введено понятие PLU. Программа может торговать по PLU и по коду. В Tandem7PI код товара и PLU идентичны. Работа с номенклатурой более 99999 единиц не предусмотрена. Что позволило максимально упростить настройку и работу с весами. Просто выгружается весь весовой товар, имеющийся в наличии и штучный, имеющийся в наличии и имеющий отметку «кг» в дополнительных свойствах.

Аналогично с весами CAS 5000j. Используется ПО изготовителя весов. В случае заказа, будет добавлена поддержка еще одного типа весов.

Также довелось сделать использование в 1С 7.7 ТиС комплекта для фасовки Штрих-Пак. Соответственно и в Tandem7PI этот механизм будет встроен по заявке заказчика (бесплатно).

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