|
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) спасибо, на будующее запишу, думаю пригодится! )
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший