О2.ЗагрузитьРешение
Восстанавливает объект решения из сериализованных данных. Позволяет получить результат вычислений, выполненных вне текущего процесса 1С: в другом сеансе, на другом сервере или консольной утилитой решателя.
Синтаксис
О2.ЗагрузитьРешение(Источник, Параметры)
Параметры
- Источник — источник данных решения. Допустимые типы:
- Строка — полный путь к файлу, содержащему решение;
- ДвоичныеДанные — двоичные данные решения;
- Поток, ФайловыйПоток, ПотокВПамяти — входной поток с данными решения.
- Параметры — Структура, Неопределено — Аргумент зарезервирован для будущих расширений. В текущей версии не используется.
Возвращаемое значение
- ОбработкаОбъект — объект решения. Тип определяется автоматически по содержимому источника:
ОбработкаОбъект.О2_CP_SAT_Решение— решение модели ограничений;ОбработкаОбъект.О2_MP_Решение— решение линейной модели (LP / IP / MIP);ОбработкаОбъект.О2_Knapsack_Решение— решение задачи о рюкзаке;ОбработкаОбъект.О2_MaxFlow_Решение— решение задачи поиска максимального потока;ОбработкаОбъект.О2_MinCostFlow_Решение— решение задачи поиска потока минимальной стоимости;ОбработкаОбъект.О2_Routing_Решение— решение модели маршрутизации.
Описание
Метод используется в связке с методом О2.ЗаписатьМодель для реализации асинхронных сценариев вычислений. Типовой сценарий:
- В 1С модель строится и сохраняется в файл методом
ЗаписатьМодель. - Файл модели передаётся на сервер решателя (сетевой диск, HTTP, очередь и т. п.).
- На сервере решателя консольная утилита получает решение и сохраняет его в виде файла.
- Файл решения возвращается в 1С и загружается методом
ЗагрузитьРешение.
Подробнее сценарий описан в разделе Использование консольной утилиты.
Рекомендация
Используйте расширение .o2s для файлов решения — оно согласовано с консольной утилитой и упрощает различение файлов модели и решения в файловой системе.
Пример
Загрузка из файла:
Решение = О2.ЗагрузитьРешение("C:\tmp\solution.o2s");
Если Решение.РешениеНайдено() Тогда
// обработка найденных значений
КонецЕсли;
Загрузка из потока:
Поток = ФайловыеПотоки.ОткрытьДляЧтения("C:\tmp\solution.o2s");
Попытка
Решение = О2.ЗагрузитьРешение(Поток);
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
Поток.Закрыть();
См. также
- ЗаписатьМодель — сохранение модели;
- РешитьМодель — решение модели непосредственно;
- Модели — методы объектов решений по каждому классу задач.