Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 окт 2021, 21:05

Регламентное задание

Автор d_liliya, 15 ноя 2016, 19:38

0 Пользователей и 1 гость просматривают эту тему.

d_liliya

Доброго времени суток.
Обработка по записи данных в файл xml при запуске в ручном режиме выполняется в 3 раза быстрее, чем регламентно. В чем может быть проблема, подскажите, пожалуйста? Такая разница по времени выполнения не допустима.

Luzer1C

Исполняемый код регламентного задания в студию. Так гадать бесполезно.
Халамбалам.

d_liliya

Код очень большой, смысла весь выгладывать нет. Суть в том что на основании выборки формируется файл xml. Привожу часть кода.
Выборка = ВыборкаНоменклатуры.НоменклатураТаб ;

ТекущийКодНоменклатуры="";

Для каждого Элемент из Выборка Цикл     

Если не ЗначениеЗаполнено(Элемент.Номенклатура) тогда Продолжить КонецЕсли;

Если ТекущийКодНоменклатуры<>ЗаполнитьЭл(Элемент.Код)  Тогда

Если ЗначениеЗаполнено(ТекущийКодНоменклатуры) Тогда
ОбъектXML.ЗаписатьКонецЭлемента();  //Товар
КонецЕсли;

ОбъектXML.ЗаписатьНачалоЭлемента("Товар");

ЗаписатьТекстовойУзел(ОбъектXML, "id", ЗаполнитьЭл(Элемент.Код));

ЗаписатьТекстовойУзел(ОбъектXML, "Артикул",       ЗаполнитьЭл(Элемент.Артикул));
ЗаписатьТекстовойУзел(ОбъектXML, "Наименование",  ЗаполнитьЭл(Элемент.НаименованиеПолное));


стСвойствН=Новый Структура("НоменклатурнаяГруппа,Пол,Сезон,country,Состав,ВыгрузкаВИМ,ВыгрузкаVIP,ГуидНомСтарый");

Отбор = Новый Структура();
Отбор.Вставить("Номенклатура",Элемент.Номенклатура);                           
Строки = ВыборкаНоменклатуры.ЗначДопСвойстваНом.НайтиСтроки(Отбор);

Для каждого элСтроки из Строки Цикл
стСвойствН[ВыборкаНоменклатуры.стСвойствНом.Получить(элСтроки.Свойство)]=элСтроки.Значение;
КонецЦикла;


ОбъектXML.ЗаписатьНачалоЭлемента("Свойства");

НомГр = стСвойствН.НоменклатурнаяГруппа;
Если НЕ ЗначениеЗаполнено(НомГр) Тогда
Если ЗначениеЗаполнено(Элемент.Номенклатура.НомГруппа) Тогда
НомГр = Элемент.Номенклатура.НомГруппа.код;
КонецЕсли;
КонецЕсли;
ЗаписатьТекстовойУзел(ОбъектXML, "НоменклатурнаяГруппа",ЗаполнитьЭл(?(ЗначениеЗаполнено(НомГр),
НомГр,"")));
ЗаписатьТекстовойУзел(ОбъектXML, "Пол",  ЗаполнитьЭл(стСвойствН.Пол));
ЗаписатьТекстовойУзел(ОбъектXML, "Сезон",  ЗаполнитьЭл(Элемент.номенклатура.КоллекцияНоменклатуры));
ЗаписатьТекстовойУзел(ОбъектXML, "Бренд",   ЗаполнитьЭл(Элемент.Марка));


ОбъектXML.ЗаписатьКонецЭлемента();  //"Свойства"

КонецЕсли;

ilyay

регламентное запускается от того же пользователя (см. журнал регистрации)?

d_liliya


ilyay

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

Samir Omarov

Если Регламентная задача выполняется на сервере Тогда провер сервер 1С Административная.Иногда 1С сервер очен много грузится на память.Лутче очисти память 1с Сервера

d_liliya

Всем спасибо за ответы

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск