Отправка данных в 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
48
.epf 8,49Kb 48 Скачать

Добрый день!

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

22

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

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

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

60000 руб.

05.10.2022    9304    9    8    

11

Экстрактор данных 1С в BI - выгрузка данных из 1С в BI-аналитику

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

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

15.11.2022    13643    12    SQV0    47    

29

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

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

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

24000 руб.

24.04.2017    48834    97    163    

86

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

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

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

24000 руб.

16.11.2018    30079    20    31    

21

Загрузка в БГУ из УРМ "Криста"

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

Обработки для загрузки данных из УРМ "Криста" в бухгалтерию государственного учреждения редакция 2.0. Есть Демо доступ на вкладке Бесплатные файлы на 1 месяц со дня получения демонстрационного ключа регистрации. Поддерживает ПО "Web-исполнение" от НПО "Криста".

4800 руб.

19.06.2013    38492    136    90    

30
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ltfriend 962 20.09.19 08:11 Сейчас в теме
WinHttp менее универсальный из-за того, что работает только под виндой.
3. Rif_md 6 20.09.19 14:12 Сейчас в теме
(1) Да, это понятно, что только под Windows. Я имел в виду возможность адаптации под 1С 7.7, которой случается ещё пользуются.
2. ImHunter 315 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 315 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 Ответить
Оставьте свое сообщение