Сообщения

Сообщения за апрель, 2021

Битрикс24 разное

  Ограничение на количество запросов REST API: Внимание! Существует лимит на число запросов. Разрешается два запроса в секунду. Если лимит превышается, то ограничение начинает срабатывать после 50 запросов.

Подключение в безопасном режиме дополнительной обработки

В режиме совместимости 2.2.2 достаточно хотя бы одного разрешения, чтобы запустилось в небезопасном режиме в целом. Бухгалтерия предприятия (учебная), редакция 3.0 (3.0.35.27)  ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль.ПодключитьВнешнююОбработку(Ссылка = Дем выгруз гугл шитс) 89 Фоновое задание (файловый вариант):Абдулов (директор) (2540), user-4305a17470:1561 ЗапросРазрешений = Новый Запрос( "ВЫБРАТЬ ПЕРВЫЕ 1 | ДополнительныеОтчетыИОбработкиРазрешения.НомерСтроки, | ДополнительныеОтчетыИОбработкиРазрешения.ВидРазрешения |ИЗ | Справочник.ДополнительныеОтчетыИОбработки.Разрешения КАК ДополнительныеОтчетыИОбработкиРазрешения |ГДЕ | ДополнительныеОтчетыИОбработкиРазрешения.Ссылка = &Ссылка"); ЗапросРазрешений.УстановитьПараметр("Ссылка", Ссылка); ЕстьРазрешений = Не ЗапросРазрешений.Выполнить().Пустой(); РежимСовместимости = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "РежимСовместимостиРаз

Unix Time

  UnixTime1970 = ТекущаяУниверсальнаяДатаВМиллисекундах() - 62135596800000;

Can't parse inline keyboard button (Telegram bot)

 При отправке sendMessage с телом {      "chat_id" :   " {{MyChatId}} " ,      "text" :   "Inline Keyboard markup test-1" ,      "reply_markup" :   {          "inline_keyboard" :   [              [                  {                      "text" :   "Принято"                  }              ]          ]      } } возвращает ошибку {      "ok" :   false ,      "error_code" :   400 ,      "description" :   "Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard" } Причина в том, что опциональные параметры у типа InlineKeyboardButton - не 100% опциональные. В инструкции  https://core.telegram.org/bots/api#inlinekeyboardbutton  написано: "You  must  use exactly one of the optional fields." Если поправить запрос: {      "chat_id" :   " {{MyChatId}} " ,      "text" :   "Inline Keyboa

1С: Сериализация соответствия в JSON меняет местами КиЗы

Запускаю на разных платформах код &НаКлиенте Процедура Тест ( Команда ) Соотв = Новый Соответствие ; //Соотв.Вставить(0,"first"); // при сериализации выдаст: Недопустимый тип значения ключа элемента соответствия Соотв . Вставить ( "0" , "first" ); Соотв . Вставить ( "1" , "second" ); ЗаписьЖсон = Новый ЗаписьJSON ; ЗаписьЖсон . УстановитьСтроку (); ЗаписатьJSON ( ЗаписьЖсон , Соотв ); Сообщить ( ЗаписьЖсон . Закрыть ()); КонецПроцедуры 1С:Предприятие 8.3 (8.3.17.1496) выдало  {"0": "first","1": "second"} 1С:Предприятие 8.3 (8.3.18.1363) выдало {"1": "second","0": "first"}  

СтруктураURI РазделитьURL

 СтруктураУРИ = ПолучениеФайловИзИнтернетаКлиентСервер.СтруктураURI("ftp://memo.moy.su/race/"); Свойство Значение Тип СтруктураУРИ Структура Структура ИмяСервера "memo.moy.su" Строка Логин "" Строка Пароль "" Строка Порт Неопределено ПутьНаСервере "race/" Строка Схема "ftp" Строка Хост "memo.moy.su" Строка РазделУРЛ = ПолучениеФайловИзИнтернетаКлиентСервер.РазделитьURL("ftp://memo.moy.su/race/") Свойство Значение Тип РазделУРЛ Структура Структура ИмяСервера "memo.moy.su" Строка Протокол "ftp" Строка ПутьКФайлуНаСервере "race/" Строка  

Linux memos

Создать iso образ диска: dd if=/dev/cdrom of=<Название ISO образа> Монтировать iso: mount -o loop <Название ISO образа> /mnt/<dest dir> 

Печать на Epson LX-300 шрифтом принтера из Word

 1) Windows 2000 SP2. В нем есть драйвер Generic / Text Only, который поддерживает CP866. Если поставить Windows 2000 SP4 - то в нем этот драйвер поддерживает уже CP1251, на EPSON LX 300 таким не распечатать русский текст (в текстовом режиме шрифтами принтера). 2) Word 2000. Office 2003 потребует минимум Win 2000 SP3 - а его я не пробовал, возможно там тоже в драйвере Generic / Text Only уже будет CP1251 3) Коды шрифтов в настройках драйвера прнтера (через мастер код ESC!) 10 cpi = <1B>!<00> 12 cpi = <1B>!<01> 17 cpi = <1B>!<04> Жирный вкл. = <1B>E Жирный выкл. = <1B>F Вкл/выкл подчеркивания не работает - его код просто не вызывается, что туда ни пиши. Например, пробовал жирный туда написать. А если код подчеркивания вписать в поле для жирного - то подчеркнет (?проверить?). Подчеркивание включить <1B>-<01>, выключить <1B>-<00> Если делать не в Word, а в Notepad++, то можно добиться следующих cpi: 10, 12, 15, 17.125

В модуле Яндекс.Маркета для 1С используется отладочный токен

В типовом модуле расширения, предлагаемом Яндексом, используется отладочный токен без возможности автоматического обновления с помощью refresh_token. https://yandex.ru/support/marketplace-module-1c/install.html  - проверено на MARKETPLACE_MODUL_1.7.42.cfe для конфигурации Управление Торговлей 11 платформы 8.3.15 и выше. Минус данного подхода в том, что нужно вручную раз в год продлевать отладочный токен. Без продления модуль перестанет корректно отрабатывать исходящие запросы от 1С к АПИ. Детали: Обработки.Беру_Регистрация.Форма - модуль формы: &НаКлиенте Процедура ПолучитьТокен ( Команда ) Если НЕ ЗначениеЗаполнено ( КлиентID ) Тогда КлиентID = Беру_ВызовСервера . ИдентификаторПриложения (); Если НЕ ЗначениеЗаполнено ( КлиентID ) Тогда ОбщегоНазначенияКлиентСервер . СообщитьПользователю ( "Не заполнен ID приложения!" ); Возврат ; КонецЕсли ; КонецЕсли ; Элементы . Адрес . Видимость = Истина ;

Обновление access token с помощью refresh token Яндекс OAuth

На предыдущих шагах создали приложение , получили access и refresh tokens  tokens . Когда подойдет срок, чтобы не нарваться на просрочку access token, нужно сделать запрос на его обновление. Действуем согласно инструкции  https://yandex.ru/dev/oauth/doc/dg/reference/refresh-client.html   Делаем запрос на https://oauth.yandex.ru/token POST /token HTTP/1.1 Host: oauth.yandex.ru Content-Type: application/x-www-form-urlencoded Content-Length: 186 grant_type=refresh_token&refresh_token=1%3AzpzHp0i1****2eo1%3AKIxHrbr1rfW2I4Ee4Smvnj5bSGUJrzM7CaOhCq-rBmyEBpvC7chW%3A3OWudeVnRArytcQ_q1Wh1A&client_id=555960e***&client_secret=5a60e11c*** {      "access_token" :   "AQ***cLKH0UUTQtw0T7hhbSIC96eHg" ,      "expires_in" :   31531927 ,      "refresh_token" :   "1:EH2A2px***oGj:dD***x45fBGjgNNa0usqTQz-_wmcgpPNlbyZXXgXOB:ncE1G_bbYZlXriqLl-dFbQ" ,      "token_type" :   "bearer" } Поскольку времени с момента первой выдачи данн

Получение access token и refresh token для работы с API Яндекс.Маркета

Изображение
Для разнообразия - токены получим для приложения, зарегистрированного на Яндекс-аккаунте, отличном от аккаунта администратора магазина. Сам доступ предоставляется под администратором магазина. Согласно документации  https://yandex.ru/dev/oauth/doc/dg/concepts/about.html , реализовать получение токенов можно одним из двух способов. Первый способ - извлечение из URL - согласно документации не дает refresh-токена. Второй способ выдает refresh_token и access_token - поэтому используем его: https://yandex.ru/dev/oauth/doc/dg/reference/auto-code-client.html#auto-code-client . 1) Под учеткой, отличной от xxxxx@yandex.ru, регистрируем приложение как описано в предыдущем  сообщении блога .  2) Авторизуемся в браузере на Яндексе под учеткой xxxxx@yandex.ru и переходим по ссылке https://oauth.yandex.ru/authorize?response_type=code&client_id=<AppID>*  *<AppID> в URL - это ID приложения, которое можно посмотреть, зайдя под учеткой создателя приложения на страницу https://oauth.ya

Создание приложения для API Яндекса

Изображение
Концепция: https://yandex.ru/dev/oauth/doc/dg/concepts/about.html   Приложение работает от имени пользователя. Доступ ограничен правами, указанными при регистрации приложения. После создания набор прав приложения можно отредактировать. В дальнейшем, при генерации токенов, в рамках этих прав можно ограничиться отдельными правами. Тогда только эти ограниченные права будут предоставлены предъявителю токена. Инструкция регистрации:  https://yandex.ru/dev/oauth/doc/dg/tasks/register-client.html обязательны только название и доступы. Создаю приложение с максимальными правами на странице https://oauth.yandex.ru/client/new под одной Яндекс.учеткой, с целью работы с АПИ магазина другой Яндекс.учетки. Callback URL устанавливаю путем нажатия на "Подставить URL для разработки". Интересно, что Callback URL такой же, как при получении отладочного токена. Разница будет в адресах дальнейших запросов отладочного токена и рабочих акцесс/рефреш токенов. Отладочный получаем путем GET на  https