======Консольная утилита Forecast NOW!====== FSystemConsole.exe Находится в директории вместе с программой и позволяет *[[консоль#импорт_данных|импортировать данные]] *[[консоль#формирование_заказов_без_участия_пользователя|формировать заказы без участия пользователя]] *[[консоль#проведение_балансировки|формировать балансировки без участия пользователей]] *[[консоль#проведение_анализа-эффективности_без_участи_пользователя|проводить анализ эффективности]] и [[консоль#проведение_abc_анализ|ABC анализ]] без участия пользователя *[[консоль&#расчет_прогноза_-_обеспечение_продаж_без_участия_пользователя|рассчитывать прогноз - обеспечение продаж без участия пользователя]] *[[консоль#расчет_коэффициентов_маркетинговых_акций|рассчитывать коэффициенты акций]] *[[консоль#удаление_информации_из_базы|удалять данные]] *[[консоль#проверка_цифровой_подписи_заказа|проверять цифровую подпись Заказа]] *[[консоль#экспорт_информационной_базы|экспортировать информационную базу]] *[[консоль#расчет_статистик_базы_данных|рассчитывать статистики базы данных]] (для сверки с учетной системой) * [[консоль#расчет_текущих_дефицитов|рассчитывать текущие дефициты товаров]] * [[консоль#формирование_карточки_товара|формировать карточку товара по выбранному шаблону]] * [[консоль#формирование_графика_заказов_и_поставок|формировать график заказов и поставок в Excel]] В консольную утилиту выводятся сведения о начале и завершении операции, а также о времени выполнения. Такой же вывод есть для подопераций. Консольная утилита по завершению предоставляет код возврата, при отсутствии ошибок он равен нулю, в противном случае - код ошибки. Описание ошибок представлено в таблице ниже. =====Пример работы консольной утилиты Forecast NOW!===== Приведен пример последовательного выполнения операций, которые часто выполняются консольной утилитой. Подробный синтаксис каждой операции описан далее rem переходим в папку с утилитой cd C:\Program Files\ForecastNOW rem загружаем параметры в режиме замены, выводим логи загрузки в отдельный файл FSystemConsole.exe import --properties -r D:\FNOW\SUPPLIERS\Suppliers.csv base >> C:\fcn_logs\log-swod-%date%.txt rem загружаем поля для товаров в режиме обновления, выводим логи загрузки в отдельный файл FSystemConsole.exe import --items-fields -a D:\FNOW\SUPPLIERS\Itemfields.csv base >> C:\fcn_logs\log-swod-%date%.txt rem загружаем акции, выводим логи загрузки в отдельный файл FSystemConsole.exe import --marketing-campaigns D:\FNOW\CAMPAIGNS\Campaigns.csv base >> C:\fcn_logs\log-swod-%date%.txt rem загружаем аналоги, выводим логи загрузки в отдельный файл FSystemConsole.exe import --analogs D:\FNOW\ANALOG\Analog.csv base >> C:\fcn_logs\log-swod-%date%.txt rem загружаем историю продаж в режиме замены из директории,формируя временный файл из нескольких файлов истории продаж, выводим логи загрузки в отдельный файл FSystemConsole.exe import -sh -r "C:\Users\user\Desktop\format.format" "D:\FNOW\SALES" base --dir "--temp-file=D:\FNOW\temp.csv" >> C:\fcn_logs\log-swod-%date%.txt rem загружаем классификации в режиме замены, выводим логи загрузки в отдельный файл FSystemConsole.exe import -o -r D:\FNOW\ASSORTMENT\Assortment.csv base >> C:\fcn_logs\log-swod-%date%.txt rem рассчитываем прошедшие акции (ранее не рассчитанные, спрогнозированные или рассчитанные по неполным данным), выводим логи расчета в отдельный файл FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;forecast; --periodstatus past base >>C:\fcn_logs\log-past-%date%.txt rem рассчитываем текущие акции, прошедшие больше чем на 50% (ранее не рассчитанные, спрогнозированные или рассчитанные по неполным данным), выводим логи расчета в отдельный файл FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;forecast; --degree-completion 50 100 --periodstatus going base >> C:\fcn_logs\log-going-%date%.txt rem прогнозируем будущие акции, выводим логи расчета в отдельный файл FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --coef 1 1 --periodstatus future --forecast base >> C:\fcn_logs\log-going-%date%.txt rem для высвобождение ресурсов сервера даем небольшой таймаут timeout 300 > NULL rem проводим балансировку по фильтру "balance1" с использованием настроек пользователя user FSystemConsole.exe balancing base "D:\fnow_balancing\settings1.csv" "D:\FNOW!\OUT\ORDERS\TRANSFER\BALANS" --user "user" --filter "balance1" >> C:\fcn_logs\log-swod-%date%.txt timeout 300 > NULL rem формируем заказы по фильтру 1 с учетом ранее проведенной балансировки, возможные ошибки консоли выводим в отдельный файл FSystemConsole.exe make-orders --user "user" --consider-balancing "1" "base" "D:\FNOW\OUT\ORDERS" >> C:\fcn_logs\log-swod-%date%.txt echo %ERRORLEVEL% >> E:\log\log-swod-%date%.txt =====Логирование выполнения команды===== Процесс выполнения любой консольной команды можно записывать в лог файл. Для этого, в конце команды нужно указать флаг "''log''" и после знака "''=''" путь к файлу лога. Пример с указанием пути к файлу: FSystemConsole.exe import -sh -r "D:\FNOW\format.format" "D:\FNOW\SALES" base --log=C:\fcn_logs\log-swod.txt Если путь к файлу не указан или файл не доступен, то лог консоли будет записан в новый сгенерированный файл в профиле в папке %AppData%\Ingenious Team\ForecastNOW\logs Пример без указания пути к файлу: FSystemConsole.exe import -sh -r "D:\FNOW\format.format" "D:\FNOW\SALES" base --log При формирование балансировки с указанием этого флага, записывается расширенный лог. =====Логирование неудачных запусков утилиты===== Неудачные запуски консоли логируются. После запуска графического интерфейса показываются предупреждения со всеми новыми логами с возникшими ошибками при запуске консольной утилиты для всех пользователей (только один раз при первом запуске). В сообщение о критической ошибке импорта указывается путь к файлу с логом ошибок. \\ Если при старте работы с консольной утилитой возникает ошибка ключа защиты, то происходит 5 переподключений. При этом в консоль выводится сообщение: \\ protection key error. try to reconnect... По умолчанию отображаются только критические ошибки. Чтобы отображать все ошибки, нужно отключить соответствующую [[настройки/глобальные_настройки#проверять_содержимое_файла_и_базы_при_импорте_продаж|глобальную настройку]] {{ settings: consolelog.png?550 }} Если консольная утилита завершилась из-за возникновения ошибки, то создаётся [[crashdumps|дамп памяти]]. \\ Путь к созданному файлу дампа, отображается в командной строке. По умолчанию файл дампа памяти создаётся в папке C:\ProgramData\Ingenious Team\ForecastNOW\CrashDumps в формате dmp. \\ Данный файл можно передать в службу технической поддержки, для анализа и выявления причины завершения работы консольной утилиты. ====Коды ошибок при работе консольной утилиты==== |0| Нормальное завершение работы| |1| Запуск без параметров| |2| Падение программы| |3| Ключ защиты недоступен| |4| Ошибка запроса к базе данных| |5| Указано недостаточно аргументов для операции| |6| Указано слишком много аргументов для операции| |7| База данных не существует| |8| Не указано имя базы данных| |9| Файл не существует| |10| Не удалось открыть файл| |11| Не удалось создать бэкап| |12| Введена неизвестная команда| |13| Указан неизвестный режим импорта| |14| Указан неизвестный тип данных| |15| Некорректная версия базы| |16| Некорректные аргументы| |17| Некорректная строка аргументов| |18| Некорректный формат истории продаж| |19| Пользователь не найден| |20| По указанным параметрам не требуется размещать заказы при автоматическом формировании списка заказов| |21| Критическая ошибка импорта| |22| Сервер базы данных не доступен| |23| Не удалось активировать файл лицензии| |24| Не указан или указан некорректный файл лицензии| |25| Срок лицензии истек| |26| В команде экспорта информационной базе (ключи -ib или --information-base команды export) указан существующий файл для сохранения| |27| При удалении данных(команда remove) не указан ключ -f и нет прав на запись в каталог бэкапа| |28| При импорте сегментов клиентов (ключ --complex-client) в файле указан несуществующий клиент| |29| У товара нет ближайшей доступной даты формирования заказа| |31| Ошибка аутентификации при отправке заказа по электронной почте| |34| В базе данных нет правил автоустановки с указанным типом| |35| Ни одно из введенных названий правил с указанным типом не соответствует тем, что находятся в базе данных| |36| Массовая загрузка данных в таблицу sales недоступна. Загрузка была произведена в обычном режиме.| ====Остановка работы консольной утилиты при возникновение ошибок==== Если во время работы консольной утилиты выявлены ошибки, то можно отменить дальнейшее выполнение команд. Для этого нужно в файл для консольной утилиты вставить дополнительную команду: echo %ERRORLEVEL% IF %ERRORLEVEL% EQU 0 goto okay :erorrs echo some errors exit :okay echo okay Данное поле нужно вставить после команды, при выполнение которой если будут выявлены ошибка утилита прекратит свою работу.\\ Например:\\ Если при загрузке истории продаж возникнут ошибки, то консольная утилита прекратит свою работу и файл классификации не будет загружен. FSystemConsole.exe" import -sh -a "C:\file\format.format" "C:\file\history.csv" demo.db echo %ERRORLEVEL% IF %ERRORLEVEL% EQU 0 goto okay :erorrs echo some errors exit :okay echo okay FSystemConsole.exe" import -o -r "C:\file\classification.csv" demo.db ===== Справка по команде ===== FSystemConsole.exe help ====Указание пути к конфигурационным файлам==== Вы можете указать путь к конфигурационным файлам при работе консольной утилиты - путь к файлу gnclient.ini, команда --gnclient-file - путь к файлу dbserver-config.ini, команда --db-config-file - папки с настройками, если она указана то файлы gnclient.ini и dbserver-config.ini ищутся там (если не указаны конкретные пути через команды описанные выше), команда --config-path По умолчанию, конфигурационные файлы которые использует программа находятся в ''C:\ProgramData\Ingenious Team\ForecastNOW'' \\ Флаг с указанием пути к файлам, можно указать в любой части команды. =====Импорт данных===== ====Общий синтаксис==== FSystemConsole.exe import тип [режим формат | режим] путь_к_загружаемому_файлу база_данных [опции] режим - замена, обновление или частичное обновление \\ формат - формат истории продаж, актуально только для истории продаж \\ база_данных - название базы данных Forecast NOW! \\ ===Тип=== -sh, --sales-history импорт только истории продаж в csv и xml формате(для csv обязательно указание файла формата) -o, -c, --ontology, --classification импорт классификации -p, --properties импорт параметров -a, --analogs импорт аналогов -mс, --marketing-campaigns импорт акций -sp, --suppliers импорт данных поставщиков --all импорт файла формата xml, содержащего историю продаж, параметры, классификацию и даты поступления заказов --storage-aliases импорт файла, содержащего названия складов --customer-purchases импорт файла, содержащего закупки для клиентов --composite импорт файла, содержащего комплекты --items-fields импорт файла, содержащего произвольные поля для таблицы Заказа --arrivals импорт файла, содержащего заказы и даты их поступления --balancing-destinations импорт файла, содержащего направления балансировки --settings-balancing импорт файла, содержащего настройки балансировки --storage-graphs импорт файла, содержащего структуры подчиненности складов --storage-area импорт файла, содержащего зоны хранения --order-schedule импорт файла, содержащего расписания заказов --storage-graphs импорт файла, содержащего иерархии складов --balancing-destinations импорт файла, содержащего направления балансировки -- parameters-rule импорт файла, содержащего правила автоматической установки параметров -- complex-client импорт файла, содержащего сегменты клиентов --parameters-rule импорт файла, содержащего правила автоустановки параметров --prepare-report-settings импорт файла, содержащего фильтры подготовки заказа --recipients-limits импорт файла, содержащего ограничения для внутренних перемещений --clients импорт файла содержащего данные по клиентам ===Форматы загружаемых файлов=== ==История продаж== Формат истории продаж задается [[консоль#формат_для_загрузки_истории_продаж|отдельно]] Другие типы загружаемых файлов должны быть определенного формата ==Классификация== [[формат_данных_для_загрузки#формат_загрузки_классификации|Формат файла классификации]] ==Параметры== [[формат_данных_для_загрузки#формат_файла_для_выгрузкизагрузки_параметров|Формат файла параметров]] Также доступна опция --dir При ее использовании будут загружены все файлы из указанной директории ==Аналоги== [[формат_данных_для_загрузки#формат_файла_для_выгрузкизагрузки_аналогов|Формат файла аналогов]] ==Акции== [[формат_данных_для_загрузки#формат_файла_для_обмена_данными_по_акциям|Формат файла акций]]. Акции можно загружать в двух форматах. ==Загрузка xml файла== [[загрузка_данных_в_forecastnow#загрузка_данных_в_xml_формате|Формат xml файла]] ==Загрузка названий складов== [[справочник_складов#справочник_складов|формат файла названий складов]] ==Загрузка данных поставщиков== [[настройки:список_поставщиков#формат_файла_загрузки|формат файла данных поставщиков]] ==Загрузка закупок для клиентов== [[формат_данных_для_загрузки#формат_файла_для_закупок_клиентов|формат файла закупок для клиентов]] ==Загрузка комплектов== [[комлекты#формат_файла_комплектов|формат файла комплектов]] ==Загрузка произвольных полей товара для таблицы Заказа== [[формат_данных_для_загрузки#Формат файла произвольных полей для таблицы заказа|Формат файла произвольных полей товара для таблицы Заказа]] ==Загрузка расписаний заказов== [[формат_данных_для_загрузки#расписание_заказов|Формат файла расписания заказов]] ==Загрузка дат поступления заказов== Формат: [[формат_данных_для_загрузки#ожидаемые_поступления_с_датами|csv]] или [[загрузка_данных_в_forecastnow#Ожидаемые поступления с датами|xml]] Также доступна опция –dir При ее использовании будут загружены все файлы из указанной директории ==Направления балансировки== [[формат_данных_для_загрузки#Направления балансировки|формат файла направлений балансировки]] ==Настройки балансировки== [[формат_данных_для_загрузки#настройки_балансировки|формат файла настроек балансировки]] ==Структуры подчиненности складов== [[формат_данных_для_загрузки#Структура подчиненности складов|Формат файла направлений балансировки]] ==Зоны хранения== [[формат_данных_для_загрузки#зоны_хранения|Формат файла зон хранения]] ==Правила автоустановки параметров== [[формат_данных_для_загрузки#формат_файла_автоустановки_параметров|Формат файла автоустановки параметров]] ==Фильтры подготовки заказов== [[формат_данных_для_загрузки#фильтры_подготовки_заказов|Формат файла фильтров подготовки заказов]] ==Ограничения на внутренние перемещения== [[формат_данных_для_загрузки#ограничения_на_внутренние_перемещения|Формат файла ограничений на внутренние перемещения]] ==Данные по клиентам== [[формат_данных_для_загрузки#данные_по_клиентам|Формат файла с данными по клиентам]] ===Режим(только для истории продаж, классификации, произвольных полей товаров, поступлений с точными датами и параметров)=== Выбор режима загрузки [[загрузка_данных_в_forecast_now#режимы_загрузки_истории_продаж|истории продаж]], [[загрузка_данных_в_forecast_now#режимы_загрузки_классификации|классификации ]], [[загрузка_данных_в_forecast_now#Загрузка произвольных полей товара для таблицы Заказа|произвольных полей товара для таблицы Заказа]], [[консоль#Загрузка дат поступления заказов|дат поступления заказов]], [[загрузка_данных_в_forecast_now#режимы_загрузки|параметров]] и [[ консоль#ограничения_на_внутренние_перемещения|ограничений для внутренних перемещений]] ==Синтаксис== -r, --remove режим замены и удаления старой информации -a, --append режим добавления и обновления информации ==Синтаксис для комплексного файла== Для комплексного файла можно указывать режим загрузки для каждого типа данных отдельно при помощи флагов: --removesales и --updatesales - замена и обновление продаж соответственно --removeparameters и --updateparameters - параметров --removeontology и --updateontology - классификации Пример: import --all source target --removesales --updateparameters --removeontology - продажи и классификация будут загружены с заменой, а параметры в режиме обновления import --all source target -r - всё загрузится в режиме замены import --all source target -r --updateontology - всё загрузится в режиме замены, а классификация в режиме обновления ===Формат(для загрузки истории продаж)=== Указывается местоположение файла с форматом загрузки ==как получить файл формата== Файл формата можно получить следующим образом: -Запустить программу, -Выбрать режим пользователя -Выбрать файл истории продаж для загрузки -Нажать "Указать Формат истории продаж" {{loading: form9.png}} 5.Заполнить формат *выбрать формат даты, *выбрать разделитель полей *выбрать разделитель целой и дробной части *есть ли заголовок в загружаемом файле *соотнести столбцы файла столбцам, доступным в программе 6. Нажать "Сохранить в файл" - получите искомый файл для загрузки формата расширением .format {{loading: form10.png}} ==Пример файла формата== Склад;Артикул;Клиент;Дата;Кол-во;Цена реализации;Выручка;Цена закупки;Себестоимость;Учетная цена;Прибыль;Остаток;Товар в пути, ед.;Размещенный заказ, ед.;В резерве, ед.;Невыполненный заказ;Упущенный спрос column-separator:; decimal-separator:. date-format:yyyy-MM-dd header-flag:true ===Исходник=== исходный файл с данными для импорта (в зависимости от того, что вы импортируете) ===Цель=== целевая база данных для импорта (для SQlite указывается путь, для MYSQL - название базы) ===Опции=== --no-verification Не будет производиться проверка истории продаж на корректность. Это позволит ускорить импорт, но возможны некорректные данные после импорта. Используйте только в том случае, если полностью уверены в корректности исходных данных. По умолчанию проверка корректности выполняется. --ignore-syntax-errors При использовании опции загрузка будет проведена даже при наличии синтаксических ошибок в файле продаж и классификации. Строки с синтаксическими ошибками будут проигнорированы, остальные - загружены Для классификации игнорируется одна критическая ошибка - неверное кол-во аргументов (например если вместо Товар1;Название;Товар написать Товар1;Название) Для истории продаж игнорируются неверное количество аргументов, неверный формат даты, неверный формат числа --partial Будут обновлены только данные только по тем столбцам, которые присутствуют в файле загрузки. Аналогичен [[загрузка_данных_в_forecast_now?&#режимы_загрузки_истории_продаж|режиму загрузки]] "Обновить частично" Этот флаг используется только для [[консоль#режим_только_для_истории_продаж_и_классификации|режима загрузки "обновить"]] --day-completion-part <0|1> Указывается, загружены ли остатки на конец дня или же это остатки за текущий день, которые необходимо и использовать в расчётах. \\ В обычной логике программы, загружаются и учитываются остатки на конец дня(значение 1 или же без указания флага). \\ Для того, чтобы программа использовала фактические остатки и не считала, что это данные уже на конец дня, нужно загружать информацию указывая значение флага 0. При этом, максимальной датой в базе будет считаться предыдущая дата продажи в файле. \\ В программе не может быть несколько дат с неполной информацией за день. Остатки таким образом будут учитываться при формирование заказа с включенной глобальной настройкой [[настройки/глобальные_настройки#учитывать_даты_поступления_заказа|Учитывать даты поступления заказов]] --dir Будет произведена загрузка всех csv и xml файлов из директории **Исходник** как файлов истории продаж. **Исходник** обязательно должен быть директорией в этом случае. При этом, csv и xml файлы, можно загружать вместе. Для csv обязательно указание файла формата. --temp-file=<путь к временному файлу> Программа автоматически объединит содержимое csv файлов из директории, в указанный временный файл и загрузит историю продаж из этого файла. \\ Чтобы загрузка происходила из указанной директории, обязательно указание флага "dir" \\ Если утилите не удастся создать новый временный файл, то об этом будет сообщено, программа завершится. \\ Если файл с таким именем уже существует, то программа попытается его удалить и создать новый. \\ Если утилите не удастся открыть для чтения какой-либо csv файл с историей продаж, то об этом будет сообщено, программа завершится. После загрузки истории продаж из временного файла он удаляется. --save-properties В режиме замены классификации будут сохранены созданные в программе свойства и их значения. Указывается в конце команды. --no-warnings Отключение логирования некритических ошибок. Флаг должен быть указан сразу после [[консоль#тип|типа]] импортируемого файла --user <пользователь> Используется при загрузке настроек балансировки. Указывается пользователь для которого производится загрузка настроек балансировки. ----disable-update-campaigns Отключение логирования некритических ошибок. Говорит о том, что при загрузке не будет производиться перевод прошедших акций типа объем в коэффициент. Данное действие лучше выполнять один раз в день с помощью консольной команды: update-past-amount-campaigns , которую стоит запланировать после прогрузки ночных файлов истории. Такой подход позволит наиболее эффективно/быстрее (без потери качества результата) производить частые загрузки истории продаж как в течении дня, так и в ночное время. =====Работа с резервными копиями базы данных===== для сохранения FSystemConsole.exe save-dump база файл для загрузки FSystemConsole.exe load-dump база файл =====Сжатие и обновление базы данных===== update <целевая база данных> [-u] Флаг -u позволяет перед обновлением базы проводить проверку актуальности версии базы и, если версии базы актуальна, то обновление не производится. Флаг не обязателен ===Пример=== FSystemConsole.exe update base =====Сжатие базы данных===== Сжатие происходит через массовую загрузку из файла. Файл со сжатой историей продаж создается во временной папке для массовой загрузки (указывается в [[настройки/глобальные_настройки#пути_сохранения|Глобальных настройках]]) \\ Чтобы все прошло корректно сжатие должно быть запущено на компьютере где расположен сервер СУБД. \\ Программа должна быть запущена под пользователем, который имеет права на запись во временную папку для массовой загрузке, а сервер СУБД имеет права на чтение из этой папки. \\ Перед процессом сжатия создается дамп базы, если включена глобальная настройка [[настройки/глобальные_настройки#создавать_резервную_копию_базы_при_обновлении|"Создавать резервную копию базы" ]]\\ Команда для запуска сжатия базы: FSystemConsole.exe compress [database-name] database-name - имя базы данных ===Пример=== FSystemConsole.exe compress base =====Формирование заказов без участия пользователя===== Позволяет формировать заказы без участия пользователя (автопилот) ====Минимально необходимый синтаксис==== make-orders [--user user_name] [--xml] [--xls] [--xlsx] [--csv] filter source target Позволит сформировать заказы по указанному фильтру и сохранить их в нужном формате --user или -u имя пользователя Использование Пользователя из программы и его настроек. Если в автопилоте указан пользователь (через --user), то при сохранении заказов используется набор и порядок колонок из формата "Пользовательский" этого пользователя filter Имя фильтра, [[формирование_заказа#автоматическое_формирование_заказа|созданного]] в программе для выбора товаров, попадающих в автоподготовку В связи с особенностями работы командной строки Windows фильтры должны задаваться цифрами или латиницей Source Имя базы для MySQL\MSSQL или путь к базе для SQLite, в которой нужно формировать заказы Target Место сохранения сформированных автопилотом заказов --xml --xls --xlsx --csv Флаги для дополнительного сохранения заказов в [[консоль#форматы_сохранения_заказов|заданных расширениях]] ==Структура заказа в xml== Для файла, сохраненного в xml используется следующая структура: 31.12.2016 24.01.2017 02.10.2017 Поставщик (Код) Поставщик (Название) Заказчик 1 Склад №1 Артикул123 9991 9991000 - тэг для даты Размещения заказа - тэг для даты От - тэг для даты До - тэг для всего заказа тэг для кода поставщика, которому адресован заказ тэг для названия поставщика, которому адресован заказ - тэг для заказчика - тэг для строки в заказе - тэг для номера строки - тэг для ячейки в строке с кодом склада - тэг для ячейки в строке с кодом товара - тэг для ячейки с Заказать - тэг для строки с Итого. дочерние тэги только для числовых значений. ==Назначение дочерних тэгов в row и total== Пишется в начало каждого xml документа. В тэгах статистик предыдущих продаж используется атрибут date для указания даты статистики. В тэгах свойств и параметров используется атрибут name для указания имени свойства или параметра. " ===Автоформирование по нескольким фильтрам и расписаниям=== Часто возникает потребность формировать заказы по нескольким созданным фильтрам подготовки и расписаниям за один запуск консольной утилиты. Формат такой команды: FSystemConsole.exe make-orders --args-file "путь к файлу" "base" "target" Путь к файлу - путь к файлу с указанными фильтрами и расписаниями. Файл состоит из строк вида "имя_расписания;имя_фильтра", заказы будут подготовлены для всех таких пар расписание-фильтр. Расписание в файле можно оставлять пустым - тогда автопилот отработает по имеющимся в файле фильтрам и расписанию заказов из параметров в программе ====Полный синтаксис формирования заказов==== make-orders [--order-schedule schedule] [(--user | -u) user_name] [--group-by-suppliers | --group-by-storages] [--dates date1 date2] [--union-by-supplier | --union-by-supplier-ordergroup | --union-by-supplier-ordergroup-customer | --merge-orders] [--group-order-by-product | --group-order-roundbystorage storage] [--save-union-only] [--remove-null-tobuy-records] [--remove-empty-order]] [ --consider-balancing] [-md5][--xml] [--xls] [--xlsx] [--csv] [--sync] [--no-order-file] [--email] [--pattern-name] filter source target --order-schedule название расписания Расписание заказов, согласно которому проводится формирование заказов. Если не задано - для каждого товара берется из параметров --user или -u имя пользователя Использование Пользователя из программы и его настроек. Если в автопилоте указан пользователь (через --user), то при сохранении заказов используется набор и порядок колонок из формата "Пользовательский" этого пользователя. group-by- Позволяет [[формирование_заказа#группировка_автозаказов|группировать товары]] при подготовке и расчете заказов --group-by-suppliers - товары группируются по поставщикам (по умолчанию) --group-by-storages - товары группируются по складам с учетом иерархии --dates date1 date2 Выбор дат размещения заказов, которые попадут в работу утилиты. Даты можно задавать в формате дд.мм.гггг или гггг-мм-дд --union-by-supplier | --union-by-supplier-ordergroup | --union-by-supplier-ordergroup-customer Объединение сформированных заказов по [[формирование_заказа#объединение_заказов_по_поставщикам| поставщикам]], [[формирование_заказа#объединение_заказов_по_поставщикам_и_группе_заказа|поставщику и группе заказа]] или по [[формирование_заказа#объединение_заказов_по_поставщикам_группе_заказа_и_складу|поставщику, группе заказа и складу]]. Выбрать можно только одно объединение \\ В название файла объединённого заказа указывается идентификатор заказа. --merge-orders Объединит заказы, объединенные по одному из принципов, указанных в утилите --group-order-by-product [[формирование_заказа#создание_общего_заказа_на_склады|Создаст общий заказ]] на склады *по одному общему заказу (если использовался ключ --merge-orders) * по всем заказам, полученным в результате работы одного из ключей --union-by (если не используется ключ --merge-orders) При этом будут [[формирование_заказа#изменение_связанных_заказов|изменены]] объединения заказов, и объединённые заказы(по поставщику, группе заказа, складу), из которых этот заказ получен в соответствии с кратностью указанного склада --group-order-roundbystorage storage storage - код склада [[формирование_заказа#создание_общего_заказа_на_склады_с_учетом_кратности|Создаст общий заказа на склады с учетом кратности]] указанного склада по объединенным при помощи ключа %%--%%merge-orders заказы --save-union-only Сохранение только объединенных заказов --consider-balancing При формировании заказов учтутся изменения остатков после проведения последней консольной балансировки --remove-null-tobuy-records Удаление из заказов, строк с нулевым значением Заказать. В реестре сохраняются полные заказы. --remove-empty-order Удаление пустых заказов --xml --xls --xlsx --csv Флаги для дополнительного сохранения заказов в [[консоль#форматы_сохранения_заказов|заданных расширениях]] --md5 Сохранение заказов с цифровой подписью --sync Флаг для [[формирование_заказа#план_заказов|автоматического согласования]] прогнозируемых остатков и заказать во всех подготовленных и сформированных заказах. --no-order-file Не будут сохраняться файлы заказов, используемые для последующей загрузки в программу при ее открытии (.order). Флаг можно использовать, если вы не хотите просматривать заказы, сформированные консольной утилитой, в интерфейсе программы --email Флаг для автоматической [[формирование_заказа#отправка_заказа_поставщику_по_электронной_почте|отправки сохранённых заказов на email]], указанный в карточке поставщика. Заказы отправляются только при указание флага с форматом, в указанном формате. Пустые заказы и нулевые заказы (где у всех позиций заказать =0) отправлены не будут --pattern-name Использование имени заказа из [[настройки/глобальные_настройки#пути_сохранения|глобальных настроек]] filter Имя фильтра, [[формирование_заказа#автоматическое_формирование_заказа|созданного]] в программе для выбора товаров, попадающих в автоподготовку Source Имя базы для MySQL\MSSQL или путь к базе для SQLite, в которой нужно формировать заказы Target Место сохранения сформированных автопилотом заказов При сохранении в имени заказа все экранируемые символы заменяются на пробелы. Текущий список экранируемых символов: *"\\" *"/" *":" *"*" *"?" *"\" *"|" *"<" *">" *"." ====Пример. Кросс-докинг в консольной утилите==== Ваша задача - рассчитать изначальные потребности филиалов и сформировать из них общий заказ поставщику, который при этом сразу по приходу на распределительный центр поедет на филиалы make-orders --user user_name --union-by-supplier --merge-orders --group-order-roundbystorage storageRC [--xml] [--xlsx] filter source target -сформированные заказы будут сгруппированы по поставщику (--union-by-supplier) -заказы, сгруппированные по поставщику, будут объединены --merge-orders -из этих объединенных заказов будут создан сводный заказ на распределительный центр с учетом его кратности (--group-order-roundbystorage storageRC) ===Отображение заказов после работы консольной утилиты=== Сформированные при помощи консольной утилиты заказы при открытии программы автоматически загрузятся по следующей логике. К каждому [[формирование_заказа#автоматическое_формирование_заказа|фильтру]] подготовки заказов можно приписать набор пользователей, которые "заинтересованы" в заказах из этого фильтра. По умолчанию в фильтре стоит значение "Все пользователи". Пусть существует фильтр Ф и к нему приписан набор пользователей П. После отработки автопилота по фильтру Ф на диск будет сохранён набор заказов З, в базу для каждого пользователя будет занесено, что ему надо автоматически загрузить в программу при открытии заказы З. Заказы будут грузится до тех пор, пока пользователь: 1) не сохранит заказы в файл, и тогда они перестанут автоматически грузится только у него. 2) не удалит заказы с диска. тогда заказы перестанут грузится у всего набора пользователей П. об этом будет сообщено в явном виде в программе. Если при формирование заказов, должны быть учтены ограничения поставщиков, но по каким то причинам, ограничения не были соблюдены, то при запуске программы будет выведено соответствующее сообщение, со списком заказов. Товарам к которым не применилось ограничение, будет записан соответствующий комментарий. ====Вывод всех доступных фильтров подготовки заказов==== Отобразить все доступные фильтры подготовки заказов можно при помощи команды filters ===Синтаксис=== filters source source - имя базы ====Вывод времени выполнения последнего успешно рассчитанного консолью заказа==== Если вам необходимо получить отдельно информацию о времени формирования последнего успешно сформированного заказа, то можно воспользоваться данной командой: FSystemConsole.exe check-completion make-orders check-completion make-orders - по команде производится поиск последнего успешного формирования заказов через консоль, запущенного с указанными в команде аргументами . В противном случае выдает сообщение, что такого заказа нет - аргументы запуска консольного заказа, по которому нужно получить информацию, аргументы точно как был запущен заказ. Если последний заказ был успешно сформирован командой через консоль с указанными аргументами, то будет выведено сообщение с временем начала и окончания выполнения команды: \\ ''Last successful execution: Started: время дата Ended: время дата'' Если же подобная команда не выполнялась или завершилась некорректно, то так же будет выведено соответствующее сообщение: \\ ''No sucessful executions.'' **Пример команды:** \\ Заказ формируется с помощью команды: FSystemConsole.exe make-orders --user "user" --consider-balancing "1" "base" "D:\FNOW\OUT\ORDERS" Чтобы отдельно получить информацию о времени и факте формирования заказа, нужно выполнить команду: FSystemConsole.exe check-completion make-orders --user "user" --consider-balancing "1" "base" "D:\FNOW\OUT\ORDERS" ====Оповещение о превышение бюджетов==== В случае, если по итогам работы консольной утилиты превышаются бюджеты на закупку, пользователям в центре уведомлений отображается файл вида Название правила ; Период действия ; Бюджет ; Порог бюджета ; Превышение бюджета ; Пример: Бюджет_филиала_32 ; 11.04.2023-30.04.2023 ; 500000 руб. ; 95% ; 140000 руб. =====Проведение балансировки===== ====Минимальный синтаксис команды=== FSystemConsole balancing database [source] target [--user] --filter [--xml] [--csv] [--xlsx] database название базы source файл с настройками балансировки Во время выполнения команды, файл настроек проходит проверку на наличие ошибок. Если в файле есть ошибки, то балансировка не сформируется и будет выведено соответствующее сообщение, с указанием пути где хранится лог файл. Если указан флаг который игнорирует ошибки файла настроек, то балансировка сформируется и ошибочные настройки будут заменены на настройки по умолчанию. user - пользователь, чьи настройки будут использованы при балансировке. Так же, если в команде указан пользователь, то балансировка дополнительно сохраниться в том формате, который использовался пользователем последний раз. Обязательно указание или файла настроек или пользователя target место сохранения файла с проведенной балансировкой можно указать полный путь к файлу. При этом если указать расширение xml - результат проведенной балансировки будет сохранен в [[балансировка_запасов#структура_xml_файла|xml формате]] --filter Указание фильтра, по которому будет проходить балансировка. Если указан несуществующий фильтр, то консоль выдаст сообщение **non-existent auto-preparation filters** Фильтр можно указать только один. Если в команде указан фильтр и файл настроек, то балансироваться будут товары указанные в фильтре ===Формат файла с настройками балансировки=== Рекомендуется указывать файл настроек балансировки, сохраненного из программы в соответствующем [[формат_данных_для_загрузки#настройки_балансировки|формате]] в комбинации с использованием фильтра для отбора товаров, участвующих в балансировке. Также поддерживается, формат, позволяющий задавать товары, участвующие в балансировке и прочие параметры ее проведения: В файле с настройками балансировки задаются: 1. Список товаров, участвующих в балансировке: <товар|группа|срез>;<наименование><;значение (для среза)> Пример: товар;2016 группа;старые товары срез;Поставщик;supplier1 2. Порядок складов: склады;<склад1;склад2;...> Пример: склады;Ф4-2;Ф4-3 3. Таблица настроек 3.1. Сроки и стоимость доставки доставка;от(<склад1>);до(<склад2>);срок(<срок доставки>);стоимость<(стоимость доставки>);кг(<стоимость доставки за кг>);%(<стоимость доставки в % от стоимости груза>) Пример: доставка;от(РЦ1);до(РЦ2);срок(1);стоимость(2000);кг(3);%(4) Если не задано, сроки и стоимость доставки будут нулевыми и будет выдано предупреждение «warning! storages relationships table is empty» 3.2. Прочие настройки: Отображать все нулевые перемещения;<значение> //какие нулевые перемещения отображать доход на высвобожденные средства;<значение> //доход на высвобожденные средства, % в месяц не перемещать товар;<значение> //если последнее поступление было раньше чем ... особенности поставки;<не учитывать|основные|балансировка> иерархия складов;<основная|балансировка> расписание заказов;<не учитывать|основное|балансировка> алгоритм балансировки;<по рентабельности|пропорциональное распределение остатка с рц> направление балансировки;<значение направления из настроек "Направления балансировки"> метод разворота аналогов;<сначала старые запасы, потом новые|сначала дешевые, потом дорогие|по приоритету|обратно приоритету> группа заказа;<не учитывать|основная|балансировка> 3.3. Дополнительные настройки (если строчка присутствует в файле настроек, то эта настройка будет учтена при проведении балансировки) учитывать даты поступления заказов учитывать аналоги не учитывать разницу цен норма складского запаса равна сроку поставки + периодичность добавлять к остатку склада-донора остаток заказано добавлять к остатку склада-донора остаток в пути добавлять к остатку склада-реципиента остаток заказано добавлять к остатку склада-реципиента остаток в пути исключать перемещения с нулевым свободным остатком на доноре 4. Имена полей, которые должны быть в сформированных балансировках, берутся либо из настроек балансировки пользователя(задается через вид -> поля товаров), либо задаются в файле настроек балансировки в формате: Поля товаров:ИмяПоля1;ИмяПоля2;ИмяПоля3 Пример файла настроек для проведения балансировки группа;старые товары склады;Ф1;Ф4;Ф3 доставка;от(РЦ1);до(РЦ2);срок(1);стоимость(2000);кг(3);%(4) доставка;от(РЦ1);до(Ф2);срок(455);стоимость(21);кг(1);%(20) Отображать все нулевые перемещения;Есть свободный остаток на складе доноре;Не по расписанию;Есть дефицит;Остальное доход на высвобожденные средства;10 не перемещать товар;14 особенности поставки;основная иерархия складов;балансировка расписание заказов;балансировка учитывать аналоги метод разворота аналогов;сначала старые запасы, потом новые не учитывать разницу цен норма складского запаса равна сроку поставки + периодичность добавлять к остатку склада-донора остаток заказано добавлять к остатку склада-донора остаток в пути алгоритм балансировки;пропорциональное распределение остатка с рц направление балансировки;Распределение остатков рц группа заказа;балансировка для того, чтобы после проведения балансировки сохранились перемещения по определенным направлениям, в файле настроек (полученном из программы или заданным по вышеописанному формату нужно добавить итоговые направления;из(s1,s2,...,sn);в(s1,s2,...,sn) s1...sn - коды складов Направления из файла настроек считаются приоритетнее направлений пользователя, заданным по ключу -user ====Минимальный синтаксис команды для нескольких балансировок=== Если вам надо провести несколько балансировок (например, по разным направлениям), то нужно последовательно запускать балансировки с разными файлами настроек или разными пользователями: FSystemConsole balancing database target --user user1 --filter balance [--xml] FSystemConsole balancing database target --user user2 --filter balance2 [--xml] ====Полный синтаксис команды==== FSystemConsole balancing database [source] target [--user] [--filter] [--xml] [--csv] [--xlsx][--consider-balancing] [--no-split-by-destinations] [--no-verification] [--balancing-by-clients] [--no-split-by-order-group] [--exclude-null-balancing] *database – название базы *source – путь к файлу с настройками балансировки. Во время выполнения команды, файл настроек проходит проверку на наличие ошибок. Если в файле есть ошибки, то балансировка не сформируется и будет выведено соответствующее сообщение, с указанием пути где хранится лог файл. Если указан флаг который игнорирует ошибки файла настроек, то балансировка сформируется и ошибочные настройки будут заменены на настройки по умолчанию. *target – место сохранения файла с проведенной балансировкой можно указать полный путь к файлу. При этом если указать расширение xml - результат проведенной балансировки будет сохранен в [[балансировка_запасов#структура_xml_файла|xml формате]] *--user Имя пользователя - указывается имя пользователя, настройки балансировки и отображения которого будут использованы для сохранения балансировки (показанные параметры/свойства/анализы, единицы измерения и направления балансировки). Если указывается пользователь то файл настроек указывать не обязательно. Если в команде указан и файл настроек и пользователь, то настройки балансировки будут использоваться от указанного пользователя, а файл настроек будет проигнорирован. При входе в программу, после формирования балансировок, будет выведено сообщение, что файл настроек использоваться не будет. Так же, если в команде указан пользователь, то балансировка дополнительно сохраниться в том формате, который использовался пользователем последний раз. *--filter - указание фильтра, по которому будет проходить балансировка. Фильтр можно указать только один. \\ Если в команде указан фильтр и файл настроек, то балансироваться будут товары указанные в фильтре. \\ При этом фильтр не учтет итоги анализов и фильтрацию по параметрам * --consider-balancing При формировании заказов учтутся изменения остатков после проведения последней консольной балансировки Если после этой балансировки провести следующую, то будут применяться изменения двух предыдущих *[--xml] [--csv] [--xlsx] При указании этих флагов (одного или нескольких) балансировка также будет сохраняться в указанном формате. По умолчанию балансировка сохраняется в excel csv, для флага %%"--csv"%% просто в csv (в имя файла дописывается %%--csv%% так как расширение файлов у них одинаковое). Если файл цели указан с расширением xml, то флаг %%"--xml"%% можно не указывать. В excel csv формате балансировка сохраняется всегда. *--no-split-by-destinations При формирование балансировок с указанием фильтра подготовки, сформированные балансировки не будут разбиваться по направлениям. Если указан этот флаг, то в качестве результата необходимо указывать не папку, а имя файла. Если балансировка была проведена через фильтр автоподготовки с флагом %%--no-split-destinations%% (не разбивать по направлениям), то в программе будет отображаться единственная балансировка с названием соответствующем шаблону: \\ <Наименование фильтра> <Текущая дата в момент проведения балансировки> *--no-verification При формирование балансировки с указанием файла настроек, если настройка указана с ошибкой, то будет использовать настройка по умолчанию. Во время работы консольной утилиты, выводится сообщение о количестве сформированных балансировок. \\ ''X balancing reports where created'' - где X число сформированных балансировок \\ ''none balancing reports where created'' - если количество сформированных балансировок равно нулю. *--balancing-by-clients [[балансировка_запасов#балансировка_по_клиентам|Балансировка будет формироваться по клиентам]]. То есть, в качестве реципиента выступают клиенты. Если данный флаг не указан, то балансировка формируется исходя из настроек балансировки, пользователя указанного в команде. *--no-split-by-order-group При заданных группах заказа, сформированные балансировки будут разбиваться в соответствие с заданными значениям групп заказа. Если в консольной команде указан данный флаг, то разбиение по группам заказа не происходит, не зависимо от настроек. *--exclude-null-balancing Удаляются все балансировки без товаров или у которых суммарное количество для перемещения равно 0. ====Отображение балансировки в интерфейсе программы=== При выполнении консольной балансировки её результат сохраняется в базу. При первом открытии вкладки балансировка в программе будет задан вопрос "Загрузить результат консольной балансировки?". Если ответить "Да", то загрузится результат последней консольной балансировки. При формирование балансировок по фильтру, названия сформированных балансировок будут иметь вид: \\ <Наименование фильтра> <Идентификатор склада донора> <Идентификатор склада реципиента> <Текущая дата> <Дата поставки ИЗ-В> \\ Если балансировка формируется без указания фильтра, то название будет соответствовать имени файла, указанного в команде для консольной утилиты. Результаты проведённых балансировок удаляются при сохранении загруженной балансировки в файл или удаление. =====Расчет коэффициентов маркетинговых акций===== При помощи консольной утилиты можно автоматически рассчитать коэффициенты акций, отфильтрованных по заданным параметрам. Вид команды: FSystemConsole calc-coeff-mcampaigns --coef min_coef max_coef --period min_date max_date --ctype type --periodstatus periodstatus --status status --category categories target **Обязательным является указание target - имя (для MySQL) или путь к базе (для SQLite), на которой нужно запустить расчёт коэффициентов.** Другие аргументы являются опциональными и задают фильтры для автоматического расчета коэффициента ===Аргументы утилиты для фильтрации=== ==Фильтрация по коэффициенту== Задается при помощи --coef Далее нужно задать минимальный и максимальные коэффициенты для фильтрации: min_coef - минимальный коэффициент для фильтрации акций по коэффициенту(включительно сам min_coef). Тип - десятичное число с разделителем точкой, например: 1, 2.0, 34.99 max_coef - максимальный коэффициент для фильтрации акций по коэффициенту(включительно сам max_coef). тип - десятичное число с разделителем точкой, например: 1, 2.0, 34.99 По умолчанию фильтруются акции с любыми коэффициентами ==Фильтрация по дате== Задается при помощи --period Далее нужно задать минимальные и максимальные даты для фильтрации: min_date - минимальная дата для фильтрации акций по периоду. Тип - дата в формате dd.MM.yyyy. например: 01.01.2001, 31.05.2016 max_date - максимальная дата для фильтрации акций по периоду. Тип - дата в формате dd.MM.yyyy. например: 01.01.2001, 31.05.2016 фильтруемые акции входят целиком включительно в период между min_date и max_date. По умолчанию фильтруются акции с любыми периодами ==Фильтрация по типу== Задается при помощи --ctype Далее указывается тип акций для фильтрации Виды значений: *coef - Коэффициент *amount - Объем По умолчанию фильтруется тип Коэффициент ==Фильтрация по статусу== Задается при помощи --status Далее указываются статусы для фильтрации. Для указания нескольких статусов их нужно перечислить через ; Виды [[акции_новые1#фильтрация_по_коэффициенту_увеличения_спроса|значений]]: *notset - не установлен *notcalc - невозможно рассчитать (в прошлом периоде по акции нельзя было провести расчет) *manual - установлен вручную *forecast - спрогнозированный для акций в будущем *calc - рассчитанный для акций в прошлом периоде *calc_by_incomplete_data - рассчитан по не полностью прошедшей акции *auto - автоматически сгенерированный в прошлых версиях программы *no_campaign_sales - Нет продаж во время акции *no_sales_before_campaign - Нет продаж до акции *zero_campaing_forecasted_demand - нулевой прогноз спроса *exceeded_period_treshold - период акции больше, чем указан в [[настройки/глобальные_настройки#Ограничение для расчета акций по их длительности|глобальной настройке]] Если используются [[настройки/глобальные_настройки#коэффициенты_акций_по_товарам|потоварные коэффициенты акций]], то расчёт и прогнозирование коэффициентов, будет производиться только по товарам удовлетворяющим условиям фильтра. ==Фильтрация по времени проведения акций== Акции можно отфильтровать по времени их проведения - прошедшие, текущие, будущие Задается при помощи --periodstatus Далее указываются выбранные акции для фильтрации текущие, прошедшие, будущие. Для указания нескольких статусов их нужно перечислить через ; Виды значений: *past - прошедшие акции *going - текущие акции *future - будущие акции ==Фильтрация по складу, клиенту, артикулу== Задается при помощи --storage storage_name --client client_name --product product_name Акция попадает в выборку, только если в неё входят клиент и склад и артикул одновременно. ==Фильтрация по проценту завершенности== Задается при помощи --degree-completion min_degree max_degree min_degree max_degree - значения % завершенности акций, по которым будут отфильтрованы акции для расчета. Задается числом с точностью до 2 знаков после запятой (разделитель - точка или запятая) ==Фильтрация по категориям== Задается при помощи --сategory cat1;cat2 Категории перечисляются через ; Если допущена ошибка в названии категории, то не будет рассчитана ни одна акция Также возможно задание категорий, по которым не будет проводиться расчет акций. Задается при помощи --ignoredcategory cat1;cat2;cat3 Например: calc-coeff-mcampaigns --ignoredcategory test1;test2 demo Будут рассчитаны все акции кроме категорий test1 и test2 ==Принудительное прогнозирование коэффициентов акций== При расчете коэффициентов акций можно принудительно прогнозировать коэффициент всех попавших под фильтр команды акций(даже для прошедших акций). Это делается при помощи ключа --forecast ==Пример команды== FSystemConsole calc-coeff-mcampaigns --period 01.01.2016 06.06.2016 --ctype coef --period status past --status notset;notcalc demo --storage Склад1 Для акций базы demo будет рассчитан коэффициент по полностью завершенным акциям типа коэффициент в период с 01.01.2016 до 06.06.2016 с неустановленными и нерассчитанными коэффицентами, проходившими на Складе 1 FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;notcalc;forecast --periodstatus past test >>C:\fcn_logs\log-past-%date%.txt FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;notcalc;forecast --degree-completion 30 100 --periodstatus going test >> C:\fcn_logs\log-going-%date%.txt FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --coef 1 1 --degree-completion 0 30 --forecast --periodstatus going test >> C:\fcn_logs\log-going-%date%.txt FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --coef 1 1 --periodstatus future --forecast test >> C:\fcn_logs\log-going-%date%.txt Для акций базы test рассчитываем: \\ 1. коэффициент для завершенных акций, по которым еще не был выполнен расчет \\ 2. коэффициент для акций завершенных более, чем на 30 процентов \\ 3. прогнозируем акции, которые завершены на 30 процентов или меньше \\ 4. прогнозируем все будущие акции \\ Процесс расчёта акций записываем в лог, в папку C:\fcn_logs ==Прогресс - бар== В командной строке будет отражен прогресс-бар степени завершенности расчета акций и число рассчитанных и расчитываемых акций =====Проведение анализа-эффективности без участия пользователя===== ====Синтаксис==== FSystemConsole.exe kpianalysis database source target database путь или имя базы для расчетов source [[анализ1#создать_файл_с_параметрами_анализа_csv_или_txt|Файл]] с параметрами расчетов. target Файл, куда сохранятся результаты анализа Для сохранения результатов в формате xlsx нужно дописать флаг --xlsx после директории сохранения файла с результатами =====Расчет прогноза - обеспечение продаж без участия пользователя===== ====Синтаксис==== FSystemConsole.exe stockanalysis database source target --filter filter [--user user_name] [--utf8] [--type] [--units] [--price]] [[--remove-null]] database - Путь или имя базы для расчетов source - [[обеспечение_продаж&#создать_файл_с_параметрами_анализа_csv_или_txt|Файл]] с параметрами расчетов. target - Полный путь к Excel csv(.csv) или Excel(.xlsx) файлу, в который будут записаны результаты прогноза. filter - имя фильтра подготовки заказа, отбирающего товары для расчета. Если он указан, то отбор товаров из файла source не будет учитываться username - имя пользователя, от которого будут взяты настройки и вид итоговой таблицы utf8 - сохранение файла в формате utf8 type - выбор типа анализа *demand - оценка спроса *stocks - оценка запасов *sales - оценка продаж units - выбор показателей анализа *amount - в натуральных единицах *money - в денежных единицах prices - выбор цен *sell (цены реализации) *purchase (цены закупки) --remove-null - удаление строк с нулевым прогнозом =====Расчёт прогноза - плана заказов===== \\ **Синтаксис** FSystemConsole.exe stockplan database --filter filter [--user userName] --target target --dates date1 date2 [--xlsx] [--csv] [настройки плана заказов] ''database'' - путь или имя базы для расчетов ''filter''- имя фильтра, созданного в программе для выбора товаров, попадающих в план заказов ''user'' - имя пользователя. Если указан пользователь, то используются настройки плана заказов, указанные у этого пользователя в программе (Тип анализа, Временная корзина, Единицы измерения) ''target'' - файл, куда сохранится рассчитанный план заказов ''dates'' - период расчёта плана заказов. dates1 - дата От, dates2 - дата До ''xlsx csv'' - указывается в каком формате сохранится план заказов xlsx или utf8 csv. если флаг не указан, то сохранится в xlsx. **Настройки плана заказов** * Тип анализа --type (income | ordered | rests | payment) ''income'' - Приходы \\ ''ordered'' - Заказано \\ ''rests'' - Остатки \\ ''payment'' - План оплат \\ * Временная корзина --timeBucket (week | month | quarter) ''week'' - По неделям \\ ''month'' - По месяцам \\ ''quarter'' - По кварталам \\ * Единицы измерения --units (sell | purchase | amount | weight | volume | reports | sku) ''sell'' - в Реализационных ценах \\ ''purchase'' - в Закупочных ценах \\ ''amount'' - Нат. ед. \\ ''weight'' - Вес \\ ''volume'' - Объём \\ ''reports'' - Число заказов \\ ''sku'' - SKU \\ План оплат формируется только в закупочных ценах и не может быть поквартальным. **Пример команды** FSystemConsole.exe stockplan demo.db --filter filter№1 --user FCN --target "D:\FNOW\OUT" --dates 01.01.2020 01.04.2020 =====Проведение ABC анализа===== Вы можете проводить ABC- XYZ и кросс ABC-анализ автоматически при помощи консольной утилиты. Результаты анализа запишутся в базу, а также в Excel файл с разбиением товаров по группам. ====Синтаксис команды==== FSystemConsole.exe abcxyzanalysis database source target [--filter filter] [--user username] [--save name] [--public] database – название базы source – путь к файлу с настройками анализа target – место сохранения файла с результатами анализа --filter filter имя фильтра автоподготовки заказа, отбирающего товары для проведения анализа. Если в файле настроек указаны товары и задан фильтр автоподготовки, то товары будут браться из фильтра. --user username флаг с указанием пользователя для которого будет сохранён анализ, если пользователь не указан, анализ в базе сохранён не будет, а только в файл --save name флаг для сохранения итогов анализа в базу программы, где name - это имя, под которым анализ появится в базе --public флаг что бы сделать доступным итоги анализа всем пользователям --lastyear флаг для проведения анализа за последний год от максимальной даты в базе ===Формат файла для проведения анализа=== 1.Основные параметры проведения анализа дата от;дата до склад;тип;название дополнительные столбцы;список через ';' свойств и параметров для вывода склад - код склада или пусто (тогда расчет будет произведен по всем складам) тип - товар, группа или срез название - код товара, название группы или среза 2. Настройки анализа Нужно задать тип анализа и границы отнесения к группам. Формат: Ось;название оси (X,Y,Z (не обязательно));тип анализа (ABC/XYZ/XYZ (без нулей)/FMR);Параметр;граница отнесения к группе С/группе X/группе R; граница отнесения к группе B/группе Y/группе M; Пример: ось;X;ABC;Кол-во дней продаж;5;20 ось;Y; ABC;Прибыль / Ед.; 5;20 Перечень параметров проведения анализа: Продажи, ед., Выручка,Себестоимость,Прибыль, Кол-во дней продаж(или Факт продаж) ,Прибыль / Ед.,Объем запасов, н.е, Объем запасов, д.е, Рентабельность (Прибыль/Выручка), Рентабельность (Прибыль/Себестоимость) 3. Дополнительные настройки свойства;список через ';' свойств для вывода параметры;список через ';' параметров для вывода выбор фактического или прогнозного анализа анализ;факт или анализ;прогноз если нужно очищать историю продаж от акций: очищать историю продаж от акций если не нужно анализировать новые товары: не анализировать новые товары если нужно [[анализ/abc-xyz#учёт_дефицитных_дней_при_проведение_авс_анализа|учитывать дефицит]] при формирование ABC анализа: учитывать дефицит если нужно [[анализ/abc-xyz#настройки_abc_анализа|учитывать комплекты]]: учитывать комлекты если нужно провести анализ [[анализ/abc-xyz#abc-xyz_анализ_внутри_каждой_группы_отдел|внутри каждой группы отдельно]] изолированно ===Примеры файлов для проведения анализа=== 15.04.2017;20.04.2017 Склад;срез;Поставщик;Алефонсина учитывать дефицит не анализировать новые товары ось;X;ABC;Продажи, ед.;5;35 ось;Y;XYZ;Факт продаж;55;75 параметры;Поставщик свойства;Поставщик анализ;прогноз 15.04.2017;20.04.2017 Склад1;группа;старые товары ось;X;ABC;Продажи, ед.;5;15 ось;Y;XYZ;Продажи, ед.;20;55 ось;Z;FMR;Кол-во дней продаж;25;50 дополнительные столбцы;Вес;Объём ===Автоматическое изменение дат в файле с настройками анализа=== С помощью командной строки windows можно настроить автоматическую генерацию дат для анализа. Если нужно каждый раз проводить АВС-XYZ анализ за прошедший год, то можно воспользоваться командой: del E:\Forecast NOW!\settings_abc.csv SET /A T=%DATE:~-4% SET /A T=%T%-1 echo %DATE:~0,2%.%DATE:~3,2%.%T%;%date%>> E:\Forecast NOW!\settings_abc.csv echo Склад №1;группа;Все товары>> E:\Forecast NOW!\settings_abc.csv echo параметры;Поставщик>> E:\Forecast NOW!\settings_abc.csv echo свойства;Поставщик>> E:\Forecast NOW!\settings_abc.csv echo Ось;x;ABC;Продажи, ед.;5;15>> E:\Forecast NOW!\settings_abc.csv echo Ось;y;XYZ;Кол-во дней продаж;55;75>> E:\Forecast NOW!\settings_abc.csv echo не анализировать новые товары>> E:\Forecast NOW!\settings_abc.csv echo очищать историю продаж от акций>> E:\Forecast NOW!\settings_abc.csv ''E:\Forecast NOW!\settings_abc.csv'' - указывается путь и название сформированного файла настроек. Этот же путь нужно указать в команде для проведения АВС-XYZ анализа \\ ''echo'' - указывается строка с настройками для анализа. В той последовательности, в которой они должны идти в файле настроек. Будет сформирован файл, с указанными настройками для анализа. =====Проведение анализа-ассортимента===== Вы можете проводить анализ-ассортимент при помощи консольной утилиты ===Синтаксис==== assortiment database source target [--user username] [--public] target - полный путь к xls или xlsx файлу, в который будут записаны итоги анализа. флаг - -public - сделать доступным итоги анализа всем пользователям флаг - -user username - под каким пользователем проводится анализ source - файл с настройками для проведение анализа ==Формат файла для проведения анализа== Формат файла source состоит из простого перечисления товаров/групп/срезов для анализа склад;тип;название * склад - код склада * тип - товар, группа или срез * название - артикул товара, название группы или среза \\ Если анализ формируется по срезу, после названия среза, через ";", нужно указать конкретное значение среза. Анализ сформируется по товарам у которых значение среза соответствует указанному. Результаты анализа также записываются в базу программы. =====Расчет статистик базы данных===== Вы можете при помощи консольной утилиты рассчитывать статистики базы данных. ====Синтаксис команды==== FSystemConsole.exe statistics database source target [--dates [dateFrom dateTo] ] [--csv --xlsx] database - путь (имя для mysql) к базе source - файл настроек (может не существовать, если задан ключ --dates) target - файл для сохранения результата - если указаны форматы сохранения при помощи флагов, то расширение файла можно не прописывать, если не указаны - то расширение xlsx --dates dateFrom dateTo - даты от и до для расчёта. Если не указан ключ --dates и даты, то даты берутся из файла настроек. Если указан ключ, но не даты, то берутся минимальная и максимальная даты из базы. Если указан ключ и даты, то берутся даты из аргументов --csv --xlsx - флаги для выбора формата сохранения файла. Без указания флага файл статистик сохранится в формате xlsx ===Формат файла настроек=== дата_от;дата_до группировка;товар или склад или клиент или их комбинация через ';' статистики;статистика1;...;статистика2 Если статистики не указаны, то считаются все статистики. имена статистик следует писать точно так же как в диалоге выбора статистик: Количество дней продаж Остатки Цена последних продаж Закупочная цена Цена реализации последних продаж Цена реализации Сумма прибыли Сумма выручки Сумма продаж Сумма остатков Количество уникальных складов, клиентов, продуктов Акции типа коэффициент Акции типа объём Действующие акции Завершившиеся акции =====Расчет текущих дефицитов===== В Forecast NOW! можно определить, есть ли текущий дефицит по товару и % дефицита по группе товара. FSystemConsole.exe calc-current-deficit base path --csv --filter test --email mail@mailru base - имя базы path - путь сохранения файла -- filter - имя фильтра для отбора товаров для расчета дефицита -- email - почты, на которые нужно разослать анализ (перечисляются через , --csv и --xlsx - форматы сохранения файла (по умолчанию сохраняются в xlsx) ====Итог анализа==== В итоге будет сохранен файл, где рассчитан % дефицита для группы товаров и есть ли дефицит по конкретным товарам {{ :currentdeficite.png?600 |}} =====Удаление информации из базы===== ====Синтаксис==== FSystemConsole.exe remove data_type [products_file] target [опции] Data type - тип данных для удаления. Доступны analogs очистка аналогов products удаление товаров из базы customer-purchases удаление закупок для клиентов composite очистка данных о комплектах items-fields очистка полей для товаров arrivals очистка дат поступления заказов orders очистка реестра заказов order-schedule очистка расписаний заказов storage-graphs иерархия складов balancing-destinations направления балансировки clients справочник клиентов outdated-parameters-storages неактуальные склады из параметров (из параметров удалятся все склады, которых нет как в истории продаж, так и в справочнике складов) При удалении товаров из базы необходимо после products указать путь к файлу с артикулами для удаления target - путь к базе (SQLite) или название базы (MySQL), в которых нужно удалить информацию опции -c если этот флаг указан, то при очистке данных не будет создаваться их резервная копия -f или --force - если не удаётся создать бэкап, то данные все равно будут удалены --not-drop-parameters если указан флаг --not-drop-parameters то при очистке расписаний заказов очистка привязки товаров к расписаниям(параметр товара) выполняться не будет ===Пример команды для очистки аналогов=== FSystemConsole remove analogs - имя базы, в которой нужно удалить все аналоги - для sqlite базы - полный путь к ней, для MYSql - название базы ===Пример команды для удаления товаров=== FSystemConsole remove products <путь к файлу с артикулами> <имя или путь к базе> <путь к файлу с артикулами> - путь к файлу с форматом строки: артикул. Например: 400000015 weqwe-ewqee-wwew-1111 После запуска утилиты для каждого артикула будет удалена информация о продажах(со всех складов), классификации, параметрах(тоже со все складов), аналогах(если товар входил в нетривиальную группу аналогов, то он будет из неё удалён, в остальном порядок товаров в группе останется прежним. Если товар был главным аналогом, то за место него главным станет второй по порядку.). ====Удаление товаров, не существующих в классификации из таблицы параметров==== FSystemConsole.exe clean-up-params demo.db Удаляет из параметров записи по всем товарам, которые не существуют в классификации =====Экспорт информационной базы===== Позволяет экспортировать информационную базу, в том числе, в обезличенном режиме ====Синтаксис команды==== FSystemConsole.exe export type source target [опции] *type: -ib или %%--%%information-base (экспорт информационной базы) *source: имя базы *target: путь к экспортированному файлу ===Опции=== ==Обезличивание информации== Для обезличивания нужно добавить опцию --impersonal **Пример** FSystemConsole.exe export -ib test.db D:\FN\test.ib --impersonal Данные которые обезличиваются: *история продаж с обезличенными кодами товаров, складов, клиентов *параметры с обезличенными кодами товаров, складов *календарь выходных/рабочих дней *формат загрузки истории продаж *пользователи и группы и пароли *иерархия складов с обезличенными кодами складов и названиями иерархий *стоимости доставки и т п для балансировки с обезличенными кодами складов *направления балансировки с обезличенными кодами складов *настройки пользователя с обезличенными именами пользователя (соответствуют обезличенным именам пользователя выше) *закупки для клиентов с обезличенными кодами товаров, складов, клиентов *комплекты с обезличенными кодами товаров, складов *поступления с обезличенными кодами товаров Рядом c информационной базы после сохранения будут находится еще файл с логом импорта информационной базы с именем <имя файла обезличенной иб>_log.сvs, и файл с соответствиями на каждый вид данных *коды товаров <имя файла обезличенной иб>_products.сvs *коды клиентов <имя файла обезличенной иб>_clients.сvs *коды складов <имя файла обезличенной иб>_storages.сvs *имена пользователей <имя файла обезличенной иб>_users.сvs *названия иерархий складов <имя файла обезличенной иб>_storage_graphs.сvs В лог импорта заносится информация если имеются данные, которые пока не поддерживают выгрузку в обезличенном режиме На текущий момент не поддерживаются: *Аналоги *Транспортные средства *Фильтры подготовки заказов *Пользовательские приоритеты товаров для ограничений *Зоны складов *Цветовые схемы для заказа *Последние цветовые схемы пользователей для заказа *Дополнительные артикулы для товаров *Поставщики *Прайс-листы поставщиков *Таблицы сроков доставки поставщиков *Результаты анализов *Группы поставщиков *Группы наследования параметров *Наборы для быстрого выбора складов *Псевдонимы упаковок *Наборы быстрого выбора клиентов *Правила наследования параметров *Наборы быстрого выбора групп *Поля товаров *Комплексные форматы заказов ==Выбор складов и товаров для сохранения== Для сохранения информационной базы с определённым набором товаров, необходимо добавить опцию и файл со списком товаров. --items-file <путь к файлу с товарами> Файл со списком товаров должен быть в csv формате. Содержать в себе два столбца: 1 - склад, 2 - код товара. Без заголовка Пример файла для 4 товаров с 2 складов Склад №1;40000000016 Склад №1;40000000017 Склад №1;40000000018 Склад №1;40000000019 Склад №2;40000000016 Склад №2;40000000017 Склад №2;40000000018 Склад №2;40000000019 В информационной базе будут присутствовать данные только по указанным артикулам(информация по товарам аналогам так же будет выгружена) и складам. Истории продаж по связанным складам из иерархии или направлений балансировки не будет. Список выгружаемых данных: Данные которые выгружаются только по выбранным товарам и аналогам: * История продаж * Параметры * Аналоги * Классификация (выгружаются только группы, их свойства и структура родительских групп, в которой находятся выбранные товары) * Акции * Поступления * Закупки под клиентов * Комплекты * Временные параметры Данные, которые всегда выгружаются полностью: * Структуры подчиненности складов * Стоимости и сроки доставки балансировки * Направления балансировки * Поставщики * Прайс-листы поставщиков * Параметры товаров поставщиков * Сроки доставки поставщиков * Группы поставщиков * Условия оплаты поставщиков * Критериев выбора товаров для ограничений заказа * Зоны хранения * Псевдонимы упаковок * Справочник клиентов * Сегменты клиентов * Пороги округления по упаковкам * Фильтры подготовки заказов * Расписание заказов * Выходные и рабочие дни * Транспортные средства * Пользователи, группы и права доступа групп * Настройки пользователей * Глобальные настройки **Пример команды** FSystemConsole.exe export -ib test.db D:\FN\test.ib --items-file D:\FN\items.csv =====Частичная выгрузка данных===== Если необходимо выгрузить информацию только по одному товару, с одного склада, то нужно воспользоваться командой по частичной выгрузке. Часть информации будет выгружена полностью, так как может не иметь привязки к товару. Информация сохраняется в csv файлах, для последующей загрузки в программу. **Синтаксис команды** FSystemConsole.exe export-test-data source Код_склада;Артикул_товара target * source - имя базы * target - путь к экспортированному файлу **Пример** FSystemConsole.exe export-test-data demo.db Склад№1;4000000000016 C:\FCN В C:\FCN буду выгружены файлы : \\ ''export_order_shedules_Склад№1_4000000000016.csv'' - Все календари и расписания заказов \\ ''export_prepare_reports_fitlers_Склад№1_4000000000016.csv'' - Все фильтры подготовки заказов \\ ''export_properties_Склад№1_4000000000016.csv'' - параметры для товара 4000000000016 со склада Склад№1 \\ ''export_sales_history_Склад№1_4000000000016.csv'' - продажи для товара 4000000000016 со склада Склад№1 в формате "Склад;Артикул;Клиент;Дата;Продано;Остаток на складе;Цена реализации;Закупочная цена;Учётная цена" \\ ''export_storage_graphs_Склад№1_4000000000016.csv'' - Все иерархии складов \\ ''export_suppliers_Склад№1_4000000000016.csv'' - Весь справочник поставщиков \\ ''export_user_settings_Склад№1_4000000000016.csv'' - Все глобальные и локальные настройки для всех пользователей из базы. \\ =====Проверка цифровой подписи заказа===== Позволяет сверить сумму заказа, рекомендованную программой и сумму заказа в файле, сохраненным и возможно отредактированным пользователем ====Синтаксис==== FSystemConsole checksum <проверяемый файл> <файл, подписанный цифровой подписью (.md5) =====Активация лицензии===== Позволяет активировать файл лицензии через консольную утилиту ====Синтаксис==== FSystemConsole activate-license <путь к файлу лицензии> При успешной активации консольная утилита отобразит сообщение "License file 'полный путь к файлу лицензий' successfully activated" При неудачной попытки активации программы, консольная утилита отобразит сообщение: 1) Если некорректный файл лицензии: \\ "License file 'полный путь к файлу лицензий' was not activated. Invalid license file." \\ Сообщение об ошибке работы консольной утилиты в интерфейсе: "Не удалось активировать файл лицензии 'полный путь к файлу лицензий' Некорректный файл лицензии." 2) Если недостаточно прав к папке: \\ "License file 'полный путь к файлу лицензий' was not activated. Insufficient directory access rights to 'путь где хранится файл лицензии'" \\ Сообщение об ошибке работы консольной утилиты в интерфейсе: "Не удалось активировать файл лицензии 'полный путь к файлу лицензий'. Недостаточно прав доступа к папке 'путь где хранится файл лицензии'" =====Изменение кода склада===== Позволяет изменить записанные в программе коды складов. ====Синтаксис==== FSystemConsole.exe rename --storages storages.csv base storages.csv - путь к файлу с кодами складов, csv файл вида "старый кода склада;новый код склада". Старые коды будут заменятся на соответствующие им новые. base - имя базы данных, где нужно выполнить переименование кодов складов Переименование поддерживается в История продаж, Параметры, Акции, Результаты анализов Справочник Складов, Структура подчиненности складов, Пользователи и группы, Фильтр подготовки заказов, Календари, Расписания заказов, Настройки балансировки по умолчанию, Транспортные средства, Правила автоустановки параметров, Поставщики, направления балансировки, Ограничения балансировки, Поступления, Поля товаров, Закупки под клиентов, Партионные остатки, Пользовательские критерии для ограничений заказа, Справочник клиентов (доступные склады, сроки доставки по клиент склад) В случае если новый код склада существует, то переименование не будет выполнено, в консоли будет выдана ошибка с указанием где именно и какой код склада уже существует =====Очистка журнала действий пользователей===== FSystemConsole clearlog database database - имя базы Команда позволяет очистить журнал действий пользователей от старых записей, которые не попадают в период указанный в [[настройки/глобальные_настройки#хранение_истории_действий_пользователя|глобальной настройке]] \\ Если глобальная настройка по [[настройки/глобальные_настройки#очищать_журнал_действий_пользователя_при_закрытии_программы|автоматической очистки журнала]] выключена, то можно использовать данную команду. =====Применение правил автоматической установки===== FSystemConsole apply-parameters-rules [--general/--seasonal] database [--names/--tags] general — применить все правила кроме сезонности \\ seasonal — расчет и применение правил сезонности Совместное использование в одной команде флагов general и seasonal, не допускается database — название базы names — после флага, в кавычках, через запятую, указываются названия правил (%%"%%правило1,правило2,правило3%%"%%), которые нужно применить. \\ tags — после флага, в кавычках, через пробел, указывается список тэгов в соответствие с которыми применяются автоправила Совместное использование в одной команде флагов names и tags, не допускается Если список названий правил и тип правил, не указаны, то операция будет произведена над всеми правилами в базе(если такие есть). =====Работа с кэш-сервером===== 1) Обновление всех файлов кэша для указанной БД FSystemConsole cache-server update --database databaseName FSystemConsole databaseName - конкретное название рабочей базы FNOW 2). Удаление файлов кэша cache-server deleteCacheFiles --database databaseName databaseName - конкретное название рабочей базы FNOW =====Формирование карточки товара===== При помощи утилиты можно сформировать карточку товара. Команда: productcard () -- user (--xlsx) (--csv) (--sql) (--filter ) Указание и --user ОБЯЗАТЕЛЬНО. Если карточка формируется с указанием ключа --sql (необязательный аргумент), то указание папки сохранения файлов () необязательно. Ключ --user задает имя того пользователя, от которого будут выбираться столбцы карточки для выгрузки (например, параметр Не заказывать, свойство Вес и т.д.) Выгружаемые столбцы настраиваются в отображении карточки товара на вкладке Анализ - Карточка товара. Если не указать столбцы, то выгрузки не будет. Примеры команд: productcard demo.db --user Администратор --sql (выгрузить в промежуточную базу FNTransferDatabase, в таблицу productCard карточку по всем товарам из классификации) productcard demo.db --user Администратор --sql --filter РЦ (выгрузить в промежуточную базу FNTransferDatabase, в таблицу productCard карточку по товарам, подходящие под условия фильтра РЦ) Промежуточная база FNTransferDatabase создается автоматически в том же месте, где и основная база. Название задается автоматически, переименовать нельзя. productcard demo.db C:\\Temp--user Закупщик (выгрузить карточку по всем товарам классификации в формате xlsx - по умолчанию - в каталог C:\\Temp) productcard demo.db C:\\Temp--user Балансировщик --csv (выгрузить карточку по всем товарам классификации в формате csv в каталог C:\\Temp) productcard demo.db C:\\Temp--user Администрато --csv --xlsx --filter РЦ (выгрузить карточку по товарам, подходящих под условия фильтра РЦ, в форматах csv и xlsx в каталог C:\\Temp) При использовании выгрузки в промежуточную базу (флаг --sql) лучше будет позаботиться о том, чтобы работала массовая загрузка. (подключение консоли к серверу БД через localhost или 127.0.0.1, путь для массовой загрузки существует (см. глоб. настройку), к нему есть доступ для записи. Выгружаются данные в колонках storage(Код склада), product(артикул товара), column0(значение первого столбца с данными в карточке товара указанного в команде пользователя), column1(значение второго столбца), ...., columnN Поддерживаемые колонки: параметры, свойства, поля товаров, результаты анализов =====Формирование графика заказов и поставок===== Вы можете сформировать график ближайших заказов и поставок в Excel в разбивке поставщик-склад-группа товаров, склад-группа товаров-поставщик и т.п (любая комбинация трех признаков заказа). Для этого нужно использовать команду FsystemConsole delivery-schedule databaseName [--horizon 21] [--grouping supplier;group;storage | supplier;storage;group | group;supplier;storage | group;storage;supplier | storage;supplier;group | storage;group;supplier] [--saveDir path] delivery-schedule — название команды databaseName — обязательный аргумент — название базы данных FN или путь до файла с базой SQLite. horizon – необязательный аргумент, указывает горизонт оценки заказов в днях. По умолчанию должно использоваться 7 дней. grouping – способ группировки записей календарей. Предполагает три значения, перечисляемые через ;. supplier – поставщик, group – группа классификации, storage – склад. Указывает тип представления дерева от верхних уровней к дочерним. Например: group;supplier;storage – на верхнем уровне будут располагаться товарные группы, в них будут вложены поставщики, в свою очередь поставщиков можно раскрыть по отдельным складам. Возможные варианты перестановок приведены выше в описании формата команды. По умолчанию будет использоваться группировка supplier;group;storage. saveDir – необязательный аргумент, указывает путь к каталогу, куда должен будет выгружаться файл. По умолчанию будет использоваться подкаталог «Поставки» в директории сохранения заказов для учётной системы (соответствующий путь указан в [[настройки/глобальные_настройки#пути_сохранения|глобальной настройке]]). ====Итог работы==== В итоге вы получите Excel файл с двумя листами- "Календарь заказов" и "Календарь поставок", где будет отображено число заказов/поставок на каждую дату по выбранным признакам {{ ::2024-09-11_11-06-50.png?800 |}} =====Проверка заказов===== Вы можете проверять, какие заказы должны быть сегодня подготовлены различными пользователями, исходя из существующих расписаний заказов. Для этого в консольной утилите нужно использовать команду check-orders databaseName , databaseName - название базы данных FN, filter - необязательный элемент, по которому можно перечислить через ; фильтры для проверки. Если не указан, будут проверяться все имеющиеся фильтры в базе. Все заказы, которые нужно подготовить, появятся в [[:todo_list|списке дел]]