Имя: Пароль:
1C
1C 7.7
v7: Регистр.ОстаткиТоваров.СводныйОстаток(,,,)
↓ (Волшебник 23.01.2025 09:24)
0 Pit0n_08
 
23.01.25
09:02
Кто помнит?
Регистр.ОстаткиТоваров.СводныйОстаток(Товар,Склад,"Количество") работает ли по списку значений (СписокСкладов), а не отдельному значению Склад регистра?
1 mikecool
 
23.01.25
09:17
справку отняли? проверить быстрее
2 mishaPH
 
23.01.25
09:19
(1) в справке этого нет кстати.
СводныйОстаток(<?>,)
Синтаксис:
СводныйОстаток(<Измерен1>,<Измерен2>...,<ИмяРесурса>)
Назначение:
Возвращает значение сводного остатка заданного ресурса регистра.
Параметры:
<Измерен1>,<Измерен2>... - значения измерений регистра;
<ИмяРесурса> - название требуемого ресурса регистра.
Замечание:
Измерения могут задаваться с пропусками (неуказанное значение - просто запятая), фиксируются только указанные измерения. Метод используется только для регистров остатков
3 mishaPH
 
23.01.25
09:19
(0) никогда не пользовался. только запросами. А так по идее должен по аналогии с В запроса.
4 mikecool
 
23.01.25
09:22
(2) странно, но кмк я встречал, что должно работать как "=" и только 1 значение, но может и не в справке видел это
5 Волшебник
 
23.01.25
09:25
(0) А что, создать ветку на форуме быстрее, чем проверить самому?

Правило 14. ...избегать тратить время профессионалов на незначительные задачи.
6 mishaPH
 
23.01.25
09:35
(4) ну х.з. не применял это, если честно, вообще никогда.
но группу-то никто не запрещает вроде.
Хотя вот по логике есть СвеодныеОстаткИ и там группы.
7 Злоп
 
23.01.25
10:04
Я не пробовал, но думаю что вряд ли будет по списку работать, ибо возвращает скаляр.
.
Рег.установитьзначениефильтра
И рег.ВыгрузитьИтоги
8 trad
 
23.01.25
11:37
Есть метод УстановитФильтр или как-то так
9 Fedor-1971
 
23.01.25
11:48
(0) СводныйОстатк работает только на равенство, без списка
То что тебе нужно, можно сделать примерно так:
   Рег = СоздатьОбъект("Регистр.ТоварныйКредит");
   Рег.УстановитьЗначениеФильтра(Клиент, СписокКлиентов, 2); //2 - это отбирать
   Рег.ВыбратьИтоги();
   Пока Рег.ПолучитьИтог() = 1 Цикл ... КонецЦикла;

Возможно придётся поморочиться с временным расчётом
10 Pit0n_08
 
23.01.25
12:14
(9) это вряд ли подойдет. Приспичило в форме списка справочника "Номенклатура" показать остатки только по рабочим складам. А всякие "дутые" с браком и некондицией исключить
11 Pit0n_08
 
23.01.25
12:16
+(9) цикл по итогам форму просто подвесит
12 Fedor-1971
 
23.01.25
12:43
(10) а что мешает добавить фильтр по товару?
  Рег.УстановитьЗначениеФильтра("Номенклатура", ТекущийЭлемент(), 1); // чистый отбор по равенству
цикл нужен для перебора твоих складов. Посмотри отладчиком, после рег.ВыбратьИтоги(), может быть, что в рег.Количество будет лежать полный остаток
13 Fedor-1971
 
23.01.25
12:32
12+ сделай галку "Показать итоги" - кому надо поставит и будет мириться с подтормаживанием, остальным просто выбор номенклатуры без доп.данных
14 Pit0n_08
 
23.01.25
13:15
(6) Справочник Склады одноуровневый, если добавить уровни придется все формы в документах переделывать, где есть выбор склада((
15 Fedor-1971
 
23.01.25
14:05
(14) Зачем переделывать документы? Поправить нужно форму выбора склада на иерархическую и всё (возможно, поставить запрет выбора группы)
16 Pit0n_08
 
23.01.25
14:28
Всем спасибо. В сухом остатке - по списку метод не работает. пробую прямым запросом
17 skafandr
 
23.01.25
15:05
Работающая схема(на ходу упрощаю ибо у нас очень наворочено) для формы списка номенклатуры с остатками:
Массив складов Склады: заполнить с которых возможна продажа  
Колонки складов в том же порядке, в "Формула"  колонок функция Остаток(3) - с номером склада.

Функция Остаток(НомерСклада=0)
    Если (НомерСклада=0)  Тогда
            Возврат "";
    КонецЕсли;
    Возврат СокрЛП(Формат( Регистр.ОстаткиТоваров.Остаток(ПромФирма,ТекущийЭлемент(),Склады[НомерСклада],"ОстатокТовара"), МойФормат));
КонецФункции

Подторамаживает только если поставить без иерархии
18 Arbuz
 
23.01.25
16:48
Прямой запрос по товару в "окне+" и кэширование — ничего не тормозит.
19 Pit0n_08
 
23.01.25
18:33
Прямым запросом всё получилось. Проверили на нескольких одновременно работающих пользователях - тормозов нет
20 Pit0n_08
 
23.01.25
18:35
(17) Думал об этом, но состав рабочих складов может изменяться и при большом их количестве может плохо читаться
21 skafandr
 
24.01.25
10:50
(20) "на ходу упрощаю" у нас реализована возможность выбора менеджером складов остатки по которым ему хочется видеть (из всех возможных). Это кстати существенно уменьшает нагрузку на систему
;-)
22 Pit0n_08
 
29.01.25
11:01
(21) Ну, клиент просит, чтобы было привычнее. Добавил флажок на форму списка и по нему показываютя сводные остатки на всех складах, либо прямым запросом на складах, с установленным признаком "Показывать остатки"
23 Pit0n_08
 
29.01.25
11:02
(21) + ну а кому надо по любимому складу - "Отчет по остаткам"
Независимо от того, куда вы едете — это в гору и против ветра!