|
v7: Как получить остатки и измерения из регистра остатки. |
☑ |
0
botman4
23.07.16
✎
18:48
|
Суть такая, есть регистр остатков "Остатки":
Измерения:
-Номенклатура
-Склад
-ВсеСоВставкой
-ВесВставки
-ВесБезВставки
-ВесПотерь
Ресурсы:
-Количество.
хочется, знаЯ Номенклатуру и Склад получить остатки и остальные остатки по этим измерениям.
Я сделал вот такой выкрутас:
Рег=СоздатьОбъект("Регистр.Остатки");
Рег.УстановитьЗначениеФильтра("Номенклатура", НужноеИзделие);
Рег.УстановитьЗначениеФильтра("МестоХранения", МХ);
Рег.ВременныйРасчет();
Если (ТекДок.Выбран() = 1 ) И (ТекДок.ПолучитьПозицию() <= ПолучитьПозициюТА()) Тогда
РассчитатьРегистрыНа(ТекДок);
Иначе
ПоследнийДок = ПолучитьПозициюТА();
РассчитатьРегистрыПо(ПоследнийДок);
КонецЕсли;
Рег.ВыбратьИтоги();
Пока Рег.ПолучитьИтог()=1 Цикл
ТзОстатки.НоваяСтрока();
ТзОстатки.Изделие = НужноеИзделие;
ТзОстатки.ВесСоВставкой = Рег.ВесСоВставкой;
ТзОстатки.ВесВставки = Рег.ВесВставки;
ТзОстатки.ВесБезВставки = Рег.ВесБезВставки;
ТзОстатки.ВесПотерь = Рег.ВесПотерь;
ТзОстатки.Остатки = Рег.Количество;
КонецЦикла;
ТзОстатки.Свернуть("1,2,3,4,5",6);
ТзОстатки.ВыбратьСтроки(); // Удаляем строки в которых количество = 0
Пока ТзОстатки.ПолучитьСтроку() = 1 Цикл
Пока (ТзОстатки.Остатки = 0) и (ТзОстатки.НомерСтроки <> 0) Цикл
ТзОстатки.УдалитьСтроку();
КонецЦикла;
КонецЦикла;
По итогу я получаю нужную мне инфу, можно ли как-то сделать проще?
СПАСИБО.
|
|
1
botman4
23.07.16
✎
18:49
|
Поправочка:
хочется, знаЯ Номенклатуру и Склад получить остатки и остальные измерениям.
|
|
2
Vladal
23.07.16
✎
18:51
|
Можно это сделать запросом. Правда, в 7.7 запросы работают медленно, как и выборка.
Создай конструктором запросов запрос к регистру, посмотри, что получится - меньше кода, не нужно будет проверять на нулевой остаток - все данные готовы и красивы.
|
|
3
Злопчинский
23.07.16
✎
22:26
|
Нельзя так удалять строки как в примере
Баянище страшный
Задумайся о чайник бесстрашный какой строкой станет строка после удаления текущей и что будет с этой строкой после получитьстроку по циклу
|
|
4
vcv
24.07.16
✎
09:04
|
Короче будет не цикл с ВыбратьИтоги и ПолучитьИтог, а одна строчка ВыгрузитьИтоги.
|
|
5
impulse9
24.07.16
✎
09:12
|
(0) цикл с удалением строк по условию надо делать С КОНЦА
|
|
6
botman4
24.07.16
✎
09:15
|
(4) Точняк, спасибо.
|
|
7
Это_mike
24.07.16
✎
11:36
|
(2) запрос делает примерно то же самое, что и расчет итогов на какой-то момент.
(6) читай СП, и тебе воздастся...
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший