Пример работы с Trello из 1С

15.02.20

Интеграция - WEB-интеграция

Небольшая конфигурация содержит примеры обмена с онлайн-сервисом Trello.

Файлы

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

Наименование Скачано Купить файл
Пример работы с Trello:
.cf 213,79Kb
67 2 500 руб. Купить

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

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

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

Какие возможности:

  1. Загрузка команды, досок, списков и карт. (надо учитывать, что при бесплатном использовании Trello в команде доступно не более 10 досок).
  2. Создание, обновление и выгрузка команды, досок, списков и карт в Trello.
  3. Переход из 1С на доску или карту в Trello.
  4. Переход из 1С к просмотру прикрепленных документов в Trello, прикрепление документов в 1С и выгрузка в Trello.
  5. Перетаскивание в 1С карт и списков с обновлением в Trello.

Для обмена с Trello нужно зарегистрироваться в сервисе и получить ключ и токен (зайти сюда).

Проверено на версии 8.3.16.1063.

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

конфигурация Trello

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

42700 руб.

03.08.2020    23148    33    24    

26

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17568 руб.

20.12.2024    5207    22    4    

24

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    41094    75    45    

31

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Расширение для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

24000 руб.

02.02.2021    21751    62    52    

40

Обмен с ГосИС WEB-интеграция Бухгалтер Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

5283 руб.

28.04.2016    99878    116    219    

364

WEB-интеграция Загрузка и выгрузка в Excel Программист Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Расширение освободит вас от необходимости вручную обновлять товары в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически синхронизирует ваш каталог. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.

12200 руб.

29.08.2025    1539    2    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PLAstic 296 17.02.20 09:10 Сейчас в теме
Молодец. Но мне начальство сказало в своё время, что недопустимо хранить конфиденциальные сведения компании о разработке на сторонних серверах. И мы выбрали standalone-сервер YouTrack. Интеграция та ещё, но вроде работает. Ну и учёт времени есть ещё, и спринты.
6. пользователь 18.02.20 09:22
Сообщение было скрыто модератором.
...
7. пользователь 18.02.20 09:32
Сообщение было скрыто модератором.
...
9. пользователь 18.02.20 09:44
Сообщение было скрыто модератором.
...
10. пользователь 18.02.20 10:35
Сообщение было скрыто модератором.
...
11. пользователь 18.02.20 10:49
Сообщение было скрыто модератором.
...
12. пользователь 18.02.20 11:06
Сообщение было скрыто модератором.
...
13. пользователь 18.02.20 11:17
Сообщение было скрыто модератором.
...
14. пользователь 18.02.20 12:29
Сообщение было скрыто модератором.
...
15. пользователь 18.02.20 12:50
Сообщение было скрыто модератором.
...
18. пользователь 18.02.20 15:50
Сообщение было скрыто модератором.
...
19. пользователь 18.02.20 15:58
Сообщение было скрыто модератором.
...
20. пользователь 18.02.20 18:11
Сообщение было скрыто модератором.
...
21. пользователь 18.02.20 19:43
Сообщение было скрыто модератором.
...
22. пользователь 18.02.20 21:11
Сообщение было скрыто модератором.
...
23. пользователь 19.02.20 09:01
Сообщение было скрыто модератором.
...
24. пользователь 19.02.20 09:35
Сообщение было скрыто модератором.
...
25. пользователь 19.02.20 09:47
Сообщение было скрыто модератором.
...
2. wowan ht 5 17.02.20 13:54 Сейчас в теме
Здравствуйте.
Вы используете в обмене post-запросы multipart/form-data?
3. пользователь 17.02.20 14:32
Сообщение было скрыто модератором.
...
4. terrorion 94 17.02.20 14:34 Сейчас в теме
(2) для отправки файла да, там код я заимствовал, ресурс не помню
5. wowan ht 5 18.02.20 08:11 Сейчас в теме
(4) можете поделиться конкретно этим куском кода? Просто пытаюсь написать аналогичный, но почему-то на сервис приходит только первая часть запроса, никак не могу победить передачу файлов.
8. terrorion 94 18.02.20 09:40 Сейчас в теме
&НаСервере
Функция ПодготовитьИОтправитьВложение(ПеремещаемыеФайлы)
	
	ПараметрыВозврата = Новый Структура("Ошибка,Результат");
	ПараметрыВозврата.Ошибка = Ложь;
	ПараметрыВозврата.Результат = "";
	
	Для Каждого ПолученноеИмяФайла Из ПеремещаемыеФайлы Цикл

		ИмяФайлаДляЗагрузки = ПолучитьИмяВременногоФайла(ПолученноеИмяФайла.Расширение);
		ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПолученноеИмяФайла.Хранение);
		ДвоичныеДанные.Записать(ИмяФайлаДляЗагрузки);
		ИмяФайлаОтправки = КаталогВременныхФайлов() + "post.txt";    

	    Boundary = Строка(Новый УникальныйИдентификатор());

	    //Определяем массив для процедуры ОбъединитьФайлы 

	    МассивФайловДляОбъединения = Новый Массив; 

	    //Формируем начальный фрагмент файла POST-запроса 

	    ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("txt"); 
	    ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.ANSI, Символы.ПС, Ложь); 
	    //Определяем раздел двоичных данных 

	    ФайлОтправкиНачало.ЗаписатьСтроку("--" + Boundary); 
	    //Указываем имя файла для передачи 

	    ФайлОтправкиНачало.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename=""" + ПолученноеИмяФайла.Имя + """"); 
	    //Указываем тип передаваемых данных. 

	    ФайлОтправкиНачало.ЗаписатьСтроку("Content-Type: application/x-octet-stream"); 
	    ФайлОтправкиНачало.ЗаписатьСтроку(""); 
	    ФайлОтправкиНачало.Закрыть(); 

	    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало); 

	    //Копируем файл для загрузки во временный и добавляем в массив файлов для объединения 

	    ИмяФайлаДляЗагрузкиВременный = ПолучитьИмяВременногоФайла("tmp"); 
	    КопироватьФайл(ИмяФайлаДляЗагрузки, ИмяФайлаДляЗагрузкиВременный); 
	    МассивФайловДляОбъединения.Добавить(ИмяФайлаДляЗагрузкиВременный); 

	    //Формируем конечный фрагмент файла POST-запроса 

	    ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt"); 
	    ФайлОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.ANSI, Символы.ПС, Ложь); 

	    //Завершение раздела двоичных данных 

	    ФайлОтправкиКонец.ЗаписатьСтроку("--" + Boundary); 

	    ФайлОтправкиКонец.ЗаписатьСтроку("--" + Boundary + "--"); 
	    ФайлОтправкиКонец.Закрыть(); 

	    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец); 

	    //Теперь сформированные фрагменты сообщения для сервера объединяем в один файл POST-запроса 

	    ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки);     
	    Заголовки = Новый Соответствие();
	    Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
		
		ПараметрыАвторизации = Trello.ПолучитьПараметрыАвторизации();
		Сервер = "api.trello.com";
		АдресРесурса = "/1/cards/"+Объект.id+"/attachments?key="+ПараметрыАвторизации.Ключ+"&token="+ПараметрыАвторизации.Токен;
		HTTPСоединение = Новый HTTPСоединение(Сервер,443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
	    HTTPЗапрос = Новый HTTPЗапрос();
		HTTPЗапрос.Заголовки = Заголовки;
		HTTPЗапрос.АдресРесурса = АдресРесурса;
	    HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки);    

		Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
		Если Ответ.КодСостояния<>200 Тогда
                        ...
			Прервать;
		Иначе
                        ...
		КонецЕсли;

	КонецЦикла;

КонецФункции
Показать

(5)
16. wowan ht 5 18.02.20 13:13 Сейчас в теме
(8) а почему "Content-Type: application/x-octet-stream"? Это требование http-сервиса?
17. terrorion 94 18.02.20 13:19 Сейчас в теме
(16) Код был заимствован как есть. Проверил, без данного заголовка отправка файла также успешна.
27. Yashazz 4893 18.08.20 18:08 Сейчас в теме
(8) Ой. Громоздко и старомодно. То же самое действие можно сделать без записи в файлы и без их объединения.

	// готовим файл вложения к отправке как multipart
	рРазделитель=СтрЗаменить(Строка(Новый УникальныйИдентификатор),"-","_");
	
	рПоток=Новый ПотокВПамяти;
	рЗапись=Новый ЗаписьДанных(рПоток,КодировкаТекста.ANSI);
	
	// начало
    рЗапись.ЗаписатьСтроку("--"+рРазделитель); 
    рЗапись.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename="""+_ИмяВашегоФайла_+""""); // файл к передаче
    //рЗапись.ЗаписатьСтроку("Content-Type: application/x-octet-stream"); // тип передаваемых данных, необязательный
    рЗапись.ЗаписатьСтроку(""); // обязательно пишем пустую строку
	//
	// собственно данные файла
	рЗапись.ЗаписатьБуферДвоичныхДанных(ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(_ДвоичныеДанныеВашегоФайла_));
	//
	// окончание
	рЗапись.ЗаписатьСтроку(""); // обязательно пишем пустую строку
    рЗапись.ЗаписатьСтроку("--"+рРазделитель+"--");
	
	рЗапись.Закрыть();	
	рРазмер=XMLСтрока(рПоток.Размер());
	ДвоичныеДанныеДляТелаЗапроса=рПоток.ЗакрытьИПолучитьДвоичныеДанные();
Показать


Разумеется, если там не колоссальные объёмы, т.к. ограничение в 1ГБ на операцию с двоичкой никто не отменял, а в веб-клиенте особенно)
29. terrorion 94 18.08.20 19:08 Сейчас в теме
(27) Принято. Спасибо!
30. Yashazz 4893 18.08.20 19:32 Сейчас в теме
(29) А вам спасибо за сам принцип, как правильно скармливать Трелло файл для вложения. А то было уже обыскался.

Ну и рРазмер потом надо сунуть в заголовке запроса в content-length, естессно
28. Yashazz 4893 18.08.20 18:09 Сейчас в теме
(8) И кстати у вас там ошибка. Там одна завершающая строка с разделителем - лишняя, надо не boundary писать, а просто пустую строку. Так согласно формату multiparts. А если как у вас, да гнать туда текст, то в итоге к тексту снизу припишется эта самая строчка-boundary.
26. untru 68 23.02.20 01:53 Сейчас в теме
31. user721364 26.01.21 09:37 Сейчас в теме
А если несколько пользователей будут отправлять, то может не сработать

  КаталогВременныхФайлов() + "post.txt"; 
32. user721364 26.01.21 11:35 Сейчас в теме
Чтобы файл с кириллицей загрузился, нужно написать так

    ФайлОтправкиНачало.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename*=UTF-8''" + КодироватьСтроку( НазваниеФайлаДляТрелло, СпособКодированияСтроки.КодировкаURL ) ) ;
33. dimisa 137 23.10.21 14:17 Сейчас в теме
Скачал Вашу поделку . Очень пригодилась. Отличная работа. Очень хорошо что все что касается трелло выделено в отдельную подсистему.
Интегрировать Ваш функционал одно удовольствие.

Держите в качестве благодарности код для раскрашивания карточкек ;) (В Вашей разработке такого нет)


//--- Раскрасить карточку Trello
	//--- иточники описания API
    //   https://community.developer.atlassian.com/t/trello-rest-api-card-colors-covers/38865/8
	//   https://community.developer.atlassian.com/t/trello-rest-api-card-colors-covers/38865/9
	
	Заголовки = Новый Соответствие();
	Заголовки.Вставить("Content-Type", "application/json");
	ПараметрыАвторизации = Trello.ПолучитьПараметрыАвторизации();
	Сервер = "api.trello.com";
	АдресРесурса = "/1/cards/"+НовыйЭлементTrello_карты.id+"?key="+ПараметрыАвторизации.Ключ+"&token="+ПараметрыАвторизации.Токен;
	HTTPСоединение = Новый HTTPСоединение(Сервер,443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
	HTTPЗапрос = Новый HTTPЗапрос();
	HTTPЗапрос.Заголовки = Заголовки;
	HTTPЗапрос.АдресРесурса = АдресРесурса;
	
	//--- структура JSON Для раскрашивания карточки Trello
	//  {
	//	"cover":{
	//	            "color":"purple",  //--- Собственно тут цвет
	//	            "idAttachment":null,
	//	            "idUploadedBackground":null,
	//	            "size":"normal",
	//	            "brightness":"light"
	//	            }
	//	}
	
	//--- Доступные цвета из описания API
	// pink, yellow, lime, blue, black, orange, red, purple, sky, green
		
	ИмяФайлаТела = ПолучитьИмяВременногоФайла("tmp");
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.ПроверятьСтруктуру 	= Ложь;
	ПараметрыЗаписиJSON 			= Новый ПараметрыЗаписиJSON( , Символы.Таб);
	ЗаписьJSON.ОткрытьФайл(ИмяФайлаТела, , , ПараметрыЗаписиJSON);
	ЗаписьJSON.ЗаписатьНачалоОбъекта();
	ЗаписьJSON.ЗаписатьИмяСвойства("cover");
		ЗаписьJSON.ЗаписатьНачалоОбъекта();
		ЗаписьJSON.ЗаписатьИмяСвойства("color");
		ЗаписьJSON.ЗаписатьЗначение("purple");    //--- Собственно тут цвет
		ЗаписьJSON.ЗаписатьИмяСвойства("idAttachment");
		ЗаписьJSON.ЗаписатьЗначение(Неопределено);	
		ЗаписьJSON.ЗаписатьИмяСвойства("idUploadedBackground");
		ЗаписьJSON.ЗаписатьЗначение(Неопределено);	
		ЗаписьJSON.ЗаписатьИмяСвойства("size");
		ЗаписьJSON.ЗаписатьЗначение("normal");
		ЗаписьJSON.ЗаписатьИмяСвойства("brightness");
		ЗаписьJSON.ЗаписатьЗначение("light");
		ЗаписьJSON.ЗаписатьКонецОбъекта();	
	ЗаписьJSON.ЗаписатьКонецОбъекта();
	ЗаписьJSON.Закрыть();
	HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаТела); 
	Ответ = HTTPСоединение.ВызватьHTTPМетод("PUT",HTTPЗапрос);	
	Если Ответ.КодСостояния<>200 Тогда		
		Сообщить(ПараметрыВозврата.Результат);		
	КонецЕсли;


Показать


Заранее извиняюсь что JSON через временный файл передал в HTTPЗапрос, можно было через строку передавать в HTTPЗапрос но я лентяй :)
34. terrorion 94 23.10.21 17:09 Сейчас в теме
(33) Спасибо за отзыв! Благодарю за код.
35. shalik 02.11.21 11:59 Сейчас в теме
(34)
Подскажите пожалуйста, сам я начинающий разработчик, с апи не работал, но задачу поставили) Нужно в ваш модуль добавить возможность заполнения пользовательских полей. Вроде метод нашел, но чтобы их заполнить нужно получить id этих полей. Вот и собсна вопрос, как его можно получить?
36. terrorion 94 02.11.21 12:02 Сейчас в теме
(35) Данную обработку делал давно и после ею не занимался. Посмотреть api нужно в трелло, но сейчас недосуг.
Для отправки сообщения требуется регистрация/авторизация