Импорт накладных в системе Solaris
Импорт накладных от поставщиков является важным элементом процедуры оприходования товаров, сокращающим время ввода накладной в десятки раз. Поставщики обычно отправляют электронные версии накладных посредством почты или специальных программ. Солярис обладает способностью принять эти файлы или с помощью скриптов, или с помощью системы ручной настройки импорта, не требующей вмешательства программиста. Для того, чтобы можно было принять накладную ручной системой импорта, необходимо доставить на локальный компьютер файл накладной. Если воспользоваться скриптом, то, строго говоря, можно прописать какой угодно интерфейс.
Импорт накладной осуществляется 4 этапами:
- Получение файла. Обычно для доставки файла используется почта. Письма могут приходить в обычную почтовую программу, откуда они выкладываются или оператором вручную, или почтовой программой самостоятельно, если она умеет это делать. Для автоматизации этого процесса можно пользоваться программой MailProcessor, которая разложит полученные по почте от поставщиков файлы в определенные в ее настройках каталоги, по отдельным подкаталогам для каждого из поставщиков, а также дополнительно по подкаталогам, соответствующим датам отгрузки. В этом случае все действия по получению файла сведутся к нажатию "доставить почту" на соответствующем значке в системной рабочей области Windows.
- Собственно импорт файла во внутренний формат. Здесь происходит интерпретация данных в файле и перекачка их во внутренний формат, после чего будет проведена окончательная адаптация файла.
- Сопоставление элементов справочников принимаемой таблицы и собственной базы. Иными словами - расстановка кодов товаров, производителей, стран, сертифицирующих органов.
- После сопоставления элементов справочников происходит копирование данных непосредственно в накладную, где она проходит дополнительную обработку, если это нужно.
Дальше будут проводиться мероприятия по расценке товаров и генерации печатных форм, но это уже к процедуре импорта не относится.
Этап 1: Перенос данных во внутренний формат
На этом этапе возможны несколько вариантов импорта:
- Прием данных в формате Solaris: если поставщик пользуется также программой Solaris, то он может произвести передачу накладных во внутреннем формате (таблица определенной структуры заворачивается в zip-пакет). Данный файл принимается с помощью меню импорта "импорт приходных накладных <- Solaris" к кнопке "Импорт накладной". При выборе этого пункта меню программа запросит местонахождение файла .zip. После этого оператор перейдет сразу в окошко "импорт накладной".
- Прием данных с помощью скриптов импорта. Такой способ удобен тем, что скрипт адаптирует данные с накладными самостоятельно, предоставляя пользователю возможность выбрать или нужный файл, или каталог, где лежат нужные файлы, или сразу накладную из списка накладных. В любом случае скрипт предоставляет интуитивно понятный интерфейс для чтения данных из файла. Все установленные скрипты доступны в меню к кнопке "импорт накладных" в форме "Приходный документ", каждый скрипт - отдельным пунктом меню.
После отработки скрипта оператор окажется в окне "импорт накладной".
Заметка по настройке: Для реализации задачи используются скрипты в формате fastscript-pascal. Файлы скриптов описываются на одном 4 из языков программирования: Pascal, C++, Java, Basic. В своем арсенале система обработки скриптов соляриса имеет множество встроенных функций. . Для изучения доступных функций можно воспользоваться пунктом меню "Администратор/Редактор скриптов". Несколько готовых плагинов можно найти по адресу http://www.solr.ru/download/solaris/scripts/import_invoices/.
Файл скрипта подключается к системе через настройки программы (меню "Администратор/Установки", закладка "Импорт-экспорт):
В таблице "скрипты импорта накладных" необходимо указать имя варианта, которое высветится в меню к кнопке "импорт накладных", а также полный путь к файлу-скрипту (либо неполный путь с подкаталогом, если скрипт хранится в подкаталоге scripts рабочей директории программы, либо в подкаталоге scripts базы данных). Настройки применяются ко всем рабочим местам, поэтому, для того, чтобы файл скрипта был доступен всем пользователям, необходимо разместить его на общедоступных каталогах. Например в каталоге базы данных solaris.
- Прием данных из системы Solex: запускается пунктом меню "Импорт из Solex" к кнопке "Импорт накладных". При выборе этого меню откроется окно "список накладных" программы Solex (для этого необходимо наличие на компьютере клиентской программы Solex для покупателей, программа будет взаимодействовать с базой Solex через нее). Нужную накладную нужно выбрать из списка накладных, полученых через Solex. Далее оператор попадает в окно "импорт накладной". Преимущество этой системы перед всеми остальными будет в том, что:
- Импорт накладных будет производиться из списка накладных в solex, при этом система гарантирует доставку новых документов в случае, если поставщик их разместил там.
- Не нужно производить никаких интеграций с данными поставщика. Все эти настройки производятся специалистами, обслуживающими систему. Таким образом, если поставщик присутствует в системе и подает туда свои накладные, то не нужно заботиться о том, в каком виде он их подаст, это все уже будет отрегулировано.
- система Solex на основе своей базы знаний будет расставлять коды справочников на большинство строк автоматически. Оператору же нужно будет произвести досогласование малой части, стремящееся к нулю. Также удобством является отсутствие необходимости заботиться о собственно получении этого документа, поскольку он доставляется системой Solex.
- При прохождении накладной через систему Solex возможны дополнительные сервисы, такие как проверка забракованных серий в данном документе, согласно подписке на забракованные серии в системе солекс для данной организации.
- Самый общий вариант, не требующий никаких специальных настроек: импорт через Общую форму импорта накладных. Данный вариант рассчитан на чтение простой таблицы в формате DB, DBF, TXT с различными разделителями, CSV, XLS в виде простой таблицы. При импорте из такого файла оператор проходит через выбор драйвера импорта (если стандартный не подойдет), корректировку кодовой страницы (если потребуется) и сопоставление полей (с опциями сохранения вариантов для последующих обработок). После отработки скрипта оператор окажется в окне "импорт накладной".
Подробнее об приеме накладных через "Общую форму импорта"
- Прием с помощью меню "автоматический импорт накладной". Данный вариант является наиболее удобным, для его исполнения достаточно выбрать поставщика в приходной накладной и исполнить меню "автоматический импорт накладной" к кнопке "импорт накладных" (если нажать просто кнопку "импорт накладных", а не стрелочку рядом с ней, вызывающую меню импорта, то будет исполнен выполненный последний раз пункт меню, что дает возможность исполнять одно и то же меню просто нажатием кнопки "импорт накладной"). Для того, чтобы сработал автоматический импорт, необходимо в списке контрагентов напротив выбранного нами поставщика указать его скрипт либо вариант сопоставления полей:
В поле "скрипт" необходимо указать полный путь к файлу-скрипту (либо неполный путь с подкаталогом, если скрипт хранится в подкаталоге scripts рабочей директории программы, либо в подкаталоге scripts базы данных). Настройки применяются ко всем рабочим местам, поэтому, для того, чтобы файл скрипта был доступен всем пользователям, необходимо разместить его на общедоступных каталогах. Например в каталоге базы данных solaris.
Другой вариант - указать вариант настроек полей для ручного импорта. в этом случае сработает вариант импорта "общий", но при сопоставлении полей по-умолчанию будет указан выбранный вариант, что избавит пользователя от лишних нажиманий..
Форма "Импорт накладной"
В данной форме происходит регистрация кодов справочников, то есть сопоставление наименований (товары, производители. страны, серт.органы) с собственными. Просто так добавлять в собственный справочник позиции, не проведя ручной их обработки, нельзя. В этом случае мы будем просто неоправданно раздувать собственный номенклатурный перечень, к тому же, наименования, предлагаемые поставщиком, не всегда могут устроить предприятие, принимающее накладную. При сопоставлении полей программа пользуется собственным алгоритмом распознавания наименований, а также базой знаний (всевозможные версии написания одного и того же препарата), которую она пополняет во время работы оператора над сведением справочников.
Таким образом, без этого диалога не обойдется ни один импорт ни одного из вариантов. Сведение справочников придется выполнить!
Для старта процедуры согласования необходимо последовательно выполнить меню регистрации к кнопке "анализ наименований" соответственно по каждому справочнику или выполнить пункт меню "анализ всех справочников последовательно".
Программа попытается автоматически согласовать наименования с собственными на основе алгоритма нормализации наименований и базы знаний. Если она не может определить товар, то происходит запрос в форме:
Для того, чтобы программа предложила правильные варианты в нижней таблице. необходимо в белом поле ввода выше этой таблицы ввести часть наименования этого товара, или несколько частей через "%", который обозначает любое количество любых символов между этими частями. Выбор быстрый частей возможен с помощью мышки и кликаний ею (правыми или левыми кнопками, двойные клики, правильную функциональность легко изучить экспериментально) в наименовании товара оригинальном, приведенном в верхней левой части диалогового окна. Если Мы не находим никаких подходящих вариантов, то мы можем добавить новый элемент в наш справочник (кнопка "Создать").
Следует иметь ввиду, что несогласованные коды справочников влекут за собой то, что они не будут указаны в результирующей накладной. А отсутствие кода товаров приведет к тому, что строчка будет вообще пропущена. Обычно эти вопросы неактуальны при импорте накладных, обычно нет причин не согласовывать все элементы справочников.
По окончании регистрации кодов накладную можно принимать кнопкой "прием данных в накладную". И здесь нужно знать еще о нескольких полезных настройках:
Очень часто поставщики не указывают цену производителя, если она равна цене закупки. Чтобы программа понимала это и выводила цену производителя ненулевыю для таких строк, используется галочка "Если цена произв.=0, то сделать = цене закупки. Другая галочка "НДС для продажи установить = Цене закупки" используется, если мы не указываем поле "НДС прод" при интеграции,а хотим просто взять его из другой ставки: "НДС по факту". И, наконец, у некоторых поставщиков, если в накладной не указана, скажем, серия. то можно взять ее значение из предыдущей строки.
Согласование справочников других типов осуществляется формами с аналогичной функциональностью.