|
v7: Выбрать повторяющиеся движения | ☑ | ||
---|---|---|---|---|
0
chingiz
04.09.12
✎
16:03
|
В модуле проведения нашел ошибку, которая делала некоторые движения по 2 раза. И для проверки\отладки нужно найти какие доки проскакивали с этой ошибкой. С семёркой знаком постольку-поскольку и язык запросов меня просто убил.
Что можно добавить для отбора дублей? Известно, что у дублей стоит одинаковый номер строки(при просмотре движений дока). Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Товар = Регистр.Аптека.Товар; |ТекущийДокумент = Регистр.Аптека.ТекущийДокумент; |Группировка Товар без групп; |Группировка ТекущийДокумент; |"//}}ЗАПРОС ; |
|||
1
Эмбеддер
04.09.12
✎
16:07
|
даже если можно группировку НомерСтроки, то в условие ее уже не запихать. потребуется условие уже в обработке результатов запроса. проще перебрать все документы. тем более что это одноразовая обработка
|
|||
2
chingiz
04.09.12
✎
16:08
|
У документов можно движения смотреть в отдельности?
|
|||
3
Эмбеддер
04.09.12
✎
16:11
|
по-моему выбратьдвиженияподокументу
|
|||
4
Эмбеддер
04.09.12
✎
16:11
|
ВыбратьДвиженияДокумента
|
|||
5
chingiz
04.09.12
✎
16:13
|
(4) мои благодарности, попробую!
|
|||
6
Ёпрст
04.09.12
✎
16:22
|
можно и в чорном запросе поиметь документ с дублями..
через внешнюю функцию в условии |
|||
7
chingiz
04.09.12
✎
16:25
|
Уже получил какой-то результат, буду цикл в цикле мучать, все равно на 1 раз 8) С запросом боюсь просижу 2 дня :\
Рег = СоздатьОбъект("Регистр.Аптека"); ДокПачка = СоздатьОбъект("Документ.Пачка"); ДокПачка.ВыбратьДокументы(ВыбНачПериода, ВыбКонПериода); Пока ДокПачка.ПолучитьДокумент() = 1 Цикл Если Рег.ВыбратьДвиженияДокумента(ДокПачка.ТекущийДокумент()) = 1 Тогда Пока Рег.ПолучитьДвижение() > 0 Цикл Номер = Рег.НомерСтроки(); КонецЦикла; КонецЕсли; КонецЦикла; |
|||
8
Ёпрст
04.09.12
✎
16:30
|
Перем СЗ;
//====================================================================== Функция ПроверитьДвижуху(Док,НомерСтроки) поиск = Док.ПолучитьПозицию()+"_"+НомерСтроки; Если СЗ.НайтиЗначение(поиск)=0 Тогда СЗ.ДобавитьЗначение(поиск); Возврат 0; КонецЕсли; Возврат 1; КонецФункции //====================================================================== Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Товар = Регистр.Аптека.Товар; |НомерСтроки = Регистр.Аптека.НомерСтроки; |Док = Регистр.Аптека.ТекущийДокумент; |Количество = Регистр.Аптека.ИмяРесурса; |Функция Расход = Расход(Количество); |Функция Приход = Приход(Количество); |Условие(ПроверитьДвижуху(Док,НомерСтроки)=1); |Группировка Док; |"//}}ЗАПРОС |
|||
9
chingiz
04.09.12
✎
16:34
|
(8) спасибо, на будующее запишу, думаю пригодится! )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |