Как провести выпуск продукции в фоновом задании или в сеансе HTTP Сервиса

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Как провести выпуск продукции в фоновом задании или в сеансе HTTP Сервиса
 
добрый день!

версия 3.0.70.33 ,  база опубликована на сервере 1С


хочу со своего мобильного приложения создавать выпуски продукции и через HTTP -сервис принимать их в базе 1С Общепит.


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


Как можно работать с ключом в сеансе HTTP Сервиса?

Сервер лицензирования 1С:Рарус Компонента 3.0.13.6904 (i386)

Сервер СЛК и сервер 1С предприятия работают на одном компьютере и сеанс HTTP Серсиса выполняется там же
Изменено: Виктор Рудаков - 21.10.2019 20:21:14
 
Виктор, доброе утро.
Чтобы постараться решить проблему, можете прислать пример кода, который выполняется у вас и ошибку, которая при этом выдается?
Я правильно понимаю, что ключи у вас СЛК?
 
В общем то выдернул кусок кода из самого документа выпуск продукции.


Код
Процедура ЗаполнитьВыпускПродукцииПродукцией(ДокументОбъект, Отказ)
    
    // ЭТО МОЙ ВАРИАНТ ВЫЗОВА из другого Общего модуля с Флагом "Привиллигированный режим" 
    // ПРОбовал и без этого флага
    ТаблицаПроизводства = ОбменСМУ_ОбщийМодульВызовСервера.ПолучитьЗащищеннуюОбработкуЗаполнитьДокумент(ДокументОбъект);
    // там тоже выполняется код как в типовой функции 

    // ЭТО ТИПОВОЙ КОД из документа выпуск продукции
    ОбработкаЗащита = ОбщепитЛицензированиеСервер.ПолучитьЗащищеннуюОбработку();
    ТаблицаПроизводства = ОбработкаЗащита.ЗаполнитьПроизводственныеТаблицыПоРецептуре(ДокументОбъект, Ложь, Неопределено);
    
    // Заполняем таблицу производства
    Если ТаблицаПроизводства <> Неопределено Тогда
        документОбъект.Производство.Загрузить(ТаблицаПроизводства);
        ЗаполнитьСчетаУчетаВТаблицахПроизводства(ДокументОбъект);
    КонецЕсли;
    
    // Обход производственной таблицы и заполнение фактическим остатком
    // и, в случае нехватки, аналогами.
    СтруктураПараметров = Новый Структура("МоментВремени, СчитатьФактВТаблицеЗамен, Склад, Организация, ПодразделениеОрганизации, РежимИспользованияАналогов, ОрганизацияПрименяетУСН");
    ЗаполнитьЗначенияСвойств(СтруктураПараметров, ДокументОбъект);
    
    СтруктураПараметров.МоментВремени = ДокументОбъект.МоментВремени();
    СтруктураПараметров.СчитатьФактВТаблицеЗамен = Ложь;
    СтруктураПараметров.ОрганизацияПрименяетУСН = УчетнаяПолитика.ПрименяетсяУСН(документОбъект.Организация, документОбъект.Дата);
    
    ОбщепитПроизводство.ЗаполнитьПроизводственныеТаблицыФактическимКоличеством(документОбъект.Производство, документОбъект.Замены, СтруктураПараметров);
    
    Если НЕ ДокументОбъект.РазрешитьНедовложения Тогда
        // Остаточную нехватку пишем в КоличествоФакт, и заполняем колонку ФактЗамены
        ОбщепитПроизводство.ЗаписатьОстаточныеНехваткиВКоличествоФакт(документОбъект.Производство, документОбъект.Замены);
    Иначе
        // Рассчитываем только колонку ФактЗамены
        ОбщепитПроизводство.ЗаписатьВТаблицуПроизводствоФактЗанены(документОбъект.Производство, документОбъект.Замены);
    КонецЕсли;
    
    // Заполним счета учета в таблице Замены
    ЗаполнитьСчетаУчетаВТаблицахПроизводства(Истина);
    
    // Исправим колонку ОтражениеВУСН
    Если ДокументОбъект.ВидОперации = Перечисления.ОбщепитВидыОперацийВыпускПродукции.ВыпускПродукцииСоСписанием Тогда
        Для Каждого СтрокаТаблицы Из ДокументОбъект.Производство Цикл
            СтрокаТаблицы.ОтражениеВУСН = Перечисления.ОтражениеВУСН.НеПринимаются;
        КонецЦикла;
        Для Каждого СтрокаТаблицы Из ДокументОбъект.Замены Цикл
            СтрокаТаблицы.ОтражениеВУСН = Перечисления.ОтражениеВУСН.НеПринимаются;
        КонецЦикла;
    КонецЕсли;

    
КонецПроцедуры


Сперва в отладке видел что Сеансу HTTP сервиса требуется разрещение на запуск обработки.
Убрал у пользователя флаг "Защита от опасных действий"


ОбработкаЗащита = ОбщепитЛицензированиеСервер.ПолучитьЗащищеннуюОбработку();
возвращает в результате Неопределено

и соответсвенно при попытке обращения к функции ЗаполнитьПроизводственныеТаблицыПоРецептуре(ДокументОбъект, Ложь, Неопределено)
получаю ошибку "Метод объекта не обнаружен  ЗаполнитьПроизводственныеТаблицыПоРецептуре"
Изменено: Виктор Рудаков - 22.10.2019 10:05:28
 
Виктор, а все же, у вас какие ключи используются? Если ключи СЛК, то очень рекомендуем переключиться на прямое их использование. В СЛК любые фоновые процессы работают.
Это можно сделать из формы  Управление лицензированием.
 
Цитата
Александр Драгунов написал:
Виктор, а все же, у вас какие ключи используются? Если ключи СЛК, то очень рекомендуем переключиться на прямое их использование. В СЛК любые фоновые процессы работают.
Это можно сделать из формы  Управление лицензированием.
Ключи программные СЛК.

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


С какой версии, будет данный пункт?
 
Цитата
Виктор Рудаков написал:
у нас версия 3.0.70.33, в управлении лицензированием нет такого пункта.


С какой версии, будет данный пункт?
С версии 3.0.70.62
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С