• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Как бы побыстрее то....

  • Автор темы Автор темы Sangitam
  • Дата начала Дата начала
S

Sangitam

Как бы данную вещь убыстрить то.

путьК= "D:\tek\postuplenie.xml";
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(путьК, "UTF-8");

ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("root");
ЗаписьXML.ЗаписатьНачалоЭлемента("Ожидаемые");

Выборка = Справочники.Номенклатура.Выбрать();

Пока Выборка.Следующий() Цикл
Товар = Выборка.Ссылка;
Код = Выборка.Код;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказыПоставщикамОстатки.Номенклатура КАК Номенклатура,
| ЗаказыПоставщикамОстатки.ЗаказПоставщику.ДатаПоступления КАК ДатаПоступления,
| ЕСТЬNULL(ЗаказыПоставщикамОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток, 0) КАК Остаток,
| ЦеныНоменклатурыСрезПоследних.ТипЦен.Ссылка,
| ЦеныНоменклатурыСрезПоследних.ТипЦен.ВалютаЦены.Наименование,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Наименование,
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаОтчета, Номенклатура = &ВыбНоменклатура) КАК ЗаказыПоставщикамОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки(&ДатаОтчета, Номенклатура = &ВыбНоменклатура) КАК РазмещениеЗаказовПокупателейОстатки
| ПО ЗаказыПоставщикамОстатки.Номенклатура = РазмещениеЗаказовПокупателейОстатки.Номенклатура
| И (РазмещениеЗаказовПокупателейОстатки.ЗаказПоставщику = ЗаказыПоставщикамОстатки.ЗаказПоставщику)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
| ПО ЗаказыПоставщикамОстатки.Номенклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура,
| ДатаПоступления";
Запрос.УстановитьПараметр("ВыбНоменклатура",Товар);
Запрос.УстановитьПараметр("ДатаОтчета",КонецДня(РабочаяДата));
ТаблицаПоступлений = Запрос.Выполнить().Выгрузить();

а = 0;
Если ТаблицаПоступлений.Количество() > 0 Тогда
Для Каждого ЗначениеСвойства Из ТаблицаПоступлений Цикл
Если (ЗначениеСвойства.Остаток > 0) и (а = 0) Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("Товар");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.Номенклатура.УникальныйИдентификатор(),"ID");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.ДатаПоступления,"ДатаПоступления");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.Остаток,"Количество");
а = 1;
ЗаписьXML.ЗаписатьНачалоЭлемента("ЦеныВсе");
ЗаписьXML.ЗаписатьНачалоЭлемента("Цена");
Попытка
ИдТипаЦены = Строка(ЗначениеСвойства.ТипЦенСсылка.УникальныйИдентификатор());
Исключение
ИдТипаЦены = "ПлохойИД";
КонецПопытки;
ЗаписатьXML(ЗаписьXML, ИдТипаЦены,"ИдТипаЦены");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.ТипЦенВалютаЦеныНаименование,"Валюта");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.ЕдиницаИзмеренияНаименование,"Единица");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.Цена,"ЦенаЗаЕдиницу");
ЗаписьXML.ЗаписатьКонецЭлемента(); //Цена
ИначеЕсли (ЗначениеСвойства.Остаток > 0) и (а = 1) Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("Цена");
Попытка
ИдТипаЦены = Строка(ЗначениеСвойства.ТипЦенСсылка.УникальныйИдентификатор());
Исключение
ИдТипаЦены = "ПлохойИД";
КонецПопытки;
ЗаписатьXML(ЗаписьXML, ИдТипаЦены,"ИдТипаЦены");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.ТипЦенВалютаЦеныНаименование,"Валюта");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.ЕдиницаИзмеренияНаименование,"Единица");
ЗаписатьXML(ЗаписьXML, ЗначениеСвойства.Цена,"ЦенаЗаЕдиницу");
ЗаписьXML.ЗаписатьКонецЭлемента(); //Цена
КонецЕсли;
КонецЦикла;
Если ЗначениеСвойства.Остаток > 0 Тогда
ЗаписьXML.ЗаписатьКонецЭлемента(); //ЦеныВсе
ЗаписьXML.ЗаписатьКонецЭлемента(); //Товар
КонецЕсли;
КонецЕсли;
КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); //Ожидаемые
ЗаписьXML.ЗаписатьКонецЭлемента(); //root
ЗаписьXML.Закрыть();
 
Вынести запрос из цикла.
Сделать замер производительности, узнать, что тормозит.
 
Непонятно, зачем крутится цикл по справочнику Номенклатура - запрос сам выдаст ту номенклатуру, по которой есть заказы, а прочая номенклатура, судя по тексту, не интересна.
 
Непонятно, зачем крутится цикл по справочнику Номенклатура - запрос сам выдаст ту номенклатуру, по которой есть заказы, а прочая номенклатура, судя по тексту, не интересна.
Ага, уже все поубирал, работает быстро и чисто. Спасибо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD