Архив автора: Anton

Интеграция 1С с прокси fineproxy.org

При работе с различными интернет-сервисами иногда необходимо использовать прокси, например при работе с QIWI

1С не очень умеет работать с прокси, особенно с авторизацией, поэтому нужны прокси с привязкой к IP т.е. прокси будут работать без авторизации, при условии что внешний IP адрес 1C сервера будет статичный, в пределах подсети

Нашел сервис, запили интеграцию, все работает

вот тут пара рефок: 5 прокси на 30 дней за $4.9 и 70 прокси на 30 дней за $9.9

на сайте есть более специфические пакеты

Таблица значений из Табличного документа через Построитель

Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Реквизит1.Область(1, 1, Реквизит1.ВысотаТаблицы, 2));
Построитель.Выполнить();
Таб = Построитель.Результат.Выгрузить();
Запись опубликована автором в рубрике .

Формирование таблицы данных через СКД и Настройки из макета

Об = РеквизитФормыВЗначение("Объект");

Схема = Об.ПолучитьМакет("Схема");
НастройкаТекст = Об.ПолучитьМакет("Настройка");

ЧтениеХМЛ = Новый ЧтениеXML;
ЧтениеХМЛ.УстановитьСтроку(НастройкаТекст.ПолучитьТекст());

НовыйСXDTO = Новый СериализаторXDTO(ФабрикаXDTO);
Настройки = НовыйСXDTO.ПрочитатьXML(ЧтениеХМЛ);

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

Отб = КомпоновщикНастроек.Настройки.Отбор.Элементы[0];
Отб.ПравоеЗначение = Объект.Партнер;

Элем = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПериодОтчета");
Элем.Использование = Истина;
Элем.Значение = Новый СтандартныйПериод(Дата1, Дата2);

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема,
    КомпоновщикНастроек.Настройки,,,
    Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

ТабОтвет = Новый ТаблицаЗначений;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ТабОтвет);
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

Интеграция 1С с QIWI

Интеграция 1С 8.3 с платежным сервисом QIWI

На данный момент модуль умеет:

  • хранить неограниченный справочник аккаунтов QIWI (номер, пароль, лимит, прокси  IPv4)
  • переводить платежи на другой QIWI кошелек либо карту VISA, MasterCard, МИР
  • рассчитывать комиссию перевода

Читать далее

Интеграция 1С со службой доставки DPD

Делал интеграцию с DPD через SOAP сервис, конечно же само сразу не заработало.

Написал в поддержку, ответили что я не передаю не правильные заголовки XML, т.е. сам дурак, а у них все работает. В общем то на их месте я бы так же ответил ) Большое спасибо что указали верные заголовки ))

Пришлось пилить костыли отправки XML на ихний сервер.

Читать далее

Telegram-бот на 1С

Бот принимает сообщения (команды) от пользователей, обрабатывает их, задает уточняющие вопросы и отправляет ответ в виде текста или pdf с отчетом или фото.

Возможна авторизация для каждого пользователя (по логин/паролю, которые спросит бот при первом обращении)

Со стороны 1С возможна рассылка пользователям вашего бота, например оповещение о резком падении курса BTC/USD

Любопытным лайфхаком оказалось надиктовывание сообщения через микрофон. Многие смартфоны умеют преобразовывать речь в текст (Хей, Siri). Эту особенность получилось использовать в одном из ботов, когда надо было вводить подробное описание товара в заказе

Некоторые особенности реализации:

  1. Сервер 1С должен быть доступен на внешнем IP. Сервера Телеграм отправляют запросы (сообщения) пользователей в 1С в виде webhook-оповещений
  2. TG работает только по https. Для внешнего IP необходимо доменное имя (можно третьего уровня, например bot.fly7.ru), для имени и нужен SSL сертификат. Сертификат за 560р./год можно купить тут

Ребята из firstssl.ru подвезли еще промокод на покупку сертификата 786552779

Сохранение отправленных писем из 1С в папке «Отправленные» по imap

Появилась необходимость сохранять отправленные из 1С письма на веб-почте yandex, в папке Отправленные
для реализации использую протокол IMAP — настройки надо прописать в 1С, в учетной записи электопочты
дописал несколько модулей, все работает )

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

//Антон { сохранить письмо в Отправленных
Если ЗначениеЗаполнено(Профиль.АдресСервераIMAP) Тогда
    ИнтернетПочта = Новый ИнтернетПочта;
    ИнтернетПочта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP);
    ИнтернетПочта.ТекущийПочтовыйЯщик = "Отправленные";
    ИнтернетПочта.Послать(Письмо,, ПротоколИнтернетПочты.IMAP);
    ИнтернетПочта.Отключиться();
КонецЕсли;
//---}

Печатная форма из СКД

Функция СформироватьПечатнуюФорму(МассивОбъектов) Экспорт

    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабличныйДокумент.ОтображатьСетку = Ложь;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_WB";

    ИмяФайла = ПолучитьИмяВременногоФайла();
    ПолучитьМакет("Настройка").Записать(ИмяФайла);

    ЧтениеХМЛ = Новый ЧтениеXML;
    ЧтениеХМЛ.ОткрытьФайл(ИмяФайла);

    НовыйСXDTO = Новый СериализаторXDTO(ФабрикаXDTO);
    Настройки = НовыйСXDTO.ПрочитатьXML(ЧтениеХМЛ);

    ЧтениеХМЛ = Неопределено;
    УдалитьФайлы(ИмяФайла);

    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    Эл = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("МассивДокументов");
    Эл.Значение = МассивОбъектов;

    Схема = ПолучитьМакет("Схема");

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, КомпоновщикНастроек.Настройки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

    Возврат ТабличныйДокумент;

КонецФункции