Отправка данных в 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
50 Скачать (1 SM) Купить за 1 850 руб.

Добрый день!

Хочу представить пример обработки для отправки данных в 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 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

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

28500 руб.

15.11.2022    20677    21    49    

38

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13742    13    48    

25

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

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

48000 руб.

24.04.2017    51048    101    165    

89

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

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

60000 руб.

05.10.2022    10793    13    8    

15

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

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

84000 руб.

19.08.2020    25050    23    1    

25

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

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

10200 руб.

24.06.2021    20706    57    53    

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