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

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

bremlin

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

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

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

Но у меня проблема в том, что при такой записи, он сохраняет это значение до выхода из документа этой квартиры. Т.е. если перезайти в документ, то этот параметр сбрасывается.
Подскажите пожалуйста как можно реализовать такое, чтоб этот параметр сохранялся, скажем так, раз и навсегда.
Спасибо.
 
Квартира.Уведомление = 1;
Квартира.Записать();

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

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

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

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

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

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

При чем в документе используется что-то вроде Если Квартира.Муниципальное=1 Тогда.
И "Квартира" нигде не объявляется. Есть только в реквизитах документа.
 
Значит справочник называется не "Квартиры" .
Соответственно пишите "СоздатьОбъъект("Справочник.НазваниеСправочникаКакОнУВасНазывается")". Остально все так же.
 
Большое спасибо.
СпрКв = СоздатьОбъект("Справочник.ЖКХ");
СпрКв.НайтиЭлемент(Квартира);
СпрКв.Уведомление = 1;
СпрКв.Записать();

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

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

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

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

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

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

Подскажите пожалуйста.
 
Переменная "Квартира"
На момент вызова Уведомля.НайтиЭлемент(Квартира);
должна иметь значение = элементу из Справочника.ЖКХ
 
Что значит "отчет по этому значению"?
В первом случае "Квартира" - реквизит документа. Была доступна из модуля документа. В отчете "квартира", естественно, не определена, т.к. ты не указал, к какому документу она относится. Вообще, разберись с постановкой задачи.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab