Универсальное расширение 1С для Google Таблиц и Документов

Публикация № 993225

Разработка - Системная интеграция - Внешние источники данных

Управляемые формы Google Drive OAuth 2.0 Гугл Диск Sheets Таблицы Расширение API http загрузка табличный документ

Эта статья для тех, кто использует G Suite и 1С. Готовое решение для выгрузки отчетов и печатных форм из баз 1С в Google Диск в формате Google Таблиц и Google Документов. Информация по его внедрению. Описание создания и настройки проекта в GCP.

Введение

Я работаю в ПИК Digital — ИТ-компания, которая делает стройку технологичной. В прошлом году мы перевели Группу Компаний ПИК на G Suite. Для полноценной работы с Google Таблицами и Документами потребовалось доработать наши системы. Одна из таких доработок — расширение для выгрузки отчетов и форм из 1С в Google Диск в формате Google Таблиц и Google Документов. В статье мы поделимся готовым решением и полезной информацией по его внедрению.

Для работы расширения потребуется:

  1. Зарегистрировать аккаунт Google
  2. Создать проект в Google Cloud Platform
  3. Создать OAuth-клиент
  4. Настроить доступ к Google Drive API
  5. Установить расширение 1С
  6. Настроить подключение к Google API в 1С

Далее рассмотрим каждый этап в отдельности и приведем примеры кода.

 

Регистрация аккаунта Google

Для работы потребуется аккаунт Google. Без него расширение не сможет взаимодействовать с сервисами G Suite. Уже есть действующая учетка — используйте её.

 

Создание проекта в GCP

Для активации доступа к Google Drive API необходимо создать проект в Google Cloud Platform (GCP). Есть два варианта бесплатной работы с GCP: 
 

  • 12-месячный пробный период — с бюджетом в 300 долларов США.
  • Always Free — доступ к большинству ресурсов GCP.


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

Регистрируем проект по ссылке console.cloud.google.com, жмём «Выберите проект», затем — «Создать проект». После создания проекта выбираем его повторным нажатием кнопки «Выберите проект».

 

Создание OAuth-клиента

Создадим учетные данные для подключения к G Suite по протоколу OAUth 2.0. В GCP идём в пункт меню «API и сервисы» — «Учетные данные» — «Создать учетные данные» — «Идентификатор ключа OAUth».

Появится предложение создать окно запроса доступа. Это окно формируется, когда у пользователя спрашивают разрешение на доступ к его данным. 


Оставьте тип доступа «Открытый доступ» и введите название приложения, которое будет отображаться, когда сотрудник запустит проект и потребуется согласие на доступ к данным. Нажмите «Сохранить». 

После этого задайте «Тип приложения». Выберите «Другие типы» и введите идентификатор клиента OAuth. Обратите внимание, что это не то же самое, что отображаемое название приложения. В результате откроется окно с идентификатором и секретом клиента. Сохраните их, это важно. 
 

Подключение библиотеки Google Drive API

Для получения доступа к функционалу API перейдите в пункт меню «Библиотека API», найдите нужную библиотеку и подключите ее.

 

 

Поскольку мы хотим работать с форматами G Suite, необходимо подключить к проекту библиотеку Google Drive API. Кроме того, нам понадобится библиотека Google Sheets API, Google Docs API. Найдите и подключите ее таким же способом.
 

Установка расширения в пользовательском режиме


Теперь можно формировать запросы к API. Напомним: наша задача — выгрузить данные из отчета 1С стандартной формы в Google Таблицу или Google Документ.

Скачайте расширение 1С. 

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

Наше расширение работает с платформой начиная с версии 8.3.10, на конфигурациях БП (начиная с 3.0.65 и выше), ERP (начиная с 2.4.6 и выше) и УТ (начиная с 11.4.6 и выше).

Если при установке расширения у вас отобразится предупреждение безопасности, нажимайте «Да». Вы увидите сообщение о том, что «Текущее выполнение действия было прервано для выдачи предупреждения». Это означает, что у вас включен безопасный режим, поэтому процедуру добавления расширения нужно повторить, а безопасный режим — отключить. После добавления перезапустите 1С. 

Если установка прошла успешно, то вы увидите кнопку «Сохранить на Google Drive» в отчётах и печатных формах.

 

Настройка параметров подключения к Google API в 1С

Осталось настроить параметры подключения к Google API, и можно работать. Снова выбираем в меню пункт «Все функции» и в разделе «Обработки» ищем пункт «Параметры подключения к Google API». 

Заполняем поля Clientid, Clientsecret и «Порт» значениями, полученными при создании проекта в GCP. По умолчанию подставляются имя файла и папки, где будут сохранены временные ключи, используемые для подключения. Данные о ключах (refresh и access-токены) пользователя в целях безопасности сохраняются в каталог временных файлов текущего пользователя, в папку <имя папки> и в файл <имя файла>. Если один и тот же проект Google создается в разных конфигурациях, имя файла можно сделать одинаковым во всех из них, чтобы не создавать несколько файлов с одинаковой информацией. При сохранении параметры подключения сохраняются в хранилище общих настроек.
 

Сохранение отчета

Теперь вы сможете сохранять отчеты в формате Google Таблиц и Google Документов на Google Диске.

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

В появившемся окне введите адрес своей электронной почты Gmail и пароль. Далее в открывшемся окне нажмите «Разрешить». Так вы даёте приложению сохранить информацию в вашем Google Диске.

Вам потребуется ввести имя файла, выбрать его тип и каталог для сохранения на общем или личном диске. Нажмите «Сохранить». После сохранения отчет откроется в браузере. Приятного просмотра.
 

Техническая сторона вопроса

Теперь разберемся, как это работает внутри платформы 1С. 
Для подключения формируется следующая строка запроса к сервису Google: 
 

АдресПодключения="https://accounts.google.com/o/oauth2/auth"+"?"
		+ "response_type=code"
    		+ "&client_id=" + ид_клиента
    		+ "&redirect_uri=urn:ietf:wg:oauth:2.0:oob"
    		+ "&access_type=offline"
		+ "&scope=https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.apps.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata https://www.googleapis.com/auth/drive.metadata;


ид_клиента— идентификатор клиента, в котором мы ранее сохранили значение переменной. 
scope — адреса библиотек API, которые мы будем использовать. Если необходимо подключить несколько библиотек, перечислите их через пробел. 

Эта строка запроса нужна для одноразового подключения нашего клиентского приложения к сервису Google. Можно ввести строку запроса в браузере, в ответ сервис вернет URL примерно такого содержания: 
 

Success code=<КОД>&scope=https://www.googleapis.com/auth/admin.directory.user%20https://www.googleapis.com/auth/admin.directory.orgunit


Можно в конструкторе форм 1С добавить поле для HTML-данных и выполнить запрос через него. Нам необходимо из этого URL получить значение <КОД> — код доступа к сервису.

Осталось получить два токена, сделав HTTP-запрос. В результате запрос вернет строку со значениями access и refresh в формате JSON. Refresh-токен не теряет актуальности с течением времени, а access-токен живет 60 минут и затем требует обновления. Для получения этих токенов нам понадобятся только что полученный <КОД>, а также идентификатор и секрет клиента, которые мы сохранили ранее. 

Код может быть примерно таким: 
 

Сервер = "accounts.google.com";
Ресурс = "/o/oauth2/token";	
СтрокаЗапроса = СтрШаблон("client_id=%1&client_secret=%2&grant_type=authorization_code&code=%3&redirect_uri=urn:ietf:wg:oauth:2.0:oob", 
		ид_клиента, 
		секрет_клиента, 
		КодДоступа);
			
Соединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Заголовки  = Новый Соответствие;	
Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded”)	
ЗапросHTTP = Новый HTTPЗапрос(Ресурс,Заголовки);
ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаЗапроса);
Ответ = Соединение.ВызватьHTTPМетод("POST", ЗапросHTTP);	
Если НЕ Ответ.КодСостояния = 200 Тогда 
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СтрШаблон("Ошибка получения параметров авторизации: %1", Ответ.ПолучитьТелоКакСтроку()));		
    Возврат;
КонецЕсли;
Строка = Ответ.ПолучитьТелоКакСтроку();	
Чтение = Новый ЧтениеJSON();
Чтение.УстановитьСтроку(Строка);
Фабрика = ФабрикаXDTO.ПрочитатьJSON(Чтение);
Чтение.Закрыть();
	
ТокенДоступа		 = Фабрика.access_token;
ТокенОбновления		 = Фабрика.refresh_token;	
ВремяЖизниТокена	 = Фабрика.expires_in;


В переменной expires_in содержится время жизни access-токена. 
Ниже показан запрос на обновление токена: 
 

    Сервер          =   "accounts.google.com";
    Ресурс          =   "/o/oauth2/token";
    ТокенОбновления = 	GoogleНастройки.refresh_token;
    ид_клиента	    =	GoogleНастройки.client_id;
    секрет_клиента  =	GoogleНастройки.client_secret;

    СтрокаЗапроса = "grant_type=refresh_token" 
			+ "&client_id=" + ид_клиента
			+ "&client_secret=" + секрет_клиента
			+ "&refresh_token=" + ТокенОбновления;

 

Сохранение табличного документа на Google Диск


Теперь посмотрим, как сохранять табличный документ на Google Drive с последующей его конвертацией в формат Google Таблиц.
 

//разделитель для HTTP сообщения
Разделитель = "file_for_drive";

//определяем HTTP заголовок по типу файла
ЗаголовокПоТипуФайла = СоответствиеТипуФайлаЗаголовкамGoogle()[ТипФайла];
	
ЗаголовкиОсновногоЗапроса.Вставить("Content-Type", "multipart/related; boundary=" + Разделитель);
	
//-----
//первый запрос
//-----
	
//заголовки
Заголовки = Новый Массив;
Заголовки.Добавить("Content-Type: application/json; charset=UTF-8");

	
//запрос метаданных
//формируем json с параметрами имя файла, заголовок и родитель
ТелоЗапроса = СформироватьТелоЗапросаСозданиеФайлаGSs(ИмяФайла, ЗаголовокПоТипуФайла, id_папки);
	
ДвоичныеДанныеСообщения = GoogleAPI_ОбщегоНазначения.СоздатьСообщение_Текст(Заголовки, ТелоЗапроса);
	
//-----
//конец первого запроса
//-----
	
//-----
//второй запрос
//-----
	
//заголовки
Заголовки.Очистить();
Заголовки.Добавить("Content-Type: " + ЗаголовокПоТипуФайла);
Заголовки.Добавить("uploadType: media");

//запрос метаданных
ВременныйФайл = ПолучитьИмяВременногоФайла(ТипФайла);
ТабДок.Записать(ВременныйФайл, ТипТабличногоДокументаПоТипуФайла()[ТипФайла]);
ДвоичныеДанныеФайла = GoogleAPI_ОбщегоНазначения.СоздатьСообщение_Файл(Заголовки, Новый ДвоичныеДанные(ВременныйФайл));
		
//-----
//конец второго запроса
//-----
	
//-----
// Формируем основное составное сообщение.
МассивСообщений = Новый Массив;
МассивСообщений.Добавить(ДвоичныеДанныеСообщения);
МассивСообщений.Добавить(ДвоичныеДанныеФайла);
ДвоичныеДанныеТело = GoogleAPI_ОбщегоНазначения.ПолучаемДвоичныеДанныеДляПакетныхСообщенийHTTP(Разделитель, МассивСообщений);
//-----
	
ЗапросHTTP = Новый HTTPЗапрос("/upload/drive/v2/files" + "?uploadType=multipart&convert=true",ЗаголовкиОсновногоЗапроса); 
	
ЗапросHTTP.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеТело);
	
Ответ =Соединение.ВызватьHTTPМетод("POST", ЗапросHTTP);
	
Если Не Ответ.КодСостояния = 200 Тогда
    ТекстОшибок = "Ошибка HTTP запроса " + Ответ.ПолучитьТелоКакСтроку() + ", код ошибки " + Ответ.КодСостояния;
    GoogleAPI_ОбщегоНазначения.ЗаписьОшибкиПриРаботеСGS(ТекстОшибок, ". Запись документа");
    Возврат "";
КонецЕсли;
	
HTTPСоединение	= Неопределено;
ЗапросHTTP		= Неопределено;
		
Попытка
    УдалитьФайлы(ВременныйФайл);
Исключение
    ЗаписьЖурналаРегистрации("Удалить файлы",УровеньЖурналаРегистрации.Ошибка,,,ОписаниеОшибки());
КонецПопытки;
	
ОтветHTTPТело = Ответ.ПолучитьТелоКакСтроку();
	
ОбъектJSON = GoogleAPI_ПроцедурыРаботыСGSheets.СформироватьЗначениеОбъектаJSON(ОтветHTTPТело);
	
//возвращаем ссылку на документ из google drive
Возврат GoogleAPI_ПроцедурыРаботыСGSheets.ПрочитатьСвойствоВСтрокеОбъектаJSON(ОбъектJSON, "alternateLink");


В этом коде для загрузки файла используется способ multipart upload.
Мы формируем POST-запрос из двух блоков данных. В первом блоке прописываем title и mimeType файла. Во втором блоке передается содержимое файла. Блоки определяются разделителями, которые указаны в конце и начале блока. 

Подробнее об этом в статье о вставке файлов базы знаний Google Диск.

Вот так это работает. Надеемся, что теперь вы не будете тратить время на конвертацию выгруженных из 1С данных.

 

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

Наименование Файл Версия Размер
Работа с Google Drive
.cfe 408,20Kb
30.01.19
25
.cfe 1.0 408,20Kb 25 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Mogilnikova 59 21.05.19 19:23 Сейчас в теме
Заполняем поля Clientid, Clientsecret и «Порт» значениями, полученными при создании проекта в GCP. По умолчанию подставляются имя файла и папки, где будут сохранены временные ключи, используемые для подключения.


а где взять поле "Порт"?
3. Maria18 97 23.05.19 12:51 Сейчас в теме
(1)порт по умолчанию 443, нужен для подключения к gs
2. Mogilnikova 59 21.05.19 20:37 Сейчас в теме
При первоначальной авторизации идет редирект на локалхост.. А что делать, если нет никакого локалхост и редиректить некуда?
Может быть должно быть ещё какое то СДК, или ещё что-то?
4. Maria18 97 23.05.19 13:01 Сейчас в теме
(2)нам нужен только код из значения ссылки (саму ссылку не нужно открывать), ссылка:
http://localhost/?code=
<24 символа кода для авторизации>
&scope=https://www.googleapis.com/auth/drive+https://www.googleapis.com/auth/spreadsheets+https://www.googleapis.com/auth/drive.apps.readonly+https://www.googleapis.com/auth/drive.file+https://www.googleapis.com/auth/drive.appdata+https://www.googleapis.com/auth/drive.metadata+https://www.googleapis.com/auth/drive.metadata.readonly+https://www.googleapis.com/auth/drive.photos.readonly+https://www.googleapis.com/auth/drive.readonly+https://www.googleapis.com/auth/spreadsheets.readonly
5. Mogilnikova 59 23.05.19 16:12 Сейчас в теме
(4)Ну на данный момент программа не получает никакого кода, т.к. при редиректе браузер говорит что все плохо, локалхост не найден. Возможно имеет смысл выбор браузера по-умолчанию или какие то специфичные настройки?
6. Maria18 97 28.05.19 09:25 Сейчас в теме
(5)На каком этапе возникает ошибка? После нажатия на "Allow"?
7. Mogilnikova 59 28.05.19 15:17 Сейчас в теме
8. Maria18 97 01.06.19 15:38 Сейчас в теме
(7)Можно либо открыть 80 порт на машине, с которой происходит запуск.
Либо редиректить не на локалхост. В обработке GoogleAPI_АвторизацияПользователя в процедуре Авторизоваться заменить строку "redirect_uri=http://localhost".
9. samoylov093 03.07.19 18:12 Сейчас в теме
Мария добрый день! Попробовал поставить ваше расширение на УТ 11.4, появились ошибки отсутствия некоторых объектов. Например в расширении используется объект ПланСчетов.Хозрасчетный, в УТ в принципе планов счетов нет. Как то решается эта проблема в пользовательском режиме, помимо удаления отсутствующих объектов из расширения?
10. Maria18 97 12.08.19 10:06 Сейчас в теме
(9) Добрый день!
К сожалению нет, это ограничение расширения. Могу отправить расширение без плана счетов и бух.отчетов, если нужно.
11. skyboy13 10 02.09.19 16:41 Сейчас в теме
А если самописная конфигурация?
12. Maria18 97 17.09.19 18:51 Сейчас в теме
(11)Если конфигурация на БСП, основная форма отчета в конфигурации ОбщаяФорма.ФормаОтчета и форма в отчете не переопределена, то работать будет без доработок. Если форма отчета переопределена, то эту форму нужно добавить в расширение и в нее добавить общую команду GoogleAPI_СохранитьОтчетСФормы.
13. lk78 298 29.12.19 22:30 Сейчас в теме
в УТ 11.4.6.207 не устанавливается расширение, пишет

(Критичная) : Не найден объект ЭлементСтиля.БыстрыеОтборыФонГруппы
(Критичная) : Не найден объект ЭлементСтиля.ЦветФонаНекорректногоКонтрагента
(Критичная) : Не найден объект ОбщаяКартинка.Сформировать
(Критичная) : Не найден объект Справочник.ВидыРегистровУчета
(Критичная) : Не найден объект Отчет.ОборотноСальдоваяВедомость
(Критичная) : Не найден объект Отчет.ОборотноСальдоваяВедомостьПоСчету
(Критичная) : Не найден объект Отчет.АнализСубконто
(Критичная) : Не найден объект Отчет.АнализСчета
(Критичная) : Не найден объект Отчет.КарточкаСубконто
(Критичная) : Не найден объект Отчет.КарточкаСчета
(Критичная) : Не найден объект Отчет.ОборотыМеждуСубконто
(Критичная) : Не найден объект Отчет.СводныеПроводки
(Критичная) : Не найден объект Отчет.ОтчетПоПроводкам
(Критичная) : Не найден объект Отчет.ГлавнаяКнига
(Критичная) : Не найден объект Отчет.ШахматнаяВедомость
(Критичная) : Не найден объект ПланВидовХарактеристик.ВидыСубконтоХозрасчетные
(Критичная) : Не найден объект ПланСчетов.Хозрасчетный
14. lk78 298 29.12.19 22:40 Сейчас в теме
в БП 3.0.74.63 кнопка появилась только в Универсальном отчете, в остальных отчетах нет
Платформа 8.3.16.1063
18. Maria18 97 27.01.20 11:35 Сейчас в теме
(14)Кнопка добавлена в общую форму отчетов. Если отчеты со своими формами, нужно добавить кнопку на них вручную.
Есть идея сделать автоматические добавление кнопок через подключаемые команды, но пока находится в разработке. Как сделаю выложу новый вариант.
15. lk78 298 29.12.19 22:44 Сейчас в теме
обработка "Параметры подключения к Google API" не видна с списке обработок - через режим "Все функции"
20. SAGerasimov 17.05.20 16:00 Сейчас в теме
(15)
Та же самая история. Обработки во всех функциях нет, кнопок тоже нигде нет. Все, что в интерфейсе отыскал - это роль из расширения)
Как удалось проблему решить, не подскажете?)
16. lk78 298 09.01.20 08:33 Сейчас в теме
Получилось настроить под БП 3.0, отчеты сохраняются, но если сохранять отчет под тем же именем создается новая таблица с таким же наименованием, как сделать чтобы новая таблица не создавалась а перезаписывалась существующая таблица с таким же наименованием?
17. Maria18 97 27.01.20 11:29 Сейчас в теме
(16)Расширение это не предусматривает.
Тут должен быть метод изменение файла, подробнее: https://developers.google.com/drive/api/v3/reference/files/update?hl=en
Можно при получении структуры папок выводить не только папки, но и файлы, и по id файла производить замену
Оставьте свое сообщение

См. также

Загрузка данных из М-Аптеки+ в 1С:Бухгалтерия 8 (ред. 3.0) Промо

Внешние источники данных Файловые протоколы обмена, FTP v8 v8::БУ БП3.0 Фармацевтика, аптеки БУ Абонемент ($m)

Обработка для загрузки файлов выгрузки из программы для автоматизации аптек и аптечных сетей М-Аптека+ в 1С:Бухгалтерия 8, редакция 3.0.

11.07.2014    31412    26    1C_MApteka    34    

И еще раз о HTTP-сервисах

WEB Внешние источники данных Интеграция v8 БП3.0 ЗУП3.x Россия Абонемент ($m)

Как разработать  подсистему обмена  с сильно ограниченными правами доступа к базе вопрошающего субъекта с использованием различных вариантов маршрутизации.

2 стартмани

28.04.2020    2491    4    zavsom    2    

Взаимодействие HTML (COM объект, WebKit) с 1С (обычные и управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования HTML (COM объект, WebKit) в 1С (8.3).

2 стартмани

18.01.2020    5362    19    Deniskinr83    0    

Google drive - менеджер файлов

WEB Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    6488    19    zykov_vitaliy    22    

Менеджер загрузки данных из весов с печатью этикеток Промо

Внешние источники данных Весы Учет ТМЦ Учет ТМЦ v8 УТ10 УПП1 Абонемент ($m)

Программное обеспечение "Менеджер загрузки данных из весов с печатью этикеток" предназначено для автоматического получения данных по сети Ethernet из весов МАССА-К моделей ВПМ и ТВ_Р3 (модификация MF) в режиме On-Line.

1 стартмани

20.12.2011    18490    3    hrip    10    

Использование хранимых процедур MS SQL Server в 1С

Внешние источники данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.12.2019    7275    3    Dedushka    26    

Вебхук. Путь Телеграма

Внешние источники данных Интеграция v8 Абонемент ($m)

Долгое (на самом деле нет) и нелегкое путешествие телеграма к неведомым (из за РКН) конфигурациям 1С. Памятка себе.

1 стартмани

03.10.2019    13176    8    platonov.e    14    

Получение изображения с IP-камеры

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Получение изображения JPG с IP-камеры в виде двоичных данных. В 1С может применяться для фотографирования объектов.

1 стартмани

10.09.2019    8366    26    sivin-alexey    8    

Что нам стоит Push построить Промо

Внешние источники данных v8 v8::Mobile Абонемент ($m)

Попробовал некоторое время назад, push сообщения, реализованные в платформе. Понравилось, но есть несколько минусов, на примере одной программы сообщений (не буду показывать пальцем), спустя некоторое время, сообщения переставали приходить онлайн, а на компьютере приходили моментально, при этом сами смартфоны звались флагманами. Читал позднее статью, где описывалось, что проблема на стороне смартфонов, что-то вроде технологий энергосбережения, но точно не помню. Также немалый минус доступно только для смартфонов.

1 стартмани

08.09.2016    25338    17    PloAl    8    

Чтение файлов PDF из 1С

Внешние источники данных Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

1 стартмани

09.09.2019    5405    4    da_1c    4    

Описание формата внутреннего представления данных 1С в контексте обмена данными

Практика программирования Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на "внутреннюю кухню" платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм "быстрого массива", который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно "на лету" программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

1 стартмани

06.09.2019    15199    10    Dementor    29    

Согласование задач из Outlook

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Согласование задач непосредственно из почтовой программы, в моем случае Outlook 2013 без каких-либо дополнительных настроек. Из почты отправляется GET запрос к HTTP-сервису 1С, который в свою очередь выполняет задачу.

1 стартмани

06.09.2019    6389    11    duhh    17    

Обмен большими данными между клиентом и сервером

Внешние источники данных v8 Абонемент ($m)

В статье рассматривается вопрос передачи больших объемов данных, превышающих теоретический лимит сеансовых данных (4Гб за вызов) (они же временное хранилище) как с клиента на сервер, так и в обратном направлении.

1 стартмани

27.08.2019    11567    3    logos    24    

Телеграм 1С – почти коробка

Внешние источники данных v8 Абонемент ($m)

Почему это решение называется «почти коробка»? Потому, что это почти коробочное решение. С его помощью, просто добавив подсистему в конфигурацию, уже можно начинать взаимодействовать с мессенджером Telegram.

10 стартмани

20.08.2019    10243    20    zfilin    63    

Расширение Бром для интеграции с 1С

Внешние источники данных WEB v8 Абонемент ($m)

Из этой статьи вы узнаете, как можно быстро и просто синтегрироваться с любой конфигурацией 1С при помощи расширения Бром.

1 стартмани

06.08.2019    4777    4    itworks    13    

Выгрузка и подготовка данных для программы "Перечень льготных профессий" для 1С: ЗУП 2.5 (ОТКРЫТЫЙ КОД) Промо

Рабочее место Внешние источники данных Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 Россия БУ ФОМС, ПФ, ФСС Абонемент ($m)

Обработка для формирования и редактирования данных для перечня льготных профессий. В связи с прекращением поддержки ЗУП 2.5 и отсутствием времени на доработку для сдачи годовой отчетности открыл код модуля. Не очередная выгрузка стажей, а практически полный аналог перечня для 1С. Формирование и редактирование стажей с последующей выгрузкой в формат перечня, но только ГОРАЗДО удобнее и быстрее. В общем, смотрите видео. Где-то половина времени на написание обработки ушла именно на удобство и скорость работы. Внимание: код модуля обработки открыт

5 стартмани

09.11.2015    48490    82    Black-fog    62    

Конфигурация для обмена данными (интеграционная шина)

Внешние источники данных WEB v8 1cv8.cf Абонемент ($m)

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

4 стартмани

08.07.2019    8168    25    miha-28    16    

Интеграция 1С с Битрикс CRM через REST API

Внешние источники данных v8 1cv8.cf Абонемент ($m)

На фоне неутихающего обострения «бизнеса» по внедрению СРМ-систем остро встают вопросы обмена данными с уже существующими системами. В статье рассматривается выгрузка контактов, товаров и сделок из 1С в Битрикс CRM через REST API, приложена обработка для тестирования.

1 стартмани

28.06.2019    16374    21    muzipov    9    

Почта России - отправка и отслеживание, интеграция с Документооборот 8

Внешние источники данных Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Россия Абонемент ($m)

Выгрузка почтовых отравлений в личный кабинет отправки Почты России; отслеживание почтовых отправлений через Почту России; расширение для интеграции Документооборот 8 с Почтой России

5 стартмани

04.06.2019    6675    45    wtlz    13    

Подсистема обмена данными с порталом ИМНС по электронным счетам-фактурам (автоматический обмен) Промо

Внешние источники данных WEB Инструментарий разработчика v8 1cv8.cf Беларусь БУ НДС Абонемент ($m)

Подсистема включает документы и обработки для автоматического обмена данными с порталом ИМНС через web-сервис. Присутствует возможность заполнения данными типовых операций за период, учёта входящих документов, учёта произвольных исходящих документов. Приложены обработки для запуска задания планировщика на автоматический обмен данными.

1 стартмани

28.07.2016    30592    19    c1nil    4    

Пример работы с viber из 1С, отправка сообщений из 1С в viber

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Обработка разработана для примера отправки сообщений в viber из 1С.

1 стартмани

16.05.2019    10233    62    Isa816    22    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

3 стартмани

04.05.2019    15290    63    MarkoSokolov    47    

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки

Практика программирования Внешние источники данных Обмен через XML WEB Разработка v8 1cv8.cf Абонемент ($m)

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

1 стартмани

22.04.2019    26605    32    riposte    63    

 Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP) Промо

Загрузка и выгрузка в Excel Внешние источники данных Интеграция v8 ERP2 Абонемент ($m)

Союз-PLM представляет собой полнофункциональный программный комплекс для решения  широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства. На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно  отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html  Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.

1 стартмани

25.07.2016    40047    4    milkers    2    

WhatsApp чат для 1С

Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

WhatsApp чат для 1С. Расширение конфигурации, подходит для любых конфигураций 1С (управляемые формы).

5 стартмани

15.04.2019    8066    27    ManyakRus    19    

Доработка функционала отправки дополнительных реквизитов 1С: ЭДО для Татнефть

Внешние источники данных Документооборот и делопроизводство Документооборот и делопроизводство v8 ERP2 БУ Абонемент ($m)

Подключаемое расширение к конфигурации ERP с функционалом отправки дополнительных реквизитов 1С ЭДО для Татнефть (№ и дата договора, подразделение, автор, примечание) в электронных документах Счет-фактуры и ТОРГ-12 Проверялось на 1С:ERP Управление предприятием 2.4.6.160.

2 стартмани

07.04.2019    7293    10    sapervodichka    6    

Аутентификация на внешних сервисах посредством OAuth

Информационная безопасность Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Пример подключения к сервисам Google из 1С с помощью протокола OAuth и получения данных с внешнего сервиса.

1 стартмани

03.04.2019    15728    16    binx    11    

Импорт из EXCEL и других источников (xls, xlsx, xlsb, ods, sxc, dbf, mxl, csv, clipboard, sql) в 1С Промо

Загрузка и выгрузка в Excel Внешние источники данных Обработка справочников Практика программирования Обработка документов v8 КА1 БП2.0 УТ10 Розница Беларусь Украина Россия БУ Абонемент ($m)

-Наглядная, контролируемая загрузка иерархической номенклатуры с различными атрибутами и картинками из прайсов, файлов табличного вида xls,xlsx,xlsb,ods,sxc,dbf,mxl,csv произвольной структуры по указанному диапазону строк, а также из буфера обмена и внешнего SQL-источника данных в основные, дополнительные и пользовательские реквизиты. -Вариантный поиск номенклатуры. -Создание сопутствующей справочной информации. -Создание документов в национальной/иностранной валюте. -Обычное и управляемое приложение. Файл и Клиент-Сервер.

1 стартмани

16.03.2012    355720    2839    StepByStep    731    

Формирование xml файла ЭДО (СБИС, Диадок, Такском и т.п.) для типовых документов (счета-фактуры, накладные)

Внешние источники данных Обмен через XML Документооборот и делопроизводство Документооборот и делопроизводство v8 1cv8.cf Абонемент ($m)

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

4 стартмани

30.03.2019    25508    157    capitan    68    

Генерация схемы xsd из файла xml

Инструментарий разработчика Внешние источники данных v8 Абонемент ($m)

Утилита, генерирующая xsd схему на основании xml файла.

1 стартмани

25.03.2019    10962    17    fr13    10    

Декларации по формам 11 и 12 алкогольной продукции, интеграция с ПО Декларант-Алко

Розничная торговля Регламентированная отчетность Внешние источники данных Розничная торговля v8 Розничная и сетевая торговля (FMCG) Россия БУ Абонемент ($m)

Конфигурация на обычных формах, платформа 1С 8.2.19.130 и выше, с помощью которой можно сформировать Декларации по формам 11 и 12 алкогольной продукции, гибрид/интеграция с ПО Декларант-Алко версии 4.31.05 и выше.

1 стартмани

25.03.2019    7168    8    independ    8    

Самый простой клиент ЕГАИС УТМ для розницы. $m Промо

Внешние источники данных Рабочее место Розничная торговля Розничная торговля v8 1cv8.cf Россия УУ Абонемент ($m)

Данная обработка позволяет обеспечить приходную часть магазина розничной торговли алкоголем(ЕГАИС розница), или прочего предприятия. Эти действия становятся обязательными для розничного звена в городских поселениях с 01.01.2016 и будут достаточными до 01.07.2016. Предлагаю Вашему вниманию простое и доступное решение, которое позволяет отсрочить проблему интеграции ЕГАИС в розничное звено до указанной даты. (открытый код). Реализовано на открытой модели http://infostart.ru/public/402052/.

2 стартмани

14.12.2015    37154    45    Terrain25    47    

Работа с Active Directory из 1С (загрузка / выгрузка данных)

Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Загрузка данных из Active Directory / Изменение информации пользователя в AD из 1С.

1 стартмани

26.02.2019    9342    70    Смешной 1С    7    

Телеграм + 1С + Вебхуки + Апач + Самоподписанный сертификат

Внешние источники данных v8 Абонемент ($m)

Много строк исписано про интеграцию Телеграма и 1С. Но нигде не увидел полной инструкции по установке и настройке вебхуков. Попробую её написать.

1 стартмани

26.02.2019    12592    11    alexlx    29    

HTTP API Диадок. Загружаем в Диадок любой документ. Посредством POST и GET запросов

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Поставили задачу через HTTP API Диадок (diadoc-api.kontur.ru) отправить любой файл в Диадок и подписать его (например, служебную записку в формате пдф). Посредством POST и GET запросов.

2 стартмани

14.01.2019    9025    20    John_d    8    

Модуль для работы 1С (платформа 8.2 и выше) с внешними SOAP Web-сервисами Промо

Внешние источники данных WEB Интеграция v8 1cv8.cf Абонемент ($m)

Модуль для работы 1С (платформа 8.2 и выше) с внешними Web-сервисами, реализованными по протоколу SOAP.

2 стартмани

15.02.2016    37459    83    lunjio    15    

Применение средств MS SQL R service для 1С

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Некоторое время назад Microsoft добавила в MS SQL сервер службы машинного обучения, позволяющие выполнять программный код на языках программирования R и Python. В статье будет продемонстрирована общая схема и принцип того, как можно использовать данные службы в контексте разработки на 1С. 

1 стартмани

25.11.2018    13227    0    Robbi    14    

Интеграция WhatsApp в 1С (botcorp.io и api-messenger.com)

Внешние источники данных v8 Абонемент ($m)

Сейчас у WhatsApp более 1 млрд. пользователей во всём мире. В России мессенджер держится на верхних строчках по популярности среди всех мессенджеров. Из чего следует, что WhatsApp является самым желанным мессенджером для интеграции с 1С.

3 стартмани

22.11.2018    22027    56    17808849    49    

Исправление ошибки универсального обмена Бухгалтерия предприятия, редакция 3.0 (3.0.65.х, расширение конфигурации)

Внешние источники данных Адаптация типовых решений v8 БП3.0 Абонемент ($m)

Уже у третьего клиента вижу ошибку Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://www.1c.ru/SSL/Exchange/Message}Header Значит, как говаривал Винни-Пух - это неспроста. Ну и точно неспроста, 1С что-то подшаманили в обмене через универсальный формат.

1 стартмани

19.10.2018    13527    27    capitan    15    

7 причин, почему интеграция стала приятной. Не упускайте ряд потрясающих возможностей Промо

Внешние источники данных Интеграция Мобильная разработка v8 1cv8.cf Абонемент ($m)

В статье показаны примеры получения данных без программирования на стороне «1С:Предприятие 8». Вам нужно проверить гипотезу и проанализировать данные, почему бы не интегрироваться с Excel? Используете технологии .NET и «1С:Предприятие 8», процесс связывания систем движется катастрофически медленно? Хотите native Android приложение с вашими данными всегда под рукой?

1 стартмани

01.10.2015    53301    44    pbazeliuk    18    

Загрузка чека онлайн-касс (загрузка товаров из чека)

Внешние источники данных WEB Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 1cv8.cf Абонемент ($m)

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) с сервера ФНС proverkacheka.nalog.ru

2 стартмани

08.10.2018    15492    28    echo77    38    

Мониторинг показателей систем 1С 8.3 с помощью Zabbix

Внешние источники данных Zabbix v8 1cv8.cf Абонемент ($m)

Опишу свой опыт мониторинга наших систем 1С с помощью Zabbix и ту пользу, которую можно извлечить из этого.

1 стартмани

05.10.2018    32720    46    akimych    48    

Связка 1С и Telegram. Отправка стикеров

Практика программирования Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

В качестве факультатива сейчас изучаю возможности связки 1С и мессенджера Telegram. И возник вопрос, как помимо сообщений, посылать в ответ на действия пользователя произвольный стикер? Решению этой мини задачи и посвящена данная статья.

1 стартмани

31.07.2018    11005    4    Skin123    4    

Загрузка документов из системы Emex через веб-сервисы (Коммерция-Автологистика) Промо

Внешние источники данных WEB v8 v8::ОУ УТ10 УУ Абонемент ($m)

Обработка предназначенная для дилеров системы Emex, для загрузки документов из программы Коммерция(Автологистика) в 1С 8.2 Управление торговлей 10. Для загрузки используются веб-сервисы программы Автологистика.

10 стартмани

11.08.2014    19230    2    desarz    1    

Отправка сообщений через Telegram (через прокси)

Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Простая обработка для отправки сообщений из 1с в Телеграм конкретному пользователю. Используя прокси-сервер: jqlwb.teletype

1 стартмани

20.07.2018    14535    13    Deda    11    

Опыт интеграции мессенджера Telegram c 1C

Внешние источники данных Интеграция v8 Абонемент ($m)

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

19.07.2018    18706    0    VachKirp    38    

Обмен 1С:Управление Торговлей 11 и Frontol 5

Внешние источники данных Розничная торговля Розничная торговля v8 УТ11 КА2 Розничная и сетевая торговля (FMCG) Абонемент ($m)

Обработка обмена для 1С Управление Торговлей 11 и фронт-кассовой системы Frontol. Отличия от типовой: выгрузка дисконтных карт с накоплениями. Выгрузка категорий товаров.

3 стартмани

14.07.2018    15494    88    Kutuzov    139    

Оформление ветеринарных документов на продукты питания и грядущие глобальные изменения в 1С (часть 1) Промо

Внешние источники данных Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 Сельское хозяйство и рыболовство Оптовая торговля, дистрибуция, логистика Пищевая промышленность УУ Абонемент ($m)

С 01 января 2016 года возможно оформление ветеринарно-сопроводительных документов в электронном виде. Что это означает для предприятий, производящих и торгующих подконтрольной продукцией?

3 стартмани

27.12.2015    59033    7    axxell    28    

RabbitMQ + 1С. Быстрый старт

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Внешняя компонента для отправки сообщения из 1С в кролика. Сервис прослушивания и перенаправления сообщений из кролика в http или web-сервис.

1 стартмани

10.06.2018    24812    79    Goleff74    40    

Опять про sFTP и вообще

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Памятка для разработчика по работе с FTP, FTPs и sFTP.

1 стартмани

23.05.2018    16048    34    leongl    11    

Экономим время на ввод операций в 1С: Деньги

Внешние источники данных Обработка документов Банковские операции Банковские операции v8 1cv8.cf Домашние учет и финансы Абонемент ($m)

Рабочее решение автоматического создания операций в 1С: Деньги. Основано на анализе СМС.

1 стартмани

14.05.2018    11391    14    vsbronnikov    25    

Интеграция с Redmine (Rest-API)

Внешние источники данных v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Интеграция с Redmine (Rest API). Тестировалось на 1С:Предприятие 8.3.12.1412 1. Получение списков Проектов, Трекеров, Статусов, Версий, Пользователей 2. Отбор задач по дополнительным полям (произвольные поля добавляемые пользователями в Redmine) 3. Получение Учета времени с отбором по пользователю и диапазону дат 4. Получение задач с различными отборами (гибкая настройка)

1 стартмани

28.04.2018    11610    40    lastpioneer    5