<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.tbm.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seeedstudio</id>
	<title>Wiki - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tbm.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seeedstudio"/>
	<link rel="alternate" type="text/html" href="https://wiki.tbm.ru/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Seeedstudio"/>
	<updated>2026-05-02T11:30:18Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.2</generator>
	<entry>
		<id>https://wiki.tbm.ru/index.php?title=TBM_SOAP_services&amp;diff=15978</id>
		<title>TBM SOAP services</title>
		<link rel="alternate" type="text/html" href="https://wiki.tbm.ru/index.php?title=TBM_SOAP_services&amp;diff=15978"/>
		<updated>2013-02-08T07:00:24Z</updated>

		<summary type="html">&lt;p&gt;Seeedstudio: /* Общие сведения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Общие сведения ==&lt;br /&gt;
В данном разделе собрана информация по веб-сервисам ТБМ. С их помощью вы можете легко интегрировать свою систему с ТБМ-онлайн и исключить ручную работу по формированию заявок, подтверждению счетов, проверке взаимозачётов и многому другому. Веб-сервисы являются стандартным интерфейсом при интеграции сложных систем работа с ними возможна из 1С, Java, C#, PHP и многих других языков программирования. В случае возникновения вопросов обращайтесь к нам по адресу web-trade@tbm.ru&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source(s):&#039;&#039;&#039;  [http://www.downloadranking.com  TBM SOAP services]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Последния версия сервисов находиться по адресу https://www.tbm.ru/tbm-services-001/&#039;&#039;&#039; ====&lt;br /&gt;
WSDL:	https://www.tbm.ru/tbm-services-001/SnMainExtSoap1Port?wsdl&lt;br /&gt;
&lt;br /&gt;
WSDL:	https://www.tbm.ru/tbm-services-001/WebCatalogExtSoap1Port?wsdl&lt;br /&gt;
&lt;br /&gt;
WSDL:	https://www.tbm.ru/tbm-services-001/LogicExtSoap1Port?wsdl&lt;br /&gt;
&lt;br /&gt;
WSDL:	https://www.tbm.ru/tbm-services-001/VzaExtSoap1Port?wsdl&lt;br /&gt;
&lt;br /&gt;
WSDL:	https://www.tbm.ru/tbm-services-001/CheckUsersExtSoap1Port?wsdl&lt;br /&gt;
&lt;br /&gt;
WSDL:	https://www.tbm.ru/tbm-services-001/ReclamationExtSoap1Port?wsdl&lt;br /&gt;
&lt;br /&gt;
WSDL:	https://www.tbm.ru/tbm-services-001/ZkMainExtSoap1Port?wsdl&lt;br /&gt;
&lt;br /&gt;
== Интернационализация ==&lt;br /&gt;
Язык пользователя для сообщений возвращаемых из веб-сервисов берётся из заголовков запроса:&lt;br /&gt;
  accept-language : ru&lt;br /&gt;
Если заголовка нет, то языком по умолчанию считается русский.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&#039;&#039;Логин/Регистрация&#039;&#039;&#039;&#039;&#039;  ==&lt;br /&gt;
Для каждого запроса к любому веб-сервису передаётся логин-пароль пользователя в стандартном виде HTTP-авторизации.&lt;br /&gt;
Внутри каждого сервиса имеются Credentials текущего пользователя, которые позволяют корректно отображать всю необходимую информацию строго для этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WSDL описания сервисов http://www.tbm.ru/tbm-services/CheckUsersExtSoap1Port?wsdl&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ServiceMessage]] validateUser(String username, String password) throws Exception &#039;&#039;&#039; - проверяет валидность пользователя. В случае если пароль-логин верные то в структуре [[ServiceMessage]] поле status возвращает &#039;&#039;&#039;success&#039;&#039;&#039;, иначе &#039;&#039;&#039;unsuccess&#039;&#039;&#039;. &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WSDL описания сервисов http://www.tbm.ru:80/tbm-services/GeneralExtPort?wsdl&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
String &#039;&#039;&#039;userLogout&#039;&#039;&#039;() - выход текущего пользователя из системы. Возвращает &#039;success&#039; в случае успеха. &lt;br /&gt;
&lt;br /&gt;
[[SOAPUser|User]] &#039;&#039;&#039;userGet&#039;&#039;&#039;() - информация о текущем пользователе. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&#039;&#039;Общие функции&#039;&#039;&#039;&#039;&#039;  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WSDL описания сервисов http://www.tbm.ru/tbm-services/LogicExtSoap1Port?wsdl - SOAP 1.1.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
BigDecimal &#039;&#039;&#039;getCursValut&#039;&#039;&#039;(&#039;&#039;&#039;String typeValut&#039;&#039;&#039;) - возвращает курс валюты typeValut принимает два значения USD или EUR&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[EdIzm|&#039;&#039;&#039;EdIzmOut&#039;&#039;&#039;]]&#039;&#039;&#039; getEdIzmByID(Long id) throws Exception&#039;&#039;&#039; - возвращает единицу измерения по id&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfColor|&#039;&#039;&#039;ArrayOfColor&#039;&#039;&#039;]]&#039;&#039;&#039; getColors() throws Exception&#039;&#039;&#039; - возвращает справочник счетов. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfEdIzm|&#039;&#039;&#039;ArrayOfEdIzm&#039;&#039;&#039;]]&#039;&#039;&#039; getAllEdIzm() throws Exception&#039;&#039;&#039; - возвращает список единиц измерения&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfUserArts|&#039;&#039;&#039;ArrayOfUserArts&#039;&#039;&#039;]]&#039;&#039;&#039; getUserArts(Long shifrfir, Date modifyDate) throws Exception&#039;&#039;&#039; - получить список пользовательских артикулов &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfTipCur|&#039;&#039;&#039;ArrayOfTipCur&#039;&#039;&#039;]]&#039;&#039;&#039; getTipCur() throws Exception&#039;&#039;&#039; - справочник валют. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfClientTbm|&#039;&#039;&#039;ArrayOfClientTbm&#039;&#039;&#039;]]&#039;&#039;&#039; getClientTbm() throws Exception&#039;&#039;&#039; - получить список фирм Клиента. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;String synchronAllUserArts(Long shifrfir, &#039;&#039;&#039;[[ArrayOfConformityUserArts|ArrayOfConformityUserArts]]&#039;&#039;&#039; userArtsObj) throws Exception&#039;&#039;&#039; - синхронизировать базу соответствия. Считается что на Клиенте база соответствия более полная чем на Клиенте, по этой причине на сервере полностью заливается база соответствия Клиента. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfConfirmationAccount|ArrayOfConfirmationAccount]] getConfirmationAccountList()&#039;&#039;&#039;  - (в заявках) справочник возможных способов подтверждения счетов при отправке заявке. В заявках это поле isFast &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ArrayOfMsgAccountAutomatically|ArrayOfMsgAccountAutomatically]] getMsgAccountAutomaticallyList()&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfAccountType|ArrayOfAccountType]] getAccountTypeList()&#039;&#039;&#039; - справочник возможных типов счетов, которые создаются после отправки заявки на обработку. При отправке заявки необходимо указывать какого типа создается счет (например с резервированием или без резервирования товара). Поле reserv в [[NavZkMainOut|NavZkMainOut]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ArrayOfMsgTovarRezerv|ArrayOfMsgTovarRezerv]]&#039;&#039;&#039; getMsgTovarRezervList()&#039;&#039;&#039; - список возможных действий над счетом на оплату при отправке заявок. &lt;br /&gt;
--&amp;gt; &lt;br /&gt;
[[ArrayOfTpCountry|&#039;&#039;&#039;ArrayOfTpCountry&#039;&#039;&#039;]]&#039;&#039;&#039; getTpCountryList() throws Exception&#039;&#039;&#039; - справочник стран (Наименование страны, НДС, склад принадлежащей стране (catalogNSkl - по данному складу вытаскивается каталог.) &lt;br /&gt;
&lt;br /&gt;
[[UsersOut|&#039;&#039;&#039;UsersOut&#039;&#039;&#039;]]&#039;&#039;&#039; getUsers()&#039;&#039;&#039; - получить текущего пользователя. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfDefReason|&#039;&#039;&#039;ArrayOfDefReason&#039;&#039;&#039;]]&#039;&#039;&#039; getDeficitReason()&#039;&#039;&#039; - справочник причин отказа от дефицита. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfAdres|ArrayOfAdres]] getAdresList(Long shifrFir) throws Exception&#039;&#039;&#039; - получить список адресов доставки по шифру фирмы.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfOplata|ArrayOfOplata]] getOplataListByShifrFir(Long shifrFir) throws Exception&#039;&#039;&#039; - получить список типов оплаты по шифру фирмы, используется при оформлении заявок.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfPorductionLines|ArrayOfPorductionLines]] getPorductionLines(Long shifrFir) throws Exception&#039;&#039;&#039; - справочник производственных линий необходим при оформлении заявок. Метод возвращает список производственных линий по шифру фирмы.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfTypeReclamations]] getTypeReclamationsList() throws Exception&#039;&#039;&#039; - метод возвращает список типов (характеров) браков позиций рекламаций. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&#039;&#039;Подгрузка каталога&#039;&#039;&#039;&#039;&#039;  ==&lt;br /&gt;
=== Описание  ===&lt;br /&gt;
&lt;br /&gt;
Предлагается реализовать подгрузку каталога в переносные устройства следующим образом: &lt;br /&gt;
&lt;br /&gt;
Для отображения дерева каталога необходимо воспользоваться методами: &#039;&#039;&#039;catListTree&#039;&#039;&#039; - получить раскрученное дерево каталога. К каждому узлу дерева могут быть привязаны товар. Список кодов товаров для конкретного узла дерева можно получить методом &#039;&#039;&#039;catListTreeNodes&#039;&#039;&#039; по коду узла &#039;&#039;&#039;tree_node_kod&#039;&#039;&#039;. Каждый узел дерева имеет описание которое можно загрузить методами: &#039;&#039;&#039;getNodeDescByDate(Date lastModified, Long n_skl)&#039;&#039;&#039; lastModified - дата последнего изменения описания (если этот параметр отсутствует то описание грузиться для всех узлов дерева), n_skl - склад (не обязательный параметр). В дальнейшем обновление описания узлов деревьев желательно подгружать по lastModified. &#039;&#039;&#039;getNodeDesc(Long nodeDescKod)&#039;&#039;&#039; - получить описание узла по коду nodeDescKod. nodeDescKod можно получить из WebCatTreeOut &lt;br /&gt;
&lt;br /&gt;
К каждому каталогу привязаны категории &#039;&#039;&#039;catListKategory&#039;&#039;&#039;. В категории находится несколько типов товара: &#039;&#039;&#039;catListTip&#039;&#039;&#039;. По этим трём параметрам (каталог, категория, тип товара) идёт привязка товаров с помощью &#039;&#039;&#039;catListCatalog&#039;&#039;&#039;. Любой товар может находится в нескольких разделах каталога, но с одинаковым описанием и одинаковой ценой. &lt;br /&gt;
&lt;br /&gt;
Дерево каталога может меняться (ориентир раз в неделю на всю структуру может быть правка), поэтому целесообразно его хранить локально. И обновлять по желанию пользователя или еженедельно. Жестко запоминать структуру каталога нельзя НИ В КОЕМ СЛУЧАЕ. &lt;br /&gt;
&lt;br /&gt;
методом &#039;&#039;&#039;catListTovar&#039;&#039;&#039; подгружается весь необходимый пользователю перечень товаров. Этот метод наиболее затратен по траффику. Объём справочника товаров может составлять до 30тыс позиций. Для каждого товара в каталоге могут быть заполнены поля CHERTEG и RISUNOK. Эти два поля указывают на картинки товара (чертёж и фото). Загрузить изображения можно по ссылке www.tbm.ru/risunok/ и www.tbm.ru/cherteg/. При подгрузке любого нового товара можно попутно подгрузить изображение товара. (Превью и оптимизированные для устройств изображения сейчас автоматически не генерятся.) &lt;br /&gt;
&lt;br /&gt;
Возможно настроенную базу товаров стоит распространять сразу предустановленной на устройстве. &lt;br /&gt;
&lt;br /&gt;
Далее при работе, в случае отсутствия товара в локальной базе, можно запросить информацию по нему с помощью метода &#039;&#039;&#039;catGetTovar&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Основной особенностью расценивания в ТБМ является зависимость цены от шифра фирмы пользователя. Алгоритм расчёта достаточно сложен и зависит от многих факторов - скидок Клиента, коэфициентов распродажи на филиале, холдинге и прочее. Поэтому цену товара необходимо запрашивать отдельно с помощью методов: &#039;&#039;&#039;catGetPrice&#039;&#039;&#039; и &#039;&#039;&#039;catGetPrices&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=== Ежедневная работа с каталогом  ===&lt;br /&gt;
&lt;br /&gt;
Цена товара должна храниться в отдельной структуре: шифр фирмы, kod_tov, цена. Валюта цены хранится в WebTovar.TIP_CUR. Код типа валюты применяется в соответствии с единым классификатором валют (http://www.rbc.ru/okv.html). &lt;br /&gt;
&lt;br /&gt;
Для каждой пары должна храниться дата последнего запроса цены. Кроме этого желательно хранить дату последнего обновления структуры каталога (включая товара) и дата запроса цен. &lt;br /&gt;
&lt;br /&gt;
Используя эти даты можно запросить только изменившиеся цены и товары в системе с помощью методов: &#039;&#039;&#039;catListTovar&#039;&#039;&#039; и &#039;&#039;&#039;catListCatalogModified&#039;&#039;&#039;. (На первом этапе дата модификации не будет учитываться, передаваться будет весь каталог). Полученную информацию необходимо обновить в локальной базе. &lt;br /&gt;
&lt;br /&gt;
Удаление товаров из каталога отслеживается с помощью признака WebCatalog.WebShow = 1. Товар может исчезнуть из структуры каталога физически или с помощью этого признака.&lt;br /&gt;
&lt;br /&gt;
=== Перечень сервисов  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WSDL описания сервисов по протоколу soap 1.1 находится http://www.tbm.ru:80/tbm-services/WebCatalogExtSoap1Port?wsdl&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Для получения каталога пользователя передавать n_skl не нужно, n_skl - передается только в том случае если необходимо получить каталог для конкретного склада. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfWebCatTree|ArrayOfWebCatTree]] &#039;&#039;&#039;catListTree(Long n_skl, int from , int size) throws Exception&#039;&#039;&#039; - вернуть структуру каталога для указанного склада. В этом случае возвращается каталог страны пользователя. from - позиция списка, size - размер списка.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Long catListTreeCount(Long n_skl) throws Exception&#039;&#039;&#039; - размер дерева. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfCatTreeNodes|ArrayOfCatTreeNodes]] &#039;&#039;&#039;catListTreeNodes(Long n_skl, Long tree_node_kod, int from, int size) throws Exception&#039;&#039;&#039; - вернуть товары каталога для указанного склада. Метод возвращает привязку кодов товара к структуре каталога. Рекомендуется загружать всю структуру целиком параметры tree_node_kod = 0, n_skl=null - в этом случае возвращается вся структура по каталогу страны пользователя. from - позиция списка, size - размер списка. &lt;br /&gt;
&lt;br /&gt;
[[CatalogNodeDescOut|CatalogNodeDescOut]] &#039;&#039;&#039;getNodeDesc(Long nodeDescKod) throws Exception&#039;&#039;&#039; - получить описание узла по id. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Long catListTreeNodesCount(Long n_skl, Long tree_node_kod) throws Exception&#039;&#039;&#039; - размер списка. &lt;br /&gt;
&lt;br /&gt;
[[WebTovarOut|WebTovarOut]] &#039;&#039;&#039;catGetTovar(Long kod_tov) throws Exception&#039;&#039;&#039; - вернуть информацию о товаре. &lt;br /&gt;
&lt;br /&gt;
[[TovarPriceOut|TovarPriceOut]] catGetPrice(Long kod_tov, Long shifr_fir) throws Exception - получить цену товара по коду товара и шифру фирмы. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Long catCountTovar(Date modifydate, Long n_skl) throws Exception&#039;&#039;&#039; - получить количество товара по дате изменения и коду товара. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfTovarPrice|ArrayOfTovarPrice]] &#039;&#039;&#039;catGetPrices&#039;&#039;&#039;(&#039;&#039;&#039;[[ArrayOfLong|ArrayOfLong]] &#039;&#039;&#039;kodTovList, Long shifr_fir) throws Exception - вернуть цену товара для указанных кодов товаров и шифра фирмы. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfTovarPrice|ArrayOfTovarPrice]] &#039;&#039;&#039;catGetPricesAll(Long shifr_fir) throws Exception&#039;&#039;&#039;&amp;amp;nbsp; - вернуть цены товаров для указанного шифра фирмы. Цены возвращаются для склада по шифру фирмы. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfWebTovar|ArrayOfWebTovar]] &#039;&#039;&#039;catListTovar(Date modifydate, Long n_skl, int from, int size) throws Exception&#039;&#039;&#039; - вернуть список товаров для указанных параметров. from - позиция списка, size - размер выбираемого списка. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfCatalogNodeDesc|ArrayOfCatalogNodeDesc]] &#039;&#039;&#039;getNodeDescByDate(Date lastModified, Long n_skl) throws Exception&#039;&#039;&#039; - получить описание узлов дерева по lastModified и n_skl склада.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfCatalogDocuments|ArrayOfCatalogDocuments]] &#039;&#039;&#039;getCatalogDocuments(Long cndKod) throws Exception&#039;&#039;&#039; - ссылки на документы и описание документов. &lt;br /&gt;
&lt;br /&gt;
[[ArrayOfCatalogDocuments|ArrayOfCatalogDocuments]] &#039;&#039;&#039;getCatalogDocumentsByDate(Date lastModified) throws Exception&#039;&#039;&#039; - вернуть записи на документы дата обновления которых больше lastModified.&amp;amp;nbsp; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[WebTovarOut|WebTovarOut]] &#039;&#039;&#039;catGetTovarByArt(String artTbm) throws Exception&#039;&#039;&#039; - вернуть товар по артикулу ТБМ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&#039;&#039;Заявки&#039;&#039;&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Описание&#039;&#039;  ===&lt;br /&gt;
&lt;br /&gt;
Работа с заявками ведётся в online или offline-режиме. Для отображения перечня заявок используются метод &#039;&#039;&#039;getZkMainIdListByParam&#039;&#039;&#039; который возвращает идентификаторы заявок для отображения. Переход по страницам обеспечивается с помощью параметров from и size. Общее количество заявок для закладки можно получить с помощью метода &#039;&#039;&#039;getCountZkMainByParam&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Получив перечень заявок для отображения можно поискать локальный объект заявки (если предусмотрено кэширование) или получить объект целиком с помощью методов getZkMainListByParam или getZkMainById. &lt;br /&gt;
&lt;br /&gt;
Добавление и удаление позиций в заявку также производятся попозиционно.&lt;br /&gt;
&lt;br /&gt;
=== Перечень сервисов получения заявок  ===&lt;br /&gt;
&lt;br /&gt;
Пример вызова сервисов по созданию заявки &#039;&#039;&#039;http://www.tbm.ru/wiki/index.php/SOAP_1C&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WSDL описания сервисов по получению заявок по протоколу soap 1.1 находится http://www.tbm.ru/tbm-services/ZkMainExtSoap1Port?wsdl&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ArrayOfLong getZkMainIdListByModifyDate(Long shifrFir,Date modifyDate) throws Exception&#039;&#039;&#039; - метод возвращает список уникальных идентификаторов заявок по входным параметрам. Все параметры метода являются не обязательными и могут принимать значение null.&lt;br /&gt;
&lt;br /&gt;
shifrFir - Шифр фирмы &lt;br /&gt;
&lt;br /&gt;
modifyDate - дата поиска заявок. Если modifyDate не пустое то будут возвращен список ID всех заявок пользователя, дата изменения которых старше чем modifyDate. Таким образом с помощью modifyDate можно организовать постоянный мониторинг изменившихся заявок в системе ТБМ.&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Long getCountZkMainByParam(String tab, Long shifrfir, Date dateFrom, Date dateTo) throws Exception&#039;&#039;&#039; - получить количество заявок по входным параметрам. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tab&#039;&#039;&#039; - может принимать следующие значения:  &lt;br /&gt;
* &#039;&#039;&#039;all&#039;&#039;&#039; - все заявки  &lt;br /&gt;
* &#039;&#039;&#039;sent&#039;&#039;&#039; - отправленные  &lt;br /&gt;
* &#039;&#039;&#039;work&#039;&#039;&#039; - в работе  &lt;br /&gt;
* &#039;&#039;&#039;arh&#039;&#039;&#039; - архивные &lt;br /&gt;
&lt;br /&gt;
Если передать пустое значение то используется all. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;shifrfir&#039;&#039;&#039; - шифр фирмы Клиента берется из [[ClientTbmOut|ClientTbmOut]] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dateFrom&#039;&#039;&#039; и &#039;&#039;&#039;dateTo&#039;&#039;&#039; - задает диапазон отбора по датам. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[NavZkMainOut|NavZkMainOut]] &#039;&#039;&#039;getZkMainById(Long id) throws Exception&#039;&#039;&#039; - получить заявку по уникальному коду заявки. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039; - id заявки. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[ZkMainShortOut|ZkMainShortOut]] &#039;&#039;&#039;getZkMainShortById(Long id) throws Exception&#039;&#039;&#039; - получить шапку заявки по коду заявки. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039; - id заявки. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[ArrayOfLong|ArrayOfLong]] &#039;&#039;&#039;getZkMainIdListByParam(String tab, Long shifrfir, Date dateFrom, Date dateTo, int from, int size, String orderby) throws Exception&#039;&#039;&#039; - Метод возвращает список уникальные кодов заявки по входящим параметрам. &#039;&#039;&#039;Все параметры являются не обязательными, часть из них или все сразу могут принимать пустое значение null.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tab&#039;&#039;&#039; - может принимать следующие значения: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;all&#039;&#039;&#039; - все заявки  &lt;br /&gt;
* &#039;&#039;&#039;sent&#039;&#039;&#039; - отправленные  &lt;br /&gt;
* &#039;&#039;&#039;work&#039;&#039;&#039; - в работе  &lt;br /&gt;
* &#039;&#039;&#039;arh&#039;&#039;&#039; - архивные &lt;br /&gt;
&lt;br /&gt;
Если передать пустое значение то используется all. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;shifrfir&#039;&#039;&#039; - шифр фирмы Клиента берется из [[ClientTbmOut|ClientTbmOut]], если шифр пустой то возвращаются коды всех заявок пользователя. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dateFrom&#039;&#039;&#039; и &#039;&#039;&#039;dateTo&#039;&#039;&#039; - задает диапазон отбора по датам. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;from&#039;&#039;&#039; - начальная позиция получения списка. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;size&#039;&#039;&#039; - размер получения списка (список получается с позиции from до позиции from+size). from и size - используются для пагинации по списку. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;orderby&#039;&#039;&#039; - сортировка по списку (сейчас не используется). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[ArrayOfNavZkMain|ArrayOfNavZkMain]] &#039;&#039;&#039;getZkMainListByIdList(ArrayOfLong idNavZkMain) throws Exception&#039;&#039;&#039; - получить список заявок по списку уникальных идентификаторов (id-ков) заявок. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;idNavZkMain&#039;&#039;&#039; - список идентификаторов заявок. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[ArrayOfShortSoap|ArrayOfShortSoap]] &#039;&#039;&#039;getZkMainShortListByParam(String tab, Long shifrfir, Date dateFrom, Date dateTo, int from, int size, String orderby) throws Exception&#039;&#039;&#039; - получить список заголовков заявок по входящим параметрам. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tab&#039;&#039;&#039; - может принимать следующие значения: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;all&#039;&#039;&#039; - все заявки &lt;br /&gt;
* &#039;&#039;&#039;sent&#039;&#039;&#039; - отправленные &lt;br /&gt;
* &#039;&#039;&#039;work&#039;&#039;&#039; - в работе &lt;br /&gt;
* &#039;&#039;&#039;arh&#039;&#039;&#039; - архивные &lt;br /&gt;
&lt;br /&gt;
Если передать пустое значение то используется all. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;shifrfir&#039;&#039;&#039; - шифр фирмы Клиента берется из [[ClientTbmOut|ClientTbmOut]] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dateFrom&#039;&#039;&#039; и &#039;&#039;&#039;dateTo&#039;&#039;&#039; - задает диапазон отбора по датам. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;from&#039;&#039;&#039; - начальная позиция получения списка. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;size&#039;&#039;&#039; - размер получения списка (список получается с позиции from до позиции from+size). from и size - используются для пагинации по списку. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;orderby&#039;&#039;&#039; - сортировка по списку (сейчас не используется). &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[ArrayOfNavZkMain|ArrayOfNavZkMain]] &#039;&#039;&#039;getZkMainListByParam(String tab, Long shifrfir, Date dateFrom,Date dateTo, int from, int size, String orderby) throws Exception&#039;&#039;&#039; - получить список заявок по входным параметрам &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tab&#039;&#039;&#039; - может принимать следующие значения: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;all&#039;&#039;&#039; - все заявки &lt;br /&gt;
* &#039;&#039;&#039;sent&#039;&#039;&#039; - отправленные &lt;br /&gt;
* &#039;&#039;&#039;work&#039;&#039;&#039; - в работе &lt;br /&gt;
* &#039;&#039;&#039;arh&#039;&#039;&#039; - архивные &lt;br /&gt;
&lt;br /&gt;
Если передать пустое значение то используется all. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;shifrfir&#039;&#039;&#039; - шифр фирмы Клиента берется из [[ClientTbmOut|ClientTbmOut]] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dateFrom&#039;&#039;&#039; и &#039;&#039;&#039;dateTo&#039;&#039;&#039; - задает диапазон отбора по датам. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;from&#039;&#039;&#039; - начальная позиция получения списка. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;size&#039;&#039;&#039; - размер получения списка (список получается с позиции from до позиции from+size). from и size - используются для пагинации по списку. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;orderby&#039;&#039;&#039; - сортировка по списку (сейчас не используется). &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Порядок прохождения заявки Клиента через сервисы ТБМ  ===&lt;br /&gt;
В общем случае работа с заявкой осуществляется следующим образом: &lt;br /&gt;
# Создается заявка методом createZkMain&lt;br /&gt;
# если необходимо в заявку вносятся правки с помощью метода updateZkMain (офлайн режим) или добавляются артикулы построчно с помощью методов zkMainAddArt (онлайн режим). Получить перечень кодов заявок можно с помощью метода getZkMainIdListByParam, получить информацию по заявке с помощью метода getZkMainById&lt;br /&gt;
# Если Клиент набирает заявку постепенно в течении дня, но хочет поставить резерв на этот товар, то он может использовать метод zkMainActionReserv&lt;br /&gt;
# Когда заявка полностью готова, то с помощью метода zkMainActionSend можно отправить заявку в обработку ТБМ. Этот метод инициирует обработку заявки: по заявке выставляется резерв по товару, выставляются счета.&lt;br /&gt;
# После того как заявка обработана она считается отправленной и её правка запрещена. Вся работа после этого ведётся со счетами, выставленными по данной заявке. Более подробно работа со счетами описана в соответствующем разделе.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Перечень сервисов для работы с заявками&#039;&#039;  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[NavZkMainOut|NavZkMainOut]] createZkMain([[NavZkMainIn|NavZkMainIn]] zkMainIn) throws Exception&#039;&#039;&#039; - метод позволяет создать и заполнить заявку в системе ТБМ-Online, по входящей заявке [[NavZkMainIn|zkMainIn]]. &lt;br /&gt;
Структура [[NavZkMainIn|zkMainIn]] - предварительно создается и заполняется на стороне Клиента. Метод возвращает созданную заявку со всеми заполненными полями. В случае если метод не может создать заявку выбрасывается исключение которое надо обработать.&lt;br /&gt;
&lt;br /&gt;
Если заявка удачно обновилась, то метод возвращает обновленный [[NavZkMainOut|NavZkMainOut]]. [[NavZkMainOut|NavZkMainOut]] имеет поле serviceMessage типа [[ServiceMessage]]. Необходимо предусмотреть обработку событий на Клиенте. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[NavZkMainOut|NavZkMainOut]] &#039;&#039;&#039;createZkMainByShiFrfir(Long shifrFir) throws Exception&#039;&#039;&#039; - создать новую заявку в системе ТБМ-Online, по шифру фирмы (shifrFir) Клиента. Шифр фирмы берется из структуры [[ClientTbmOut|ClientTbmOut]]. Метод возвращает созданную заявку по Клиенту. В случае если метод не может создать заявку выбрасывается исключение которое надо обработать. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[NavZkMainOut|NavZkMainOut]] &#039;&#039;&#039;updateZkMain([[NavZkMainIn|NavZkMainIn]] zkMainIn) throws Exception&#039;&#039;&#039; - обновить заявку целиком в системе ТБМ-Online, по входящей заявке. Метод возвращает обновленную заявку со всеми обновленными полями. В случае если метод не может обновить заявку выбрасывается исключение которое надо обработать. &lt;br /&gt;
Если заявка удачно обновилась то метод возвращает обновленный NavZkMainOut. NavZkMainOut имеет поле serviceMessage - это структура следующего типа [[ServiceMessage]]. Необходимо предусмотреть обработку событий на Клиенте. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[NavZkMainOut|NavZkMainOut]] &#039;&#039;&#039;zkMainActionSend(Long zkmain_id) throws Exception&#039;&#039;&#039; - метод посылает заявку на обработку в ТБМ - Online. Если заявка не может быть отправлена то выбрасыватеся исключение которое надо обработать. [[NavZkMainOut|NavZkMainOut]] имеет поле serviceMessage - это структура следующего типа [[ServiceMessage]]. Необходимо предусмотреть обработку событий на Клиенте. Если создание и обновление заявки происходит в режиме offline - то перед вызовом метода нужно вызвать createZkMainTbm или updateZkMainTbm. Для обновления заявки в системе ТБМ - Online. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boolean canZkMainMakeReserv(Long shifrfir) throws Exception&#039;&#039;&#039; - метод проверяет могут ли заявки по данному шифру фирмы быть поставлены на резерв. Методы необходимо вызывать перед постановкой заявки на резерв (методом zkMainActionReserv)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[ZkRezervStatus|ZkRezervStatus]]&#039;&#039;&#039; zkMainActionReserv(Long zkmain_id, String action) throws Exception&#039;&#039;&#039; - посылает или снимает заявку с резерва.&amp;amp;nbsp;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;action&#039;&#039;&#039; - может принимать два значения:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;rezerv&#039;&#039;&#039; - поставить на резерв &amp;lt;br&amp;gt;  &lt;br /&gt;
* &#039;&#039;&#039;unrezerv &#039;&#039;&#039;- снять с резерва&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
При отправке заяки на резерв статус заявки меняется на 6. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Если на Клиенте содержимое заявки изменилось то перед отправкой заявки на резерв ее необходимо обновить в системе ТБМ - online методом &#039;&#039;&#039;updateZkMain&#039;&#039;&#039;.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Перед отправкой заявки на резерв необходимо вызвать метод для постановки на резерв canMakeReserv.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Выходой параметр метода является структура [[ZkRezervStatus|ZkRezervStatus]]. В структуре ZkRezervStatus есть два поля: status - статус заявки и поле hasBlocked. Если hasBlocked = true - то резерв по заявке еще не выделен и заявка находится на обработке. Если hasBlocked = false, то заявка поставлена на резерв и Клиент может ее обновить. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Т.к. резервирование товара на складе происходит в течение некоторого времени, то необходимо на Клиенте предусмотреть механизм получения оперативных данных по заявке. На стороне Клиента желательно организавать переодические запросы к серверу для получения статуса заявки.&amp;amp;nbsp; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
В случае если заявку не удалось отправить на резервирование выбрасывается ошибка. &lt;br /&gt;
&lt;br /&gt;
Для мониторинга обновления поставки заявки на резерв есть метод -&amp;amp;nbsp; canUpdateZkMainReserv или использовать общий метод поиска поиска заявок по дате модификации getZkMainIdListByModifyDate(shifrFir,modifyDate).&lt;br /&gt;
&lt;br /&gt;
После постановки заявки на резерв с ней можно работать как с обычной заявкой.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[ZkRezervStatus|ZkRezervStatus]] &#039;&#039;&#039;canUpdateZkMainReserv(Long zkmain_id) throws Exception&#039;&#039;&#039; - Метод мониторинга состояния заявки после постановки (снятия) заявки на резерв (с резерва). Если в ZkRezervStatus hasBlocked = true то заявка еще обрабатывается. Если в ZkRezervStatus hasBlocked = false то заявка поставлена на резерв, Клиент может ее обновить. &lt;br /&gt;
&lt;br /&gt;
Мониторинг состояния изменения заявки можно организовать и общим методом по дате модификации getZkMainIdListByModifyDate(shifrFir,modifyDate)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;[[ServiceMessage ]] checkZkMainItems([[NavZkMainIn|NavZkMainIn]] zkMainIn) throws Exception&#039;&#039;&#039; - метод проверяет есть ли в во входящей заявке zkMainIn позиции с артикулами которые не могут быть добавлены в заявку ТБМ, по какой либо причине.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;String removeZkMain(Long zkMainId) throws Exception&#039;&#039;&#039; - удалить заявку из системы ТБМ по входящему Id заявки.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[NavZkMainOut|NavZkMainOut]] confirmZkMainDeficit(Long zkMainId) throws Exception&#039;&#039;&#039; - подтвердить дефицит по заявки, в качестве параметра передается Id заявки. Метод возвращает обновленную структуру заявки.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;[[NavZkOut|NavZkOut]] updateDeficitByZkId(Long navZkId,BigDecimal newDefkol,Integer reasonId) throws Exception - подтвердить дефицит по товарной позиции в заявке, где &lt;br /&gt;
navZkId - код товарной позиции заявки&lt;br /&gt;
newDefkol - новое количество дефицита.&lt;br /&gt;
reasonId - код причины отказа от дефицита, заполняется из справочника (	http://www.tbm.ru/tbm-services/LogicExtSoap1Port?wsdl метод getDeficitReason())&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[NavZkOut|NavZkOut]] rejectDeficitByZkId(Long navZkId, Integer reasonId)&#039;&#039;&#039; - отказаться от дефицита по товарной позиции, где  navZkId - код товарной позиции в заявки, reasonId - код причины отказа от дефицита, заполняется из справочника (	http://www.tbm.ru/tbm-services/LogicExtSoap1Port?wsdl метод getDeficitReason())&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[NavZkMainOut|NavZkMainOut]] copyZkMain(Long zkMainId, Long shifrFir) throws Exception&#039;&#039;&#039; - копирование заявки по Id - заявки и шифру фирмы, возвращает новую заяву.&lt;br /&gt;
&lt;br /&gt;
zkMainId  - уникальный идентификатор копированной заявки.&lt;br /&gt;
&lt;br /&gt;
shifrFir - шифр фирмы для которой копируется заявка.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;[[NavZkOut|NavZkOut]] zkMainAddArt(Long zkMainId, String art, BigDecimal kol) throws Exception&#039;&#039;&#039; - добавляет артикулы в заявку &lt;br /&gt;
&lt;br /&gt;
zkMainId - код заявки&lt;br /&gt;
&lt;br /&gt;
art - артикул &lt;br /&gt;
&lt;br /&gt;
kol - количество в товара.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;String zkMainAddListZk(Long zkMainId, [[ArrayOfNavZKIn|ArrayOfNavZKIn]] zkList) throws Exception&#039;&#039;&#039;  - добавляет список позиций zkList в заявку по коду заявки zkMainId. Если список добавлен успешно то возвращает success. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;String zkMainRemoveZK(Long zkMainId, Long zkId) throws Exception&#039;&#039;&#039; - удаляет товарную позицию в заявке в системе ТБМ. Где zkMainId - код заявки, zkId - код товарной позиции в заявке. В случае успеха возвращает success.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;String zkMainClear(Long zkMainId) throws Exception&#039;&#039;&#039; - очищает все товарные позиции в заявке. zkMainId - уникальный код заявки.&lt;br /&gt;
В случае успеха возвращает success.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&#039;&#039;Счета&#039;&#039;&#039;&#039;&#039;  ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание ===&lt;br /&gt;
* После отправки заявки в течении 5 минут формируются счета на все товары, которые в данный момент доступны на складе. &lt;br /&gt;
* В общем случае по одной заявке может быть сформировано несколько счетов. &lt;br /&gt;
* Если при отправке в заявке не было указано автоматическое подтверждение счетов, то необходимо подтвердить каждый счет. Подтвердить можно целиком счет с помощью метода snMainAction. Перед подтверждением можно исправить количества в конкретном счете на желаемое с помощью метода snMainUpdateCount. &lt;br /&gt;
* По подтвержденному счету можно запросить печатную форму в формате PDF с помощью метода downloadSnMainPdf.&lt;br /&gt;
* После оплаты счета, проходит проверка счета бухгалтерией и начинается формирование товара для отгрузки покупателю. В этот момент формируются отгрузочные документы: Счет-фактура и товарная накладная (ТОРГ-12). &lt;br /&gt;
* Счет-фактура содержит информацию по товарам, ценам, стоимостям и ГТД. В общем случае по одной позиции заказанного товара может быть несколько строчек в счете фактуре. &lt;br /&gt;
* Товарная накладная отдельно не формируется. Сформировать товарную накладную можно из счета-фактуры группировкой всех количеств товара по артикулам.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WSDL описания сервисов по работе со счетами по протоколу soap 1.1 находится http://www.tbm.ru/tbm-services/SnMainExtSoap1Port?wsdl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfSnMain|ArrayOfSnMain]] getSnMainListByZk(Long zkMainId) throws Exception&#039;&#039;&#039; - вернуть список счетов привязанных к заявке по коду заявке. &lt;br /&gt;
&lt;br /&gt;
где &#039;&#039;&#039;zkMainId&#039;&#039;&#039; - уникальный код заявки. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfLong|ArrayOfLong]] getSnMainIdListByZk(Long zkMainId) throws Exception&#039;&#039;&#039; - вернуть список ID счетов привязанных к заявке по коду заявке. &lt;br /&gt;
&lt;br /&gt;
где &#039;&#039;&#039;zkMainId&#039;&#039;&#039; - уникальный код заявки. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfLong|ArrayOfLong]] getSnMainIdListByParam(String tab,Long shifrFir,Date dateFrom,Date dateTo,Date modifyDate,Integer from, Integer size,String orderby) throws Exception&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
вернуть список ID - счетов по входным параметрам. Все параметры в методе являются не обязательными.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tab&#039;&#039;&#039; - может принимать следующие значения: &lt;br /&gt;
&lt;br /&gt;
* all - все счета &lt;br /&gt;
* sub - требуют подтверждение &lt;br /&gt;
* work - счета которые находятся в работе &lt;br /&gt;
* arh - архивные счета &lt;br /&gt;
&lt;br /&gt;
Если передать пустое значение то используется all. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;shifrfir&#039;&#039;&#039; - шифр фирмы Клиента берется из ClientTbmOut &lt;br /&gt;
&#039;&#039;&#039;dateFrom&#039;&#039;&#039; и &#039;&#039;&#039;dateTo&#039;&#039;&#039; - задает диапазон отбора по датам. &lt;br /&gt;
&#039;&#039;&#039;modifyDate&#039;&#039;&#039; - дата последнего изменения счета &lt;br /&gt;
&#039;&#039;&#039;from&#039;&#039;&#039; - начальная позиция получения списка. &lt;br /&gt;
&#039;&#039;&#039;size&#039;&#039;&#039; - размер получения списка (список получается с позиции from до позиции from+size). from и size - используются для пагинации по списку. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;orderby&#039;&#039;&#039; - сортировка по списку (сейчас не используется).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;modifyDate&#039;&#039;&#039; - дата проверки изменения. Если в modifyDate передается не пустое значение, то метод будет возвращать все ID счетов которые были изменены пос же чем modifyDate . С помощью поля modifyDate можно производить постоянный мониторинг появления и изменения счетов.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Long getCountSnMainByParam (String tab,Long shifrFir,Date dateFrom,Date dateTo,Date modifyDate) throws Exception&#039;&#039;&#039; - получить количество счетов по входным параметрам &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tab&#039;&#039;&#039; - может принимать следующие значения: &lt;br /&gt;
&lt;br /&gt;
* all - все счета &lt;br /&gt;
* sub - требуют подтверждение &lt;br /&gt;
* work - счета которые находятся в работе &lt;br /&gt;
* arh - архивные счета &lt;br /&gt;
&lt;br /&gt;
Если передать пустое значение то используется all. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;shifrFir&#039;&#039;&#039; - шифр фирмы Клиента берется из ClientTbmOut &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dateFrom&#039;&#039;&#039; и &#039;&#039;&#039;dateTo&#039;&#039;&#039; - задает диапазон отбора по датам. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;modifyDate&#039;&#039;&#039; - дата последнего изменения счетов, если этот параметр не пустой то будут возвращены все счета дата изменения которых позже даты modifyDate  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[SnMainOut|SnMainOut]] getSnMainById(Long snMainId) throws Exception&#039;&#039;&#039; - получить счет по уникальному коду счета.&lt;br /&gt;
&lt;br /&gt;
snMainId - уникальный код счета.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfSnMain|ArrayOfSnMain]] getSnMainListByParam(String tab,Long shifrFir,Date dateFrom,Date dateTo,Date modifyDate,Integer from,Integer size,String orderby) throws Exception&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- вернуть список счетов по входным параметрам. &lt;br /&gt;
&lt;br /&gt;
Все параметры являются не обязательными.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tab&#039;&#039;&#039; - может принимать следующие значения: &lt;br /&gt;
&lt;br /&gt;
* all - все счета &lt;br /&gt;
* sub - требуют подтверждение &lt;br /&gt;
* work - счета которые находятся в работе &lt;br /&gt;
* arh - архивные счета &lt;br /&gt;
&lt;br /&gt;
Если передать пустое значение то используется all. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;shifrFir&#039;&#039;&#039; - шифр фирмы Клиента берется из ClientTbmOut &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dateFrom&#039;&#039;&#039; и &#039;&#039;&#039;dateTo&#039;&#039;&#039; - задает диапазон отбора по датам. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;modifyDate&#039;&#039;&#039; - дата последнего изменения счетов, если этот параметр не пустой то будут возвращены все счета дата изменения которых позже даты modifyDate&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;from&#039;&#039;&#039; - начальная позиция получения списка. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;size&#039;&#039;&#039; - размер получения списка (список получается с позиции from до позиции from+size). from и size - используются для пагинации по списку. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;orderby&#039;&#039;&#039; - сортировка по списку (сейчас не используется). &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfSnMain|ArrayOfSnMain]] getSnMainListByIdList([[ArrayOfLong|ArrayOfLong]] idList) throws Exception&#039;&#039;&#039; - вернуть список счетов по списку уникальных идентификаторов счетов. &lt;br /&gt;
&lt;br /&gt;
idList - список уникальных идентификаторов счетов. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[SnMainOut]] snMainAction(Long snMainId, String action) throws Exception&#039;&#039;&#039; - метод реализует бизнес действия над счетом. &lt;br /&gt;
&lt;br /&gt;
Возможные действия &#039;&#039;&#039;action&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
* submit - подтвердить счет&lt;br /&gt;
* cancel - отказаться от счета&lt;br /&gt;
&lt;br /&gt;
Действия которые возможны над счетом можно получить из [[SnMainOut|SnMainOut]].action &lt;br /&gt;
&lt;br /&gt;
snMainId - уникальный код счета. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[SnMainOut|SnMainOut]] snMainUpdateCount(Long snId,BigDecimal kol) throws Exception&#039;&#039;&#039; - &lt;br /&gt;
&lt;br /&gt;
изменить количество товара по позиции в строке по счету.&lt;br /&gt;
&lt;br /&gt;
snId - код позиции строки в табличной части счета &lt;br /&gt;
&lt;br /&gt;
kol - новое количество в счете. &lt;br /&gt;
&lt;br /&gt;
0&amp;amp;lt;=kol&amp;amp;lt;= [[SnOut|SnOut]].vist &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[SnMainOut|SnMainOut]] snmainUpdateListCount([[ArrayOfMapKol|ArrayOfMapKol]] mapKolList) throws Exception&#039;&#039;&#039; - изменить количество товара по позиции в строке по счету.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mapKol&#039;&#039;&#039; - список пары значений: &lt;br /&gt;
&lt;br /&gt;
Long kod - код позиции строки в счете &lt;br /&gt;
&lt;br /&gt;
BigDecimal kol - новое количество по позиции в счете. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boolean canDownloadSnMainPdf(Long idSnMain) throws Exception&#039;&#039;&#039;  - метод проверяет есть ли печатная форма счета.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataHandler downloadSnMainPdf(Long idSnMain) throws Exception&#039;&#039;&#039; - получить печатную форму счета по коду счета idSnMain.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[InvoiceOut|InvoiceOut]] getInvoice(Long idSnMain, Integer type) throws Exception&#039;&#039;&#039;  - возвращает счет-фактуру по уникальному коду счета idSnMain.&lt;br /&gt;
&lt;br /&gt;
Параметр type - сделан на будущее, пока не используется.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfLong|ArrayOfLong]] getInvoiceIdCollectionByModifyDate(Long shifrFir, Date modifyDate, Integer type) throws Exception&#039;&#039;&#039;  - получить список уникальных идентификаторов счет-фактур по входящим параметрам &lt;br /&gt;
&lt;br /&gt;
shifrFir - шифр фирмы пользоватея - не обязательный параметр, если (shifrFir=null) не передается то возвращаются коды всех счет фактуры пользователя.&lt;br /&gt;
&lt;br /&gt;
modifyDate - дата последнего изменения относительно которой производится поиск счет фактур. Не обязательный параметр.&lt;br /&gt;
&lt;br /&gt;
Если в метод в качестве параметра передается modifyDate - то метод возвращает список уникальных кодов. счет фактур пользователя, которые были изменены позже чем modifyDate. По modifyDate можно производить мониторинг изменившихся счет фактур пользователя.&lt;br /&gt;
&lt;br /&gt;
Параметр type - сделан на будущее, пока не используется.&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[InvoiceOut|InvoiceOut]] getInvoiceById (Long idInvoice) throws Exception&#039;&#039;&#039; - возвращает счет фактуру по уникальному коду.&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&#039;&#039;Взаимозачеты&#039;&#039;&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;wsdl для SOAP 1.1. находится по адресу http://www.tbm.ru/tbm-services/VzaExtSoap1Port?wsdl&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boolean canMakeVza() throws Exception&#039;&#039;&#039; - проверяет доступны ли или нет для данного пользователя взаимозачеты. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[VzaInfoOut|VzaInfoOut]] vzaGetInfo(Long shifrFir) throws Exception&#039;&#039;&#039; - вернуть взаимозачёт по фирме &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfVzaOpl]] vzaGetOpl(Long shifrFir) throws Exception&#039;&#039;&#039; - вернуть перечень оплат по фирме &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfVzaOtp]] vzaGetOtp(Long shifrFir) throws Exception&#039;&#039;&#039; - вернуть перечень отгрузок по фирме&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&#039;&#039;Работа с рекламациями&#039;&#039;&#039;&#039;&#039;  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WSDL описания сервисов по работе со счетами по протоколу soap 1.1 http://www.tbm.ru:80/tbm-services/ReclamationExtSoap1Port?wsdl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfLong]] getReclamationsIdList(Long shifrFir,Date dateFrom,Date dateTo,String tab,Date modifyDate,Integer from,		Integer size, String orderby) throws Exception&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Получить список ID рекламаций по входным параметрам.&lt;br /&gt;
&lt;br /&gt;
Все параметры являются не обязательными.&lt;br /&gt;
&lt;br /&gt;
shifrFir - шифр фирмы.&lt;br /&gt;
&lt;br /&gt;
dateFrom - дата начала отбора  &lt;br /&gt;
&lt;br /&gt;
dateTo - дата конца отбора&lt;br /&gt;
&lt;br /&gt;
tab - принимает следующие значения&lt;br /&gt;
&lt;br /&gt;
* all - вернуть все рекламации&lt;br /&gt;
* arh - закрытые рекламации&lt;br /&gt;
* sub - на редактирование&lt;br /&gt;
&lt;br /&gt;
modifyDate - дата последней модификации рекламации, возвращаются те рекламации которые были изменены позже чем modifyDate.&lt;br /&gt;
&lt;br /&gt;
from - начальная позиция списка&lt;br /&gt;
&lt;br /&gt;
size - количество сколько надо вернуть с позиции from, т.е. метод вернет from + size элементов.&lt;br /&gt;
&lt;br /&gt;
from, size - необходимы для пагинации.&lt;br /&gt;
&lt;br /&gt;
orderby - сортировка (не используется)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;С помощью modifyDate можно организовать мониторинг обновленных рекламаций в систем.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ArrayOfReclamation]] getReclamationsList(Long shifrFir,Date dateFrom,Date dateTo,String tab,Date modifyDate,Integer from,		Integer size, String orderby) throws Exception&#039;&#039;&#039; - вернуть список рекламаций по входным параметрам описание параметров аналогичен методу getReclamationsIdList&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Long getReclamationsCount(Long shifrFir,Date dateFrom,Date dateTo,String tab,Date modifyDate) throws Exception&#039;&#039;&#039; - получить количество рекламаций по параметрам, описание параметров аналогичен методу getReclamationsIdList&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ReclamationOut]] getReclamation(Long reclamationId) throws Exception&#039;&#039;&#039;  - получить рекламацию по reclamationId уникальному индентификатору рекламации.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
boolean isHaveReclamation(Long snMainId) throws Exception - метод возвращает true если на счет с кодом snMainId могут быть созданы рекламации созданы рекламации.&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
В счете появился признак того что могут ли на счет создаваться рекламации [[SnMainOut]].isHaveReclamation либо вызвать метод isHaveReclamation(Long snMainId)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ReclamationOut]] creatReclamationBySnMain(Long snMainId) throws Exception&#039;&#039;&#039; - создать рекламацию по коду счета. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ReclamationOut]] updateOrCreatReclamation([[ReclamationIn]] reclamationIn) throws Exception&#039;&#039;&#039;  - обновить или создать рекламацию по входящей рекламации.&lt;br /&gt;
&lt;br /&gt;
Алгоритм создания и обновления рекламации&lt;br /&gt;
&lt;br /&gt;
Если [[ReclamationIn]].ID - не передан или передан, но рекламация по данному [[ReclamationIn]].ID не найдена в базе, то по [[ReclamationIn]].kodSnMain создается новая рекламация. Если в этом случае [[ReclamationIn]].kodSnMain = null, то выбрасывается исключение. &lt;br /&gt;
&lt;br /&gt;
Если [[ReclamationIn]].ID - передан и рекламация найдена в базе, то происходит ее обновление.&lt;br /&gt;
&lt;br /&gt;
При этом если создается новая позиция по рекламации (при создании рекламации - позиция всегда новая), то в этом случаи заполнять [[ReclamationItemIn]].ID и [[ReclamationItemIn]].recId - не нужно. Необходимо заполнить только [[ReclamationItemIn]].kodTov  или [[ReclamationItemIn]].art, количество [[ReclamationItemIn]].amount и тип позиции рекламации [[ReclamationItemIn]].typeReclamId.&lt;br /&gt;
&lt;br /&gt;
При обновлении позиции по рекламации необходимо передавать [[ReclamationItemIn]].ID, если по ID позиция не найдена то создается новая.&lt;br /&gt;
&lt;br /&gt;
Поиск товара происходит следующим образом. В начале по коду ищется товар, если по коду товар не найден то идет поиск по артикулу Клиента в базе соответствия, если и в этом случае товар не найден то ищется товар по артикулу ТБМ.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ReclamationItemOut]] updateOrCreatItemReclamation([[ReclamationItemIn]] reclamItemIn) throws Exception&#039;&#039;&#039;  - создает или обновляет позицию по рекламации. В данном случае [[ReclamationItemIn]].recId - является обязательным. Если [[ReclamationItemIn]].ID не передана или передана но в базе позиция не найдена то создается новая позиция, если [[ReclamationItemIn]].ID - передан и по нему найдена позиция то происходит ее обновление.&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ServiceMessage]] deleteReclamation(Long reclamId) throws Exception&#039;&#039;&#039; - удалить рекламацию по reclamId.&lt;br /&gt;
&lt;br /&gt;
Возвращает сообщение [[ServiceMessage]]. Если рекламация бала успешно удалена то возвращается [[ServiceMessage]].status = success, в противном случае либо исключение либо unsuccess&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ServiceMessage]] deleteItemReclamation([[ReclamationItemIn]] reclamItemIn) throws Exception&#039;&#039;&#039; - метод удаляет позицию рекламации.&lt;br /&gt;
Возвращает сообщение [[ServiceMessage]]. Если позиция бала успешно удалена то возвращается [[ServiceMessage]].status = success, в противном случае либо исключение либо unsuccess.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[ReclamationOut]] sendReclamatiom(Long reclamId) throws Exception&#039;&#039;&#039; - послать рекламацию на обработку.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:Программное обеспечение]]&lt;/div&gt;</summary>
		<author><name>Seeedstudio</name></author>
	</entry>
	<entry>
		<id>https://wiki.tbm.ru/index.php?title=%D0%A2%D0%91%D0%9C-_%D0%9E%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD._%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B&amp;diff=15977</id>
		<title>ТБМ- Онлайн. Импорт данных примеры</title>
		<link rel="alternate" type="text/html" href="https://wiki.tbm.ru/index.php?title=%D0%A2%D0%91%D0%9C-_%D0%9E%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD._%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B&amp;diff=15977"/>
		<updated>2013-02-08T06:59:33Z</updated>

		<summary type="html">&lt;p&gt;Seeedstudio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-size: medium;&amp;quot;&amp;gt;Импорт данных из Клиентских программ.&amp;lt;/span&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Импорт.&#039;&#039;&#039;&amp;lt;br&amp;gt;Форматы импорта описаны в ЭТ: http://www.tbm.ru/tbm-web/myzk?m=IMPORT – ссылка открывается в п.меню Заявки – щелчком по ссылке: [http://www.tbm.ru/tbm-web/myzk?m=IMPORT Загрузить заявку из файла]&amp;lt;br&amp;gt;Подгружаются заявки импортированные из программ:&amp;lt;br&amp;gt;Навигатор&amp;lt;br&amp;gt;1С:&amp;lt;br&amp;gt;СуперОкна, начиная с версии 4.0 и выше&amp;lt;br&amp;gt;Лабрадор&amp;lt;br&amp;gt;Программа Курбатского (Украина)&amp;lt;br&amp;gt;И других программ, которые формируют файлы в форматах *.txt, *.xml, *.cml, соответствующие описанным требованиям в приводимых выше ссылках.&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;Для успешной подгрузки данных в заявку в электронной торговле необходимо, чтобы артикулы, которые используются в Клиентских программах, соответствовали артикулам ТБМ. Для этого в электронной торговле предусмотрен пункт меню Сервис – Пользовательские артикулы. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Пример.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;1. Файл для подгрузки выглядит следующим образом:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source(s):&#039;&#039;&#039;  [http://www.downloadranking.com  ТБМ- Онлайн]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1564.jpg]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
2. Подгрузка файла в ЭТ: выбрать п.меню Заявки: &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1565.jpg]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
3. Выбирать необходимый файл с помощью кнопки Обзор и нажать кнопку Загрузить:&amp;lt;br&amp;gt;[[Image:Tbm1566.jpg]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; В результате будет выдан протокол загрузки:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1567.jpg]] &lt;br /&gt;
&lt;br /&gt;
Если предварительно в п.меню сервис не введено соответствие артикулов Клиента – артикулам ТБМ, то необходимо по результатам подгрузки наполнить базу соответствия. &lt;br /&gt;
&lt;br /&gt;
4. Заполнение соответствия артикулов производится в п.меню Сервис – Настройки –Пользовательские артикулы:.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1568.jpg]] &lt;br /&gt;
&lt;br /&gt;
Если в ЭТ уже создавались заявки, нажмите кнопку Загрузить из заявок.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1569.jpg]] &lt;br /&gt;
&lt;br /&gt;
Если до использования ЭТ, заявки создавались в программе Навигатор, то можно для наполнения базы артикулов, подгрузить несколько заявок на различные комплектующие из текстового файла, который формирует Навигатор.&amp;lt;br&amp;gt;С помощью поиска – поле артикул/наименование ищем артикул ТБМ, который не был подгружен в заявку. Например, предположим, что артикулу Клиента CR600A01 соответствует артикул ТБМ R600A01:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1570.jpg]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Если артикул найден, нажимаем на кнопку Редактировать, заполняем поля и нажимаем кнопку Сохранить:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1571.jpg]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Обязательным для заполнения является поле Артикул – в него вводится артикул Клиента.&amp;lt;br&amp;gt;Если Клиент планирует выгрузку из ЭТ счетов в собственное программное обеспечение(ПО), то остальные данные заполняются в соответствии с требованиями этого ПО.&amp;lt;br&amp;gt;Если артикул не найден, &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1572.jpg]] &lt;br /&gt;
&lt;br /&gt;
нажимаем на кнопку Добавить, заполняем поля, нажимаем кнопку Сохранить:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1573.jpg]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Обязательными для заполнения являются поля Артикул ТБМ – в него вводится артикул ТБМ и Артикул – в него вводится артикул Клиента. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Текстовый ввод в заявку.&#039;&#039;&#039; Является разновидностью импорта данных.&amp;lt;br&amp;gt;Для текстового ввода данных в заявку, нажмите Тектовый ввод: &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1574.jpg]] &lt;br /&gt;
&lt;br /&gt;
Формат текстового ввода описан в самом окне ввода.&amp;lt;br&amp;gt;Если у Клиента есть текстовый файл в формате артикул&amp;amp;lt;кнопка TAB&amp;amp;gt;количество или &amp;lt;br&amp;gt;Артикул &amp;amp;lt;пробел тире пробел&amp;amp;gt;количество, то можно скопировать данные в буфер обмена и вставить в окно текстового ввода.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример 1. Подгрузка из текстового файла. &#039;&#039;&#039;&amp;lt;br&amp;gt;В исходном файле выделяем данные – копируем в буфер обмена (клавиши ctrl+C на клавиатуре) &lt;br /&gt;
&lt;br /&gt;
[[Image:Tbm1575.jpg]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Переходим в окно текстового ввода ЭТ, нажимаем вставить из буфера (клавиши ctrl+V на клавиатуре) и кнопку Добавить.[[Image:It6.JPG]]В примере использовался файл *txt, аналогично можно подгружать данные из любых текстовый файлов, В &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
В примере использовался файл *txt, аналогично можно подгружать данные из любых текстовый файлов, главное, чтобы соблюдался формат. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример 2. Подгрузка из Excel.&#039;&#039;&#039;&amp;lt;br&amp;gt;Для подгрузки данных из файлов, созданных с помощью программы Excel, необходимо, чтобы столбцы артикул и количество стояли рядом.&amp;lt;br&amp;gt;Исходный файл &lt;br /&gt;
&lt;br /&gt;
[[Image:It7.JPG]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Необходимо преобразовать следующим образом – скрыть столбцы A,B и D. Для этого выделить столбцы с помощью мыши (щелчками по заголовкам столбцов A,B,D), щелкнуть правой кнопкой мыши, в контекстном меню выбрать Скрыть (здесь описан один из вариантов преобразования данных для подгрузки, можно воспользоваться удалением столбцов, копированием/вставкой и т.д.)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Image:It8.JPG]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Результат преобразования: &lt;br /&gt;
&lt;br /&gt;
[[Image:It9.JPG]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Далее действия аналогичны действиям, описанным в примере 1. Копируем данные в буфер, вставляем в окно текстового ввода ЭТ, нажимаем кнопку Добавить. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
[[Category:ТБМ- Онлайн]]&lt;br /&gt;
[[Category:Программное обеспечение]]&lt;/div&gt;</summary>
		<author><name>Seeedstudio</name></author>
	</entry>
</feed>