![]() |
![]() |
![]() |
|
Сортировка СрезПоследних() | ☑ | ||
---|---|---|---|---|
0
Danish
01.10.13
✎
17:16
|
Использую Функцию ОпределитьСпецификациюПоУмолчанию из модуля Управление Производством УПП 1.3 (1.3.41.1)
Копаюсь в запросе, виртуальная таблица возвращает 3 записи отсортированые по возрастанию и соответственно функция возвращает первую запись,где дата ранняя, а не последнюю актуальную. Видимо сортировка поменяна. Внести изменение в типовой запрос без проблем, но может есть другое решение или это ошибка конфигурации? |
|||
1
Нуф-Нуф
01.10.13
✎
17:18
|
покажи запрос
|
|||
2
H A D G E H O G s
01.10.13
✎
17:18
|
Постгри, не?
|
|||
3
Danish
01.10.13
✎
17:19
|
SLQ 2005
Функция ОпределитьСпецификациюПоУмолчанию(Номенклатура, ХарактеристикаНоменклатуры = Неопределено, Момент, Подразделение = Неопределено) Экспорт Перем Спецификация; Запрос = Новый Запрос( "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры КАК СпецификацияНоменклатуры |ИЗ | (ВЫБРАТЬ ПЕРВЫЕ 1 | ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры КАК СпецификацияНоменклатуры, | 1 КАК Приоритет | ИЗ | РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних( | &Дата, | Номенклатура = &Номенклатура | И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры | И Подразделение = &Подразделение) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ ПЕРВЫЕ 1 | ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры, | 2 | ИЗ | РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних( | &Дата, | Номенклатура = &Номенклатура | И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры | И Подразделение = &ПодразделениеПустаяСсылка) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ ПЕРВЫЕ 1 | ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры, | 3 | ИЗ | РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних( | &Дата, | Номенклатура = &Номенклатура | И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ ПЕРВЫЕ 1 | ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры, | 4 | ИЗ | РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних( | &Дата, | Номенклатура = &Номенклатура | И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатурыПустаяСсылка) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ ПЕРВЫЕ 1 | ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры, | 5 | ИЗ | РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&Дата, Номенклатура = &Номенклатура) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних) КАК ОсновныеСпецификацииНоменклатуры | |УПОРЯДОЧИТЬ ПО | ОсновныеСпецификацииНоменклатуры.Приоритет"); Запрос.УстановитьПараметр("Дата", ?(ТипЗнч(Момент) = Тип("Дата"), Момент, ТекущаяДата())); Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("ХарактеристикаНоменклатуры", ?(ХарактеристикаНоменклатуры = Неопределено, Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка(), ХарактеристикаНоменклатуры)); Запрос.УстановитьПараметр("ХарактеристикаНоменклатурыПустаяСсылка", Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()); Запрос.УстановитьПараметр("Подразделение", ?(Подразделение = Неопределено, Справочники.Подразделения.ПустаяСсылка(), Подразделение)); Запрос.УстановитьПараметр("ПодразделениеПустаяСсылка", Справочники.Подразделения.ПустаяСсылка()); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Спецификация = Выборка.СпецификацияНоменклатуры; КонецЕсли; Возврат Спецификация; КонецФункции // ОпределитьСпецификациюПоУмолчанию() |
|||
4
Danish
01.10.13
✎
17:21
|
По условию я попадаю на 5 приоритет
|
|||
5
Нуф-Нуф
01.10.13
✎
17:21
|
(4) чего?
|
|||
6
Нуф-Нуф
01.10.13
✎
17:22
|
несколько спецификаций на разные характеристики твоей номенклатуры?
|
|||
7
Нуф-Нуф
01.10.13
✎
17:24
|
а вообще выполни этот запрос в консоли
|
|||
8
Euguln
01.10.13
✎
17:26
|
А через ВЫБОР нельзя сделать?
|
|||
9
Danish
01.10.13
✎
17:26
|
(7) Вбил уже запрос РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&Дата, Номенклатура = &Номенклатура) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних) КАК ОсновныеСпецификацииНоменклатуры
Дает 3 записи и отсортированные по убыванию, соответственно выход из функции дает не правильную первую запись |
|||
10
Нуф-Нуф
01.10.13
✎
17:27
|
(9) характеристики разные?
|
|||
11
Danish
01.10.13
✎
17:27
|
(7) по возрастанию, сорри
|
|||
12
Нуф-Нуф
01.10.13
✎
17:27
|
(9) подразделения разные?
|
|||
13
Danish
01.10.13
✎
17:30
|
(12) вызов функции мОсновнаяСпецификацияНоменклатуры = УправлениеПроизводством.ОпределитьСпецификациюПоУмолчанию(Ссылка, Неопределено, РабочаяДата);
Не используется подразделения и характеристики. |
|||
14
Danish
01.10.13
✎
17:33
|
Из-за ошибки, помечается другая основная спецификация во вкладке Спецификации справочника Номенклатура. Хотя раньше такого не наблюдал.
|
|||
15
Нуф-Нуф
01.10.13
✎
17:34
|
чет ты не договвариваешь
|
|||
16
Нуф-Нуф
01.10.13
✎
17:35
|
у тебя срез последних по номенклатуре возвращает 3 записи и ты говоришь, что у тебя в спецификациях указана только номенклатура?
|
|||
17
Danish
01.10.13
✎
17:42
|
(16)
Есть справочник Номенклатура, в нем есть вкладка Спецификации, в табличной части указан перечень спецификации, жирным шрифтом указана основная спецификация на дату. Появилась проблема, что основная спецификация указана не правильно.Соответственно, открываю функцию отвечающую за назначения основной спецификации, в ней выбирается первая запись из регистра, но так как сортировка по возрастанию, она оказывается не правильной. |
|||
18
Danish
01.10.13
✎
17:45
|
Вот гадаю, толи это ошибка конфигурации, толи обновление SQL, толи руки шаловливые.
|
|||
19
Нуф-Нуф
01.10.13
✎
17:58
|
(17) т.е. он тебе в номенклатуре на закладке спецификации неправильно выделяет основную?
|
|||
20
Danish
01.10.13
✎
17:59
|
(19) Да
|
|||
21
Serginio1
01.10.13
✎
18:00
|
А не проще
ВЫБРАТЬ последние 1 ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры КАК СпецификацияНоменклатуры, 1 КАК Приоритет ИЗ РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних( &Дата, Номенклатура = &Номенклатура) как ОсновныеСпецификацииНоменклатуры УПОРЯДОЧИТЬ ПО | ОсновныеСпецификацииНоменклатуры.ХарактеристикаНоменклатуры ,ОсновныеСпецификацииНоменклатуры.Подразделение |
|||
22
Serginio1
01.10.13
✎
18:04
|
(21) Нет прошу прощения. Не о том подумал.
Просто в какая сортировка должна быть в 4 и 5 приоритете? |
|||
23
Нуф-Нуф
01.10.13
✎
18:10
|
каким образом 5й подзапрос может вернуть несколько записей и выбрать из них одну первую и не правильно, если у вас не ведется учет по характеристикам и подразделениям?
|
|||
24
Нуф-Нуф
01.10.13
✎
18:10
|
если у вас заполнено только одно измерение в регистре сведений, то 5й подзапрос должен вернуть только одну запись и без всяких "первые 1"
|
|||
25
Serginio1
01.10.13
✎
18:12
|
Кстати 4 и 3 запрос могут быть одинаковыми при
?(ХарактеристикаНоменклатуры = Неопределено, Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка(), ХарактеристикаНоменклатуры)); |
|||
26
Serginio1
01.10.13
✎
18:12
|
24 Может быть несколько Характеристик
|
|||
27
Danish
01.10.13
✎
18:20
|
(23) я имел введу не используются хар-ки и подразделения при вызове функции УправлениеПроизводством.ОпределитьСпецификациюПоУмолчанию, так хар-ки и подразделения есть.
|
|||
28
Нуф-Нуф
01.10.13
✎
19:10
|
короче это нормальная работа типового механизма
|
|||
29
Зойч
01.10.13
✎
19:15
|
(26) если несколько характеристик, то они все актуальные
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |