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

Тема в разделе "1C и всё что с ней связано", создана пользователем bremlin, 3 мар 2009.

  1. bremlin

    bremlin Гость

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

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

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

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

    Hryv Гость

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

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

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

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

    bremlin Гость

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

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

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

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

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

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Значит справочник называется не "Квартиры" .
    Соответственно пишите "СоздатьОбъъект("Справочник.НазваниеСправочникаКакОнУВасНазывается")". Остально все так же.
     
  5. bremlin

    bremlin Гость

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

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

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

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

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

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

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

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

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Переменная "Квартира"
    На момент вызова Уведомля.НайтиЭлемент(Квартира);
    должна иметь значение = элементу из Справочника.ЖКХ
     
  7. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Что значит "отчет по этому значению"?
    В первом случае "Квартира" - реквизит документа. Была доступна из модуля документа. В отчете "квартира", естественно, не определена, т.к. ты не указал, к какому документу она относится. Вообще, разберись с постановкой задачи.
     
Загрузка...

Поделиться этой страницей