Выгрузка таблиц (Excel, OpenOffice) в Google Drive

03.08.15

Интеграция - Загрузка и выгрузка в Excel

Обработка позволяет загрузить файлы Excel и OpenOffice на Google Drive (Google Docs). Не требует дополнительных компонент. Может применяться для публикации документов из 1С (например, обновляемые финансовые отчеты для руководителей).

Скачать файл

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

Наименование По подписке [?] Купить один файл
ВыгрузкаТаблицыExcelВGoogleDrive1.2.epf
.epf 19,95Kb ver:1.2
101
101 Скачать (1 SM) Купить за 1 850 руб.
ВыгрузкаТаблицыExcelВGoogleDrive1.2.ert
.ert 16,00Kb ver:1.2
23
23 Скачать (1 SM) Купить за 1 850 руб.

Обработка работает через Google Apps API, используя напрямую http протокол. Загруженный файл автоматически конвертируется в таблицу (SpreadSheet).

В архиве две обработки - для 1С 7.7 и 8.2. Для работы нужны стандартные компоненты Windows - "WinHttp.WinHttpRequest.5.1", "ADODB.Stream", "Msxml2.DOMDocument" и "MSScriptControl.ScriptControl" (для 1С 7.7).

Работать с обработкой очень просто. Нужно заполнить реквизиты (см. рисунок):

1. Указать имя файла

2. Указать имя аккаунта на @gmail (полностью)

3а. Если в профиле Google включена двухэтапная аутентификация, то нужно сгенерировать имя и пароль приложения здесь и указать их.

3б. Если аутентификация обычная, то просто ввести пароль к аккаунту.

4. Указать имя документа на Google Drive. Если документ с таким именем существует, то его содержимое будет обновлено, иначе будет создан новый.


Все замечания, предложения и найденные ошибки прошу озвучивать в комментариях.


P.S. Для файлов Excel 97 Google Drive не поддерживает конвертацию - при загрузке обработка выдаст ошибку.

UPD 2015-08-03. Переделал обработку под новое API Google Drive.

Основные изменения:

1. Авторизация OAuth2. Внимание! Для возможности использования обработки в автоматическом режиме нужно один раз авторизироваться интерактивно (кнопка "Авторизироваться" на форме обработки). Обработка запоминает токен авторизации (refresh_token) для последующего использования.

2. Изменены процедуры поиска и загрузки документов на Google Drive (JSON).

UPD 2015-08-05. Исправлена ошибка - если имя таблицы содержало одинарные или двойные кавычки, то выдавалась "Parsing Error".


См. также

SALE! 15%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 1C:Бухгалтерия 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

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

6000 5100 руб.

09.11.2016    243048    1122    911    

1049

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2878    3    0    

11

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

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, МагнитЭкспресс (быв.Казань-Экспресс), Леруа Мерлен, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:КА 2, 1С:ERP Управление предприятием. Возможность подключить любые маркетплейсы. Анализ продаж ОZON. 30 дней БЕСПЛАТНОГО пользования!

5400 руб.

12.08.2021    38240    415    68    

174

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

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

60000 руб.

07.05.2019    34951    68    45    

27

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 26.03.2025, версия 9.10 - 9.16)

18000 руб.

20.11.2015    159743    393    378    

522

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

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

57600 руб.

26.11.2024    2634    2    3    

5

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

Обработки загрузки данных о продажах WildBerries предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Розница, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3

4800 руб.

11.12.2019    59593    1019    3    

256

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

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

120000 руб.

19.08.2020    26666    26    1    

28
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. zato 14.11.12 12:17 Сейчас в теме
Пользуюсь Dropbox уже давно при синхронизации баз. С работы и дома.Если (мысль) поставить по более этих сервисов как где то видел обработку по выборе удаленок. Т.е яндексДиск,Dropbox и т.д но а так +
2. zan_od 55 19.11.12 12:19 Сейчас в теме
(1) zato1c,
Я эти обработки писал с другой целью. Клиенту необходима была онлайн-версия отчета из 1С (периодически обновляемая), которую он смог бы расшарить сотрудникам, не работающим в 1С непосредственно. После перебора возможных вариантов остановились на Google Docs.

Не совсем понимаю, зачем использовать 1С для синхронизации файлов в облачных хранилищах. Можно подробнее развить мысль насчет 1С<->Dropbox, например?
адуырщдв; +1 Ответить
3. zato 19.11.12 16:24 Сейчас в теме
В крцее могу сказать как я делаю. выгружаю конфу в Dropbox после этого прихожу в другое место уже с другого компа открываю свою базу уже с обновленного файла Dropbox.
4. Wanderer.nk 19 15.03.13 13:14 Сейчас в теме
для этой цели есть VPN.
Abadonna; +1 Ответить
5. 924 11.08.14 19:51 Сейчас в теме
Добрый день! Пришлите мне пожалуйста обработку на почту vodoroslia@gmail.com , у меня не хватает $ =)
6. hombre 14 03.07.15 07:28 Сейчас в теме
После двух недель нормальной работы, обработка перестала загружать файл на диск. Останавливалась с ошибкой
Ошибка запроса авторизации: Not Found
Ошибка авторизации: пустой wise токен авторизации

Через некоторое время зарабатала, но опять ненадолго. Пароли, Настройки доступа не менялись. Проверял на разных эккаунтах. С чем это может быть связано? Или что можете посоветовать, чтобы исправить ситуацию.
7. zan_od 55 03.07.15 12:57 Сейчас в теме
В очередной раз поменялось Google API. У меня тоже перестало выгружаться где-то неделю назад.
Разберусь - выложу обновление.
8. hombre 14 07.07.15 10:46 Сейчас в теме
(7) подскажите как часто происходят такие изменения?
9. zan_od 55 08.07.15 09:53 Сейчас в теме
(8) hombre, сложно сказать. Google постоянно меняют API, просто изменения могут не затрагивать используемый в обработке функционал. Судя по моим доработкам, функционал выгрузки меняется в среднем раз в год.
10. hombre 14 04.08.15 12:23 Сейчас в теме
Анатолий, спасибо за обновление. При попытке выгрузить файл выходит ошибка
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error"
}
],
"code": 400,
"message"

Подскажите, в чем может быть проблема?
11. zan_od 55 04.08.15 22:44 Сейчас в теме
(10) hombre, для того, чтобы я мог воспроизвести ошибку, приведите полный текст ошибки (судя по приведенному Вами отрывку - это не весь текст).
Имя модуля и номер строки не выводится?
Как выглядит ошибка: диалог посередине экрана или в окне сообщений внизу экрана?
Какой файл загружаете: Excel или OpenOffice?
В какой версии сохранен файл?
Это обновление существующего файла или загрузка нового?
На каком этапе возникает ошибка: авторизация или непосредственно загрузка?
13. hombre 14 05.08.15 10:52 Сейчас в теме
(11) Ошибка возникает только при обновлении существующего файла.
В окне сообщения ошибка:
Ошибка запроса обновления документа: (400) Bad Request
Отдельным текстовым окном:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error"
}
],
"code": 400,
"message": "Parse Error"
}
}

Имя таблицы на киррилице и на латиннице -результат одинаков.
14. zan_od 55 05.08.15 23:38 Сейчас в теме
(13) hombre, имя таблицы содержит кавычки? Исправил. Причина в том, что одинарные кавычки - спецсимвол в URL, а двойные кавычки - спецсимвол в JSON.
15. hombre 14 06.08.15 14:31 Сейчас в теме
(14) Без кавычек имя таблицы test
16. zan_od 55 06.08.15 18:01 Сейчас в теме
(15) hombre, странно. Давайте проверим такую версию: попробуйте выгрузить другой файл (попробуйте с пустого).
12. zan_od 55 04.08.15 22:53 Сейчас в теме
(10) hombre, как называется имя таблицы в Google Drive? Попробуйте выгрузить с простым именем, например "test"
17. xlmel 20.08.15 16:08 Сейчас в теме
Если просто положить файл на один определенный диск в Google Drive, то можно установить GoogleDrive для ПК на компьютер, сохранять файл в папку, на которую настроена синхронизация и не нужно все остальное. Для разных дисков нужно хранить разные refresh_token в разных файлах и где-то сохранять таблицу соответствия, чтобы не проводить при каждом соединении авторизацию. Да и с Google API часто проблемы бывают. В свое время убил кучу времени на Calendar.
18. kras_71 75 22.10.15 22:38 Сейчас в теме
В функции ОбновитьДокумент вот такие переделки и все работает:

Функция ОбновитьДокумент(Соединение, ТокенАвторизации, ИмяФайла, ИмяТаблицы, ИдДокумента)
	КоличествоБайт = РазмерФайла(ИмяФайла);
	
	Если ПустаяСтрока(ИдДокумента) = 1 Тогда
		
		Тело = 
		"{
		|	""title"": """ + ЭкранироватьСимвол(ИмяТаблицы, """") + """,
		|	""fileExtension"": ""xls""
		|}";
		
		Соединение.Open("POST", "https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&convert=true", 0); 
		Соединение.SetRequestHeader("Content-Length", СтрДлина(Тело));
		Соединение.SetRequestHeader("Content-Type", "application/json; charset=UTF-8");
	Иначе  
		 Сообщить("ОБНОВЛЯЕМ");
		Соединение.Open("PUT", "https://www.googleapis.com/upload/drive/v2/files/" + ИдДокумента + "?uploadType=resumable", 0);
		Тело = "";
	КонецЕсли;



  
	Соединение.SetRequestHeader("Authorization", "Bearer "+ТокенАвторизации);
	Соединение.SetRequestHeader("Content-Type", "application/json; charset=UTF-8");
	Соединение.SetRequestHeader("X-Upload-Content-Type", "image/jpeg");
	Соединение.SetRequestHeader("X-Upload-Content-Length", КоличествоБайт);
	//Соединение.SetRequestHeader("Authorization", "Bearer "+ТокенАвторизации);
	//Соединение.SetRequestHeader("X-Upload-Content-Type", "application/vnd.ms-excel");
	//Соединение.SetRequestHeader("X-Upload-Content-Length", КоличествоБайт);
	
	Соединение.Send(Тело); 
	
	Если Соединение.Status <>  200 Тогда
		Сообщить("Ошибка запроса обновления документа: (" + Соединение.Status + ") " + Соединение.StatusText, "!!");
		ВывестиСтроку(Соединение.ResponseText());
		Возврат 0;
	КонецЕсли;
	
	Ссылка = Соединение.GetResponseHeader("Location");
	
	Если ЗагрузитьФайлПоСсылке(Соединение, ТокенАвторизации, Ссылка, ИмяФайла, 0) <> 1 Тогда
		Сообщить("Ошибка загрузки файла на сайт", "!!");
		Возврат 0;
	КонецЕсли;
	
	Возврат 1;
КонецФункции
Показать
19. kras_71 75 23.10.15 00:06 Сейчас в теме
20. zan_od 55 23.10.15 16:15 Сейчас в теме
(19) kras_71, что пишет? Какая ошибка?
21. serviceonec 10.12.15 17:08 Сейчас в теме
За обработку спасибо. Все работает. Хотелось еще бы выгрузку в определенную папку.
22. Deryni 23 05.04.16 18:18 Сейчас в теме
Возникла проблема. Если загружать новый файл - то он загружается, а если попытаться обновить тот, что уже есть (даже тот, который только что загрузил), то выдаёт такую ошибку:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error"
}
],
"code": 400,
"message": "Parse Error"
}
}
23. Deryni 23 07.04.16 12:00 Сейчас в теме
Указанную проблему удалось решить так:
Вот этот блок
Соединение.SetRequestHeader("Content-Length", СтрДлина(Тело));
Соединение.SetRequestHeader("Content-Type", "application/json; charset=UTF-8");
Вставляем как для новых файлов, так и для обновляемых и всё работает.
В результате процедуры выглядит так:

Функция ОбновитьДокумент(Соединение, ТокенАвторизации, ИмяФайла, ИмяТаблицы, ИдДокумента) Экспорт
	КоличествоБайт = РазмерФайла(ИмяФайла);
	
	Если ПустаяСтрока(ИдДокумента) Тогда
		
		Тело = 
		"{
		|	""title"": """ + ЭкранироватьСимвол(ИмяТаблицы, """") + """,
		|	""fileExtension"": ""xls""
		|}";
		
		Соединение.Open("POST", "https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&convert=true", 0); 
	Иначе
		Соединение.Open("PUT", "https://www.googleapis.com/upload/drive/v2/files/" + ИдДокумента + "?uploadType=resumable&convert=true", 0);
		Тело = "";
	КонецЕсли;
	
	Соединение.SetRequestHeader("Content-Length", СтрДлина(Тело));
	Соединение.SetRequestHeader("Content-Type", "application/json; charset=UTF-8");	
	Соединение.SetRequestHeader("Authorization", "Bearer "+ТокенАвторизации);
	Соединение.SetRequestHeader("X-Upload-Content-Type", "application/vnd.ms-excel");
	Соединение.SetRequestHeader("X-Upload-Content-Length", КоличествоБайт);
Показать


Кроме того было обнаружено, что MSScriptControl.ScriptControl не работает на 64-битном сервере 1С.
Поэтому кодирование строки в URI было выполнено раскомментированием соотв. процедуры в модуле, которая делает это без внешних компонент.
Функция для преобразования имени в URI выглядит так:

Функция URLEncode(Знач Строка="")
	Строка = ЭкранироватьСимвол(Строка, "'");
	//ScrCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
	//ScrCtrl.Language = "JScript";
	//Сообщение = ScrCtrl.eval("var uri='"+Строка+"'; encodeURI(uri);");
	Сообщение = URLEncode0(Строка);
	Сообщение = ЭкранироватьСимвол(Сообщение, "'");
	Возврат Сообщение;
КонецФункции
Показать
24. zan_od 55 07.04.16 17:35 Сейчас в теме
25. script 128 17.10.16 13:56 Сейчас в теме
(23) Deryni,

После изменений в процедуре
URLEncode(Знач Строка="")

на 32 разрядном сервере 1С, файл не обновляется, а создается новый.
Если вернуть текст процедуры изначальный - все работает на УРА.

Спасибо огромное за технологию.
26. Aldvinq 11.04.17 12:08 Сейчас в теме
Добрый день!
Работаю на 64-разрядном сервере.
Сперва столкнулся с ошибкой "code": 400 при попытке обновить ранее выгруженный документ, затем воспользовался советом (23) - ошибка исчезла, но каждый раз начала создаваться новая таблица с одним и тем же наименованием. Что все-таки нужно поправить, чтобы обновлялась существующая таблица?
27. cwant 5 04.08.17 11:05 Сейчас в теме
28. Ark_W 14.09.17 12:15 Сейчас в теме
Здравствуйте!
Подскажите, как указать имя файла загружаемого на google диск?
29. zan_od 55 14.09.17 16:16 Сейчас в теме
(28) На форме реквизит "Имя таблицы"
30. user944024 27.03.18 17:22 Сейчас в теме
Добрый день! для 7.7. обработка в архиве есть? обработка конвертирует из xls в гугл док? умеет работать по расписанию?
31. zan_od 55 27.03.18 21:03 Сейчас в теме
(30) Добрый день. Обработка потеряла актуальность, работоспособность не проверял. Скорей всего не работает, так как с момента последней доработки API Google Drive менялся. Обработку можно использовать как основу для собственных наработок. Я пошел другим путем: написал небольшую Java-программу, которая использует официальный пакет Java на сайте разработчиков https://developers.google.com/drive/v3/web/quickstart/java, а из 1С запускаю JAR из командной строки с параметрами. Если кому-то интересно, могу выложить исходный код или проект.
32. hvh757 19.09.18 06:40 Сейчас в теме
(31) Доброго дня. Тема интересна. Если есть возможность - вышлите исходный код (можно и проект) на hvh@7-5-7.ru . Заранее благодарен.
33. user1076980 26.10.18 13:27 Сейчас в теме
Добрый день. Если еще актуальна данная помощь, то не могли бы Вы скинуть исходный код?)
34. DenMaxwell 17 25.03.19 16:44 Сейчас в теме
(31) Доброго дня. интересует исходный код на kirichenkod@gmail.com. Заранее благодарен.
35. user602990_lvv 28.03.19 13:34 Сейчас в теме
Здравствуйте.

Интересует чтение уже загруженного на google документа в 1с7.7

Подскажите, пожалуйста, на почту vitaliy1972li@yandex.ru.

Стартмани нет еще.

Спасибо.
36. bad_boys 17 11.10.19 11:22 Сейчас в теме
Здравствуйте.
А делал кто то создание папок с 1с в гугл диск?
Оставьте свое сообщение