Тема эта актуальна давно, и видя с какой периодичностью она поднимается - подумал что не лишним будет рассказать людям, как решается данный вопрос.
Дело в том, что движок битрикса это всё умеет делать, и дорабатывать на стороне сайта ничего не надо.
Статусы в 1С в УТ 10.3 не реализованы в принципе, и тут уже каждый выходит из ситуации по своему. Кто-то просто добавляет один реквизит на форму, и запихивает туда всю кучу статусов, которой он хочет пользоваться, кто-то делает регистр в который пишет текущий статус документа.
Я же, в свою очередь, в УТ 10.3 и им подобным - решаю данную задачу исключительно на регистрах сведений, чтобы изменение статуса заказа не влекло за собой перепроведение документа, и использую три типа статусов - Управленческий (Обрабатываем/собираем/ждем на склад/отдали курьеру/чешем_в_носу), статус отгрузки (Да/Нет), статус оплаты (Оплачен/не оплачен).
Для начала необходимо определиться - какие статусы у заказа могут быть на сайте. Обращаем внимание, что статус может быть двух типов: "Заказ" и "Доставка". Нам нужен тип "Заказ", иначе работать не будет
Добавляем Статус, Код указываем на латиннице.
Далее в настройках Интеграции с 1С на закладке Заказы - разрешаем менять статусы заказов по информации из 1С.
На этом, собственно, настройка Битрикс заканчивается.
Далее - отправляемся в 1С.
Открываем Общий модуль "Б_ПроцедурыИФункцииВыгрузкиДанныхНаСайт", Функция ВыгрузитьДокументXDTO(...)
Находим место, где объявляется выгрузка реквизитов:
XDTOЗначенияРеквизитов = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияРеквизитовТип);
И добавляем одну строчку с добавлением параметра с ИД статуса заказа в структуру:
Б_ОбщиеПроцедурыИФункцииОбменаССайтом.ДобавитьЗначениеРеквизитаXDTO(ПараметрыОбмена, XDTOЗначенияРеквизитов, XDTOЗначениеРеквизитаТип, "Статуса заказа ИД" , Статус_ИД);
Собственно, запускаем обмен, наслаждаемся результатом:
При этом не забывайте, что перед обменом - заказ должен быть зарегистрирован "к обмену" в Плане обмена, иначе просто не будет ничего выгружать.
Удачи.
Дело в том, что движок битрикса это всё умеет делать, и дорабатывать на стороне сайта ничего не надо.
Статусы в 1С в УТ 10.3 не реализованы в принципе, и тут уже каждый выходит из ситуации по своему. Кто-то просто добавляет один реквизит на форму, и запихивает туда всю кучу статусов, которой он хочет пользоваться, кто-то делает регистр в который пишет текущий статус документа.
Я же, в свою очередь, в УТ 10.3 и им подобным - решаю данную задачу исключительно на регистрах сведений, чтобы изменение статуса заказа не влекло за собой перепроведение документа, и использую три типа статусов - Управленческий (Обрабатываем/собираем/ждем на склад/отдали курьеру/чешем_в_носу), статус отгрузки (Да/Нет), статус оплаты (Оплачен/не оплачен).
Для начала необходимо определиться - какие статусы у заказа могут быть на сайте. Обращаем внимание, что статус может быть двух типов: "Заказ" и "Доставка". Нам нужен тип "Заказ", иначе работать не будет
Добавляем Статус, Код указываем на латиннице.Далее в настройках Интеграции с 1С на закладке Заказы - разрешаем менять статусы заказов по информации из 1С.
На этом, собственно, настройка Битрикс заканчивается.
Далее - отправляемся в 1С.
Открываем Общий модуль "Б_ПроцедурыИФункцииВыгрузкиДанныхНаСайт", Функция ВыгрузитьДокументXDTO(...)
Находим место, где объявляется выгрузка реквизитов:
XDTOЗначенияРеквизитов = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияРеквизитовТип);
И добавляем одну строчку с добавлением параметра с ИД статуса заказа в структуру:
Б_ОбщиеПроцедурыИФункцииОбменаССайтом.ДобавитьЗначениеРеквизитаXDTO(ПараметрыОбмена, XDTOЗначенияРеквизитов, XDTOЗначениеРеквизитаТип, "Статуса заказа ИД" , Статус_ИД);
Собственно, запускаем обмен, наслаждаемся результатом:
При этом не забывайте, что перед обменом - заказ должен быть зарегистрирован "к обмену" в Плане обмена, иначе просто не будет ничего выгружать.
Удачи.