Отправка данных в SPOT 2d посредством http запросов в 1С 8.3 УФ (без curl)

18.09.19

Интеграция - Внешние источники данных

Обработка для отправки данных в Spot2D двумя способами посредством http запросов в 1С 8.3 УФ (без curl).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Обработка для отправки данных в SPOT 2d посредством http запросов в 1С 8.3 УФ (без curl):
.epf 8,49Kb
50 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Добрый день!

Хочу представить пример обработки для отправки данных в SPOT 2D (Данная обработка НЕ ФОРМИРУЕТ файлы)
посредством http запросов

Эта обработка работает в версии 1С 8.3 на управляемых формах.

Есть публикации, в которых это уже реализовано, но под более ранние версии 1С.

В данной обработке используются 2 метода передачи данных на выбор:

1) Встроенный метод 1С - методом УстановитьТелоИзСтроки HTTP запроса.
     Пробовал метод УстановитьИмяФайлаТела, но почему то не получилось

2) Посредством COM объекта WinHttp.WinHttpRequest.5.1
    (он более универсален, т.к. при необходимости позволяет его адаптировать в 1С 7.7)

В интерфейсе обработки нужно указать каталог файлов загрузки (можно выбрать), маску файлов (по умолчанию *.csv),
сервер, адрес (ресурс сервера), пользователя, пароль и ID. Можно выбрать альтернативный метод отправки - галочка методом Win http, и предусмотрено удаление файлов запросов - соответствующая галочка.

Общий алгоритм:

В указанном каталоге ищутся все файлы по маске, и производится отправка каждого с выводом сообщения ответа сервера.

Занялся этой обработкой, т.к. не нашел готовой, а у многих, вижу, были проблемы с http запросами. И ещё искал альтернативу программе curl.

Обработка тестировалась на платформе 1С:Предприятие 8.3 (8.3.14.1565)

Вступайте в нашу телеграмм-группу Инфостарт

Обработка для отправки данных в Spot2D двумя способами посредством http запросов 8.3 УФ (без curl)

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    27783    38    49    

43

Внешние источники данных Программист Бизнес-аналитик 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Розница 3.0 Платные (руб)

Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouseDB, PostgreSQL, MySQL, в шину данных с поддержкой REST API (CSV, JSON. SQL), в локальные файлы (CSV, JSON, XLS, XLSX) или в Google Sheets. Это дополнительная подключаемая обработка.

18000 руб.

21.08.2024    5586    11    4    

12

Оптовая торговля Розничная торговля Внешние источники данных Прайсы 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Хотите, чтобы остатки и цены товаров в вашей базе всегда были актуальными без лишних усилий? Теперь это возможно - автоматизируйте процесс загрузки и обновления данных о номенклатуре от ваших поставщиков или конкурентов. Как это работает? Вы сами настраиваете правила и расписание для каждого поставщика, чтобы обновление информации из произвольных форматов прайс-листов происходило автоматически.

15000 руб.

15.05.2024    2812    5    0    

6

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Бухгалтерский учет 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (базовая, ПРОФ, КОРП, ФРЕШ).

13200 руб.

19.12.2016    51333    108    106    

77

Производство готовой продукции (работ, услуг) Внешние источники данных 1С v8.3 1С:Управление нашей фирмой 1.6 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник 1С "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

10200 руб.

24.06.2021    24172    61    55    

44

Внешние источники данных Загрузка и выгрузка в Excel Зарплата Бюджетный учет Системный администратор Программист 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате из Парус 10(Торнадо) учреждений через файлы Excel в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ). В принципе, обработка может быть использована для загрузки из файлов Excel, полученных из любых информационных систем.

60000 руб.

16.11.2018    32160    23    31    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ltfriend 20.09.19 08:11 Сейчас в теме
WinHttp менее универсальный из-за того, что работает только под виндой.
3. Rif_md 6 20.09.19 14:12 Сейчас в теме
(1) Да, это понятно, что только под Windows. Я имел в виду возможность адаптации под 1С 7.7, которой случается ещё пользуются.
2. ImHunter 341 20.09.19 09:31 Сейчас в теме
(0) (1) У меня вот так вот без внешних модулей
Функция пуПередатьФайл(ВидДанных, ИмяФайла) Экспорт
	
	Передано = Ложь;
	
	ВидФайла = ПолучитьИмяФайлаДанных(ВидДанных, "csv");
	
	 // подготовим файл с данными для отправки
	ИмяФайлаОтправки = ПолучитьимяВременногоФайла("txt");
	Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
	 
	ЗаписьТекста = Новый ЗаписьТекста(ИмяФайлаОтправки);
	 
	// параметр "ufile"
	ФайлДляПередачи = Новый ТекстовыйДокумент;
	ФайлДляПередачи.Прочитать(ИмяФайла);
	 
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
	ЗаписьТекста.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; filename=""%1""", ВидФайла));
	ЗаписьТекста.ЗаписатьСтроку("Content-Type: text/plain");
	ЗаписьТекста.ЗаписатьСтроку("");
	ЗаписьТекста.Записать(ФайлДляПередачи.ПолучитьТекст());
	ЗаписьТекста.ЗаписатьСтроку("");
	
	// параметр "__login"
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
	ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""__login""");
	ЗаписьТекста.ЗаписатьСтроку("");
	ЗаписьТекста.ЗаписатьСтроку(пуПользователь);
	 
	// параметр "__password"
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
	ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""__password""");
	ЗаписьТекста.ЗаписатьСтроку("");
	ЗаписьТекста.ЗаписатьСтроку(пуПароль);
	 
	// параметр "__did"
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
	ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""__did""");
	ЗаписьТекста.ЗаписатьСтроку("");
	ЗаписьТекста.ЗаписатьСтроку(пуИдентификатор);
	 
	 
	// закроем разделитель
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary+"--");
	 
	ЗаписьТекста.Закрыть();
	 
	ФайлОтправки = Новый Файл(ИмяФайлаОтправки);
	РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
	 
	// передадим данные на сервер 
	Заголовки = Новый Соответствие();
	Заголовки.Вставить("Content-Type", "multipart/form-data, boundary=" + boundary);
	Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки);
	
	Попытка
	 
		Запрос = Новый HTTPЗапрос(пуСтраница, Заголовки);
		Запрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные(ИмяФайлаОтправки));
		
		Соединение = Новый HTTPСоединение(пуСайт);
		Ответ = Соединение.ОтправитьДляОбработки(Запрос); 
		ОтветСтрока = Ответ.ПолучитьТелоКакСтроку();
		
		Передано = Ответ.КодСостояния>=200 И Ответ.КодСостояния<300;
		ЗаписьЖурналаРегистрации(ИмяСобытияЖР("Статус при отправке в spot2d"), 
			?(Передано, УровеньЖурналаРегистрации.Информация, УровеньЖурналаРегистрации.Ошибка), , , ОтветСтрока
		);
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
			?(Передано, 
				СтрШаблон("Данные %1 успешно переданы", ВидДанных), 
				СтрШаблон("Ошибка при отправке:
						|%1", ОтветСтрока))
		);
		
	Исключение
		
		Передано = Ложь;
		ОписаниеОшибки = ОписаниеОшибки();
		ЗаписьЖурналаРегистрации(ИмяСобытияЖР("Ошибка при отправке в spot2d"), УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки);
		
	КонецПопытки;	
		
КонецФункции
Показать
aviks__; Antoska; +2 Ответить
4. Rif_md 6 20.09.19 14:17 Сейчас в теме
(2) Тоже вариант решения. Я пробовал УстановитьИмяФайлаТела, но не срабатывало. Я думал о варианте с УстановитьТелоИзДвоичныхДанных, но мне не понравилась идея с конвертацией в бинарный формат когда можно сразу строку передать параметром (мне кажется этот способ передает меньший объем). Со строкой тоже нюансы. Если файл большой, то уже нельзя использовать строковую переменную, нужно записать текстовый файл, а потом передать параметром
УстановитьТелоИзСтроки(ФайлДляПередачи.ПолучитьТекст())
или
WinHttp.Send(ФайлДляПередачи.ПолучитьТекст())
5. sergejr 11.07.20 00:54 Сейчас в теме
(2) подскажите выдает ошибку

500
ERROR:
Fayl otsutstvuet

куда копать? делал так же как у вас.

ВидФайла = Stocks.csv
6. ImHunter 341 11.07.20 17:41 Сейчас в теме
(5) Уже не могу проверить, т.к. не работаю больше с теми заказчиками.
Возможно, нет какого-то разделителя (пустой строки) или где-то лишний пробел.
7. sergejr 13.07.20 13:00 Сейчас в теме
8. gorevg 28 31.05.21 10:25 Сейчас в теме
(7) У вас получилось разобраться? Такая же ошибка выходит
9. Rif_md 6 31.05.21 14:49 Сейчас в теме
(8) А подробнее, где именно эта ошибка возникает?
10. EdikSarkisov 02.08.22 10:22 Сейчас в теме
(9)думаю Вы разобрались, но для будущих поколений зафиксируем:)
Актуальная строка передачи файла:
ЗаписьТекста.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=""ufile""; filename=""%1""", ВидФайла));

Важно, чтобы ВидФайла был указан маленькими буквами("clients", "ttoptions", "ta", "delivery", "stocks", "sku", "receive", "ordersconfirm", "ordersreturns", "movements", "cancellations", "offtake" , "warehouses")

И я добавил еще вот такую пару строк в начале файла
ЗаписьТекста.ЗаписатьСтроку("Content-Type: multipart/form-data; boundary="+boundary);
ЗаписьТекста.ЗаписатьСтроку("");
aviks__; Ayne; +2 Ответить
Для отправки сообщения требуется регистрация/авторизация