Интеграция веб сервиса с 1с
Ниже ТЗ с убранными ссылками на расшифровку (скопировано с CRM, поэтому может быть немного не удобно читать). IFP - сокращение веб сервиса для синхронизации.
Интересует цена и сроки. После согласования предоставим доступ в CRM для подробной информации по API и расшифровке разных сокращений.
Делаем внешней обработкой по УПП 8.3 с пониманием что обработку потом придётся адаптировать под разные конфигурации, в том числе и самые новые.
Обработка работает по API с сервером. Настройки хранятся в файле настроек (т.е. имеем 2 файла - обработка + файл настроек). Если файла настроек нет, создаём автоматически новый. В файле настроек хранятся связи справочников, настройки системы. Все вкладки будут описаны отдельно в подзадачах.
Обработка имеет функции:
обработка входящих пакетов - (проведение заказов, создание контрагентов при необходимости)
получение информации из IFP
обновление справочников в IFP
создание заказов в IFP
Вкладки:
соединение - авторизация пользователя (имя пароль не кешируются, при следующем открытии обязательно вводятся по новой)
Все вкладки ниже доступны/видны если пользователь авторизован как админ (есть исключения)
настройки (если хоть одна настройка не заполнена, остальные вкладки не доступны):
розничный тип цен (выбор типа цен)
свойство артикула для внесения кодов IFP (только числовые свойства, при открытии проверяем является ли свойство числовым, если оно уже внесено в настройки. Если нет даём ошибку и просим перезаполнить)
свойство характеристики для внесения кодов IFP (только числовые свойства, при открытии проверяем является ли свойство числовым, если оно уже внесено в настройки. Если нет даём ошибку и просим перезаполнить)
частота обновления заказов в секундах (не менее 30)
менеджер по умолчанию (если заказ подтверждён клиентом без менеджера, заказ назначается этому менеджеру в 1С)
табличная часть привязки валют системы к валютам IFP
Запрос выгрузка номенклатуры и справочников IFP (по запросу) в 1С (without_goods=1), справочник "currency". Возле каждого элемента из IFP даём выбрать свою валюту из справочника 1С. Связь id_ifp=>id_1 c сохраняем в файле currency.ini в папке, где запущена обработка. При последующем запуске обработки, загружаем из файла связи. Рядом с табличной частью "обновить валюты" - для повторной загрузки валют из ifp на случай, если справочник изменился. При повторной загрузке файл связей перезаписываем новыми данными.
табличная часть привязки единиц измерения системы к единицам измерения IFP
Запрос IFP выгрузка номенклатуры и справочников IFP (по запросу) в 1С в 1С (without_goods=1), справочник "unit". Возле каждого элемента из IFP даём выбрать свою единицу измерения из справочника 1С. Связь id_ifp=>id_1c сохраняем в файле unit.ini в папке, где запущена обработка. При последующем запуске обработки, загружаем из файла связи. Рядом с табличной частью "обновить единицы измерения" - для повторной загрузки единиц измерения из ifp на случай, если справочник изменился. При повторной загрузке файл связей перезаписываем новыми данными.
табличная часть типов продажи в IFP
Запрос IFP выгрузка номенклатуры и справочников IFP (по запросу) в 1С в 1С (without_goods=1), справочник "material_drop". Возле каждого элемента из IFP стоит галочка (доступно/не доступно). Связь id_ifp=>1 / 0 сохраняем в файле drop.ini в папке, где запущена обработка. При последующем запуске обработки, загружаем из файла связи. Рядом с табличной частью "обновить типы продаж" - для повторной загрузки типов продаж из ifp на случай, если справочник изменился. При повторной загрузке файл связей перезаписываем новыми данными.
табличная часть доступных толщин в IFP
Запрос IFP выгрузка номенклатуры и справочников IFP (по запросу) в 1С (without_goods=1), справочник "z". Возле каждого элемента из IFP стоит галочка (доступно/не доступно). Связь z_ifp=>1 / 0 сохраняем в файле z.ini в папке, где запущена обработка. При последующем запуске обработки, загружаем из файла связи. Рядом с табличной частью "обновить толщины артикулов" - для повторной загрузки толщин из ifp на случай, если справочник изменился. При повторной загрузке файл связей перезаписываем новыми данными.
табличная часть доступных типов материалов в IFP
Запрос IFP выгрузка номенклатуры и справочников IFP (по запросу) в 1С (without_goods=1), справочник "material_type". Возле каждого элемента из IFP стоит галочка (доступно/не доступно). Связь material_type_id_ifp=>1 / 0 сохраняем в файле material_type.ini в папке, где запущена обработка. При последующем запуске обработки, загружаем из файла связи. Рядом с табличной частью "обновить типы материалов" - для повторной загрузки типов материалов из ifp на случай, если справочник изменился. При повторной загрузке файл связей перезаписываем новыми данными.
код для формирования запросов (выдаётся IFP)
адрес сервера (выдаётся IFP)
дата и время в секундах подтверждения связи с сервером (не редактируемо, заполняется при удачном подтверждении отчёта серверу IFP)
свойство заказа для записи кода IFP (без него не активны вкладки)
папка контрагентов, где создаём новых контрагентов (зарегистрировались на сайте и разместили заказ)
номенклатура:
В этой вкладке доступны свои вкладки (уровень ниже)
внесение кодов / типов продажи номенклатуры
Пользователь видит фильтры
толщина
производитель
тип материала
отдельная галочка (нужны ли только материалы фирмы или все товары IFP)
Обязателен выбор одного из вариантов в каждом списке. При открытии берём первые варианты списка в каждом пункте и генерируем запрос на получение номенклатуры IFP запросом выгрузка номенклатуры и справочников IFP (по запросу) в 1С
с учётом выставленных фильтров. Далее при изменении фильтров получаем данные из IFP и перезаполняем табличную часть.
В табличной части показываем все данные по товару из IFP. Пользователь может изменить:
код фирмы у товара (выбор артикула или характеристики из справочника 1С). Если артикул ведётся по характеристикам, то показываем только характеристики.
цену
валюту
время поставки
тип продажи товара. Если товар относится к плитным материалам (part=1), у него возможны 2 варианта продажи (один листовой, второй в %). Таким образом если товар - листовой материал и в наличии только один код (тип продажи), пользователь может добавить ещё одну строку в табличной части для этого материала.
Остальные поля доступны только для чтения. В единицы измерения подтягиваем единицы измерения из 1С. Если с IFP пришла единица измерения, по которой нет связи с 1С в настройках, такой товар не редактируется полностью и светится просьба пользователю создать нужную единицу измерения в 1С и связать с IFP в настройках.
Если по пришедшему из IFP товару нет кодов фирмы, пользователь может внести информацию (ячейки будут пустые). Сохранение появляется только если пользователь ввел код, цену, валюту, тип продажи
После добавления строки по материалу или внесения/изменения данных появляется кнопка "сохранить изменения по товару". Она активирует запрос на сервис IFP установка данных по артикулу в IFP из 1С.
внесение/заполнение цен номенклатуры
Сверху доступна функциональная кнопка "обновить цены". По нажатию все цены по артикулам, по которым выбрана связь с 1С перезаполняются актуальными.
Есть выпадающий список валюты. Доступны только валюты, связь с которыми выставлена в настройках. Если связи валют не выставлены, вся вкладка не доступна. Заполнение цен происходит с пересчётом в выбранную валюту.
При изменении валюты цены пересчитываются в табличной части автоматически.
валюты:
установка курсов
Показываем валюты, у которых есть связи (ifp-1c).
По каждой из них отправляем запрос Курс валют (история) за 7 дней. Показываем пользователю. Даём ввести курс на текущий момент. После ввода появляется кнопка "обновить". По нажатию отправляем запрос Установка курса валют на обновление курса валюты.
просмотр истории изменения курсов
Возле каждой валюты делаем кнопку "история". По нажатию просим выбрать период от и до. Отправляем запрос Курс валют (история), выводим нужные данные.
менеджеры:
При входе во вкладку проверяем сохранённые данные в sales_units.ini, если их нет отправляем запрос Менеджеры список.
Отображаем табличную часть существующих менеджеров в IFP:
имя (будет указываться в письмам клиентам)
пользователь/администратор
роли (ролей может быть несколько)
телефон (будет указываться в письмам клиентам)
e-mail (будет указываться в письмам клиентам)
выбор пользователя 1С
Если код 1С пришёл с API сразу вносим менеджера с этим кодом. Если с таким кодом нет менеджера в 1С, отправляем запрос Обновление менеджеров и обнуляем этот код 1С. В этом случае обновляем данные по менеджеру в sales_units.ini. Рядом кнопка выбора другого пользователя 1С.
кнопка "выслать новый пароль". Будет сгенерирован новый пароль и выслан на указанную почту
По нажатию запрос Менеджер - создание пароля.
В табличную часть менеджеров должна быть возможность добавить нового менеджера. Условия:
имя, телефон, е-мэйл
уникальный код1С. 2 одинаковых кодов не может быть, т.е. проверяем табличную часть. Если 2 кода нашлись одинаковые, первый оставляем - остальные удаляем (см. выше).
Изменение табличной части становится актуальным при тех же условиях, что и создание. Т.е. если ввели новое имя, но удалили телефон, эта запись не считается измененной и не отправляется на API. Пользователю надо подсказывать, что всё должно быть заполнено.
Если добавился новый менеджер, после проверки корректности ввода данных, спрашиваем пользователя создать ли менеджера на IFP. Если да, используем запрос: Создание менеджера и сразу вносим код IFP. Сохраняем в sales_unit.ini изменения.
Если поменялись данные по менеджеру (ам), появляется кнопка "обновить". По нажатию:
сохраняем данные связей в sales_units.ini
отправляет данные в IFP для обновления Обновление менеджеров
Контрагенты:
свойство контрагента, куда пишем код IFP
Заполнение этого свойства обязательно. Если не заполнено, входящие запросы не обрабатываются, кнопка "обновить коды не активна", вкладка "заказы" не активна.
кнопка - обновить коды IFP в контрагентах
Даём пользователю выбрать папку справочника Контрагенты в 1С. Из всех вложенных (в том числе из подчинённых папок) контрагентов вынимаем телефоны из контактной информации контрагентов и контактных лиц, переводим в формат с кодом страны без "+". Отправляем на проверку
Контрагенты - получение кода по телефону
В ответ получаем перечень кодов, найденных по этим телефонам в БД IFP, записываем коды IFP в свойства контрагентов в 1С.
Заказы (доступно авторизованному пользователю не администратору и администратору):
создание
По кнопке "создать" спрашиваем у пользователя контрагента. Если контрагент имеет код IFP делаем открытие адреса: адрес сервера из настроек/new/ с отправкой POST запроса создание нового заказа в IFP
показать информацию по заказу из IFP
Кнопка "выбрать заказ". По нажатию показываем журнал заказов, у которых есть код ifp. После выбора, генерируем запрос Информация о заказе, выводим информацию о заказе.
обновить информацию по заказу в 1С из IFP
Кнопка "выбрать заказ". По нажатию показываем журнал заказов, у которых есть код ifp. После выбора, генерируем запрос Информация о заказе, обновляем табличные части товаров и услуг в заказе, пишем пользователю об успехе или об ошибках.
В обеих кнопках добавляем значок лупы, по нажатию открываем поле ввода для сканирования qr кода. После сканирования ищем заказ в 1С, где в свойстве связи указан введённый номер.
Обработка входящих пакетов:
После авторизации обработка начинает отправлять запросы 1 раз в 30 секунд (настройка) на сервер за получением инструкций.
Обработка пакетов должна идти в фоновом режиме, давая возможность пользователю работать в нужных ему вкладках.
Каждый пакет-инструкция включает один запрос. Порядок обработки запроса:
получить инструкцию (получение пакета на исполнение из IFP в 1С для исполнения)
сделать запись во временном файле полученного пакета
обработать, выполнить (алгоритм см. ниже).
сформировать пакет с результатом выполнения (ответ 1С о получении пакета (отчёт по результату выполнения))
в случае положительного ответа от сервера (Описание запроса), что пакет принят, удаляем временный файл. Если нет ответа от сервера, повторно через 30 секунд запускает отчёт по пакету и так 10 раз. После 10 раза, пауза 30 минут, повторные 10 рази т.д. После каждых 10 неудачных попыток отправки отчёта, отправляем на электронную почту
генерация запроса-отчёта должна происходить по введённым параметрам (адрес сервера).
новый пакет-инструкцию нужно брать только после успешного завершения по предыдущему.
Инструкции входящих пакетов.
входящий пакет имеет массив [data]:
ключ action - тип действия. Сейчас пока = order, в дальнейшем список будет дополнятся
2 вложенных массива
[headers]
код заказа в IFP (обязательно)
код заказа в 1С (если есть в IFP)
код менеджера в IFP (обязательно)
код менеджера в 1С (если есть в IFP)
код клиента в IFP (обязательно)
код клиента в 1С (если есть в IFP)
[data]
содержит всю информацию по заказу.
Алгоритм обработки:
Проверяем менеджера по коду 1С. Если не найден возвращаем ошибку - менеджер такой-то не найден в 1С.
Проверяем клиента по коду IFP, есть ли такой уже в 1С. Если нет, берём из информации по заказу телефон клиента и проверяем по нему совпадения в 1С. Если телефон найден, проставляем контрагенту код IFP, отправляем запрос на обновление контрагента в IFP Контрагенты - внесение кода 1С в клиента IFP по коду IFP, внося код 1С в IFP. Если телефон не найден, создаем контрагента в 1С. Отправляем код контрагента в IFP Контрагенты - внесение кода 1С в клиента IFP по коду IFP.
Проверяем заказ в 1С по коду 1С (если пришёл). Если кода 1С не пришло, проверяем заказ в 1С по коду IFP. Если заказ найден, отправляем запрос на внесение кода заказа в IFP Внесение кода заказа 1С в заказ IFP.
Проверяем входящую номенклатуру товаров и услуг - все ли позиции есть в 1С. Если нет, отправляем ошибку о проблеме с таким то кодом товара.
Если заказ найден, обновляем табличные части заказа по товарам и услугам из массива [data].
Если заказ не найден, создаём новый заказ, отправляем код заказа на внесение в IFP Внесение кода заказа 1С в заказ IFP.
-
328 10 0 1 Добрый день.
Готовы выполнить ваш проект. Стоимость +- 20% - более точно только в процессе реализации можно будет определить. Пишите, звоните - обсудим детали.
Опыт работы 17 лет.
Сертификаты 1С.
Наши работы и контакты в профиле.
PS: Всем своим клиентам дарим модуль загрузки курсов валют с интернета.
-
2703 32 0 Готов выполнить поставленную задачу. Есть опыт работы с АПИ и разработки АПИ на 1С
-
Здравствуйте, Илья.
А на какой максимальный бюджет Вы рассчитываете?
-
Актуальные фриланс-проекты в категории Десктопные приложения
Модификация в работе эмулятора
2000 UAH
Здравствуйте. Я скачал с Интернета эмулятор игрового автомата gaminator cf final. Он мне очень понравился, но там есть недочёты. Есть админ панель, но она открывается свободно, но не закрывается вообще. Закрывается только вместе с приложением. А данные, после изменения в админ… Десктопные приложения ∙ 6 дней назад ∙ 10 ставок |
Разработка кастомного ПО (Android-приложения + CMS) для киосков самообслуживания SUNMI K2 (Фастфуд)
1000 UAH
Ищем опытную команду или Middle/Senior Android-разработчика (возможно, с Full-stack навыками) для создания собственного программного обеспечения для киосков самообслуживания сети заведений быстрого питания. Сейчас наши терминалы работают на базе готового облачного интегратора,… CMS, Десктопные приложения ∙ 10 дней 19 часов назад ∙ 23 ставки |