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

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

@kuntashov_devnotes

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

Showing posts older than #37 · Back to latest

Older Posts 20 shown
Post #36 244
Можно ли интегрировать облачную Бухгалтерию предприятия (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.
Post #35 229
#hyper #fish
В Гипере с темой Solirized Light стало не видно автоподсказку для дополнения в fish. В xterm эта подсказка выводилась серым цветом.

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

Задал новый цвет командой set -x fish_color_autosuggestion 839496 и все заработало.
Post #34 223
Скайп - пожалуй, одно из самых ужасных приложений Микрософта.

Под линуксом - точно. Много лет пользуюсь 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.
Post #33 212
#СекретыБитрикс24

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

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

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

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

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

Лучшим решением конечно будет перейти на клиент-серверную версию 1С - в ней регламентные задания выполняются параллельно и агентом сервера, а не в пользовательском сеансе. Если у вас одновременно работающих пользователей в 1С не более 5, то есть бюджетный вариант - мини-сервер 1С на 5 пользователей + бесплатная PostreSQL в качестве БД.
Post #32 192
#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), но раз потрачено на исследование пару часов, то хочется разобраться в причине, надеюсь кто-нибудь из разработчиков прокомментируют.
GitHub Themes Not Working Fully · Issue #294 · zeit/hyper If I add a plugin for a theme like "hyperterm-oceanic-next" or "hyperterm-spacegray" in the .hyperterm.js file, it will download the package and refresh the terminal but only some of the styles are...
Post #31 186
Post #30 184
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.is Hyper™ A terminal built on web technologies
Post #29 167
https://habrahabr.ru/company/itsumma/blog/345976/
Пора пробовать rkt? Или опенсорс вырулит?
Все-таки докер максимально дружественен к пользователю, очень будет жаль, если его похоронят вот так вот.
Post #28 175
Post #27 171
#БитриксУправлениеСайтом
https://gist.github.com/kuntashov/1deacb62b27769f90e9f5e1d1417a0a0

Это не автоматический скрипт, а просто набор команд, по сути сохраненная history после настройки чистого сервера.
Gist Минимальная настройка сервера Ubuntu для запуска на нем CMS Битрикс Минимальная настройка сервера Ubuntu для запуска на нем CMS Битрикс - bx_ubuntu_setup.sh
Post #26 147
Post #25 154
#СекретыБитрикс24

Особенности выгрузки статусов "Отгружен" и "Оплачен" из 1С в Битрикс24

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

При получении информации о наличии документа отгрузки в 1С Б24 устанавливает статус, указанный в настройках обмена счетами в Битрикс24 "Статус, в который переводить счёт при получении отгрузки от "1С:Предприятие" (CRM - Настройки - Интеграция - Интеграция с 1С:Предприятием - Настроить синхронизацию счетов с 1С).

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

https://davertmik.github.io/slides-testing-architecture/

Презентация от автора Codeception об архитектуре тестирования.

Резюме: тесты должны быть читабельными (сосредотачиваться на бизнес-логике, избегать моков, где возможно, в случае приемочных - проверять позитивные сценарии), стабильными (быть независимыми друг от друга, использовать собственные наборы данных) и быстрыми (не более 20 секунд на выполнение одного теста, не более 20 минут на запуск всех тестов на CI).
Post #18 135
https://habrahabr.ru/company/yandex/blog/345044/

Яндекс.Трекер = Ya.Tracker = Yet Another [Issue] Tracker

Забавно, что в статье собственно пользовательский функционал задвинут далеко-далеко за технологические задачи, связанные с организацией масштабирования и отказоустойчивости.

Как бы очевидно, что, изменения требований по нагрузке/отказоустойчивости могут кардинально повлиять на изменение внутренней архитектуры. Но вот я не очень понял, почему-таки вариант с отдельными инстансами под каждую организацию сильно дороже, чем разработка и поддержка одной огромной системы, умеющей справляться с нагрузками на уровне приложения.

Кстати, Битрикс24 как раз создает отдельный инстанс под каждую организацию, и вроде не страдают от большей себестоимости такого решения.
Habr Как сделать внутренний продукт внешним. Опыт команды Яндекс.Трекера Недавно мы открыли для внешних пользователей Яндекс.Трекер – нашу систему управления задачами и процессами. В Яндексе его используют не только для создания сервисов, но даже для закупки печенья на...
Post #17 136
#Битрикс

Повышение нагрузки на сайт на Битриксе из-за множества обращений к ресурсу /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] В админке Битрикса: Настройка - Проактивная защита - Защита от редиректов - Включить защиту от редиректов
Post #16 143
#СекретыБитрикс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.
Post #15 146
#СекретыБитрикс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 - Настройки - Другое - Прочие настройки - Номера счетов
Post #14 140
Рубрика #СекретыБитрикс24

Почему изменения счета в Б24 могут не загружаться в 1С?

При обмене счетами с 1С изменения счетов, сделанные в Б24, в 1С будут загружены только если в 1С у соответствующего заказа статус "Ожидается согласование".

Если статус другой, то изменения не будут загружены, т.к. любой статус заказа, отличный от указанного трактуется как "закрытый" статус. В принципе, это логично. Статусы "Закрыт" и "Отменен" - очевидно не требуют загрузки. Статус "К выполнению" означает, что заказ принят в работу и его изменение будет чревато какими-либо ошибками: например, заказ начали собирать на складе. Или в случае, если условия расчетов требуют предоплаты/аванса, то статус "К выполнению" будет означать, что эти условия выполнены, т.е. поступила оплата.

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

Кстати, обратно изменения из 1С в Б24 выгружаются безусловно, но с этим тоже есть особенность: если в табличной части Товары в заказе 1С скопировать (продублировать) строку, то будет загружена только самая последняя! Это скорее баг компоненты импорта Битрикс24, чем фича и точно не баг 1С. Впрочем, это неприятное поведение можно обойти, избавившись на стороне 1С от дублей в табличной части.
Post #13 135
#SublimeText vs #VSCode

VSC в очередной раз не прошел испытание исходниками РМС :(

В Cаблайме этот полутораметровый файл ничем не отличается от файлов в несколько байт: навигация мгновенная, авдодополнение и подсветка без задержек.

На VSC то и дело подтупливает, хотя я phpcs отключил (а в Саблайме у меня линтер подключен!). Правда поставил в VSC плагин Intelliphense, т.к. без него автодополнение php не работает (в саблайме работает без плагинов).

Плюс много мелких неудобств, связанных с поведением редактора и плохая контрастность темы Solirized Light по сравнению с Саблаймом заставили вернуться к последнему.

Сдаюсь в третий раз :)
Саблайм, прости, ты лучший!
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →