Работа со справочником

  • Автор темы bremlin
  • Дата начала
B

bremlin

#1
Доброго времени суток.

Стоит значт 1С 7.7. Конфигурация самописная.
В общем, в основном работают по справочнику ЖКХ. К отдельному элементу обращаются "Квартира.НазваниеРеквизита". Вот теперь нужно для каждой квартиры добавить некоторый числовой параметр.
Добавляем новый реквизит в этот справочник. И дальше нужно чтоб при работе со справочником через документ, (в общем документ считает и выдает квитанцию оплаты), вот нужно чтоб при совпадении некоторых условий шла запись в новый параметр.

Я сделал что-то вроде
Если (Условие) Тогда
Квартира.Уведомление = 1;

Но у меня проблема в том, что при такой записи, он сохраняет это значение до выхода из документа этой квартиры. Т.е. если перезайти в документ, то этот параметр сбрасывается.
Подскажите пожалуйста как можно реализовать такое, чтоб этот параметр сохранялся, скажем так, раз и навсегда.
Спасибо.
 
H

Hryv

#2
Квартира.Уведомление = 1;
Квартира.Записать();

Это если Квартира не реквизит документа, а создн через СоздатьОбъект("Справочник.Квартиры")

А если Квартира - это реквизит документа, тогда

СпрКв = СоздатьОбъект("Справочник.Квартиры");
СпрКв.НайтиЭлемент(Квартира);
СпрКв.Уведомление = 1;
СпрКв.Записать();
 
B

bremlin

#3
Квартира - реквизит шапки документа.
При :

СпрКв = СоздатьОбъект("Справочник.Квартиры");
СпрКв.НайтиЭлемент(Квартира);
СпрКв.Уведомление = 1;
СпрКв.Записать();

Выдает ошибку:

СпрКв = СоздатьОбъект("Справочник.Квартиры");
{Документ.ЖКХ_СчетНаОплату.Форма.Модуль(1652)}: Неудачная попытка создания объекта (Справочник.Квартиры)

При чем в документе используется что-то вроде Если Квартира.Муниципальное=1 Тогда.
И "Квартира" нигде не объявляется. Есть только в реквизитах документа.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#4
Значит справочник называется не "Квартиры" .
Соответственно пишите "СоздатьОбъъект("Справочник.НазваниеСправочникаКакОнУВасНазывается")". Остально все так же.
 
B

bremlin

#5
Большое спасибо.
СпрКв = СоздатьОбъект("Справочник.ЖКХ");
СпрКв.НайтиЭлемент(Квартира);
СпрКв.Уведомление = 1;
СпрКв.Записать();

Прекрасно работает.

А вот чтоб теперь сделать отчет по этому значению, то просто меняю оборотно-сальдовую ведомость, пытался реализовать так:

СпрКв= СоздатьОбъект("Справочник.ЖКХ");
СпрКв.НайтиЭлемент(Квартира);
Увед = Квартира.Уведомление;
Если Увед = 1 Тогда
Т.ВывестиСекцию("Секция_2");

Но выдает ошибку:

Уведомля.НайтиЭлемент(Квартира<<?>>);
{Отчет.ОборотСальдВедНов1.Форма.Модуль(256)}: Переменная не определена (Квартира)

Попробовал даже просто объявить Квартира как переменную:(
тогда ругается
{Отчет.ОборотСальдВедНов1.Форма.Модуль(258)}: Значение не представляет агрегатный объект (Уведомление)

Подскажите пожалуйста.
 

vbs

Well-known member
18.02.2007
1 708
1
#6
Переменная "Квартира"
На момент вызова Уведомля.НайтиЭлемент(Квартира);
должна иметь значение = элементу из Справочника.ЖКХ
 

unknown181538

НеГуру
28.12.2008
1 417
0
#7
Что значит "отчет по этому значению"?
В первом случае "Квартира" - реквизит документа. Была доступна из модуля документа. В отчете "квартира", естественно, не определена, т.к. ты не указал, к какому документу она относится. Вообще, разберись с постановкой задачи.