fa
Feedback
Александр Кунташов — про 1С и не только

Александр Кунташов — про 1С и не только

رفتن به کانال در Telegram

Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.

نمایش بیشتر
2 544
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+37 روز
-330 روز
آرشیو پست ها
Можно ли интегрировать облачную Бухгалтерию предприятия (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.

#hyper #fish В Гипере с темой Solirized Light стало не видно автоподсказку для дополнения в fish. В xterm эта подсказка выводилась серым цветом. По исходникам fish нашел, что цвет автоподсказки задается в переменной окружения fish_color_autosuggestion, в которой нужно указать hex-код цвета (как в CSS, только без #). Задал новый цвет командой set -x fish_color_autosuggestion 839496 и все заработало.

Скайп - пожалуй, одно из самых ужасных приложений Микрософта. Под линуксом - точно. Много лет пользуюсь 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.

#СекретыБитрикс24 Не выполняется обмен Б24 с 1С с нужной периодичностью. Почему и что делать? Проблема: В файловой версии 1С настроенный по расписанию обмен с Битрикс24 не выполняется в первой половине дня, но выполняется во второй. Расписание - запуск обмена раз в 5 минут. В файловой версии 1С регламентные задания выполняются в рамках отдельного клиентского сеанса 1С (по умолчанию, в сеансе того пользователя, кто зашел в базу первым, см. http://v8.1c.ru/o7/201305fi/index.htm) и - обратите внимание - в один момент времени выполняется одно регламентное задание (порядок выполнения не определен, считайте - произвольный). Если от задания обмена с сайтом в ЖР нет ни одного события утром, значит задание вообще не запускается - т.е. до него не доходит очередь запуска (доходит к вечеру, раз вечером запускается стабильно). Проверьте, у каких регламентных заданий у вас настроен запуск в первой половине дня и перенесите их на ночь (сеанс 1С, в котором выполняются регламентные задания нужно будет оставлять на ночь и лучше его вообще сделать отдельным, т.е. чтобы обычный пользователь в этом сеансе не работал). Лучшим решением конечно будет перейти на клиент-серверную версию 1С - в ней регламентные задания выполняются параллельно и агентом сервера, а не в пользовательском сеансе. Если у вас одновременно работающих пользователей в 1С не более 5, то есть бюджетный вариант - мини-сервер 1С на 5 пользователей + бесплатная PostreSQL в качестве БД.

#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), но раз потрачено на исследование пару часов, то хочется разобраться в причине, надеюсь кто-нибудь из разработчиков прокомментируют.

https://habrahabr.ru/post/346324/ #1С Снова критика 1С и снова какая-то фигня. Лустин в комментариях все правильно написал.

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)

https://habrahabr.ru/company/itsumma/blog/345976/ Пора пробовать rkt? Или опенсорс вырулит? Все-таки докер максимально дружественен к пользователю, очень будет жаль, если его похоронят вот так вот.

https://m.habrahabr.ru/company/knopka/blog/345692/ #1С Очень подробная инструкция про разворачивание 1С:Фреша

#БитриксУправлениеСайтом https://gist.github.com/kuntashov/1deacb62b27769f90e9f5e1d1417a0a0 Это не автоматический скрипт, а просто набор команд, по сути сохраненная history после настройки чистого сервера.

#1С feat. #git https://infostart.ru/public/721600/ Отличная статья про использование git для разработки на 1С - разжевана установка и настройка gitsync, precommit1c и описан процесс лучше, чем в документации. (Это вторая статья из серии, первая была вводная https://infostart.ru/public/703384/).

#СекретыБитрикс24 Особенности выгрузки статусов "Отгружен" и "Оплачен" из 1С в Битрикс24 Статус "Отгружен" и "Оплачен" модуль обмена на стороне 1С вычисляет по наличию документов оплаты/отгрузки, введенных на основании Заказа клиента (аналог счета Б24 в 1С), т.е. вручную в документе "Заказ клиента" его поменять нельзя. Если говорить о технических деталях, то никакого статуса оплаты/отгрузки на самом деле не выгружается, а выгружается информация о наличии документов отгрузки и документов оплаты при условии, что оплата или отгрузка выполнены на 100% (например, частичная оплата не выгружается, мы с вами это в личной переписке обсуждали, причем, кажется, вы сказали, что реализовали выгрузку статуса частичной оплаты по алгоритму, который я вам рассказал, я ошибаюсь?). При получении информации о наличии документа отгрузки в 1С Б24 устанавливает статус, указанный в настройках обмена счетами в Битрикс24 "Статус, в который переводить счёт при получении отгрузки от "1С:Предприятие" (CRM - Настройки - Интеграция - Интеграция с 1С:Предприятием - Настроить синхронизацию счетов с 1С). Есть еще одна особенность: статус отгрузки всегда загружается битриксом в последнюю очередь. С учетом того, что статусы у счетов последовательны, то если вы отгружаете в кредит и сначала заказ 100% отгружен, но в настройке "Статус, в который переводить счет..." вы укажете какой-то промежуточный статус (например, создадите свой статус "Товар отгружен"), то при поступлении оплаты в 1С и последующей загрузке в Б24 у вас статус счета будет не "Оплачен" (счет закрыт), а "Товар отгружен". А в истории счета вы увидите цепочку статусов "Товар отгружен" - "Оплачен" - "Товар отгружен".

https://dev.1c-bitrix.ru/api_help/sale/algorithms/index.php #БитриксУправлениеСайтом Описание алгоритмов взаимодействия учетной системы и 1С-Битрикс. Управление сайтом при обмене данными (алгоритмы выгрузки и загрузки данных, алгоритм обмена в режиме "реального времени"). Актуально прежде всего для битриксового модуля обмена, а первые два пункта - и для модуля "Обмен с сайтом", встроенного во все типовые конфигурации 1С.

#Codeception #Тестирование https://davertmik.github.io/slides-testing-architecture/ Презентация от автора Codeception об архитектуре тестирования. Резюме: тесты должны быть читабельными (сосредотачиваться на бизнес-логике, избегать моков, где возможно, в случае приемочных - проверять позитивные сценарии), стабильными (быть независимыми друг от друга, использовать собственные наборы данных) и быстрыми (не более 20 секунд на выполнение одного теста, не более 20 минут на запуск всех тестов на CI).

https://habrahabr.ru/company/yandex/blog/345044/ Яндекс.Трекер = Ya.Tracker = Yet Another [Issue] Tracker Забавно, что в статье собственно пользовательский функционал задвинут далеко-далеко за технологические задачи, связанные с организацией масштабирования и отказоустойчивости. Как бы очевидно, что, изменения требований по нагрузке/отказоустойчивости могут кардинально повлиять на изменение внутренней архитектуры. Но вот я не очень понял, почему-таки вариант с отдельными инстансами под каждую организацию сильно дороже, чем разработка и поддержка одной огромной системы, умеющей справляться с нагрузками на уровне приложения. Кстати, Битрикс24 как раз создает отдельный инстанс под каждую организацию, и вроде не страдают от большей себестоимости такого решения.

#Битрикс Повышение нагрузки на сайт на Битриксе из-за множества обращений к ресурсу /bitrix/rk.php Последнее время зачастились фишинговые атаки на Битрикс через битриксовый скрипт /bitrix/rk.php для учета переходов по баннерам вот по такой схеме: http://pr.do.am/news/baza_trastovykh_sajtov_kak_samomu_prognat_sajt_besplatno/2014-03-23-250 Симптомы такой атаки - постоянная повышеная нагрузка на ваш сервер, при этом в access log веб-сервера будет много обращений вида GET /bitrix/rk.php?goto=http://example.com HTTP/1.0 где в качестве http://example.com будут различные не известные вам адреса. В Битриксе есть встроенная защита от этой атаки - настройка "Защита от редиректов" в модуле "Проактивная защита" [1]. Но если оставить настройки этой защиты по умолчанию, то можно получить DoS-атаку на mysql, т.к. каждую попытку атаки модуль Проактивная защита будет записывать в Журнал событий (event log). Поэтому, если фишинговые атаки на ваш сайт интенсивные, рекомендуется запись в журнал регистрации отключить, сняв в параметрах "Защиты от редиректов" флаг "Занести попытку фишинга в журнал". Сноски: [1] В админке Битрикса: Настройка - Проактивная защита - Защита от редиректов - Включить защиту от редиректов

#СекретыБитрикс24 Про особенность совместной работы модуля обмена счетами и 1С-трекера Модуль для обмена счетами между Битрикс24 и 1С создает в 1С новых контрагентов, но не умеет выгружать контрагентов из 1С в Битрикс24. А модуль 1С-трекер для 1С не умеет загружать новых контрагентов в 1С, но умеет экспортировать контрагентов из 1С в Битрикс24. Логично захотеть использовать оба этих модуля вместе, чтобы вновь созданные в Б24 контрагенты попадали в 1С, а изменения, сделанные в 1С выгружались обратно в Б24. Но, к сожалению, эта мечта без доработок не реализуема: 1С-трекер при выгрузке контрагентов в Б24 у Компаний и Контактов заполняет служебные реквизиты: * ORIGIN_ID = уникальный идентификатор ссылки 1С * ORIGINATOR_ID=1C * ORIGIN_VERSION (возможно) - ВерсияОбъекта 1С и именно по этим реквизитам выполняет поиск при синхронизации (при повторных выгрузках из 1С). Но при создании компании/контакта непосредственно в Б24 эти поля там не заполняются (и понятно, эти элементы же не из 1С). В результате получаем такую картину: 1. Новый контрагент, допустим "Рога и копыта", создается в Б24, выписывается счет 2. Счет загружается в 1С, и поскольку в 1С контрагента "Рога и копыта" не было, он создается. 3. При запуске выгрузки контрагентов при помощи 1С-трекера он не находит по сочетанию ORIGIN_ID+ORIGINATOR_ID в Б24 компанию "Рога и копыта", а поэтому создает новую, у которой и заполняет соответствующие реквизиты. В результате у нас в Б24 теперь две компании "Рога и копыта". Как заставить работать оба модуля совместно без дублирования контрагентов? 1. Без доработок: можно попробовать регулярно в Б24 запускать процедуру поиска и объединения дублей компаний и контрагентов. Но нет уверенности что поможет (сам не проверял этот вариант, т.к. всегда реализую именно второй). 2. С доработками: нужно "научить" модуль "Обмен с сайтом" заполнять ORIGIN_ID, ORIGINATOR_ID и ORIGIN_VERSION для тех контрагентов, которые были в 1С созданы при загрузке счетов. Делать это придется при помощи REST API.

#СекретыБитрикс24 Про важность настройки нумерации счетов в Б24 для обмена с 1С При использовании штатного модуля 1С "Обмен с сайтом" для настройки обмена счетами между 1С и Битрикс24 важно помнить, что длина номера счета на стороне Б24 с учетом всех префиксов должна быть не более 11 символов. В противном случае правая часть номера будет обрезаться и если счет на стороне Б24 будет изменен, то вместо обновления ранее загруженного счета в 1С вы получите новый счет. Напомню также, что Б24 при обмене с 1С к номеру для печати счета в Б24 добавляет префикс, который указывается в настройках обмена [1] и по умолчанию это "CRM_", т.е. целых 4 символа. А еще вы могли настроить префиксацию номера счета в настройках нумерации счета [2], что также "съест" разрядность значимой части номера. Пример: Допустим, вы хотите, чтобы печатные номера счетов в Б24 были максимально похожи на печатные номера счетов в 1С:УТ11 И вы настраиваете в Б24 5-значный префикс "как в 1С", например "BX24-" Тогда вы получаете в Б24 у первого счета номер "BX24-1", а у сотого - "BX24-100". Если у вас в настройках "Префикс номера счета при выгрузке" [1] установлен по умолчанию Тогда в выгрузку в 1С попадут номера "CRM_BX24-1" и "CRM_BX24-100" соответственно, и как видите, второй из них уже имеет длину 12 символов, а значит в 1С при выполнении поиска ранее загруженных документов он превратится в "CRM_BX24-10", т.к. будет обрезан справа до 11 символов. Как уменьшить риски возникновения проблемы или избавиться от нее (если она возникла)? 1. Без доработок: очистить значение "Префикс номера счета при выгрузке" [1] или сделать его короче. Необходимость в нем есть только если вам нужно в одну базу 1С загружать счета из разных порталов Б24. Этот префикс (если на разных порталах он будет разный) обеспечивает уникальность номеров счетов из кадого портала. Кстати, это можно обеспечить и включанием префиксации в настройках нумерации счета [2] (префиксы на разных порталах конечно же должны быть разными). Если же портал у вас один, то этот префикс вам не нужен. 2. С доработками: в общем модуле "ОбменССайтом" в функции "ЗагрузитьЗаказы" увеличить в объявлении таблицы НомераИДатыЗаказов длину значения колонки "НомерЗаказа" до необходимого значения (по идее длина этой колонки должна соответствовать максимальной длине значения дополнительного реквизита, выбранного в настройке "Номер заказа на сайте" в узле плана обмена с сайтом). Сноски: [1] Путь в интерфейсе Б24: CRM - Настройки - Интеграции - Интеграция с 1С:Предприятие - Настроить синхронизацию счетов - поле "Префикс номера счёта при выгрузке" [2] Путь в интерфейсе Б24: CRM - Настройки - Другое - Прочие настройки - Номера счетов

Рубрика #СекретыБитрикс24 Почему изменения счета в Б24 могут не загружаться в 1С? При обмене счетами с 1С изменения счетов, сделанные в Б24, в 1С будут загружены только если в 1С у соответствующего заказа статус "Ожидается согласование". Если статус другой, то изменения не будут загружены, т.к. любой статус заказа, отличный от указанного трактуется как "закрытый" статус. В принципе, это логично. Статусы "Закрыт" и "Отменен" - очевидно не требуют загрузки. Статус "К выполнению" означает, что заказ принят в работу и его изменение будет чревато какими-либо ошибками: например, заказ начали собирать на складе. Или в случае, если условия расчетов требуют предоплаты/аванса, то статус "К выполнению" будет означать, что эти условия выполнены, т.е. поступила оплата. Возможно, в некоторых случаях было бы полезно такое поведение изменить и разрешать загружать изменения заказа из Б24 до тех пор, пока на его основании не будет введен документ отгрузки или оплаты. Но это нужно решать индивидуально. А подобную доработку сделать относительно просто. Кстати, обратно изменения из 1С в Б24 выгружаются безусловно, но с этим тоже есть особенность: если в табличной части Товары в заказе 1С скопировать (продублировать) строку, то будет загружена только самая последняя! Это скорее баг компоненты импорта Битрикс24, чем фича и точно не баг 1С. Впрочем, это неприятное поведение можно обойти, избавившись на стороне 1С от дублей в табличной части.

#SublimeText vs #VSCode VSC в очередной раз не прошел испытание исходниками РМС :( В Cаблайме этот полутораметровый файл ничем не отличается от файлов в несколько байт: навигация мгновенная, авдодополнение и подсветка без задержек. На VSC то и дело подтупливает, хотя я phpcs отключил (а в Саблайме у меня линтер подключен!). Правда поставил в VSC плагин Intelliphense, т.к. без него автодополнение php не работает (в саблайме работает без плагинов). Плюс много мелких неудобств, связанных с поведением редактора и плохая контрастность темы Solirized Light по сравнению с Саблаймом заставили вернуться к последнему. Сдаюсь в третий раз :) Саблайм, прости, ты лучший!