Популярное

БСП
Разработки

Чат бот ВКонтакте на 1С. Курс

Интенсив по разработке чат бота ВКонтакте. Используя API ВКонтакте создавать чат бот ВКонтакте из 1С. Получить список пользователей группы ВКонтакте и разослать им сообщения.
FastCode 63 8
Бесплатно

Чтение файлов Excel в таблицу значений (автоматическое наименование столбцов)

Функция считывает содержимое страницы файла Excel в таблицу значений, автоматически именует столбцы таблицы по первой строке файла. Пробелы заменяются на "".
eXtend88 58 1 1 1
&НаСервере
Функция ПодготовитьТаблицуСДанными(ФайлАдресВХранилище)
	
	ИмяФайлаСервер = ПолучитьИмяВременногоФайла(".xlsx");
	ФайлИмпорта = ПолучитьИзВременногоХранилища(ФайлАдресВХранилище);
	ФайлИмпорта.Записать(ИмяФайлаСервер);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	Попытка
		ТабличныйДокумент.Прочитать(ИмяФайлаСервер, СпособЧтенияЗначенийТабличногоДокумента.Текст);
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = ОписаниеОшибки();
		Сообщение.Сообщить();
	КонецПопытки;	
	
	ПЗ = Новый ПостроительЗапроса;
	ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());
	ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
	ПЗ.ЗаполнитьНастройки();
	ПЗ.Выполнить();
	
	ТаблицаПромежуточныхДанных = ПЗ.Результат.Выгрузить();
	
	Возврат	ТаблицаПромежуточныхДанных;
	
КонецФункции

TurboConf - расширение Конфигуратора 1С Промо

TurboConf повышает эффективность работы в Конфигураторе 1С и помогает автоматизировать рутинные задачи.
bolsun
5 000 руб.

Отправка сообщения в чат-бот телеграм

Удобно использовать при отладке: добавив к условию точки остановки <здесь ваше произвольное условие> И ОповеститьВтелеграм(ОписаниеОшибки()) = Неопределено - отправит в телеграм причину ошибки, если она произошла. Или, условие точки остановки ОповеститьВтелеграм("Процедура окончена") = Неопределено И Ложь - сообщит о том, что точка остановки пройдена
mikaelangelo 39 1
// отправка любого сообщения, в т.ч. ОписаниеОшибки(), в Телеграм бот
Функция ОповеститьВтелеграм(Сообщение) Попытка 
	
	// 1) Создаем бота в телеграме, для этого нужно перейти в @BotFather и проследовать инструкциям,
	//    по окончании которых нам предоставят Access token	
	ДанныеДоступа = "это Access token";
	
	// 2) однократно получаем ID чата с ботом, предварительно написав боту любое сообщение
	// быстро: https://cms3.ru/kak-poluchit-chat-id-telegram/
	// чуть дольше: из текста json ответа, в объекте chat: "chat": {"id": "ид чата"}
    Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
    ТекстJSONОтвета = Соединение.Получить(Новый HTTPЗапрос("bot" + ДанныеДоступа + "/getUpdates")).ПолучитьТелоКакСтроку();
	//(затем можно закомментировать две строчки кода выше)
	ИдЧата = "это chat.id";
	
      // 3) Отправляем сообщение с ранее указанными сообщением, токеном, ид чата
   ЗапрячьТелегу = Новый HTTPСоединение("api.telegram.org",443,,,,15,Новый ЗащищенноеСоединениеOpenSSL());
   ЗапрячьТелегу.Получить(Новый HTTPЗапрос("bot" + ДанныеДоступа + "/sendMessage?chat_id=" + ИдЧата + "&text=" + Сообщение));
	
Исключение КонецПопытки КонецФункции

Произношение текста голосом

произносит заданную фразу
Jratdroid 33 1 1
Voice = Новый COMObject("SAPI.SpVoice");
Voice.Speak("Привет!");

Как получить дату и время создания элемента справочника, документа по ссылке

Kams 21 1
 // но по GUID можно определить время и дату
Функция ДатаСозданияСсылки(Ссылка)
    ГУИД = Ссылка.УникальныйИдентификатор();
    Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);
    Разрядность = СтрДлина(Строка16);
    ЧислоСек = 0;
    Для Позиция = 1 По Разрядность Цикл
        ЧислоСек = ЧислоСек + Найти("123456789abcdef",Сред(Строка16,Позиция,1))*Pow(16,Разрядность - Позиция);
    КонецЦикла;
    ЧислоСек = ЧислоСек / 10000000;
    Возврат Дата(1582, 10, 15, 04, 00, 00) + ЧислоСек;
КонецФункции   

GET-запрос к HTTP-серверу

GET-запрос к HTTP-серверу
stawen 53 3 1
Заголовки=Новый Соответствие();
Заголовки.Вставить("Content-Type","application/xml");
Заголовки.Вставить("Accept","application/xml");

Запрос=Новый HTTPЗапрос();
Запрос.АдресРесурса="clients/list";
Запрос.Заголовки=Заголовки;

Соединение=Новый HTTPСоединение("api.yourserver.ru");//таким образом полный URL запроса http://api.yourserver.ru/clients/list
Ответ=Соединение.Получить(Запрос);
КодСостояния=Ответ.КодСостояния;
СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку();	

Если КодСостояния=200 тогда
	ЧтениеXML=Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаОтвета);
	Попытка
		КонтрагентыСписокXDTO=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ФабрикаXDTO.Тип("http://api.yourserver.ru/xdto","ClientList"));
	Исключение
		Сообщить(СформироватьСообщениеОбОшибке(ИнформацияОбОшибке()));
		Предупреждение("Сервер прислал плохие данные!");
		Возврат;
	КонецПопытки;
	//обработка объекта XDTO	
Иначе
	//обработка ошибочных кодов
КонецЕсли;

Как по GUID определить время и дату создания ссылки?

Как по GUID определить время и дату создания ссылки?
Yashar 20 1 1
Функция UUID_Timestamp(Ссылка)
	
	ГУИД = Ссылка.УникальныйИдентификатор();
    // Например ГУИД равен: bdb62d89-cede-11e4-b12b-d4ae52b5e909
    // Дата содержится в первых символах, bdb62d89-cede-11e4 которые нужно переставить задом наперед: 11e4-cede-bdb62d89
    Строка16 = Сред(ГУИД, 15, 4) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);
    
    // Убираем "лишние" знаки "-"(тире).
    Строка16 = СтрЗаменить(Строка16, "-", "");
    
    // Убираем первый символ, так как в нем содержится версия стандарта (зашит в седьмой октет)
    Строка15 = Сред(Строка16, 2);
    
    // Получаем timestamp в 60 бит : 1E4 CEDE BDB6 2D89
    ЧислоСек = 0;
    Для Позиция = 1 По СтрДлина(Строка15) Цикл
        ЧислоСек = ЧислоСек + Найти("123456789abcdef",Сред(Строка15,Позиция,1))*Pow(16,СтрДлина(Строка15) - Позиция);
    КонецЦикла;
    ЧислоСек = ЧислоСек / 10000000;
    
    // Прибавляем к дате начала Григореанского календаря
    Возврат Дата(1582, 10, 15, 00, 00, 00) + ЧислоСек + СмещениеСтандартногоВремени() + СмещениеЛетнегоВремени();;
    
КонецФункции

Сохранение таблицы значений в XML

ArturR 31 2
ДанныеНакладной = Новый ТаблицаЗначений();
	ДанныеНакладной.Колонки.Добавить("НоменклатураАртикул");
	ДанныеНакладной.Колонки.Добавить("Количество");
	ДанныеНакладной.Колонки.Добавить("Цена");
	
	Для Каждого Стр Из Товары Цикл
		Если Стр.Номенклатура.Артикул = "" Тогда
			Сообщить ("Внимание! В номенклатуре " + Стр.Номенклатура + " не определен артикул.");
		Иначе		
			СтрокаТЗ = ДанныеНакладной.Добавить();
			СтрокаТЗ.НоменклатураАртикул = Стр.Номенклатура.Артикул;
			СтрокаТЗ.Количество = Стр.Количество;
			СтрокаТЗ.Цена = Стр.Цена;		
		КонецЕсли;
	КонецЦикла;
	Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
	XML = Новый ЗаписьXML;
	ИмяФайла = "" + КРВ_ВспомогательныеФункции.УбратьНули(Номер)
	+ " - " + КРВ_ВспомогательныеФункции.УбратьНедопустимыеСимволы(Контрагент);
	
	XML.ОткрытьФайл("d:\1C_DATA\ОБМЕН\" + ИмяФайла + ".xml");
	Сериализатор.ЗаписатьXML(XML, ДанныеНакладной);

POST-запрос к HTTP-серверу

POST-запрос к HTTP-серверу
stawen 53 3 1
ЗаписьXML=Новый ЗаписьXML(); 
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
Фабрика.ЗаписатьXML(ЗаписьXML, КонтрагентXDTO);//объект XDTO создан и заполнен ранее 

Заголовки=Новый Соответствие();
Заголовки.Вставить("Content-Type","application/xml");
Заголовки.Вставить("Accept","application/xml");

Запрос=Новый HTTPЗапрос();
Запрос.АдресРесурса="clients/add";
Запрос.Заголовки=Заголовки;
Запрос.УстановитьТелоИзСтроки(ЗаписьXML.Закрыть());

Соединение=Новый HTTPСоединение("api.yourserver.ru");//таким образом полный URL запроса http://api.yourserver.ru/clients/add
Ответ=Соединение.ОтправитьДляОбработки(Запрос);
КодСостояния=Ответ.КодСостояния;
СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку();
Если КодСостояния=201 тогда
	ЧтениеXML=Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаОтвета);
	Попытка
		СтатусРаботыXDTO=Фабрика.ПрочитатьXML(ЧтениеXML,ФабрикаXDTO.Тип("http://api.yourserver.ru/xdto","Status"));
	Исключение
		Сообщить(СформироватьСообщениеОбОшибке(ИнформацияОбОшибке()));
		Предупреждение("Сервер прислал плохие данные!");
		Возврат;
	КонецПопытки;
	//обработка объекта XDTO
Иначе
	//обработка ошибочных кодов
КонецЕсли;

ЗаписьJSON

Формирует строку со структурой JSON без создания файла
Bezeus 15 1
	ЗаписьJSON = Новый ЗаписьJSON;
	
	ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, Символы.Таб);
	ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
	
	ЗаписьJSON.ЗаписатьНачалоОбъекта();
		ЗаписьJSON.ЗаписатьИмяСвойства("Выражение");
		ЗаписьJSON.ЗаписатьЗначение("Сумма 1 + 1");
		ЗаписьJSON.ЗаписатьИмяСвойства("Результат");
		ЗаписьJSON.ЗаписатьЗначение(2);
	ЗаписьJSON.ЗаписатьКонецОбъекта();

	ТелоЗапроса = ЗаписьJSON.Закрыть();

Соединение и запрос данных из другой базы 1с

делаем запрос в УТ из сторонней базы для поиска документа
kAndrat 15 1
//Подключение к внешней базе
&НаСервере
 Функция ПодключитьВнешнийИсточник(СтрокаСоединения, ОбъектПодключения="V82.COMConnector") 
	 Попытка
		 Connector = Новый COMОбъект("V82.COMConnector");
		 COM = Connector.connect(СтрокаСоединения);
		 Возврат COM;
	 Исключение
		  Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное);
		  Возврат Неопределено;
	 КонецПопытки;
	 
 КонецФункции	


&НаКлиенте
Процедура Подключение(Команда)
	ПодключениеСервер();
КонецПроцедуры


//Подключение и Выгрузка данных из сторонней базы
&НаСервере
Процедура ПодключениеСервер()
	 Соединение = ПодключитьВнешнийИсточник("Srvr=""ИмяСервера"";Ref=""ИмяБазы"";Usr=""Пользователь"";Pwd=""Пароль"";");
	 Запрос = Соединение.NewObject("Запрос");
	 Запрос.Текст = "ВЫБРАТЬ
		|	РеализацияТоваровУслуг.Номер
		|		ИЗ
		|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
		|		ГДЕ
		|	РеализацияТоваровУслуг.Номер =  &Номер";
	Запрос.УстановитьПараметр("Номер",Номер);
	РезультатЗапроса = Запрос.Выполнить().Выгрузить(); //Получили COM объект
	Преобразование = ЗначениеИзСтрокиВнутр(Соединение.ЗначениеВСтрокуВнутр(РезультатЗапроса));  //преобразовали COM объект

	Для каждого стр из Преобразование Цикл
		Сообщить(стр.номер);
	КонецЦикла;
		
КонецПроцедуры

Чтение Excel через Табличный документ

chugindanil 16 1
//На клиенте

ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Заголовок = "Выберите файл";

Если ДиалогВыбора.Выбрать() Тогда
	ИмяФайла = ДиалогВыбора.ПолноеИмяФайла; 
	Команда1НаСервере(ИмяФайла);
	
КонецЕсли; 


//На сервере

//Вывод в табличный документ

ТабличныйДокумент = Новый ТабличныйДокумент;

ТабличныйДокумент.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);

//вывод в таблицу значений

ПЗ = Новый ПостроительЗапроса;

ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());

ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;

ПЗ.ЗаполнитьНастройки();

ПЗ.Выполнить();

ТаблицаЗначений = ПЗ.Результат.Выгрузить();

Отправка электронной почты

Отправка электронной почты
RedEye 14 1
Профиль = Новый ИнтернетПочтовыйПрофиль;
   Профиль.АдресСервераSMTP = "";
   Профиль.ПользовательSMTP = "";
   Профиль.ПарольSMTP = "";
   Профиль.ИспользоватьSSLSMTP = false;
   Профиль.ПортSMTP = 25; 
   Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;

   Письмо = Новый ИнтернетПочтовоеСообщение;
   Текст1 = Письмо.Тексты.Добавить(Текст);
   Текст1.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
   Письмо.Тема = Тема; 
   Письмо.Отправитель = "";
   Письмо.ИмяОтправителя = "Сообщение от 1с";
   Письмо.Получатели.Добавить("");
   
   Почта = Новый ИнтернетПочта;     
   Попытка
      Почта.Подключиться(Профиль);
      Сообщить("Подключено");
   Исключение
       Сообщить("Не удалось подключиться к серверу");
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
   Попытка
      Почта.Послать(Письмо);
      Сообщить("Письмо отправлено");
   Исключение
       Сообщить("Не удалось отправить письмо");
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
    
   Почта.Отключиться();
   Сообщить("Соединение завершено");

Получение данных динамического списка

Получить данные динамического списка с учетом отборов
Synoecium 14 1
	Схема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
	Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема,Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);

Сведения о внешней обработке - Отчет

Автоматическое заполнение сведений о внешней обработки для отчета
reborn85 28 1 2

#Область ОсновныеНастройкиДляПодключения
//не забываем заполнять Обработка->Действия->Свойства->ХранилищеВариантовОтчетов
Функция ВернутьСтруктуруПараметров()
	
	Структура = Новый Структура();
	Структура.Вставить("Документ","");
	Структура.Вставить("Представление",ЭтотОбъект.Метаданные().Представление());
	Структура.Вставить("Наименование",ЭтотОбъект.Метаданные().Синоним);
	Структура.Вставить("Идентификатор",ЭтотОбъект.Метаданные().Имя);
	Структура.Вставить("Версия","1.0.0.0");
	Возврат Структура;	
	
КонецФункции 

Функция СведенияОВнешнейОбработке() ЭКСПОРТ
	
	ПараметрыОбработки = ВернутьСтруктуруПараметров();
	
	Сведения = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	Сведения.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
	Сведения.Наименование = ПараметрыОбработки.Наименование;
	
	стр = Сведения.Команды.Добавить();
	стр.Представление = ПараметрыОбработки.Представление;
	стр.Идентификатор = ПараметрыОбработки.Идентификатор;
	стр.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	
	Возврат Сведения;
	
КонецФункции
#КонецОбласти

Пауза

Предоставляет функционал паузы в 1С, длительностью до 20 секунд
Функция Ожидать(ВремяОжиданияВСекундах) Экспорт
    
    Если ВремяОжиданияВСекундах<> 0 Тогда
        
        НастройкиПрокси = Новый ИнтернетПрокси(Ложь);
        НастройкиПрокси.НеИспользоватьПроксиДляЛокальныхАдресов = Истина;
        НастройкиПрокси.НеИспользоватьПроксиДляАдресов.Добавить("127.0.0.0");
        
        Попытка
            Замыкание = Новый HTTPСоединение(
                "127.0.0.0",,,,НастройкиПрокси,
                ВремяОжиданияВСекундах);
            Замыкание.Получить(Новый HTTPЗапрос());
        Исключение
            Возврат Неопределено;
        КонецПопытки;
        
    КонецЕсли;
    
КонецФункции

Чтение XML в таблицу значений

ArturR 31 2
Режим = РежимДиалогаВыбораФайла.Открытие;
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);        
	ДиалогОткрытияФайла.ПолноеИмяФайла = "";
	Фильтр = "Текст(*.XML)|*.XML";
	ДиалогОткрытияФайла.Фильтр = Фильтр;
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;             
	ДиалогОткрытияФайла.Заголовок = "Выберите файл для загрузки";
	
	Если ДиалогОткрытияФайла.Выбрать() Тогда 
		ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
		ЧтениеXML = Новый ЧтениеXML;
		ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
		Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
		ТЗ = Сериализатор.ПрочитатьXML(ЧтениеXML,Тип("ТаблицаЗначений"));
		ЧтениеXML.Закрыть();
	КонецЕсли;
	
		ЭтотОбъект.Контрагент 		  	= Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", ТЗ[0].КонтрагентИНН);
		ЭтотОбъект.КРВ_IDМенеджер	  	= ТЗ[0].IDМенеджер;
		ЭтотОбъект.КРВ_НомерЗаказаУНФ 	= ТЗ[0].Номер;
		ЭтотОбъект.Склад 				= Справочники.Склады.НайтиПоНаименованию(ТЗ[0].Склад);
	
Для каждого СтрокаТЗ Из ТЗ Цикл
КонецЦикла; 

Передача таблицы значений в запрос

Передача таблицы значений в запрос. В качестве внешнего источника могут выступать: Таблица значений, Табличная часть, Результат запроса.
prog1c 44 1 5
Товары = Новый ТаблицаЗначений;	
Товары.Колонки.Добавить("Наименование");	
Товары.Колонки.Добавить("Количество");

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
			   |	ВнешнийИсточник.Наименование,
			   |	ВнешнийИсточник.Количество
			   |ПОМЕСТИТЬ ВТ_ВнешнийИсточник
			   |ИЗ
			   |	&ВнешнийИсточник КАК ВнешнийИсточник
			   |;
			   |
			   |////////////////////////////////////////////////////////////////////////////////
			   |ВЫБРАТЬ
			   |	ВТ_ВнешнийИсточник.Наименование,
			   |	ВТ_ВнешнийИсточник.Количество КАК Количество
			   |ИЗ
			   |	ВТ_ВнешнийИсточник КАК ВТ_ВнешнийИсточник
			   |ГДЕ
			   |	ВТ_ВнешнийИсточник.Количество > 0
			   |
			   |УПОРЯДОЧИТЬ ПО
			   |	Количество";

Запрос.УстановитьПараметр("ВнешнийИсточник", Товары);			   
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
	
	// Обработка данных
	
КонецЦикла; 

Обмен через ВЕБ Сервисы 2 часть

Обмен через ВЕБ Сервисы , Подключение к созданной web ссылке с другой базы.
Артур 46 2 3
Процедура КнопкаЗаполнитьТаблицуИзПервойБазыНажатие(Кнопка)
      
	ВСОпределение = Новый WSОпределения("127.7.7.7/Obmen/ws/Obmen.1cws?wsdl", "admin", "pass"); 
//127.7.7.7 - ВашИПАдресГдеОпубликованWebСервис 
//admin - пользователь информационной базы с полными правами и пароль -pass
	ВСПрокси = Новый WSПрокси(ВСОпределение, "127.7.7.7", "Obmen", "ObmenSoap");
//127.7.7.7 - URl пространство имен Веб сервиса первой базы, Obmen -наименование 
// расширения ,
//ObmenSoap тоже самое Но добавляем Soap к названии ))
	
	Склад= Элементы.Склад.Значение; //Элемент формы, выбранное поле - склад
	Время=ТекущаяДата();
	
	ВСПрокси.Пользователь = "admin";
	ВСПрокси.Пароль = "pass";
	
	Данные = ВСПрокси.ОстаткиТоваровТНН(Строка(Склад),Дата(Время));  // подключаемся и получаем данные xml 
	
	попытка
	
	ЧтениеXML               = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(данные);  //Открываем файл
	Пока ЧтениеXML.Прочитать() Цикл
		Если ЧтениеXML.ТипУзла                  = ТипУзлаXML.НачалоЭлемента Тогда 
			Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
				ст = Таб.Добавить();  //Табличная часть на форме 
				ст.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(ЧтениеXML.ЗначениеАтрибута("Номенклатура"));
				ст.Склад = Справочники.Склады.НайтиПоНаименованию(ЧтениеXML.ЗначениеАтрибута("Склад"));
				ст.КоличествоНачальныйОстаток = ЧтениеXML.ЗначениеАтрибута("КоличествоНачальныйОстаток");
				ст.КоличествоПриход = ЧтениеXML.ЗначениеАтрибута("КоличествоПриход");
				ст.КоличествоРасход = ЧтениеXML.ЗначениеАтрибута("КоличествоРасход");
				ст.КоличествоКонечныйОстаток = ЧтениеXML.ЗначениеАтрибута("КоличествоКонечныйОстаток");
				прервать;	
			конеццикла;
		КонецЕсли;
	конеццикла;	
	
	исключение
	    сообщить(Данные);
	КонецПопытки;
	
	
конецпроцедуры

Получение сообщений для бота Telegram

Получение сообщений для бота Telegram
stawen 53 3 1
Запрос=Новый HTTPЗапрос();
Запрос.АдресРесурса=Константы.token.Получить()+"/getUpdates";
Запрос.Заголовки=Новый Соответствие();

Соединение=Новый HTTPСоединение("api.telegram.org",,,,,5,Новый ЗащищенноеСоединениеOpenSSL);
update_id=Константы.update_id.Получить();
Если ЗначениеЗаполнено(update_id) тогда
	ТекстЗапроса="&offset="+Формат(update_id+1,"ЧГ=");
	Запрос.Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded");
	Запрос.УстановитьТелоИзСтроки(ТекстЗапроса);
	Ответ=Соединение.ОтправитьДляОбработки(Запрос);//POST
	
	//то же самое GET-запросом
	//Запрос.АдресРесурса=Запрос.АдресРесурса+"?offset="+Формат(update_id+1,"ЧГ=");
	//Ответ=Соединение.Получить(Запрос);//GET
Иначе
	Ответ=Соединение.Получить(Запрос);//GET
КонецЕсли;
КодСостояния=Ответ.КодСостояния;
СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку();

Если КодСостояния=200 тогда
	ЧтениеОтвета=Новый ЧтениеJSON;
	ЧтениеОтвета.УстановитьСтроку(СтрокаОтвета);
	РезультатСтруктура=ПрочитатьJSON(ЧтениеОтвета);
	Если РезультатСтруктура.ok=Истина тогда
		Для сч=1 по РезультатСтруктура.result.Количество() цикл
			ОбъектUpdate=РезультатСтруктура.result[сч-1];
			Константы.update_id.Установить(ОбъектUpdate.update_id);
			СтруктураMessage=ОбъектUpdate.message;
			//СтруктураMessage это обычная Структура
			//описание объекта Message тут https://core.telegram.org/bots/api#message
		КонецЦикла;
	КонецЕсли;
Иначе
	Сообщить("КодСостояния "+КодСостояния);
	Сообщить(СтрокаОтвета);
КонецЕсли;