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

18.09.19

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

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

Скачать файлы

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

Добрый день!

Хочу представить пример обработки для отправки данных в 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)

См. также

Перенос данных из Парус 8 в ЗГУ 3

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

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

84000 руб.

19.08.2020    22450    19    1    

22

Перенос данных из Парус 10 в ЗГУ ред.3

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

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

60000 руб.

05.10.2022    9210    9    8    

10

Перенос данных из Парус 7.хх в ЗГУ ред.3

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

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

24000 руб.

24.04.2017    48707    97    163    

86

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически и наиболее полно ввести данные в программу для начала работы. 

15600 руб.

08.12.2011    81570    128    123    

147

Перенос данных из Парус 10 (Торнадо) в ЗГУ ред.3 через Excel

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

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

24000 руб.

16.11.2018    30004    20    31    

21

Загрузка спецификаций в УНФ из системы Базис-мебельщик

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

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

7200 руб.

24.06.2021    19128    52    50    

29
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ltfriend 954 20.09.19 08:11 Сейчас в теме
WinHttp менее универсальный из-за того, что работает только под виндой.
3. Rif_md 6 20.09.19 14:12 Сейчас в теме
(1) Да, это понятно, что только под Windows. Я имел в виду возможность адаптации под 1С 7.7, которой случается ещё пользуются.
2. ImHunter 312 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 312 11.07.20 17:41 Сейчас в теме
(5) Уже не могу проверить, т.к. не работаю больше с теми заказчиками.
Возможно, нет какого-то разделителя (пустой строки) или где-то лишний пробел.
7. sergejr 13.07.20 13:00 Сейчас в теме
8. gorevg 16 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 Ответить
Оставьте свое сообщение