Рассмотрим реализацию двустороннего обмена данными с использованием API-сервиса сайта поставщика в режиме ответственного хранения. Алгоритм движения товаров и обмена документами следующий:
а) есть склад, расположенный на территории Партнера;
б) на этот склад поставщик привозит своим транспортом товары по договору ответственного хранения. Юридически товары принадлежат поставщику, он видит в своей программе 1С эти товары на складе "Склад ОХ партнера";
в) Партнер является клиентом поставщика, продает товары поставщика и представляет интернет-магазин поставщика в своем городе;
г) Партнер осуществляет продажи товаров со склада ОХ в режиме реального времени.
Блок-схема:
Реализацию обмена покажем на примере конфигурации 1С УНФ у партнера, который взаимодействует с поставщиком "ООО Пауэр-Интернэшнл-шины" - одним из крупнейших в России поставщиков автомобильных шин и дисков.
Конфигурация 1С УНФ используется типовая с одной только доработкой - в регистре накопления "Запасы принятые" добавлены в регистраторы документы "Оприходование запасов" и "Списание запасов".Эта доработка требуется только в том случае, если на складе ответственного хранения партнера надо скорректировать остатки с помощью документов "Оприходование запасов" и "Списание запасов". Все остальные доработки реализованы в виде расширения конфигурации и внешней обработки. Таким образом почти всегда можно использовать типовую конфигурацию на поддержке.
У поставщика "ООО Пауэр-Интернэшнл-шины" есть сайт интернет-магазина Форточки (https://b2b.4tochki.ru/). С помощью API-сервиса сайта и FTP-сервера можно автоматизировать процессы двухстороннего обмена между поставщиком и партнером.
Рассмотрим подробнее эти процессы.
Поставщик доставляет своим транспортом товары на склад ответственного хранения партнера. Вместе с бумажными документами дополнительно передается через ФТП-сервер XML-файл, содержащий копию поставки, а именно:
реквизиты документа;
перечень всех товаров с указанием артикула, наименования, количества, цены. стоимости, ГТД.
Обмен с поставщиком производится с помощью внешней обработки "Обмен ПИШ-УНФ", подключенной к УНФ.
Для приема XML-файла сначала открывается закладка обработки "ФТП":
Далее осуществляется подключение к серверу ФТП:
Выделяется файл "MovementOfGoods..." и нажимается кнопка "Загрузить". Файл копируется в верхнюю таблицу "Файлы на компьютере пользователя" и в папку на компьютере:
Открываем в обработке закладку "Основная" и производим загрузку в базу партнера XML-файла "MovementOfGoods..." кнопкой "Загрузить данные":
При загрузке автоматически проверяется наличие загружаемых товаров в справочнике "Номенклатура". Если все товары уже есть в справочнике, то сразу будет сформирована "Приходная накладная" с видом операции "Прием на ответственное хранение" Если нет в списке хотя бы одной позиции, то открывается закладка "Форма соответствия":
Здесь можно создать одну позицию товара ("Создать по тек.строке") или сразу все новые по всем пустым строкам ("Создать все"). При создании нового товара программа автоматически обратится по API-сервису к сайту "Форточки", найдет там по артикулу требуемый товар и запишет в базе партнера в карточку нового товара все требуемые реквизиты, параметры, цены и счета учета, и расположит его иерархически в соответствующие категорию, группу и подгруппу:
После создания всех товаров надо нажать кнопку "Ок", тогда откроется закладка "Основная", где по нажатию кнопки "Сформировать документы" будет сформирована "Приходная накладная" с видом операции "Прием на ответственное хранение" :
А в таблице на закладке "Загруженные документы" появится новая строка с созданным документом:
Для использования в УНФ функционала "ответственного хранения" требуется включить в настройках программы учет по партиям. Но в отличии от других конфигураций 1С здесь в УНФ партионный учет реализован своеобразно. Партия совершенно не привязывается к приходной накладной, а является дополнением к каждому элементу справочника "Номенклатура" и предназначена только для разделения товаров на собственные запасы, комиссионные, ответственное хранение и принятые в переработку.. Наименование партии создается пользователем вручную и может состоять из любого набора сведений, принятого у партнера. А поскольку партия создается отдельно вручную для каждой позиции товара, это процесс становится очень громоздким и длительным. В версии до 01.02.2020: для ускорения заполнения документов я принял решение использовать всего два варианта партий: "1" со статусом "Ответственное хранение" и "2" ("Собственные запасы") для реализации товаров с собственного склада. При этом вариант партии выбирается автоматически в зависимости от вида документа: для документов "Расходная накладная" и "Чек ККМ" - всегда партия "2", а для "Заказ покупателя" , если в нем указан "Склад ОХ", то партия "1", для других складов - всегда партия "2". В конце января 2020 года я доработал расширение, в котором я полностью исключил применение "Партии номенклатуры" в любых объектах конфигурации: справочниках, документах, регистрах накопления и отчетах. Теперь разделение товаров производится только по месту их нахождения: на складе ОХ находятся только товары ответственного хранения, на обычном складе - только собственные запасы. Это значительно ускорило ведение учета, исключило ввод лишних данных и сократило объем базы. Теперь вместе с расширением можно всегда 100% применять типовую конфигурацию УНФ, не снимая ее с поддержки 1С.
Реализация товара со склада ответственного хранения (ОХ) начинается с оформления документа "Заказ покупателя":
В документе устанавливается "Вид": "ОХ" или "Розница", "Состояние" "В работе", "Склад (резерв)": для ОХ - "Склад ОХ", для розницы "Склад".
Далее заполняется товарами табличная часть. В версии после 01.02.2020: колонка "Партия" отсутствует и не заполняется, а в версии до 01.02.2020:партия устанавливается автоматически: если указан "Склад ОХ", то партия "1", для другого склада - всегда партия "2".
Завершается создание заказа нажатием кнопки "Провести и закрыть".
В печатную форму "Заказ покупателя" добавлена строка предоплаты.
Для продолжения оформления документов по реализации товаров по заказу покупателя можно ввести (как обычно) на его основании документы "Расходная накладная" или "Чек ККМ". Причем в документах будут всегда автоматически установлены обычный "Склад",В версии после 01.02.2020: колонка "Партия" отсутствует и не заполняется, а в версии до 01.02.2020: в табличной части партия "2".
Если "Заказ покупателя" предназначен для реализации со склада ОХ, то он должен быть передан поставщику. Для этого открывается закладка Заказы" обработки:
Здесь устанавливается текущая "Дата заказов" и нажимается кнопка "Заполнить таблицу заказов" (Если заказ не первый за текущий день, то предварительно устанавливается флажок "Дополнить новыми заказами"):
Теперь нажимаем кнопку "Передать в ПИШ заказ по текущей строке таблицы". Заказ автоматически, используя API-сервис "Форточек", поступает поставщику.
В обработке устанавливается флажок "Передан в ПИШ" и заполняется ячейки "Номер заказа в ПИШ" присвоенным в ПИШ номером и "Статус заказа в ПИШ" - "Отправлен":
Далее периодически через несколько минут нажимая кнопку "Обновить статусы заказов", когда статус станет "Подтвержден", надо нажать кнопку "Изменить статус" и
выбрать "Снять с ОХ". При некоторых других статусах при необходимости можно выбрать действие "Отменить". Таким образом можно изменять статус заказа, не заходя на сайт "Форточки".
Когда заказ будет отработан у поставщика должным образом и статус изменится на "К отгрузке", на ФТП-сервер поступит XML-файл "SalesOfGoodsAndServices...",
содержащий все позиции товаров по всем заказам партнера за день.
Дальнейшие действия основаны на уверенности, что файл обязательно поступит партнеру, и что товары уже находятся у партнера на складе ОХ. Поэтому, не дожидаясь поступления файла, можно осуществить реализацию товара покупателю. Для этого необходимо оформить документ "Приходная накладная" на "Склад" с товарами, перечисленными в заказах покупателей за текущий день. Нажав кнопку "Заполнить запасы и создать приходную накладную", мы получим требуемый документ:
а это сама " Приходная накладная":
В документе устанавливаются автоматически "Поставщик", его "Договор", "Склад","Операция", "Цена поступления", в версии после 01.02.2020: колонка "Партия" отсутствует и не заполняется, а в версии до 01.02.2020: у товаров партия"2".
Теперь товары принадлежат партнеру и их можно реализовать, как собственные. Процесс значительно ускоряется, так как не требуется ждать получения файла от поставщика
В конце рабочего дня, когда отработаны все заказы покупателей, мы принимаем с помощью обработки последний за день вариант XML-файла "SalesOfGoodsAndServices...",
обработка автоматически находит "Приходную накладную, сформированную по заказам покупателей за текущий день" и записывает в ее реквизиты "Номер и дата входящего документа" номер и дату счета-фактуры из файла
и заново проводит его. При этом добавляются движения по списанию товаров со склада ОХ - товары как-бы перемещаются из ответственного хранения в собственные запасы.
Заказ покупателя можно оформить не на фирме партнера, а непосредственно на сайте поставщика "Форточки". При этом он может выбрать товар только с другого склада поставщика. Для автоматического формирования его копии в базе 1С партнера необходимо только начать создание нового заказа в УНФ, вписать его номер в реквизит "№ в ПИШ" и нажать кнопку "Заполнить по заказу с сайта". В результате будут автоматически с использованием API-сервиса сайта заполнены все реквизиты документа и его табличная часть. Теперь остается только нажать кнопку "Провести и закрыть".
По заказу с сайта поставщик привозит товары через несколько дней партнеру и отправляет на ФТП XML-файл "SalesOfGoodsAndServices...". Но в нем указан не склад ОХ, а другой склад поставщика. Поэтому при загрузке его в УНФ обработка "Обмен ПИШ - УНФ" сформирует документ "Приходная накладная" на "Склад" и установит партию "2".
Интернет-магазин "Форточки" иногда изменяет артикулы (в терминах сайта "САЕ") товаров. Для оповещения об изменениях поставщик присылает файл с изменениями:
Файл имеет формат .CSV. Для автоматического перекодирования надо в обработке "Обмен ПИШ - УНФ" на закладке "Форма соответствия" выбрать полученный файл, установить дату и нажать кнопку "ПЕРЕКОДИРОВАТЬ АРТИКУЛЫ", ответить утвердительно на вопрос. Программа выберет из файла строки с датой изменения,находящейся в месяце "На дату" и поизведет изменение артикулов, и результат выведет в таблицу .
Поставщик требует от партнера ежедневно отслеживать цены товаров. Для этого он ежедневно корректирует цены в файле-выгрузке на сайте "Форточки". Но я использую для этого API-сервис сайта.
В обработка "Обмен ПИШ - УНФ" на закладке "Цены" надо установить текущую дату "На дату", выбрать "Склад для автоопределения текущей цены"
из списка "Склад ОХ партнера" или "Склад "Москва" и нажать кнопку "Заполнить из остатков по складу ОХ". Если предварительно установить флажок "Оставить строки только с измененной ценой", то строк в таблице будет значительно меньше. Если предварительно установить флажок "Дозаполнить цены", то строки в таблицу будут добавлены в конец, Зеленая надпись сообщает, что цены наши и ПИШ показаны на текущий момент, но установить их можно на другой момент "На дату". Теперь можно нажать кнопку "Установить цены номенклатуры", ответить утвердительно на вопрос и цены будут изменены.
В обработка "Обмен ПИШ - УНФ" на закладке "Цены" можно быстро контролировать текущие остатки на складе партнера и поставщика. Для этого достаточно
установить дату "На дату" и флажок "Только сравнить остатки", нажать кнопку "Заполнить из остатков по складу ОХ".
При просмотре остатков надо учитывать,что на складе ОХ партнера они показаны на конец дня, а на сайте поставщика на текущий момент. Остатки выровняются только тогда, когда у поставщика будут отработаны все заказы партнера и он отправит на ФТП окончательный за текущий день вариант XML-файла "SalesOfGoodsAndServices...", а партнер загрузит его в свою базу 1С.