|
Метка: удалено перенаправление |
| (не показано 5 промежуточных версий 3 участников) |
| Строка 1: |
Строка 1: |
| | == Выгрузка ассортимента == | | == Выгрузка ассортимента == |
| | | | |
| − | Название файла: assort.txt | + | Название файла: XXXXX.assort.txt, где XXXXX - идентификатор склада |
| | Периодичность: раз в сутки | | Периодичность: раз в сутки |
| | | | |
| Строка 20: |
Строка 20: |
| | # вес - вес товара в килограммах | | # вес - вес товара в килограммах |
| | # объём - объём товара в кубических дециметрах | | # объём - объём товара в кубических дециметрах |
| − |
| |
| − | == Важные моменты при настройке файлообмена ==
| |
| − |
| |
| − | Тут описывается наш опыт, позволяющий вам успешно обойти «грабли».
| |
| − |
| |
| − | Список процессов (этапов) и недопущение проблем
| |
| − |
| |
| − | # Процесс генерации выгрузок (экспорта данных в файл из 1C, например)
| |
| − | # Процесс передачи (аплоада или даунлоада) файлов
| |
| − | # Процесс импорта выгрузок (из файла в 1C или в базу портала)
| |
| − |
| |
| − | Три вышеописанных процесса всегда связаны друг с другом и выполняются в следующей последовательности: 1-2-3. Важно, чтобы следующий процесс никогда не начинался, пока не закончится предыдущий (например 2 еще не закончился, а уже начался 3). Также важно, набор данных с которыми работает процесс (этап) не менялся, пока процесс не завершит работу. Теперь опишем, как нужно проектировать скрипты, чтобы эти два правила выполнялись всегда.
| |
| − |
| |
| − | # Генерация выгрузок. Пока выгрузка генерируется (пока идёт выгрузка данных в файл), файл должен иметь расширение t__. После завершения выгрузки (сброса всех данных в файл), происходит переименование расширения файла из t__ в tx_. <font color=red><i>Внимание программистам 1C! Если 1C умеет скидывать данные в файл «мгновенно», то это вовсе не означает, что жёсткий диск работает мгновенно и мгновенно записывает файл, а значит на это полагаться никак нельзя! Поэтому и требуется жонглирование с расширениями (или переносами между каталогами, если вам так будет удобнее)</i></font>.
| |
| − | # Каждую минуту (или каждые 2-3 минуты) запускается скрипт для передачи файлов на портал Мы рекомендуем использовать утилиту ncftpput исключительно из-за опции –DD, которая позволяет выполнять удаление файла, только если файл полностью скопирован. Этот же скрипт должен переименовать файлы после переноса из tx_ в txt.
| |
| − | # Скрипт на стороне портала должен начать обрабатывать файлы, для этого скрипт переносит все *.txt файлы во временную папку, которые затем сразу же обрабатывает. После обработки файлы переносятся в архив, где на всякий случай хранятся одну неделю.
| |
| − |
| |
| − | <font color=red><i>Вышеописанный процесс подходит для передачи данных от 1C к порталу. Если требуется передача данных от портала к 1C (заказы и т.д.), то описанные важные моменты учитываются аналогично.
| |
| − |
| |
| − | Кроме того, при настройке передачи данных от портала к 1С файлов выгрузок заказов необходимо удалять файлы выгрузок по окончании процесса скачивания.</i></font>
| |
| − |
| |
| − | Пример использования утилиты:
| |
| − | ncftpput -S .tmp -DD -u ftp_login -p XXXXX ftp.host.ru /path *.tx_ *.txt
| |
| − |
| |
| − | Бесплатный пакет утилит ncftp можно скачать по [http://www.ncftp.com/download/ ссылке].
| |
| − |
| |
| | | | |
| | [[Category:Dataexchange]] | | [[Category:Dataexchange]] |
Выгрузка ассортимента
Название файла: XXXXX.assort.txt, где XXXXX - идентификатор склада
Периодичность: раз в сутки
Формат: текстовый файл в кодировке Windows-1251, значения полей разделены табуляцией. Если какой-либо параметр не может быть заполнен, то он пропускается, т. е. разделители (табуляции) идут подряд. Каждая строка содержит 8 полей: бренд, номер по бренду, описание, цена, наличие, код товара, вес, объём. Каждый товар (уникальное сочетание пары бренд-номер) должен встречаться в файле только один раз!
Пример содержимого файла (показаны только три первых товара, символ табуляции обозначен " <таб> "):
Febi <таб> 01089 <таб> Антифриз <таб> 190.0 <таб> 73 <таб> 010023 <таб> 2.4 <таб> 1.5
Febi <таб> 09918 <таб> Колодки тормозные передние <таб> 820 <таб> <таб> 02177 <таб> <таб> 2,32
Ruville <таб> 01089 <таб> Антифриз <таб> 190.0 <таб> 10 <таб> 100034 <таб> 2.4 <таб> 1.5
Внимание, нужно понимать следующее:
- в значении любого поля должны отсутствовать знаки табуляции, т.к. они являются разделителями
- в качестве разделителя дробного числа может использоваться запятая или точка
- цена - цена товара в валюте прайса
- наличие - текущий остаток на складе
- код товара - код товара в 1С, этот параметр может быть необязательным
- вес - вес товара в килограммах
- объём - объём товара в кубических дециметрах