Category Archives: Разработка

Телеграм Бот API и структуры данных

У публікації нижче розглянуто деякі типи повідомлень Telegram API та відповідні структури даних із поясненнями.

Continue reading Телеграм Бот API и структуры данных

Экстракт jQuery + Promise + Axios

jQuery это JavaScript Библиотека сфокусированная на управлении DOM , вызовах AJAX , и событиях обработки.

//developer.mozilla.org
jQuery API Documentation //api.jquery.com
AJAX: Шпаргалка по AJAX на jQuery //habr.com
jQuery справочник //basicweb.ru

Continue reading Экстракт jQuery + Promise + Axios

ФАК Хау Ту Дизайн Веб Пейдж HTML/CSS/JS

Веб дизайн реализуется триединством языков сущностей:

  • - сущность содержания и структуры
  • - сущность формы
  • - сущность изменчивости

 

Continue reading ФАК Хау Ту Дизайн Веб Пейдж HTML/CSS/JS

Инструменты разработчика DevTools

Набор инструментов для веб-разработчиков DevTools встроен непосредственно в браузер Google Chrome. DevTools позволяют редактировать загруженную страницу налету и оперативно диагностировать проблемы.

Официальная документация Chrome разработчиков //developer.chrome.com
DevTools для «чайников» //habr.com

https://www.lucidchart.com/techblog/2018/04/17/time-saving-chrome-devtools-shortcuts/

Continue reading Инструменты разработчика DevTools

Экстракт PHP

PHP - Hypertext Preprocessor (первоначально PHP/FI - Personal Home Page / Form Interpreter), а позже названный Personal Home Page Tools. Это скриптовый язык общего назначения, использует большое число синтаксических заимствований из C, интенсивно применяется для разработки серверной части веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.

Continue reading Экстракт PHP

Бот для Telegram

Боты Telegram — это специальные аккаунты, предназначенные для автоматической обработки и отправки сообщений в системе мгновенных сообщений Telegram.

Для создания учетной записи бота не требуется дополнительный номер телефона. Уникальным идентификатором бота в системе Telegram служит его системное имя. Бот принадлежит основному аккаунту пользователя, который его создал и/или владеет ботом. Любой пользователь может создать  и владеть неограниченным числом ботов.

В чат бота можно перейти по ссылке //t.me/@<botname>

Если бот поддерживает inline mode, то к нему можно обратиться прямо из поля ввода, вводя @botname и запрос

Логика действий бота описывается скриптом, находящимся на произвольном web-сервере за пределами системы Telegram.
Continue reading Бот для Telegram

Автоматизация в Windows GUI сценариями AutoIt

AutoIt v3 - универсальный BASIC-подобный скриптовый язык сценариев, для которого доступен бесплатный интерпретатор и компилятор.

 Официальный сайт //www.autoitscript.com

 ISN AutoIt Studio //www.isnetwork.at

 Русское сообщество AutoIT //autoit-script.ru

 AutoIt //ru.wikipedia.org


Continue reading Автоматизация в Windows GUI сценариями AutoIt

Диаграммы на дашборде 1С:Предприятие 8.x

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

  • тип реквизита Диаграмма - содержит набор данных и все параметры его графического представления
  • элементы формы ПолеФормы

В свою очередь объект типа Диаграмма включает большое число свойств и коллекций других общих типов, и типов специфичных для диаграммы.


Continue reading Диаграммы на дашборде 1С:Предприятие 8.x

Масштабируемая векторная графика в разметке SVG

публикация находится в состоянии разработки, но часть материалов уже готовы к использованию

Практическое изучение и работа с SVG выявляет много пробелов и неясных моментов в документации. Большое количество инструментов для работы с SVG также оставляют без внимания ряд важных нюансов, которые я нашел целесообразным описать и снабдить иллюстрациями и пояснениями.

  • SVG
    • Файла SVG картинки
    • SVG в составе HTML
  • Структура
  • Элементы SVG
    • Контейнер и система координат
      • Пример с разбором
    • Дополнительная система координат
    • Линия
    • Прямоугольник
    • Окружность и эллипс
    • Полилиния и полигон
    • Траектория
    • Текст
  • Стили
  • Анимация
  • JavaScript
  • SVGZ
  • Источники

Can I use: сведения о поддержке SVG в браузерах //caniuse.com
SVG (Русский) //runebook.dev/ru/docs/svg

Continue reading Масштабируемая векторная графика в разметке SVG

Оперируем бинарными файлами в 1С:Предприятие 8.x

из публикации:
https://open-budget.ru/public/275315/

ActiveX "SAPI.spFileStream"

Пример: Чтение и запись бинарных файлов в 1С при помощи SAPI (Speech API)
http://forum330.com/forum/86/all

Документация: SpFileStream Interface (SAPI 5.3)
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms722561(v=vs.85)?redirectedfrom=MSDN

Файловые базы *.1CD. Физическая структура. Восстановление.
https://infostart.ru/1c/articles/187832/

+про БСП
https://open-budget.ru/bsp-biblioteka-standartnykh-podsistem

+Нейросеть
https://open-budget.ru/public/640325/

+раздел математика 1С
https://open-budget.ru/matematika-i-algoritmy/page/5

Язык Go

Go или Golang — компилируемый, строго типизированный, многопоточный язык программирования высокого уровня, разрабатываемый в с 2007 года. Язык представляет существенно переработанную и расширенную смесь C++ и Pascal, дополненную синтаксическим сахаром Python, но исключающим излишние, неэффективные и рискованных вольности.

Continue reading Язык Go

Инструменты Google OR-Tools

Конспект
черновик.
  • OR-Tools
    • About OR-Tools //developers.google.com
      программное обеспечение с открытым исходным кодом для комбинаторной оптимизации , которое стремится найти лучшее решение проблемы из очень большого набора возможных решений.
    • Constraint Optimization / Оптимизация ограниченийОптимизация ограничений или программирование ограничений (CP) - это название, данное для определения возможных решений из очень большого набора кандидатов, где проблема может быть смоделирована в терминах произвольных ограничений. Проблемы КП возникают во многих научных и инженерных дисциплинах. Слово «программирование» является немного неправильным, подобно тому, как «компьютер» когда-то означал «человек, который вычисляет». Здесь «программирование» относится к составлению плана, а не к программированию на компьютерном языке.CP основан на осуществимости (поиск допустимого решения), а не на оптимизации (поиск оптимального решения), и фокусируется на ограничениях и переменных, а не на целевой функции. Фактически, проблема CP может даже не иметь целевой функции - цель может просто заключаться в том, чтобы сузить широкий набор возможных решений до более управляемого подмножества путем добавления ограничений к проблеме.Примером проблемы, которая хорошо подходит для CP, является планирование сотрудников . Проблема возникает, когда компаниям, которые работают непрерывно, например, фабрикам, необходимо составлять еженедельные расписания для своих сотрудников. Вот очень простой пример: компания работает три 8-часовые смены в день и распределяет трех из четырех своих сотрудников на разные смены каждый день, а четвертой дает выходной. Даже в таком маленьком случае количество возможных расписаний огромно: каждый день их 4! = 4 · 3 · 2 · 1 = 24 возможных назначения сотрудников, поэтому количество возможных недельных расписаний составляет 24 7, что превышает 4,5 миллиарда. Обычно существуют и другие ограничения, которые сокращают количество возможных решений - например, каждый сотрудник работает хотя бы минимальное количество дней в неделю. Метод CP отслеживает, какие решения остаются возможными при добавлении новых ограничений, что делает его мощным инструментом для решения больших реальных задач планирования.

      В следующем разделе описывается решатель CP-SAT, основной решатель OR-Tools для программирования ограничений. SAT означает "satisfiability" выполнимость : решатель использует методы для решения задач SAT наряду с методами CP.

      Вот несколько примеров задач планирования, которые хорошо подходят для решателя CP-SAT:

      Расписание сотрудников
      Проблема магазина вакансий
      У CP есть широко распространенное и очень активное сообщество по всему миру со специализированными научными журналами, конференциями и арсеналом различных методов решения. CP успешно применяется при планировании, составлении графиков и многих других областях с неоднородными ограничениями.

    • Linear Optimization / Линейная оптимизацияЛинейная оптимизация (или линейное программирование ) - это название, данное вычислению наилучшего решения проблемы, моделируемой как набор линейных отношений. Эти проблемы возникают во многих научных и инженерных дисциплинах. (Слово «программирование» является немного неправильным, подобно тому, как «компьютер» когда-то означало «человека, который занимается вычислениями». Здесь «программирование» относится к составлению плана, а не к программированию на компьютерном языке.)В качестве хорошего руководства по линейной оптимизации мы рекомендуем кулинарную книгу моделирования Mosek .Google предоставляет два способа решения задач линейной оптимизации: библиотеку с открытым исходным кодом Glop и службу линейной оптимизации в скрипте Google Apps.

      Glop - это собственный линейный решатель Google, доступный в виде открытого исходного кода . Вы можете получить доступ к Glop через оболочку линейного решателя OR-Tools , которая является оболочкой для Glop, а также нескольких других сторонних решателей линейной оптимизации. Чтобы узнать, как решить простую линейную задачу с помощью Glop на всех поддерживаемых языках, см. Начало работы с OR-Tools .
      Служба линейной оптимизации в Google Apps Script позволяет разработчикам выполнять вызовы функций для решения задач линейной оптимизации. Он полагается на Glop для чисто задач линейной оптимизации, где все переменные могут принимать действительные значения. Если какие-либо переменные должны быть целыми числами, служба использует SCIP от Zuse-Institut Berlin.
      Только первый вариант требует установки OR-Tools.

    • Vehicle Routing / Маршрутизация транспортных средствОдним из наиболее важных приложений оптимизации является маршрутизация транспортных средств , цель которого состоит в том, чтобы найти лучшие маршруты для парка транспортных средств, посещающих набор местоположений. Обычно «лучший» означает маршруты с наименьшей общей протяженностью или стоимостью. Вот несколько примеров проблем с маршрутизацией:Компания по доставке посылок хочет назначить водителям маршруты для доставки.
      Компания кабельного телевидения хочет назначить маршруты для технических специалистов, чтобы они могли звонить в бытовые службы.
      Компания по обмену поездками хочет назначить водителям маршруты для посадки и высадки пассажиров.Более общая версия TSP - это проблема маршрутизации транспортных средств (VRP), в которой есть несколько транспортных средств. В большинстве случаев у VRP есть ограничения: например, транспортные средства могут быть рассчитаны на максимальный вес или объем предметов, которые они могут перевозить, или водителям может потребоваться посетить места в течение определенных временных окон, запрошенных клиентами. OR-Tools может решить многие типы VRP, включая следующие:

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

    • Network Flows / Сетевые потокиМногие задачи информатики можно представить в виде графа, состоящего из узлов и связей между ними. Примерами являются проблемы сетевого потока , которые связаны с транспортировкой товаров или материалов по сети, такой как железнодорожная система. Вы можете представить сетевой поток графом, узлами которого являются города, а дугами - железнодорожные линии между ними. (Их называют потоками, потому что их свойства аналогичны свойствам воды, протекающей по сети труб.)Ключевым ограничением сетевых потоков является то, что каждая дуга имеет пропускную способность - максимальное количество, которое может быть перенесено по дуге за фиксированный период времени. Задача максимального потока состоит в том, чтобы определить максимальный общий объем, который может быть транспортирован по всем дугам в сети с учетом ограничений пропускной способности.OR-Tools предоставляет несколько средств решения проблем сетевого потока в своих библиотеках графов .

Continue reading Инструменты Google OR-Tools

Классический взгляд на особенности Python

Высокоуровневый язык программирования общего назначения Python ориентирован на повышение производительности разработчика и читаемости кода; синтаксис ядра минималистичен; поддерживает структурное, обобщенное, объектно-ориентированное, функциональное и аспектно-ориентированное программирование. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений, высокоуровневые структуры данных. Поддерживается разбиение программ на модули, которые, в свою очередь, могут объединяться в пакеты.

Настоящая публикация содержит конспект изучения языка Python разработчиком привыкшим к классическим языкам (Pascal, C++, Java). Изложение в публикации будет простым, наглядным и слегка вульгарным, как и сама идеология Python.

Continue reading Классический взгляд на особенности Python

Произвольная графика в форме 1С:Предприятие 8.x

Растровая PNG иллюстрация 482x387x32 (размер: 21KB сжатый)

Интерактивное отображение произвольной 2D графики в форме приложения 1С:Предприятие можно реализовать в стандартном поле управляемой формы с установленным видом Поле HTML документа, которое предназначено для отображения изображений описанных языками HTML, XML и их расширениями SVG или VML. Формирование изображения в релизах до релиза 8.3.14 выполняется встроенным в платформу 1С браузером MS Internet Explorer, чьи версия, функциональность и опции отличаются от IE установленного в системе.

Масштабируемая векторная SVG иллюстрация (размер: 4.6KB несжатый)

Начиная с релиза 8.3.14 в платформу встроен кроссплатформенный движок WebKit с поддержкой HTML5, OpenGL, SVG и т.д. (подробней работа WebKit в составе платформы описана на //habr.com)

Приведенные ниже заметки описывают средства динамического синтеза графики для отображения в управляемых формах 1С и разработки алгоритмов интерактивного взаимодействия с этой графикой в форме.
Continue reading Произвольная графика в форме 1С:Предприятие 8.x

Программная работа с Реестром Windows

Реестром Windows называют хранилище параметров самой системы Windows, ее штатных и сторонних компонентов, а также пользователей системы. Хранилище реестра представляется как иерархия кустов и разделов, содержащих значения параметров нескольких типов.

Фактически Реестр является не единым объектом, а динамическим набором кустов, каждый из которых находится в специальном файле:
Continue reading Программная работа с Реестром Windows

Сериализация и десериализация в формате PHP для 1С:Предприятие 8.х

В PHP 4 и старше предусмотрена функция serialize(mixed $value): string,  которая генерирует пригодное для хранения строковое представление любой переменной. Строковое представление используется для хранения или передачи значений PHP между скриптами без потери их типа и структуры. Обратная операция получения переменной из строкового представления реализует функция unserialize() .

Строковое представление сериализации - это особый внутренний формат вида:

Для использования таких данных за пределами среды PHP необходимо выполнять десериализацию таких данных, а для сохранения сериализацию.

В настоящей публикации описан формат сериализации и приведены коды функций для 1С:Предприятие 8.

Continue reading Сериализация и десериализация в формате PHP для 1С:Предприятие 8.х

Обработчики событий 1С:Предприятие 8.3


Особенностью обработки событий среде 1С:Предприятия 8 является то, что имя процедуры-обработчика в одних случаях должно совпадать с именем события, а в других случаях может от него отличаться.
Процедуры-обработчики событий //its.1c.ru

Continue reading Обработчики событий 1С:Предприятие 8.3

Разработка модулей на платформе 1С:Предприятие 8.3


Для описания всех алгоритмов управления данными в конфигурации приложения 1С предусмотрено 11 видов программных модулей, 3 раздела, 7 опций, 5 директив компиляции и инструкции препроцессора. Ниже кратко и конспективно они объяснены, изложены принципы внутренней организации модулей и их взаимодействие между собой, приведены примеры. Текст еще не завершен и многие нюансы еще уточняются и будут дополняться.

Автоконспект в процессе разработки

Основы разработки на платформе 1С:Предприятие 8.3

Настоящая публикация является незавершенной и может содержать ошибки и неточности!

В публикации в компактной форме систематизируется практический опыт профессиональной адаптации к разработке на платформе 1С:Предприятие 8.3 приложений на управляемых формах, после многолетнего опыта разработки для 1С:Предприятие 7.7, поэтому общие базовые вопросы программирования не объясняются, но затрагиваются ключевые отличия 8.x от 7.7.

Автоконспект в состоянии разработки

Оперируем бинарными файлами в 1С:Предприятие 7.7

Платформа 1С:Предприятие 7.7 позволяет разработчику работать непосредственно только с текстовыми файлами, которые могут быть или прочитаны в строковые переменные, или записаны из строковых переменных. При этом данные проходят трансляцию, которая в некоторых случаях может немного изменять данные, что для бинарных файлов совершенно недопустимо. Кроме того, платформа 1С специальным образом обрабатывает код "0", интерпретируя его как пустую строку, что также делает невозможным полноценную работу с бинарными данными в строковых переменных.

Но решение этой задачи есть, например, через системный COM-объект ADODB.Stream, в котором возможно выполнение vbs-скрипта в среде, где работа с бинарными потоками предусмотрена.

Continue reading Оперируем бинарными файлами в 1С:Предприятие 7.7