Чудесатые чудеса с выгрузкой заказов между 1С и Bitrix

Началось всё с того, что после настройки обмена мeжду Bitrix и 1С, заказы в 1С не прилетали. Посмотрел логи, подебажил код обмена и , увидел чудную ошибку «Transferred a partial file» при попытке получить файл заказов. Что при файловом варианте, что при серверном. Причем из браузера (по этой методике), файл открывался и корректно формировался. Просмотр логов сервера apache, добавил еще одну ошибку:

Гуглинг объяснил, что это возможно ошибка в настройках ngnix. Совместно с хостером, попытались пару настроек изменить, после чего хостер сказал «ничё не знаю, у нас всё нормально». Доступа к настройкам сервера к сожалению нет — только через хостера.

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

Единственной задачей которого было выплюнуть уже готовый файл.

В 1С попробовал:

И получил ровно ту-же ошибку в 1С: Transferred a partial file. Шта??? Круг подозреваемых сузился. Стал винить во всем реализацию HTTPСоединение в 1С. А что если попробовать изобрести свою замену? Родил врезку в модуль обмена с сайтом:

Работает.. Заказы в 1С появились..

1СЖ:Ошибка импорта товара на сайт

Ошибка: Ошибка импорта метаданных.В редакции Малый Бизнес нет возможности иметь более одного типа цены. Настройте выгрузку из 1С или перейдите на другую редакцию БУС

Решение: необходимо переименовать наименование торгового соглашения на имя указанное в типах цен на сайте Битрикс.

1c: сохранение настроек формы внешней обработки

Задача: при открытии внешней обработки, восстанавливать значения на форме которые были при предыдущем запуске обработки.

Решение: на события ПриОткрытииНаСервере и при ПриЗакрытииНаСервере навсеми обработчики:

1С: Поиск пользователя по имени пользователя информационной базы.

Задача: найти пользователя из справочника «Пользователи» если известно только имя пользователя информационной базы.

Решение: воспользуемся стандартной функцией БСП ПользователиИнформационнойБазы:

Загрузка и обработка большого файла EXCEL в 1С с прогрессбаром

Задача: «фоново» загрузить файл эксель большого размера, с показом прогресса загрузки.

Решение:

В ходе выполнения задачи столкнулся с глюком платформы 1С, что при запуске фонового задания с параметром адреса временного хранилища файла, он приходит на сервер пустым. Потому пришлось делать «финт ушами», а именно перед запуском фонового задания, файл загрузить на сервер, получить его временное имя и уже затем передать его как параметр при запуске фонового задания.

Кроме того выплыла проблема с не рабочим способом передачи данных о загрузке при помощи хранения данных во «ВременныхХранилиах», описанным тут. Потому для получения прогресса воспользуемся возможностью зная идентификатор фонового процесса периодически получить с сервера данные выводимые при помощи «Сообщить()».

В общих модулях разместим следующий код фонового процесса:

Клиентская часть в управляемых формах:

1 9 10 11 12 13 41