Александр Кунташов — про 1С и не только
2.46K subscribers
219 photos
10 videos
417 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
https://habrahabr.ru/company/itsumma/blog/345976/
Пора пробовать rkt? Или опенсорс вырулит?
Все-таки докер максимально дружественен к пользователю, очень будет жаль, если его похоронят вот так вот.
https://hyper.is/
#devtools

Открыл для себя эмулятор терминала Hyper, реализованный на веб-ките при помощи js/html/css.
Выглядит здорово, но пока в работе активно использовать не успел - буду пробовать.

На старте столкнулся с тем, что некорректно отображал кириллицу, решилось добавлением в ~/.config/fish/config.fish строк:

set -x LC_ALL ru_RU.UTF-8
set -x LANG ru_RU.UTF-8
set -x LC_CTYPE ru_RU.UTF-8


Ну и еще в текущей версии, которая лежит в официальном репозитории Debian нет контекстного меню, но его заменяет гамбургер-меню (которое в линуксе по умолчанию отключено; включается в конфигурационном файле ~/.hyper.js)
#hyper

Ввязался в расследование бага с темой для Гипера: см. https://github.com/zeit/hyper/issues/294#issuecomment-357339391 и https://github.com/zeit/hyper/issues/294#issuecomment-357375621

Для себя уже поправил, форкнув (https://github.com/kuntashov/hyper-solarized-light/tree/xterm-colors), но раз потрачено на исследование пару часов, то хочется разобраться в причине, надеюсь кто-нибудь из разработчиков прокомментируют.
#СекретыБитрикс24

Не выполняется обмен Б24 с 1С с нужной периодичностью. Почему и что делать?

Проблема: В файловой версии 1С настроенный по расписанию обмен с Битрикс24 не выполняется в первой половине дня, но выполняется во второй. Расписание - запуск обмена раз в 5 минут.

В файловой версии 1С регламентные задания выполняются в рамках отдельного клиентского сеанса 1С (по умолчанию, в сеансе того пользователя, кто зашел в базу первым, см. https://v8.1c.ru/o7/201305fi/index.htm) и - обратите внимание - в один момент времени выполняется одно регламентное задание (порядок выполнения не определен, считайте - произвольный).

Если от задания обмена с сайтом в ЖР нет ни одного события утром, значит задание вообще не запускается - т.е. до него не доходит очередь запуска (доходит к вечеру, раз вечером запускается стабильно).

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

Лучшим решением конечно будет перейти на клиент-серверную версию 1С - в ней регламентные задания выполняются параллельно и агентом сервера, а не в пользовательском сеансе. Если у вас одновременно работающих пользователей в 1С не более 5, то есть бюджетный вариант - мини-сервер 1С на 5 пользователей + бесплатная PostreSQL в качестве БД.
Скайп - пожалуй, одно из самых ужасных приложений Микрософта.

Под линуксом - точно. Много лет пользуюсь Linux Mint, в настоящий момент у меня релиз 17.3 Rosa, который базируется на Ubuntu 14 Trusty. Я редко пользуюсь скайпом и у меня была установлена какая-то древняя версия.

И вот мне в пятницу понадобилось созвониться по скайпу и обнаружилось, что эта старая версия больше не работает. Но ура, есть официальный релиз 8.13 для линукса.

Но, как уже можно догадаться, он не заработал. Точнее так, я его успешно установил из официального пакета Микрософта, но голос и видео не работали. У меня и раньше время от времени были проблемы со звуком, и я отложил разборки на выходные, т.к. разговор клиент перенес на понедельник.

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

Погуглил и получил более, чем исчерпывающий ответ: https://answers.microsoft.com/en-us/skype/forum/skype_linux-skype_startms-skype_installms/upgraded-to-the-latest-skype-linux-version-but

В общем, проблема массовая для пользователей Debian, Ubuntu, Mint'а. У разных людей работают разные решения:

* кому-то помог запуск под рутом (sudo /usr/share/skypeforlinux/skypeforlinux)
* кому-то помог откат до версии 8.11 (sudo apt-get install -y skypeforlinux=8.11.0)
* кому-то помог многократный запуск (skypeforlinux; skypeforlinux)
* кому-то помогла задержка перез запуском скайпа (sleep 30; env PULSE_LATENCY_MSEC=30 skypeforlinux)

У меня заработал третий вариант - но с поправкой: вызывать скайп нужно трижды ("Сне-гу-роч-ка! Сне-гу-роч-ка! Сне-гу-роч-ка!"). Интерфейс скайпа тогда загрузился, но делать вызовы я так и не смог: кнопки не нажимаются (ну или ничего не происходит при нажатии).

В итоге я сначала попробовал веб-версию скайпа (https://web.skype.com) и в ней как оказалось звонки работают. Удивительно, что не работает skypeforlinux, ведь это судя по комментариям - та же веб версия, просто обернутая в десктопное приложение (вроде бы это веб-кит).

Там же на форуме поддержки нашел альтернативу для десктопа - Ghetto Skype (https://github.com/stanfieldr/ghetto-skype) и в ней тоже все ок, правда как может быть иначе - это по сути та же веб-версия, "обернутая" в Electron.
#hyper #fish
В Гипере с темой Solirized Light стало не видно автоподсказку для дополнения в fish. В xterm эта подсказка выводилась серым цветом.

По исходникам fish нашел, что цвет автоподсказки задается в переменной окружения fish_color_autosuggestion, в которой нужно указать hex-код цвета (как в CSS, только без #).

Задал новый цвет командой set -x fish_color_autosuggestion 839496 и все заработало.
Можно ли интегрировать облачную Бухгалтерию предприятия (1С:Фреш) с облачным Битрикс24?
#СекретыБитрикс24

Штатно в Бухгалтерии нет модуля "Обмен с сайтом", значит настроить обмен счетами штатными средствами между 1С и Б24 нельзя.

Функционал конфигураций на технологии 1С:Фреш можно кастомизировать только при помощи внешних обработок и/или расширений.

1С-трекер (выгрузка контрагентов из 1С в Б24) требует внедрения в конфигурацию, поэтому его нельзя установить.

Единственная штатная интеграция, выпущенная 1С-Битриксом, доступная сейчас в виде расширения, это Экспорт печатных форм и отчетов (https://1c.1c-bitrix.ru/intranet/download.php?id=6790661), теоретически (на практике я пока пытался этого сделать), это расширение можно установить в облако Фреш (я имею в виду https://1cfresh.com/, а не частное облако 1С:Фреш).

Как добавить расширение в облаке 1С:Фреше описано здесь: https://1cfresh.com/articles/so_addprocess

Есть возможность запустить приложение 1С:Фреш внутри Битрикс24. Это не совсем полноценная интеграция, приложения так и остаются независимыми просто 1С запускается внутри интерфейса Б24, тем не менее, кому-то может подойти: https://www.bitrix24.ru/apps/?app=bitrix.1cfresh

Ну и, наконец, есть вариант - написать для интеграции свое расширение для 1С (или внешнюю обработку), используя REST API Битрикс24.
#СекретыБитрикс24

Исходный вопрос: все привет. кто-то может подсказать пример получения всех, а не 50 элементов? я знаю, что есть метод batch, никак не пойму как правильно его использовать.
Если вообще, то выборка элементов порционная, по 50 элементов. В ответе вместе с первыми 50 элементами будет еще свойтво next . Для получения очередной порции данных нужно повторить исходный запрос добавив еще параметр start, значением у которого указать значение, полученное в next.

Если на js, то в битриксовой JS-библиотеке для работы с REST API у полученного result есть методы more() и next() которые реализуют описанный выше алгоритм "автоматически". Пример есть здесь: https://dev.1c-bitrix.ru/rest_help/crm/company/crm_company_list.php

Пакетным (батч) - запросом теоретически можно (на практике не делал), но его нужно формировать динамически (количество запросов в пакете будет КоличествоЭлементов в списке всего / 50). Значение next из предыдущего запроса нужно будет передавать как start = $result[qN-1][next], где qN-1 - идентификатор предыдущего запроса.
Можно ли интегрировать 1С:CRM компании Рарус и Битрикс24?
#СекретыБитрикс24

Вопрос: Кто встречал - https://solutions.1c.ru/catalog/crm-corp-20 для нее есть 1с-трекер, модуль обмена (заказы, котрагенты, товары)?

Если речь про чистую 1C:CRM 2.0, то, например, там нет такой сущности, как "Заказ" или "Счет", нет и модуля "Обмен с сайтом", значит штатная для Б24 интеграция с 1С (заказы, контрагенты, товары) работать не будет.

1С-трекер технически интегрировать можно, но потребуется его адаптация: в 1C:CRM есть необходимая структура справочников, но она немного отличается по составу реквизитов от УТ11 и других типовых конфигураций.

Но на самом деле довольно часто 1C:CRM не самостоятельно используют, а встраивают в УТ11, поэтому если в вашем случае это так, то тогда настройка интеграции сводится к интеграции с УТ11 (сможете и обмен заказами использовать, и 1С-трекер).
https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html (нашлась и более ранняя публикация об этом на русском https://habrahabr.ru/post/334392/).

Хром начиная с релиза № 66 перестанет доверять SSL-сертификатам, выданным Symantec'ом до 1 июня 2016 года, а это сертификаты, выданные Thawte, VeriSign, Equifax, GeoTrust, RapidSSL, т.к. оказывается это все бренды Symantec.

Я наткнулся на это увидив сегодня в консоли хрома предупреждение:

The SSL certificate used to load resources from https://example.com will be distrusted in M70. Once distrusted, users will be prevented from loading these resources. See https://g.co/chrome/symantecpkicerts for more information.

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

Как я понимаю, это все продолжение вот этой вот (https://habrahabr.ru/post/267583/ ) истории с самовольным выпуском Symantec'ом сертификата для google.com (официально - в рамках тестирования инфраструктуры).

Удивляет меня то, как это сертификаты GeoTrust могли продавать после инцидента, ведь они довольно весомых денег стоят.
#СекретыБитрикс24

При разработке интеграции Б24 с 1С:Бухгалтерией наткнулся на ошибку получения реквизитов в пакетном запросе.

Делаю пакетный запрос с целью получить реквизиты компании, связанные со счетом:

BX24.callBatch({
lnk: ['crm.requisite.link.get', { entityTypeId: 5, entityId:63 }],
req: ['crm.requisite.get', { id : '$result[lnk][REQUISITE_ID]'}]
},
function(result) {
console.log(result.req.data());
}
);


Получаю ошибку при выполнении второго запроса req:

{"req":{"error":"","error_description":"Resource \u0027GET\u0027 is not supported in current context."}}


Если задать id в запросе req статично, то результат возвращается корректно.
Это методы реквизитов не поддерживают макросы в составе пакетного запроса или у меня глаз замылился и я макрос не правильно написал?

Та же ошибка возникает, если вместо макроса $result[lnk][REQUISITE_ID] передать конкретный ID (но первый запрос оставить).

Если первый запрос удалить, а во втором указать конкретное значение, то ошибки не будет.
Также ошибки не будет, если выполнить в пакете несколько запросов `crm.requisite.get. Т.е. ошибка возникает только если одновременно выполняются два указанных вида запроса.

Отладка кода в коробке показала что есть ошибка в методе CCrmRestService::onRestServiceMethod (https://bxapi.ru/src/?module_id=crm&name=CCrmRestService::onRestServiceMethod): для методов crm.requisite.* и crm.requisite.link.* используются разные прокси-объекты, но кэшируются они все по одному и тому же ключу "requisite", в итоге в пакетном запросе кто первый из них в пакете вызывается, то прокси того объекта сохраняется в кэш и далее только он и работает для обоих методов, что и приводит к указанной ошибке.

Написал в поддержку Б24 в чате, а пока обход один: разделить один пакет на два: в одном получить ID связанных со счетом реквизитов, а в другом уже получать сами реквизиты.
#СекретыБитрикс24

Битрикс24 сегодня снова прилег и с учетом того, что российский сегмент облака Б24 последнее время часто стало колбасить, то становится очень актуальным лайвхак (только для новых порталов!):

Для тех кому не критично* соблюдение ФЗ-242 нужно регистрироваться на https://www.bitrix24.com/
После регистрации внизу страницы переключаете язык на русский и наслаждаетесь бесперебойной работой, не зависящей от коммутаторов российских провайдеров.

* Ну, например тестовые порталы для проверки своих решений или портал для личных целей (как система управления задачами).
1сники такие 1сники. Для справки, Serf (англ.)=Раб/крепостной/ишак (Имелось в виду, конечно, surf :)
#webdev #restapi
https://standards.rest/

Ссылки на различные стандарты и спецификации, которыми рекомендуется руководствоваться при создании REST API
#1Script #webdev

https://infostart.ru/public/783435/

Андрей Овсянкин осваивает новую нишу для OneScript'а - веб-приложения. Безусловно целевая аудитория есть, и поэтому мне не понятен троллинг коллег.

Кстати, на вопрос "Зачем?", который в разных формах периодически задают есть универсальный ответ (если другие не нравятся) - "Just For Fun", который еще Линус Торвальдс использовал в качестве названия своей книги (рекомендую). И очень круто, когда этот фан перерастает в классный открытый, восстребованный продукт с одним из лучших 1Сных коммьюнити.
#codesmells: Как не надо именовать функции и переменные.