|
v7: Странно работает функция Счетчик | ☑ | ||
---|---|---|---|---|
0
Sasha_H
09.04.13
✎
23:17
|
Решил спросить у оракула.
Есть запросик: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(НайтиДублиПоНомеру) |ОбрабатыватьДокументы все; |НомерДок = Документ.ЗаказНаПокупку.НомерДок; |ТекущийДокумент = Документ.ЗаказНаПокупку.ТекущийДокумент; |Функция Сч = Счётчик(); |Группировка НомерДок; |"//}}ЗАПРОС ; Пока Запрос.Группировка(1) = 1 Цикл Если Запрос.Сч=1 Тогда Продолжить; КонецЕсли; // Заполнение полей НомерДок Таб.ВывестиСекцию("НомерДок"); КонецЦикла; Выходит результат со счетчиком 2. Проверяю явно с номером 12345 есть три дубля но в пор запрос этог оне видит. Забить и делать через ТЗ и трахогемор? |
|||
1
jarett
09.04.13
✎
23:24
|
га фига группировать по номеру документа?
|
|||
2
Sasha_H
09.04.13
✎
23:28
|
как это фига,
у меня номер документа Текст длина 5 есть три документа с номерами 12345 я хочу увидеть, что номер 12345 дублирется N-раз |
|||
3
EvgeniuXP
09.04.13
✎
23:29
|
случаем одинаковых номеров документов нет у тебя там в базе?
|
|||
4
EvgeniuXP
09.04.13
✎
23:30
|
В ТЗ нет ни какого трахогемора, свернуть и получил результат :)
|
|||
5
Sasha_H
09.04.13
✎
23:32
|
(3) ну а я очем, мне и надо найти все дубли! Но запрос не все видит - это что за бред?
|
|||
6
EvgeniuXP
09.04.13
✎
23:36
|
Проще через 1СРР написать, а стандартный так и не докумекал.
|
|||
7
Sasha_H
09.04.13
✎
23:40
|
да я и чем. надо юзать мне стандарт, там ВК не надо ставить
|
|||
8
Voronve
09.04.13
✎
23:47
|
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Номер"); ТЗ.НоваяКолонка("Счетчик"); Док = СоздатьОбъект("Документ.ЗаказНаПокупку"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент() = 1 Цикл ТЗ.НоваяСтрока(); ТЗ.Номер = Док.НомерДок; ТЗ.Счетчик = 1; КонецЦикла; ТЗ.Свернуть("Номер", "Счетчик"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Если ТЗ.Счетчик > 1 Тогда Сообщить("" + ТЗ.Номер); КонецЕсли; КОнецЦикла; |
|||
9
EvgeniuXP
09.04.13
✎
23:51
|
(8) еще отсортировать по убыванию :) и прервать, как только достигли 1 :)
|
|||
10
Sasha_H
09.04.13
✎
23:54
|
Спс.
ункция ПолучитьНомераРО() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |ОбрабатыватьДокументы все; |ТекущийДокумент = Документ.ЗаказНаПокупку.ТекущийДокумент; |НомерДок = Документ.ЗаказНаПокупку.НомерДок; |Группировка НомерДок; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат 0; КонецЕсли; ТаблНомера = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТаблНомера,,0); ТаблНомера.НоваяКолонка("Счётчик"); ТаблНомера.ВыбратьСтроки(); Пока ТаблНомера.ПолучитьСтроку() = 1 Цикл ТаблНомера.Счётчик = 1; КонецЦикла; ТаблНомера.Свернуть("НомерДок","Счётчик"); ТаблДубли = СоздатьОбъект("ТаблицаЗначений"); ТаблДубли.НоваяКолонка("НомерДок"); ТаблДубли.НоваяКолонка("Счётчик"); ТаблНомера.ВыбратьСтроки(); Пока ТаблНомера.ПолучитьСтроку() = 1 Цикл Если ТаблНомера.Счётчик = 1 Тогда Продолжить; КонецЕсли; ТаблДубли.НоваяСтрока(); ТаблДубли.НомерДок = ТаблНомера.НомерДок; ТаблДубли.Счётчик = ТаблНомера.Счётчик; КонецЦикла; ТаблДубли.Сортировать("НомерДок+"); ТаблДубли.ВыбратьСтроку(); КонецФункции Я просто думал я это или лыжи, хорошо что проверил |
|||
11
Voronve
09.04.13
✎
23:55
|
(9) Рюшки - сами )
|
|||
12
Sasha_H
09.04.13
✎
23:59
|
ПРикол после такого кода на выходе выбрать строку 0 Строк ))) интересненько
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |