Вернуться назад
createOrder - создание реализации заказа в 1С
Суть задания: вы получаете объект с данными по заказу, который включает в себя все, что известно Цифре о
заказе (подробнее в структуре). Далее вам необходимо сопаставить поля в вашей 1С с данными параметрами и
провести заказ
Последовательность выполнения:
- Получаете задание через метод
регулярной проверки
наличия заданий
- Меняете у задания статус на work (в работе) с помощью метода
смены
статуса заданий
- Выполняем необходимые действия (подробнее ниже)
- Новый статус done (завершено) отправляем снова по методу смены статуса
задания
Пошаговое выполнение
Пример получения заданий post-запросом на метод check
Задания (Tasks) отдаются массивом. Выполнение заданий также предполагается через цикл, в котором
вы
последовательно выполняете каждое. Поэтому вам необходимо взять массив Tasks и перебрать его. При каждом проходе
цикла анализируйте тип задания (Task), запоминайте идентификатор задания (Id)
и его параметры (Params), если они
подразумеваются заданием
2. Взяли задание createOrder в работу
Первом делом поменяйте статус задания на work с помощью метода
смены
статуса заданий:
Пример смены статуса задания. Нужно отправить Id заданий и новый статус
Это нужно для корректной работы выдачи заданий. Цифра будет понимать, что задание уже в работе и точно не создат
дублирующие заданий, а также не пустит вперед другие задания, ожидающие завершение текущего
3. Добавляем заказ в 1С
Важно! Метод добавления заказов зачастую используется, когда на стороне клиента 1С не
Бухглатерия, а, например, 1С УПП и прочие более продвинутые управленческие системы. Так как в этих случаях мы не
можем унифицировать данные и инструкции, то вам придется сопоставлять данные самостоятельно, исходя из структуры
данных в вашей программе
В задании вы получили параметры (свойство Params). Их структуру можно посмотреть
внутри свойства Data в методе получения заказов. Альтернативый
способ посмотреть пример данных.
Самостоятельно внимательно изучите параметры, посмотри их значения в структуре данных. Мы предполагаем, что минимально вам понадобятся следующие данные:
- Дата документа. Возьмите параметр Params.Date
- Контрагент. Найдите или создайте контрагента. Данные по контрагенту лежат в Params.Client.
- Проверьте, что свойство Params.Client.Guid не пустое/не нулевое
- Если свойство Params.Client.Guid заполнено, то найдите по нему контрагента в 1С
- Если Params.Client.Guid пустой или вы не смогли найти контрагента, то создайте его используя
параметры Params.Client.Name и Params.Client.Inn
- Договор. Найдите или оставьте пустым. Данные по договору лежат в Params.Contract.
- Проверьте, что свойство Params.Contract.Guid не пустое/не нулевое
- Если свойство Params.Contract.Guid заполнено, то найдите по нему договор в 1С
- Если Params.Contract.Guid пустой или вы не смогли найти договор, то оставьте поле незаполненным или
заполните, исходя из бизнес-логики вашей компании
- Счет на оплату. Найдите или оставьте пустым. Данные по счету лежат в Params.Invoice.
- Проверьте, что свойство Params.Invoice.Guid не пустое/не нулевое
- Если свойство Params.Invoice.Guid заполнено, то найдите по нему счет в 1С
- Если Params.Invoice.Guid пустой или вы не смогли найти счет, то оставьте поле незаполненным или
заполните, исходя из бизнес-логики вашей компании
- Способ доставки. Данные лежат в Params.Type. Значения равны delivery -
доставка или take-away - самовывоз. Дальше подставьте данные, чтобы они соответствовали
формату выбора способа доставки в вашей 1С
- Организация. Вы можете добавить в код организацию по умолчанию и подставлять ее. Или взять
данные из Params.Seller.
- Проверьте, что свойство Params.Seller.Guid не пустое/не нулевое
- Если свойство Params.Seller.Guid заполнено, то найдите по нему организацию в 1С
- Если Params.Seller.Guid пустой или вы не смогли найти организацию, то создайте её используя
параметры Params.Seller.Name и Params.Seller.Inn
- Склад. В данный момент в Цифре нет данных по складам 1С. Чаще всего бетон отгружается с
одного склада в плане учета, поэтому добавьте значение склада в код или оставьте пустым
- Банковский счет. В данный момент в Цифре нет данных по банковским счетам из 1С. Добавьте
значение счета в код или оставьте пустым
- Подразделение. В данный момент в Цифре нет данных по подразделениям из 1С. Добавьте
значение подразделения в код или оставьте пустым
- Отгрузки. Все отгурзки лежат в Applications
Если какие-то значение (н-р: подразделение) вы не можете получить из Цифры, то:
- Если это критично, то напишите нам на почту client@cifra.ai, мы обязательно что-нибудь придумаем!
- Вы можете добавить в код поиск предыдущей проведенной реализации для этого контрагента и этой же категории
продукции и взять недостающие данные из нее
Мы с вами заполнили основные данные, далее переходим к товарам и услугам
3.1 Добавляем товары
Заполним раздел товаров в реализации:
Параметры Params в реализации товаров
Товары находятся в Params.Products. Это массив. Ваша задача перебрать его и добавить каждый элемент в товары
реализации:
- Товар. Найдите или создайте товар
- Проверьте, что свойство Guid не пустое/не нулевое
- Если свойство Guid заполнено, то найдите по нему номенклатуру в 1С
- Если Guid пустой или вы не смогли найти номенклатуру, то создайте ее используя
параметры Name
- Количество. Возьмите параметр Quantity
- Цена. Возьмите цену из привязанного к реализации счета или договора. Или из параметра Price
- Сумма. Посчитайте перемножением или возьмите из параметра Sum
- НДС. Возьмите размер процентной ставки из привязанного к реализации счета или договора. Или
из параметра VatRate
- НДС. Ожидаем, что 1С посчитает автоматически
- Всего. Ожидаем, что 1С посчитает автоматически
- Счет учета. Ожидаем, что 1С подставит автоматически, исходя из продукции
Важно! Если товар привязан к конкретной отгрузке, то параметр Application будет не пустой:
Пример, где товар привязан к определенной отгрузки, из которой вы можете получить дополнительные данные
Структуру Application (отгрузки) соответствует структуре данных в отчете отгрузок без заказа. Их структуру можно посмотреть
внутри свойства Data в методе получении
отгрузок без заказа. Альтернативый способ посмотреть пример данных.
3.2 Добавляем услуги
Заполним раздел услуг в реализации:
Параметры Params в реализации услуг
Услуги находятся в Params.Services. Это массив. Ваша задача перебрать его и добавить каждый элемент в услуги
реализации:
- Услуга. Найдите или создайте номенклатуру
- Проверьте, что свойство Guid не пустое/не нулевое
- Если свойство Guid заполнено, то найдите по нему номенклатуру в 1С
- Если Guid пустой или вы не смогли найти номенклатуру, то создайте ее используя
параметры Name
- Количество. Возьмите параметр Quantity
- Цена. Возьмите цену из привязанного к реализации счета или договора. Или из параметра Price
- Сумма. Посчитайте перемножением или возьмите из параметра Sum
- НДС. Возьмите размер процентной ставки из привязанного к реализации счета или договора. Или
из параметра VatRate
- НДС. Ожидаем, что 1С посчитает автоматически
- Всего. Ожидаем, что 1С посчитает автоматически
- Счета. Ожидаем, что 1С подставит автоматически, исходя из продукции
Важно! Если услуга привязана к конкретной отгрузке, то параметр Application будет не пустой. Аналогично, как это сделано с реализацией твоаров (см.выше)
4. Завершите задание, пришлите идентификатор реализации из 1С
Снова воспользуйтесь методом
смены
статуса заданий, только теперь статус будет done (выполнено), также пришлите
идентификатор записи реализации из 1с, добавив его как свойство Guid к верхнему свойству Data
А также прилите все Guid отгрузок, которые вы создали во время обработки в этот раз. Положите в Applications объекты с Id (исходный Id из Цифры) + Guid из 1С. Это позволит связать записи об отгрузках в вашей системе и в Цифре
Пример завершения задания. Добавили статус done и в Data положили параметр Guid, в
котором записали идентификатор из 1С
5. Задание выполнено!
Если все сделано верно, то задание будет успешно завершено и данными действиями вы добавите реализацию в 1С из
Цифры