Вернуться назад

createApplication - создание реализации в 1С

Суть задания: взять параметра из задания и на их основе сделать реализацию "Товары и услуги" в 1С

Последовательность выполнения:

  1. Получаете задание через метод регулярной проверки наличия заданий
  2. Меняете у задания статус на work (в работе) с помощью метода смены статуса заданий
  3. Выполняем необходимые действия (подробнее ниже)
  4. Новый статус done (завершено) отправляем снова по методу смены статуса задания

Пошаговое выполнение

1. Вы получили задание через метод регулярной проверки наличия заданий:

Пример получения заданий post-запросом на метод check

Задания (Tasks) отдаются массивом. Выполнение заданий также предполагается через цикл, в котором вы последовательно выполняете каждое. Поэтому вам необходимо взять массив Tasks и перебрать его. При каждом проходе цикла анализируйте тип задания (Task), запоминайте идентификатор задания (Id) и его параметры (Params), если они подразумеваются заданием

2. Взяли задание createApplication в работу

Первом делом поменяйте статус задания на work с помощью метода смены статуса заданий:

Пример смены статуса задания. Нужно отправить Id заданий и новый статус

Это нужно для корректной работы выдачи заданий. Цифра будет понимать, что задание уже в работе и точно не создат дублирующие заданий, а также не пустит вперед другие задания, ожидающие завершение текущего

3. Добавляем основную информацию для реализации

Для начала заполним данные, которые пользователь обычно видит в верхней части формы в 1С. В серых прямоугольниках проставлены номера в полях, которые мы должны заполнить:

Основные данные для реализации

В задании вы получили параметры (свойство Params). Их структуру можно посмотреть внутри свойства Data в методе получении отгрузок без заказа. Альтернативый способ посмотреть пример данных.

Для заполнения основной информации нам необходимо сопоставить поля из формы 1с и параметры из свойства Params:

  1. Дата документа. Возьмите параметр Params.Date
  2. Контрагент. Найдите или создайте контрагента. Данные по контрагенту лежат в Params.Client.
    • Проверьте, что свойство Params.Client.Guid не пустое/не нулевое
    • Если свойство Params.Client.Guid заполнено, то найдите по нему контрагента в 1С
    • Если Params.Client.Guid пустой или вы не смогли найти контрагента, то создайте его используя параметры Params.Client.Name и Params.Client.Inn
  3. Договор. Найдите или оставьте пустым. Данные по договору лежат в Params.Contract.
    • Проверьте, что свойство Params.Contract.Guid не пустое/не нулевое
    • Если свойство Params.Contract.Guid заполнено, то найдите по нему договор в 1С
    • Если Params.Contract.Guid пустой или вы не смогли найти договор, то оставьте поле незаполненным или заполните, исходя из бизнес-логики вашей компании
  4. Счет на оплату. Найдите или оставьте пустым. Данные по счету лежат в Params.Invoice.
    • Проверьте, что свойство Params.Invoice.Guid не пустое/не нулевое
    • Если свойство Params.Invoice.Guid заполнено, то найдите по нему счет в 1С
    • Если Params.Invoice.Guid пустой или вы не смогли найти счет, то оставьте поле незаполненным или заполните, исходя из бизнес-логики вашей компании
  5. Способ доставки. Данные лежат в Params.Type. Значения равны delivery - доставка или take-away - самовывоз. Дальше подставьте данные, чтобы они соответствовали формату выбора способа доставки в вашей 1С
  6. Организация. Вы можете добавить в код организацию по умолчанию и подставлять ее. Или взять данные из Params.Seller.
    • Проверьте, что свойство Params.Seller.Guid не пустое/не нулевое
    • Если свойство Params.Seller.Guid заполнено, то найдите по нему организацию в 1С
    • Если Params.Seller.Guid пустой или вы не смогли найти организацию, то создайте её используя параметры Params.Seller.Name и Params.Seller.Inn
  7. Склад. В данный момент в Цифре нет данных по складам 1С. Чаще всего бетон отгружается с одного склада в плане учета, поэтому добавьте значение склада в код или оставьте пустым
  8. Банковский счет. В данный момент в Цифре нет данных по банковским счетам из 1С. Добавьте значение счета в код или оставьте пустым
  9. Подразделение. В данный момент в Цифре нет данных по подразделениям из 1С. Добавьте значение подразделения в код или оставьте пустым

Дополнительные параметры из свойства Params, которые могут вам пригодиться:

  1. Рецепт. Обозначение рецепта с завода. Данные по рецепту лежат в Params.Recipe
  2. Спецификация. Данные по спецификации лежат в Params.Spec
  3. ТС. Данные по автомобилю лежат в Params.Car
  4. Водитель. Данные по водителю лежат в Params.Driver

Если какие-то значение (н-р: подразделение) вы не можете получить из Цифры, то:

Мы с вами заполнили основные данные, далее переходим к товарам и услугам

3.1 Добавляем товары

Заполним раздел товаров в реализации:

Параметры Params в реализации товаров

Товары находятся в Params.Products. Это массив. Ваша задача перебрать его и добавить каждый элемент в товары реализации:

  1. Товар. Найдите или создайте товар
    • Проверьте, что свойство Guid не пустое/не нулевое
    • Если свойство Guid заполнено, то найдите по нему номенклатуру в 1С
    • Если Guid пустой или вы не смогли найти номенклатуру, то создайте ее используя параметры Name
  2. Количество. Возьмите параметр Quantity
  3. Цена. Возьмите цену из привязанного к реализации счета или договора. Или из параметра Price
  4. Сумма. Посчитайте перемножением или возьмите из параметра Sum
  5. НДС. Возьмите размер процентной ставки из привязанного к реализации счета или договора. Или из параметра VatRate
  6. НДС. Ожидаем, что 1С посчитает автоматически
  7. Всего. Ожидаем, что 1С посчитает автоматически
  8. Счет учета. Ожидаем, что 1С подставит автоматически, исходя из продукции

Если ваш клиент не пользуется диспетчеризацией, или вы обнаружили, что Params.Products пустой, то возьмите данные объекта из Params.Recipe. Количество возьмите в Params.Total. Далее по Guid найдите товар, его цену, умножьте на количество и дозаполните оставшиеся данные

3.2 Добавляем услуги

Заполним раздел услуг в реализации:

Параметры Params в реализации услуг

Услуги находятся в Params.Services. Это массив. Ваша задача перебрать его и добавить каждый элемент в услуги реализации:

  1. Услуга. Найдите или создайте номенклатуру
    • Проверьте, что свойство Guid не пустое/не нулевое
    • Если свойство Guid заполнено, то найдите по нему номенклатуру в 1С
    • Если Guid пустой или вы не смогли найти номенклатуру, то создайте ее используя параметры Name
  2. Количество. Возьмите параметр Quantity
  3. Цена. Возьмите цену из привязанного к реализации счета или договора. Или из параметра Price
  4. Сумма. Посчитайте перемножением или возьмите из параметра Sum
  5. НДС. Возьмите размер процентной ставки из привязанного к реализации счета или договора. Или из параметра VatRate
  6. НДС. Ожидаем, что 1С посчитает автоматически
  7. Всего. Ожидаем, что 1С посчитает автоматически
  8. Счета. Ожидаем, что 1С подставит автоматически, исходя из продукции

Если ваш клиент не пользуется диспетчеризацией, или вы обнаружили, что Params.Services пустой, то тогда не заполняйте раздел услуг

4. Завершите задание, пришлите идентификатор реализации из 1С

Снова воспользуйтесь методом смены статуса заданий, только теперь статус будет done (выполнено), также пришлите идентификатор записи реализации из 1с, добавив его как свойство Guid к верхнему свойству Data:

Пример завершения задания. Добавили статус done и в Data положили параметр Guid, в котором записали идентификатор из 1С

5. Задание выполнено!

Если все сделано верно, то задание будет успешно завершено и данными действиями вы добавите реализацию в 1С из Цифры