|
Неоптимальная работа УстановитьНомерОрдера() в ПКО конфы УТП? | ☑ | ||
|---|---|---|---|---|
|
0
DeZol
23.09.11
✎
16:39
|
Столкнулся со следующим интересным алгоритмом работы этой процедуры в ПКО.
Зачем такие "развраты" при вычислении НомерОрдера, если реквизит числовой. Кто-то может объяснить? ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | НомерОрдера КАК НомерОрдера |ИЗ | Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер | |ГДЕ | ПриходныйКассовыйОрдер.Организация = &Организация | //самого себя не учитываем | И ПриходныйКассовыйОрдер.Ссылка <> &Ссылка | И ПриходныйКассовыйОрдер.СчетКасса = &СчетКасса | И ПриходныйКассовыйОрдер.ВалютаДокумента = &ВалютаДокумента |"; Если ЕстьАналитикаПоОбособленнымПодразделениям Тогда ТекстЗапроса = ТекстЗапроса + " | И ПриходныйКассовыйОрдер.Касса.ОбособленноеПодразделение = &ОбособленноеПодразделение"; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " | И ПриходныйКассовыйОрдер.Дата >= &ДатаНачалаГода | И ПриходныйКассовыйОрдер.Дата <= &ДатаКонцаГода"; Запрос.Текст = ТекстЗапроса; СписокОрдеров = Запрос.Выполнить().Выбрать(); ТаблицаЗначений = Новый ТаблицаЗначений; ТаблицаЗначений.Колонки.Добавить("Номер"); ТаблицаЗначений.Колонки.Добавить("Длина"); Пока СписокОрдеров.Следующий() Цикл НоваяСтрока = ТаблицаЗначений.Добавить(); НоваяСтрока.Номер = СписокОрдеров.НомерОрдера; НоваяСтрока.Длина = СтрДлина(СписокОрдеров.НомерОрдера); КонецЦикла; ТаблицаЗначений.Сортировать("Длина Убыв, Номер Убыв"); Если ТаблицаЗначений.Количество() > 0 Тогда Попытка НомерОрдера = Формат(Число(ТаблицаЗначений[0].Номер) + 1, "ЧГ=0"); Исключение НомерОрдера = 1; КонецПопытки; Иначе НомерОрдера = 1; КонецЕсли; |
|||
|
1
rutony
23.09.11
✎
16:45
|
(0) Слишком много условий, разрезы Подразделения, Организации, да еще и в пределах года... Впринципе, ничего не оптимального, разве что сортировка...
|
|||
|
2
DeZol
23.09.11
✎
16:49
|
Я про то, что можно было просто получить МАКСИМУМ(НомерОрдера) и все дела. Зачем сортировать по длине номера? В чем смысл?
|
|||
|
3
shuhard
23.09.11
✎
16:52
|
(2) префиксы
|
|||
|
4
DeZol
23.09.11
✎
17:00
|
(3) В НомерОрдера префиксы не включаются!
|
|||
|
5
pumbaEO
23.09.11
✎
17:50
|
Такое впечатление, что этот код для строкового типа НомерОрдера ...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |