|   |   | 
| 
 | Интересно можно както оптимизировать этот код | ☑ | ||
|---|---|---|---|---|
| 0
    
        Gray776 05.05.17✎ 11:08 | 
        Ну всё работает так как и должно. Всё устраивает. Но я писал от фонаря особо не озадачиваясь. Вот и чисто интересно... Из истории кода:
 Написано для конвертации данных из отраслевой + доработанной УПП 1,3 в БП 2,0. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ //| РеализацияТоваровУслугТовары.Ссылка.Грузополучатель, | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента, | РеализацияТоваровУслугТовары.Ссылка.ВидОперации, | РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента, | РеализацияТоваровУслугТовары.Ссылка.Контрагент, | МАКСИМУМ(1) КАК КратностьВзаиморасчетов, | МАКСИМУМ(1) КАК КурсВзаиморасчетов, | РеализацияТоваровУслугТовары.Ссылка.Организация, | РеализацияТоваровУслугТовары.Ссылка.Склад, | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС, | РеализацияТоваровУслугТовары.Ссылка.ТипЦен, | РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС, | РеализацияТоваровУслугТовары.Номенклатура, | СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество, | МАКСИМУМ(1) КАК КоличествоМест, | РеализацияТоваровУслугТовары.ЕдиницаИзмерения, | МАКСИМУМ(1) КАК Коэффициент, | РеализацияТоваровУслугТовары.Цена, | СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма, | РеализацияТоваровУслугТовары.СтавкаНДС, | СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И РеализацияТоваровУслугТовары.Ссылка.Проведен | |СГРУППИРОВАТЬ ПО //| РеализацияТоваровУслугТовары.Ссылка.Грузополучатель, | РеализацияТоваровУслугТовары.СтавкаНДС, | РеализацияТоваровУслугТовары.Ссылка.Контрагент, | РеализацияТоваровУслугТовары.Ссылка.ВидОперации, | РеализацияТоваровУслугТовары.Ссылка.Организация, | РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС, | РеализацияТоваровУслугТовары.ЕдиницаИзмерения, | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС, | РеализацияТоваровУслугТовары.Ссылка.Склад, | РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Ссылка.ТипЦен, | РеализацияТоваровУслугТовары.Цена, | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента | |УПОРЯДОЧИТЬ ПО | РеализацияТоваровУслугТовары.Ссылка.Контрагент, | РеализацияТоваровУслугТовары.Ссылка.Склад"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); ТЗ = РезультатЗапроса.Выгрузить(); ТЧ = ТЗ.СкопироватьКолонки(); ТЗРез = ТЗ.СкопироватьКолонки(); ТЗРез.Колонки.Добавить("Товары"); ПозТЗ = 0; Пока Выборка.СледующийПоЗначениюПоля("Контрагент") Цикл НоваяСтрока = ТЗРез.Добавить(); //Создали шапку документа ЗаполнитьЗначенияСвойств(НоваяСтрока, ТЗ[ПозТЗ]); ТекущийСклад = Выборка.Склад; Пока Выборка.Следующий() Цикл Если ТекущийСклад = Выборка.Склад Тогда //Пока все товары с одного склада ЗаполнитьЗначенияСвойств(ТЧ.Добавить(), ТЗ[ПозТЗ]); //заполняем ТЧ документа ПозТЗ = ПозТЗ+1; Иначе //Сменился склад, ТекущийСклад = Выборка.Склад; НоваяСтрока.Товары = ТЧ.Скопировать(); //Фиксируем докупент по предыдущему складу ТЧ.Очистить(); НоваяСтрока = ТЗРез.Добавить(); //и начинаем заполнять для следующего. ЗаполнитьЗначенияСвойств(НоваяСтрока, ТЗ[ПозТЗ]); ЗаполнитьЗначенияСвойств(ТЧ.Добавить(), ТЗ[ПозТЗ]); ПозТЗ = ПозТЗ+1; КонецЕсли; КонецЦикла; НоваяСтрока.Товары = ТЧ.Скопировать(); ТЧ.Очистить(); КонецЦикла; ВыборкаДанных = ТЗРез; ЗЫ: ОШИБКА: Сработал фильтр анти-мат (слово в о б щ е м (навтыкал пробелов ото опять ругаться начало на это самое слово)). Попробуйте выразиться более прилично. Эммм... Евгений Ваганович подрабатывает админством на мисте? | |||
| 1
    
        Gray776 05.05.17✎ 11:17 | 
        + А  да забыл надо было при выгрузке сворачивать по контрагентам реализации ну и если реализация одному клонтрагенту с разных складов чтоб так же по складам разбивалось свернутое. Ну про склады в процессе как бы выяснилось бухи просили просто сворачивать по контрагенту...     | |||
| 2
    
        бомболюк 05.05.17✎ 11:18 | 
        а замеры производительности где нить показывают откровенно слабые места?     | |||
| 3
    
        Fish гуру 05.05.17✎ 11:18 | 
        (0) Работает - не трожь! (с)     | |||
| 4
    
        Fish гуру 05.05.17✎ 11:20 | 
        (0) И да. Учитесь писать грамотно. Матофильтр как бы намекает.     | |||
| 5
    
        zvial 05.05.17✎ 11:21 | 
        С итогами в запросе как-то прозрачней бы выглядело     | |||
| 6
    
        zvial 05.05.17✎ 11:21 | 
        А так да, не трожь ) (3)     | |||
| 7
    
        Gray776 05.05.17✎ 11:21 | 
        (3) да сча тож самое для поступления ваять ... это трогать не буду но мож как -то улучшить код дя поступлений...     | |||
| 8
    
        Gray776 05.05.17✎ 11:23 | 
        (5) хммм ок подумаем над итогами :) спасиб     | |||
| 9
    
        Gray776 05.05.17✎ 11:24 | 
        (2) кстати довольно шустро работает я даж не ожидал... Если стандартно на автомате делать то блин медленне процесс выгрузки загрузки ...     | |||
| 10
    
        catena 05.05.17✎ 11:42 | 
        <Сработал фильтр анти-мат (слово в о б щ е м>
 Потому что нет такого слова. Можно писать "в общем" и "вообще". | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |