Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 20:51

Помогите, пожалуйста, по регистрам остатков

Автор innox, 27 июн 2012, 20:55

0 Пользователей и 1 гость просматривают эту тему.

innox

Пишу: Сообщить(Регистр.ОстаткиТоваров.Остаток(Товар, Склад, "Количество"));

Выскакивает ошибка:

Сообщить(Регистр.ОстаткиТоваров.Остаток(Товар<<?>>, Склад, "Количество"));
{D:\НОВАЯБАЗА\EXTFORMS\ПРИМЕР2.ERT(6)}: Переменная не определена (Товар)
Сообщить(Регистр.ОстаткиТоваров.Остаток(Товар, Склад<<?>>, "Количество"));
{D:\НОВАЯБАЗА\EXTFORMS\ПРИМЕР2.ERT(6)}: Переменная не определена (Склад)
----------------

Почему выскакивает такая ошибка? Я ведь не должна писать : Перем Товар, Перем Склад.  Товар и Склад - это ведь измерения регистра. И ,вроде бы, программа должна сама это определять....
И ведь не в кавычках они пишутся. Я перевернула все учебники. Везде так...

racushka

Если честно, то не понимаю, где вы такое нашли.
Правильное обращение к регистру:
РегистрыНакопления.ИмяРегистра.Остатки(МоментВремени, Условие, Измерения, Ресурсы) //загляните в синтакс-помощник
В вашем случае, если вам нужно получить остаток по конкретному товару на конкретном складе
перед сообщить задаете отбор:
Отбор = Новый Структура;
Отбор.Вставить("Склад", Справочники.Склады.ОсновнойСклад;) //пример использования предопределенного элемента ОсновнойСклад
Отбор.Вставить("Товар",  СсылкаНаТовар); //СсылкаНаТовар может быть реквиитом документа или обработки, или параметром переданным в текущую процедуру, или может быть она ищется по наименованию

После чего пишете
Сообщить(РегистрыНакопления.ОстаткиТоваров.Остатки(,Отбор, "Товар, Склад", "Количество"))
Все параметры являются не обязательными, т.е. вы можете написать:
Сообщить(РегистрыНакопления.ОстаткиТоваров.Остатки());
Тогда будут выведены все имеющиеся остатки. Если МоментВремени не задавать будут выводится актуальные остатки.

racushka

Простите, только сейчас увидела что 7.7  :(
Писала для 8.2

1Cnastroika

Не надо путать. Регистры накопления есть в версии 8, а вопрос по версии 7.7.

Посмотрите синтаксис-помощник. Переменным должны быть присвоены значения измерений. Метод выдает остаток ресурса "количество" для заданных значений измерений товар и склад. Но обычно первым измерением идет склад, а потом товар.

Herby

Цитата: innox от 27 июн 2012, 20:55
Пишу: Сообщить(Регистр.ОстаткиТоваров.Остаток(Товар, Склад, "Количество"));

Выскакивает ошибка:

Сообщить(Регистр.ОстаткиТоваров.Остаток(Товар<<?>>, Склад, "Количество"));
{D:\НОВАЯБАЗА\EXTFORMS\ПРИМЕР2.ERT(6)}: Переменная не определена (Товар)
Сообщить(Регистр.ОстаткиТоваров.Остаток(Товар, Склад<<?>>, "Количество"));
{D:\НОВАЯБАЗА\EXTFORMS\ПРИМЕР2.ERT(6)}: Переменная не определена (Склад)
----------------

Почему выскакивает такая ошибка? Я ведь не должна писать : Перем Товар, Перем Склад.  Товар и Склад - это ведь измерения регистра. И ,вроде бы, программа должна сама это определять....
И ведь не в кавычках они пишутся. Я перевернула все учебники. Везде так...

В измерения Товар и Склад - должны передаваться значения необходимого товара и склада, по которому будет возвращен остаток. Судя по ошибке, у вас эти переменные совсем не определены. Их нужно объявить и присвоить им нужные значения товара и склада.

innox


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск