остатками по складам

1. bird43 10.02.09 20:03 Сейчас в теме
хочу в подборе добавить два столбца с остатками по складам:
каждой колонке Дополнительно-Формула:

Остаток1()

В модуле написать соответствующие функции

Перем времСклад;
Функция Остаток1()
Перем Т, А;
Т=ТекущийЭлемент();
А=Регистр.ОстаткиТоваров.Остаток(Т,времСклад,"ОстатокТовара");
Если А=0 Тогда
Возврат "";
Иначе
Возврат СокрЛ(Формат(А,"Ч015.3.'"));
КонецЕсли;
КонецФункции
времСклад = Справочники.Склады.НайтиПоКоду("00002");

что я не так сделал, помогите пожалуйста!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
26. O-Planet 6403 16.06.09 04:07 Сейчас в теме
(1) Хм... А разве у меня в профайле нет такой обработки готовой уже и бесплатной? ;)
2. Altair777 647 10.02.09 21:17 Сейчас в теме
НайтиПоКоду(<?>,);
Синтаксис:
НайтиПоКоду(<Код>,<ФлагПоиска>)
Назначение:
Найти элемент справочника по коду.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<Код> - выражение со значением искомого кода,
<ФлагПоиска> - флаг поиска (необязателен):
0 - поиск во всем справочнике вне зависимости от родителя;
1 - поиск внутри установленного подчинения (родителя);
2 - поиск по полному коду через разделитель.
Значение по умолчанию:
0 - если код уникален во всем справочнике;
2 - если код уникален только в группе.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
3. bird43 10.02.09 21:31 Сейчас в теме
так?:
врем=СоздатьОбъект("Справочник.Склады");
врем.НайтиПоКоду("00002");
времСклад=врем.ТекущийЭлемент();
4. Altair777 647 10.02.09 21:36 Сейчас в теме
(3) Практика - критерий истины (В.И.Ленин.) :-)
Но Авессалом Подводный говорил не так - Критерий истины не практика, а собственная душа.
Пробуйте - должно получиться. Хотя, пути Господни неисповедимы.
5. bird43 10.02.09 22:10 Сейчас в теме
А=Регистр.ОстаткиТоваров.Остаток(Т,времСклад,"ОстатокТовара");
{Справочник.Номенклатура.ФормаСписка.ДляПодбора.Модуль(1533)}: Поле агрегатного объекта не обнаружено (ОстаткиТоваров)
теперь то что? :(((
6. Altair777 647 10.02.09 22:18 Сейчас в теме
(5) А есть такой Регистр - ОстаткиТоваров? :-)

Сейчас смоделировал эту ситуацию
Возврат Регистр.ОстаткиТоваров2.Остаток(Т,Перечисление.Склады.Новый1,"ОстатокТовара");
{Справочник.Товары.ФормаСписка.ФормаСписка.Модуль(101)}: Поле агрегатного объекта не обнаружено (ОстаткиТоваров2)
7. bird43 10.02.09 23:02 Сейчас в теме
нету, ну объясни пожалуйста как сделать! просьба не пинать!
8. Altair777 647 10.02.09 23:05 Сейчас в теме
А какой регистр есть? Похожий
9. bird43 10.02.09 23:08 Сейчас в теме
11. Altair777 647 10.02.09 23:13 Сейчас в теме
(9) вот, похоже
Какова его структура? Измерения, ресурсы?
10. Altair777 647 10.02.09 23:12 Сейчас в теме
Откройте в режиме Предприятия Журнал с товарными документами.
Например, расходные накладны
Правой кнопкой на проведенном документе - Движения документа
На каких регистрах стоит галочка?
12. bird43 10.02.09 23:16 Сейчас в теме
измерения
Фирма, Номенклатура, Склад, ЦенаПрод
ресурсы:
Количество
13. Altair777 647 10.02.09 23:22 Сейчас в теме
значит, первое - заменить в коде Регистр.ОстаткиТоваров на Регистр.ОстаткиТМЦ
Второе - решить что делать с фирмой и ЦенаПрод?
Они важны для расчета остатков в справочнике?
14. bird43 10.02.09 23:23 Сейчас в теме
абсолютно не интересны они мне!
15. Altair777 647 10.02.09 23:27 Сейчас в теме
Тогда
А=Регистр.ОстаткиТоваров.Остаток(Т,времСклад,"ОстатокТовара");
заменить на
А=Регистр.ОстаткиТМЦ.СводныйОстаток(,Т,времСклад,,"Количество");
Меня, правда, терзают смутные сомнения по поводу первого пропущенного параметра
16. bird43 10.02.09 23:31 Сейчас в теме
СУПЕР! заработало, тока медленно обробатывает, наменклатуру из 15 тыс. секунды 3 открывал!
25. vasilykushnir 63 04.06.09 09:37 Сейчас в теме
(16) > ... заработало, тока медленно обробатывает ...

Все дело в том, что функция СводныйОстаток() сама по себе очень медлячная.
Как вариант - 1с++ и прямые запроссы.
Но лучше всего - НовейшийОтчет здесь на сайте. Позволяет делать ЛЮБЫЕ отчеты с ЛЮБЫМИ комбинациями данных - я по крайней мере ничего лучшего не встречал (я уже молчу сколько времени съэкономит - не надо писать десятков других специализированных отчетов). И что самое прикольное - НО одинаково шустро работает как на ДБФ, так и на скуле.
17. Altair777 647 10.02.09 23:33 Сейчас в теме
я думаю, не 15 тыс :-)
а только то, что на экране поместилось
18. bird43 10.02.09 23:39 Сейчас в теме
ясно! огромное СПАСИБО!
19. Altair777 647 10.02.09 23:44 Сейчас в теме
20. bird43 10.02.09 23:56 Сейчас в теме
еще один вопросик, а как сделать чтобы выводились остатки по выбранной позиции и в отдельном окне, а не заполнялась вся колонка в наменклатуре?
22. CheBurator 2725 11.02.09 00:57 Сейчас в теме
(20) в штатной ТиС внизу спр.номенклатуры есть кнопочка "Остатки"...
НайтиПоКоду("00002") - в функции, которая вызывается КАЖДЫЙ РАЗ, когда обновляется/моргает экран - это бяка
23. Altair777 647 11.02.09 01:06 Сейчас в теме
(22) Судя по модулю - НайтиПоКоду не в функции
24. CheBurator 2725 11.02.09 03:05 Сейчас в теме
(23) сорри, действительно.. облажался...
21. Altair777 647 11.02.09 00:09 Сейчас в теме
Именно в отдельном? Муторно :-)
Проще в форме Диалога справочника - "Текст"
а там "Дополнительно-Формула" прописать эту функцию
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот