Чтение Google Spreadsheet из 1C на примере простой службы Help Desk

23.06.12

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

В статье рассматривается работа с Excel-подобными таблицами (spreadsheet) Гугл через Web API этой службы (только чтение). А также практический пример использования Google Spreadsheet для простейшей организации службы поддержки Help Desk.

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

Наименование Файл Версия Размер
down.zip
.zip 8,88Kb
92
.zip 8,88Kb 92 Скачать

В статье рассматривается работа с Excel-подобными таблицами (spreadsheet) Гугл через Web API этой службы (только чтение). А также практический пример использования Google Spreadsheet для простейшей организации службы поддержки Help Desk.

Организация службы поддержки с помощью Google Spreadsheet

Google Spreadsheet – это аналог таблиц Excel, с которыми могут работать несколько пользователей одновременно. Такой функционал позволяет развернуть на их базе простейшую коммуникацию специалистов службы поддержки.

Если все обращения пользователей поступают на один почтовый ящик, то кто-то назначается ответственным по разбору почты и регистрации заявок. Каждой заявке добавляется одна строка в Google-документе. Можно регистрировать заявки и каждому из специалистов поддержки при просмотре почты – зарегистрирована заявка или нет видно по списку.

При этом желательно добавить скрипт, который будет проставлять дату и время обращения при вводе текста в новую строку, чтобы не делать это вручную:

Инструменты — Управление скриптами, далее функция onEdit:

Добавляем скрипт:

function twoDigit(value) {

    return (value < 10 ? '0' : '') + value;

}

function formatRfc3339(date) {

    var y = date.getUTCFullYear();
    var l = twoDigit(date.getUTCMonth() + 1);
    var d = twoDigit(date.getUTCDate());
    var h = twoDigit(date.getUTCHours() + 3);
    var m = twoDigit(date.getUTCMinutes());
    var s = twoDigit(date.getUTCSeconds());

    return d + '.' + l + '.' + y + ' ' + h + ':' + m + ':' + s;

}

function onEdit(event) {

    var range = event.source.getActiveRange();
    var Row = range.getRow();
    var timestamp = formatRfc3339(new Date());
    var user = event.user;
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var cell = sheet.getRange(Row, 2);
    var col = range.getColumnIndex();
    var shname = sheet.getName();

    if ((cell.getValue() == "") && (col != 2) && (shname == "HelpDesk")) {

        cell.setValue(timestamp);

    }

}

В таблице для организации службы поддержки используются следующие колонки:

  • Дата, время – дата и время обращения
  • Заявитель – кто обратился с заявкой
  • Тема – тема, краткое содержание заявки
  • Специалист – кто из специалистов поддержки взялся за задание
  • Статус – статус задания
  • Комментарий – комментарий по ходу выполнения
  • Часы – затраченное на задание время

 

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

Принципы чтения Google Spreadsheet

Описание API Google реализовано тут:

http://code.google.com/apis/spreadsheets/data/1.0/reference.html

Нюансы, касающиеся аутентификации, рассмотрены тут:

http://code.google.com/apis/spreadsheets/data/1.0/developers_guide_protocol.html#AuthSubHTTP

Тем не менее, в реализации возникли некоторые сложности, которые удалось решить только обращением на форум sql.ru:

 

По сути, любая гугл-таблица выступает как RSS-поток, который можно прочитать в виде XML-файла, разобрать и получить нужную информацию.

На практике для чтения публичных и приватных документов требуется указывать различные адреса потоков public/values и private/full соответственно, как это делается в коде обработки:

Соединение = Новый HTTPСоединение("spreadsheets.google.com", , , , , Истина);
ИДФайла = "0Ao9KCEqHCZbidGVlUVcyYmt0NTlid2VDZ1ZxSF9vbHc";
Если ИмяПользователя = "" Тогда
    Соединение.Получить("/feeds/list/" + ИДФайла + "/od8/public/values", ФайлИД);
Иначе
    Соединение = Новый HTTPСоединение("spreadsheets.google.com", , , , , Истина);
    Соединение.Получить("feeds/list/" + ИДФайла + "/od8/private/full", ФайлИд, Заголовки);
КонецЕсли;

Демонстрационная обработка

Обработка из примера читает гугл-документ, расположенный по адресу: https://docs.google.com/spreadsheet/ccc?key=0Ao9KCEqHCZbidGVlUVcyYmt0NTlid2VDZ1ZxSF9vbHc :

Обработка реализована для чтения документа определенной структуры, поэтому нет поля ввода для чтения документа по другому адресу.

При этом она разукрашивает статусы разным цветом.

Можно отбирать заявки только за последние две недели.

Результат имеет вид:

См. также

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

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

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

60000 руб.

05.10.2022    9156    9    8    

10

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

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

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    209822    620    524    

438

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

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

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

84000 руб.

19.08.2020    22350    18    1    

21

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в 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 Платные (руб)

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

13200 руб.

20.11.2015    150383    365    375    

499

Автоматическая многопоточная выгрузка данных 1С 8.3 в БД Clickhouse и MS SQL (для работы с данными 1С в BI-системах)

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

Готовое решение для автоматизированной выгрузки данных из 1С 8.3, а также MS Excel в базу данных ClickHouse, а также в Microsoft SQL для работы с данными 1С в Yandex Datalens, Visiology, Apache Superset (и не только) - "Экстрактор данных 1С в BI". Решение отлично работает со всеми типовыми (и не только) конфигурациями 1С 8.3 для управляемых форм. Gозволяет автоматизировать работу бизнес-аналитика по ежедневной выгрузке данных из 1С в БД ClickHouse для последующей работы с этой БД в Yandex Datalens/ Система полностью автоматизирует работу с хранилищем данных в БД Clickhouse/MS SQL. Не надо быть программистом, чтобы одной кнопкой получать любые данные из 1С в Вашей BI-системе

230000 руб.

15.11.2022    12912    11    47    

28
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 24.06.12 00:14
Сообщение было скрыто модератором.
...
2. sai_NT 24.06.12 00:27 Сейчас в теме
(1) Eugeneer, кстати не так много рускоязычной инфы по работе со спредшитами (таблицами) от корпорации добра...
Я в свое время когда писал выгрузку отчета в ранее отформатированный спредшит ой как намучался, хотя до этого уже был опыт постинга в гугл-календарь. В любом случае нужная разработка в своей тематике!
anderson; +1 Ответить
3. iov 406 24.06.12 00:58 Сейчас в теме
(1) Я вот прям никак не пойму картину "черный квадрат" но она стоит много денег и считается мировым достоянием или как-то так... Так вот это я к чему пусть пишет... Это лучше чем в политику или гопники...
И тем более не лукавь - ты же прочитал - да еще и отписался - хотя в реально бесполезных темах - тебя замечено не было...
4. fixin 4252 24.06.12 09:28 Сейчас в теме
(1) я на базе Google Spreadsheets делал службу HelpDesk, как и описано в примере. Мало ли где нужна коллективная работа, ;-)

(2)(3) спасибо.
5. rus128 2 27.06.12 13:37 Сейчас в теме
не, за информацию по взаимодействию с Google Spreadsheets - спасибо, конечно, но делать HelpDesk на ее базе - это жесть...
как в нее внести заявку "не работает интернет"? :-)
6. fixin 4252 27.06.12 14:14 Сейчас в теме
(5) это HelpDesk по вопросам 1С. а не по вопросам интернета. Интересно, а как вы внесете заявку про интернет в любой ХелпДекс? Бугога.
7. rus128 2 27.06.12 15:09 Сейчас в теме
(6) а чо "бугога"? или реализация HelpDesk без интернета невозможна по определению?
на одном из прошлых мест работы HelpDesk был реализован на веб-приложении, на другом - не поверите - даже на 1С 8.1/8.2! :-)
8. fixin 4252 27.06.12 15:38 Сейчас в теме
(7) это если специалисты поддержки находятся в пределах интранет. Что натянуто как-то.
9. Abadonna 3958 27.06.12 16:07 Сейчас в теме
(6), (7)
Если бы наш сисадмин не был таким ленивым, он бы опубликовал, как сделать правильный Help-Desk в совокупности с корпоративным чатом ;)
Subject: Сообщение дня

Добро пожаловать! Информационно-техническая служба Сервис-М приветствует вас!

Напоминаем Вам, что запросы в службу технической поддержки принимаются в электронной форме по адресу http://help.its
Справочная информация о чате http://doc.its/chat/help
.... бла бла
// ссылки, разумеется, отсюда никуда не приведут

А Сережа пусть лучше обработки пишет, чем в форумах ругается.
Так что, fixin, плюс (но в уме)
10. fixin 4252 27.06.12 16:12 Сейчас в теме
(9) вот видишь, чтобы поднять такой ХД как у тебя, нужно иметь сисадмина, сервер PHP и MySQL. А тут без всяких сись-админов, взял и поднял в Гугле... Речь не о том, что у меня крутой ХД, а о том, что дешевый и сердитый. Надеюсь, теперь всё понятно?
11. Abadonna 3958 27.06.12 16:19 Сейчас в теме
(10) Дык я и не говорил, что у тебя плохой. Даже плюс в уме поставил ;)
12. fixin 4252 27.06.12 17:06 Сейчас в теме
(11) загадочны помыслы твои. остался ты мною не понят.
15. awk 741 28.06.12 20:32 Сейчас в теме
(9) Abadonna, Почему в уме? Идея хоть и через G, но вполне интересная своей нетривиальностью.... Хотя думаю, что бесплатный хостинг трака или редмайна найти в сети можно. Так что я пожалуй плюсану.
16. Abadonna 3958 30.06.12 03:02 Сейчас в теме
(15)
Почему в уме?

Потому что, если уж делать чисто одноэсовский Help Desk через инет, то и делать его надо 1С web-клиенте. Дешево, сердито, юзверям почти привычно. Но и такое решение, в общем, право на жизнь имеет, поэтому и в уме.
17. fixin 4252 30.06.12 09:14 Сейчас в теме
(16) вы не вкурили суть идеи - минимальными средтсвами.
зашел в гугл, поднял документ, раздал доступы и все.
сравните с другими вариантами - подымать апач, СКЛ сервер - для редмайна и подобных трекеров.
у вас ваще надо писать еще на 1с клиента и раздавать ключи доступа пользователям.
к тому же интерфейс экселя более понятен, чем интерфейс редмайна и подобных трекеров.
я не к тому, что хелпедеск через гугл - самый клевый, просто он самый простой.
адуырщдв; +1 1 Ответить
20. Abadonna 3958 01.07.12 07:27 Сейчас в теме
(17)
я не к тому, что хелпедеск через гугл - самый клевый, просто он самый простой.

Я тебе еще раз повторяю: я вовсе не говорил, что твое решение плохое.
Решение как решение.
23. Новиков 292 19.06.13 13:19 Сейчас в теме
(17)
сравните с другими вариантами - подымать апач, СКЛ сервер - для редмайна и подобных трекеров.


1. апач для редмайна устанавливать не обязательно. Для сабжа, в том ключе, который он описал вполне можно:
- либо юзать WEBrick, который идет вместе Ruby.
- либо доставить mongrel.
В первом случае - НИЧЕГО ДЕЛАТЬ НЕ НУЖНО, "оно само уже работает". В втором случае - написать одну команду в консоле.
Поэтому непонятно, что какую сложность Фиксин вкладывает в слово "подымать".

2.по поводу СУБД - можно выбрать тот сервер из поддерживаемых, который больше устраивает. Бесплатные в т.ч. Вся установка сходится к дальше-дальше-да-да-да-ок-ок. Опять не понятно, в чем затраты и сложность этого действия?

Сухой остаток: Redmine вместе с веб-сервером поднимается за 20 минут неторопливых действий. Сколько автор потратил на свои изыскания?

Но за статью я ставлю плюс, однозначно. Как демонстрация технической стороны вопросы.
За идею баг-трекера, суппорт-трекера и какого-то еще трекера - минус.
24. fixin 4252 19.06.13 14:02 Сейчас в теме
(23) Новиков, насколько же зашорено ваше сознание, боже мой!!!

Поймите, что ньюбу проще начать сразу с колес работать с Google Desk, чем разбираться 20 минут, как ставить сервер БАЗЫ ДАННЫХ и веб-сервер, какими бы простыми они не были. НЕ бывает серверов баз данных и веб-серверов с нулевым администрированием.

И потом, если вы напрактиковались ставить базы данных и веб-сервера за 20 минут, это не значит, что у ньюба это взлетит быстрее, чем за два часа.



Новиков, вы как с луны упали.

Хотя, если бы в интернете существовал НЕДОРОГОЙ платный сервис хелп-деск или коллективной работы, можно было бы им воспользоваться, как вариант.

И кстати, у наших клиентов стоит Redmine - никому не советую его в качестве хелп-деск, редкостное гуано.
Поэтому добавьте еще часа четыре на выбор, какой же из бесплатных хелп-десков выбрать. Эксель-подобные решения универсальнее.

Да. если ВСЕРЬЕЗ и НАДОЛГО, то нормальный хелпдеск лучше, спору нет.
А если на коленке и с колес, то нормалек и через Гугл-докс.
Светлый ум; +1 Ответить
25. Новиков 292 19.06.13 14:07 Сейчас в теме
(24)
И потом, если вы напрактиковались ставить базы данных и веб-сервера за 20 минут, это не значит, что у ньюба это взлетит быстрее, чем за два часа.


Вы описываете "ньюба" в лице себя, я так полагаю?
26. fixin 4252 19.06.13 14:14 Сейчас в теме
(25) как вариант. Новиков, вы поймите, что потребность в ХД может возникнуть не только в конторе, укомплектованной тру-админами, но и в мелкой организации, где нужны коллективные действия, и где даже корпоративного сайта нет.

Выйдите за рамки своей организации, подумайте о проблеме в общем. Пока нормальных средств взаимодействия, кроме гугл-докс нету.

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

В ИТ кризис - нет нормальных решений и нет анализа решений. Поэтому так много автоматизации на Экселе, спуститесь уже к реальной жизни, уважаемый олимпиец.
27. Новиков 292 19.06.13 14:31 Сейчас в теме
(26) Сергей, я даже не критиковал Вас, а вы уже ярлыки навешиваете в виде олимпийцев, луны и еже с ними. Я только высказал свою точку зрения. Если вы неприемлете это, укажите это в тексте статьи, я бы прошел мимо :)
28. fixin 4252 19.06.13 15:32 Сейчас в теме
(27) Я критикую не вас, а вашу точку зрения, используя красочные эпитеты. Если для вас такой стиль ведения дискуссии неприемлим, не будем ее продолжать. По существу вопроса я ответил, не нужно обсуждать офорление ответа. Обсуждайте аргументы, если дискуссия интересна.
18. awk 741 30.06.12 11:06 Сейчас в теме
(16) Abadonna,
Но и такое решение, в общем, право на жизнь имеет, поэтому и в уме.
Ясно. Другими словами не хочется светить свой ник в решении: "Как проводить топором хирургические операции". Плюс если в конце статьи написано, "берем скальпель" (это я про
Обработка из примера читает гугл-документ, расположенный по адресу:
).
19. fixin 4252 30.06.12 13:23 Сейчас в теме
13. vasiliy_b 284 28.06.12 09:38 Сейчас в теме
Отличная идея! Кстати в google есть еще формы, поэтому собирать информацию можно и через эти формы. Т.е создать список вопросов: Описание проблемы, конфигурация, тип проблемы, важность и т.д т.п. а все данные собираются уже в Spreadsheet.
14. fixin 4252 28.06.12 10:45 Сейчас в теме
(13) да, я в курсе за формы. Такие решения из серии - дешево и сердито. вообще началось с того, что ящик почтовый поддержки был один, а спецов, которые решали задачи - трое. Нужно было как-то взаимодействовать, чтобы разделять задачи.
Начали юзать хелпдеск.
21. адуырщдв 28 24.11.12 23:02 Сейчас в теме
Хорошее решение. Годно, конечно ж, не только для задачей обозначенных автором. Однозначно плюс.
22. адуырщдв 28 24.11.12 23:09 Сейчас в теме
(21) адуырщдв,
Например, три раза делали такое для 1. торгпредов с андроидами, 2. замерщиков и сборщиков с андроидами, и 3. босса фирмы просиживающего штаны в думе с ипадом :) Плюсы очевидны, недорого и надежно. Плюс ненужно никакого левого софта.
29. Новиков 292 19.06.13 15:42 Сейчас в теме
Если для вас такой стиль ведения дискуссии неприемлим, не будем ее продолжать

ок.
30. 7OH 69 11.04.14 01:17 Сейчас в теме
Ваш файл считывается хорошо.
А вот свой по примеру не выходит.
Файл открыт на полный доступ - его надо считать (люди добавляют данные, я считываю).
Исправил ссылку на /private/full, ошибка считывания исчезла, но файл получает пустой.
Поможете ?
Интересует тупо считывание таблицы в таблицу значений (может есть ещё публикации на эту тему)
Оставьте свое сообщение