Нелинейная многомерная оптимизация - это просто. Часть 3. Имитация отжига

Публикация № 406682

Разработка - Инструментарий разработчика

оптимизация имитация отжига алгоритм поиска решения многомерная оптимизация поиск решения

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

Сегодня у нас тема для довольно долгого и, надеюсь, интересного разговора - метода имитации отжига.

Сам метод является подвидом более общего метода поиска решения, известного под названием "метода Монте-Карло".  Как и любой стохастический метод, имитация отжига не гарантирует нам наилучшего решения, но в дополнение к этому данный метод не гарантирует нам получение даже наилучшего решения среди рассмотренных. Такая вот довольно на первый взгляд непрактичная штуковина. Однако, как учит нас диалектика, всегда есть "но". Это "но" в данном случае - хороший шанс выбраться из "локального минимума". Еще одним несомненным достоинством данного метода является простота реализации. Ну а для того, чтобы Вам было действительно просто его реализовать, давайте попытаемся разобраться с тем, что такое отжиг, для чего он нужен и как это все, собственно, работает.

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

Теперь выделим основные черты отжига, которые необходимо смоделировать при поиске решения:

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

В алгоритме метода это имитируется любой функцией, производящей случайные модификации во временном решении. Назовем такое решение - возможным решением.

2. Атомы стремятся занять в кристаллической решетке положения с наибольшей энергией связи и наименьшей энергией отталкивания, а это значит, что переход из лучшего состояния в худшее менее вероятен и вероятность этого перехода тем меньше, чем меньше имеется энергии на разрыв сил притяжения у атомов. Или, попросту говоря, чем ниже температура и чем дальше состояние от оптимального, тем сложнее веществу перейти в это состояние.

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

3. Температура должна снижаться постепенно и достичь значения, при котором движение атомов полностью прекращается. Это и будет означать окончание процессов отжига и поиска решения.

Температура моделируется любой монотонно убывающей функцией. Главное, чтобы процесс "остывания" шел достаточно долго, поэтому показательные функции в данном случае не совсем уместны. В металлургии техрегламенты отжига предусматривают равномерное снижение температуры в градусах в минуту, поэтому, имитируя реальный отжиг, лучше воспользоваться линейной функцией. 

Теперь введем несколько обозначений:

Х - множество значений переменных, составляющих возможное решение задачи оптимизации.

Z(X) - целевая функция, которую возможно рассчитать для любой совокупности Х. Оптимальное решение будет означать минимум данной функции.

Tmax и Tmin - максимальная и минимальная температуры отжига.

Frand(Xi) - функция случайного преобразования решения Xi. Функция произвольная и теоретически должна выбираться с учетом специфики задачи, но на практике замена случайных переменных новыми случайными значениями дает вполне приличный результат. Количество изменяемых на случайные (инвертируемых) переменных также выбирается произвольно. Для гибкости я сделал интенсивность инверсии одним из параметров функции поиска решения.

N - количество итераций поиска решения (длительность отжига).

И под конец распишем алгоритм по шагам:

1. Формируем начальное решение, инициируя Хi случайными значениями. i=0.

2. Устанавливаем температуру.

  

3. Если Тi>Tmin продолжаем. Иначе возвращаем Xi.

4. Вычисляем возможное решение Х* 

 

3. Находим

 

5. Определяем Xi+1. В зависимости от значения ΔZ и текущей температуры вероятность того, что Xi+1 будет равно Х*, выражается формулой:

 

Определяем, переходит ли Х* в Хi+1, бросая монетку. То есть генерируем случайное число от 0 до 1 и сравниваем с вероятностью Р. Если случайное число превысило или равно Р - переход произошел, и мы присваиваем Xi+1=X*, если же Х* не перешло в Хi+1, тогда присваиваем Xi+1= Xi.

6. Увеличиваем счетчик итераций i=i+1. Переходим к шагу 2.

Единственное, что хочется пояснить - это пункт 5 алгоритма. А точнее, формулу  вероятности того, что следующее текущее решение будет хуже предыдущего. Если вспомнить математику, то становится понятным, что дробь тем меньше, чем меньше числитель и чем больше знаменатель, и именно при значениях показателя дроби близких к 0 вероятность перехода к новому решению будет максимальна и близка к 1. Как видим, эта вероятность тем выше, чем меньше разница между оценками целевой функции и чем выше текущая температура. При больших (по модулю) значениях отрицательного показателя степени вероятность перехода к возможному решению стремится к нулю. Например, для числа е показатель по модулю больше пяти дает практически нулевую вероятность того, что система перейдет в новое, менее оптимальное состояние.

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

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

И под конец гифка о том, как решается задача коммивояжера методом имитации отжига на карте США.

 

 

Скачать файлы

Наименование Файл Версия Размер
ИмитацияОтжига.epf

.epf 18,05Kb
12.10.15
23
.epf 18,05Kb 23 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dj_serega 371 13.10.15 14:36 Сейчас в теме
Как всегда круто :)
Но эту публикацию даже знаю где можно взять в работу.
Спасибо.
2. dusha0020 917 14.10.15 10:18 Сейчас в теме
(1) dj_serega, И Вам спасибо за теплые слова. А где это можно взять в работу - решайте сами. Самая очевидная сфера применения - логистические задачи. Можно оптимизировать не только маршруты, а и загрузку транспорта или размещение ТМЦ на складе и т.д. Главное набраться смелости, сделать презентацию, подсчитать возможную экономию и пойти к начальству с предложением. И сразу обсудить премию в случае успеха:)
3. aspirator23 426 17.10.15 14:33 Сейчас в теме
Гораздо интересней чем бесконечные печатные формы.
Приятно, что число "ильдаровичей" растет.
4. igo1 233 08.12.16 14:35 Сейчас в теме
Отличное решение!!! Спасибо.
При 8000 итераций отжигом, он не очень оптимально работает, так что лучше пользоваться ген алгоритмом.
Оставьте свое сообщение

См. также

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.10.2014    146950    1968    ekaruk    164    

Консоль кода для управляемых форм

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Консоль кода для управляемых форма с подсказками и подсветкой синтаксиса.

1 стартмани

17.07.2020    7212    142    salexdv    186    

Консоль запросов 9000

Консоль запросов v8 v8::Запросы 1cv8.cf Абонемент ($m)

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

1 стартмани

24.02.2020    9669    207    kuza2000    119    

Помощник работы с идентификаторами объектов

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Инструмент для расширенного анализа идентификаторов объектов.

2 стартмани

24.01.2020    7226    26    YPermitin    28    

Навигатор по конфигурации базы 1С 8.3 Промо

Инструментарий разработчика Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.65 от 05.08.2020

3 стартмани

28.10.2018    31354    280    ROL32    67    

Инструменты оптимизации для 1С на MS SQL Server

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Набор базовых инструментов для поиска узких мест в работе 1С на MS SQL Server.

1 стартмани

15.12.2019    15256    196    berezdetsky    23    

CF & SQL : конструктор прямых запросов к БД 1С

Инструментарий разработчика Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

02.10.2019    16838    188    dmitrydemenew    44    

Конвейер проверки качества кода

Инструментарий разработчика Практика программирования Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    22056    21    Stepa86    44    

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    45731    155    ekaruk    32    

Модель объекта

Инструментарий разработчика v8 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    11483    0    vadim1980    5    

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

Инструментарий разработчика Jenkins v8 Абонемент ($m)

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    21940    5    ripreal1    89    

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Практический кейс построения HTTP-сервиса, который работает по принципу HTTP-сервера, с разбором всех методов построения и разработки класса задач построения личных кабинетов и сопряжения их с центральной базой.

1 стартмани

13.05.2019    27451    123    Diversus    42    

Faster - многофункциональный ускоритель работы программиста 1С Промо

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Программа Faster 8.7 позволяет ускорить процесс работы программиста 1С (и не только 1C). Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex) Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Полностью переделан механизм перехвата клавиш, теперь не зависает при обработке скриптов.

1 стартмани

24.05.2012    76313    207    moolex    145    

Групповая проверка доработок

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.

2 стартмани

05.05.2019    13856    94    sapervodichka    23    

Расширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Расширение для конфигурации "1С:Автоматизированная проверка конфигураций", позволяющее проверять произвольный код.

1 стартмани

26.03.2019    17711    56    Bazil    27    

Настройка отладки на сервере 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка для настройки отладки на сервере, включение отладки COM-соединений и отладки Web-сервисов.

1 стартмани

26.03.2019    23400    93    frkbvfnjh    37    

Консоль запросов + ТЗ как параметры Промо

Консоль запросов v8 1cv8.cf Украина Абонемент ($m)

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

2 стартмани

12.11.2010    33484    60    Kashemir    24    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    41748    247    informa1555    202    

Управление задачами в 1С - готовая подсистема с открытым кодом и широким базовым функционалом. Версия 1.0.6

Инструментарий разработчика Управление бизнес-процессами (BPM) Управление проектом v8 Абонемент ($m)

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

2 стартмани

17.12.2018    18442    95    for_sale    38    

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Печатные формы документов Универсальные функции Email v8 КА1 БП2.0 УТ10 УПП1 Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    22681    13    stvorl    0    

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С с возможностью чтения таблиц (поддерживается формат 8.3.8.0) Промо

Тестирование и исправление Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка позволяет просматривать файловые базы 1CD на низком уровне средствами встроенного языка. Реализована часть функциональности Tool_1CD, но на языке 1С Предприятия. Показываются таблицы, параметры таблиц, поля таблиц, записи таблиц, значения полей BLOB, есть 16-ричный просмотр страниц базы и консоль кода. Можно использовать для изучения структуры файлов 1CD, просмотра баз 1CD для выявления повреждений, создания своих обработок для выгрузки данных без открытия исследуемой базы в 1С:Предприятии.

1 стартмани

07.10.2014    50741    205    GusevNA    75    

Консоль Внедренца v.3.6.2 (vnedr.cf)

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Идея данной обработки заключается в создании простого, функционального и универсального инструментария для внедренцев и программистов 1С, который будет работать как в толстом клиенте на обычных и на управляемых формах, так и в тонком клиенте. Интерфейс и логика работы максимально идентичны у обычных форм и управляемых. Инструментарий включает в себя: Консоль кода, Консоль запросов, Консоль отчетов (СКД), Универсальную обработку объектов, Средства для работы с таблицами базы данных 1С, Редактирование регистров сведений базы, Инструмент по работе с табличными документами - загрузка данных из табличного документа.

1 стартмани

27.08.2018    19884    337    evvakra    42    

HTTP Сервисы: Путь к своему сервису. Часть 3

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    32873    51    dsdred    15    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    26201    26    informa1555    26    

Разбираемся со структурой правил конвертации данных Промо

Инструментарий разработчика v8 КД Абонемент ($m)

При переносе данных между различающимися данными частенько приходится смотреть в правила. И часто, чтобы выяснить, к примеру, каким документом формируются остатки по конкретному ПВД, нужно заглядывать в него и искать, какое ПКО в нем вызывается. А может вызываться и алгоритм, в котором вызывается ПКО ;-) А если правил много? Чтобы не мучить себя утомительными поисками, предлагаю воспользоваться этой обработкой.

1 стартмани

14.10.2011    21546    29    Meta    17    

Консоль HTTP-запросов с генерацией кода

Консоль запросов v8 v8::УФ 1cv8.cf Абонемент ($m)

Консоль HTTP-запросов, которая не только выполняет запросы и получает результат их выполнения, но и генерирует необходимый код. Использую на 8.3.11.2899.

1 стартмани

25.05.2018    22595    259    leongl    16    

Регистры правил [Расширение]

Инструментарий разработчика Информационная безопасность v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    16674    9    33lab    1    

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    27736    5    kraynev-navi    41    

Интерфейс сопоставления объектов для обмена (для типового регистра СоответствиеОбъектовДляОбмена) Промо

Инструментарий разработчика Универсальные обработки Перенос данных из 1C8 в 1C8 v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m)

Вы внедряете обмен данными между двумя типовыми или основанными на типовых БД и вам необходим инструмент, чтобы сопоставить между собой справочники этих конфигураций? Вы хотите навести порядок в обмене данными, потому что вам надоело вылавливать дублирующиеся объекты? Вам очень хочется перепоручить сопоставление объектов обменивающихся баз пользователям, но нет подходящего и понятного пользователям интерфейса? Тогда вам нужна именно эта обработка!

4 стартмани

11.11.2015    37999    133    catsam    8    

Программное формирование форматированной строки в стиле html+inline CSS

Работа с интерфейсом Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    29397    32    bonv    10    

Макет в СКД - пример всех возможных типовых вариантов

Практика программирования Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Макет СКД: наглядное представление того, что, как и куда выводится при типовых настройках.

1 стартмани

09.11.2017    20431    76    freelancer    4    

Тестирование: пример из семи шагов создания Unit-теста для платформы 1С

Инструментарий разработчика v8 ERP2 УТ11 Абонемент ($m)

В этой статье мы расскажем, как создать Unit-тест. Опишем как это сделать с использованием Фреймворка xUnitFor1C. Рассмотрим пример максимально приближенный к боевому, покажем процесс отладки теста, поделимся советами и приложим несколько обработок-примеров. Вы сможете убедиться, что создание тестов на самом деле это относительно быстрый и простой процесс.

1 стартмани

29.08.2017    28875    16    ivanov660    46    

Exec - Выполнение кода, консоль запросов и не только! Промо

Консоль запросов v8 1cv8.cf Абонемент ($m)

Незаменимый инструмент администратора БД и программиста: Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме "ОбменДанными.Загрузка = Истина"; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!

5 стартмани

10.11.2015    39751    75    catsam    11    

Трансформатор 1С - SQL

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка для представления SQL запросов в терминах 1С, с возможностью захвата SQL запросов трассировкой.  Поддерживается также форматирование текста запроса через интернет сервис. Работает в управляемых и обычных формах, в том числе на веб-клиенте.

1 стартмани

28.06.2017    33738    337    Synoecium    49    

OneStyle. Улучшенное форматирование кода в конфигураторе

Инструментарий разработчика v8 Абонемент ($m)

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

1 стартмани

19.06.2017    22473    22    Stepa86    45    

"Конвертация данных" + Git. Решение проблемы различий в файлах

Инструментарий разработчика Обмен через XML v8 КД Абонемент ($m)

Как известно, типовая конфигурация «Конвертация данных» обладает одним недостатком, мешающим работать с ней в Git-е. Если выгруженные из нее правила обмена загрузить в другую КД, а потом снова выгрузить, то полученные два файла будут очень сильно отличаться друг от друга, и при сравнении (diff) доработок будет невозможно провести код-ревью, равно как найти сами изменения, которые закоммитил разработчик.

1 стартмани

08.06.2017    23813    39    stas_ganiev    13    

КонЗап - консоль запросов с улучшенным интерфейсом и дополнительными функциями Промо

Консоль запросов v8 1cv8.cf Абонемент ($m)

Консоль запросов (Платформа 8.х режим - обычное приложение) с улучшенным интерфейсом и дополнительными функциями (загрузка параметров запроса из файла, работа с временными таблицами, замер времени выполнения, групповая обработка результатов запроса). Часть функций позаимствованы из других обработок, часть разработаны "с нуля".

1 стартмани

16.07.2014    14086    21    serjpsv    18    

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения

Инструментарий разработчика Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Шаблон внешней обработки призван упростить программисту процесс реализации внешнего регламентного задания. Пригоден к использованию во всех конфигурациях на управляемых формах, в которых присутствует подсистема "Дополнительные отчеты и обработки" из состава библиотеки стандартных подсистем (БСП) версии 2.1 и выше.

1 стартмани

28.05.2017    24279    172    Bassgood    10    

Набор подсистем "Умные таблицы"

Инструментарий разработчика v8 Беларусь Россия Казахстан Абонемент ($m)

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    31699    94    Silenser    34    

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

13.03.2017    29623    112    romasna    49    

1С: Gitter 1.1 (Хранилище 1С => Git)

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Развитие проекта gitter http://infostart.ru/public/273126/ . Позволяет выгружать хранилище 1С в репозиторий GIT.

1 стартмани

01.02.2017    24089    41    Stepa86    20    

Сценарное тестирование в помощь программисту 1С

Инструментарий разработчика v8 Абонемент ($m)

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

1 стартмани

11.11.2016    26828    59    grumagargler    47    

Отладка/доработка модуля менеджера "на лету"

Инструментарий разработчика Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

23.10.2016    28629    19    json    22    

Несколько шаблонов для доработки типовых конфигураций

Практика программирования Инструментарий разработчика v8 v8::УФ Абонемент ($m)

Предлагаю несколько каркасов для создания новых объектов в типовых конфигурациях. Это выжимка из кода нескольких конфигураций, которая позволит быстро и красиво создавать и дорабатывать объекты метаданных с соблюдением идеологии исходной системы

1 стартмани

03.10.2016    35031    95    json    25    

Управление задачами: Канбан доска

Инструментарий разработчика БСП (Библиотека стандартных подсистем) v8 Абонемент ($m)

Конфигурация "Управление задачами" с использованием БСП. Канбан доска. Открытый код.Загрузка изменений из хранилища конфигураций 1С и связь с задачами. Проект выложен на github (ссылка в публикации). Управляемые формы. Рассылка уведомлений.

1 стартмани

02.10.2016    61386    533    BlizD    293    

Конструктор-тестер http запросов в 1С

WEB Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Данная обработка позволяет в несколько кликов конструировать http запросы на языке 1С и просматривать результаты их выполнения.

3 стартмани

19.08.2016    40758    295    hlopik    17    

Подсистема обмена данными с порталом ИМНС по электронным счетам-фактурам (автоматический обмен)

Внешние источники данных WEB Инструментарий разработчика v8 1cv8.cf Беларусь БУ НДС Абонемент ($m)

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

1 стартмани

28.07.2016    32341    19    c1nil    4    

Навигатор по структуре и данным баз 1С 8

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Просмотр структуры и данных информационных баз 1С:Предприятие 8.2, 8.3. Состав, типы объектов, табличных частей, движений. Размер, структура хранения объекта. Для администраторов и разработчиков. Версия 1 - на обычных формах, версия 2 - на управляемых.

1 стартмани

11.07.2016    27742    127    o.nikolaev    17    

Конструктор внешних печатных форм NEW beta (обычные и управляемые приложения!)

Универсальные печатные формы Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Исходная обработка http://infostart.ru/public/162019/, здесь просто исправлены некоторые процедуры и функции для управляемого приложения. (Публикуется с согласия автора SeiOkami) 12.07.2016 - Версия 4.3 - убрал модальность для управляемой формы, изменена встроенная ВПФ . 23.11.2016 - Версия 4.4 - изменена встроенная ВПФ . 03.04.2018 - Версия 4.7 - исправлено сохранение ВПФ в клиент-серверном варианте от vshish. 11.05.2018 - Версия 4.8 - исправление от VovkaPutin плюс убрал из текста модуля ВПФ директивы препроцессора (то, что начинается с "#"), убрал модальность при открытии ВПФ из конструктора. 17.10.2019 - Версия 5.1 - тестировалось на платформе 8.3.15.1700, БП 3.0.73.54

1 стартмани

10.07.2016    49742    491    Alex_E    131