8.х Извлечение инфы с помощью запроса в Надпись, как?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем iceborn, 29 сен 2010.

  1. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Подскажите пожалуйста, как мне с помощью запроса инфу извлечь в надпись <<СчетАбонента>>.
    Имеется вот такая вот форма:
    [​IMG]
    С помощью поля ввода я выбираю со справочника абонента. Создано событие Абонент ПриИзменении. Когда я выбираю абонента у меня вся инфа в форме атоматом заполяется с помощью этого кода:

    Код:
    Процедура АбонентПриИзменении(Элемент)
    Абоненты = ЭлементыФормы.Абонент.Значение;
    ЭлементыФормы.ФИО.Значение = Абонент.Наименование;
    ЭлементыФормы.ЛС.Значение = Абонент.Код;
    ЭлементыФормы.СерияНомер.Значение = Абоненты.СерияИНомерПаспорта;
    ЭлементыФормы.ДатаВыдачи.Значение = Абонент.ДатаВыдачиПаспорта;
    ЭлементыФормы.Прописан.Значение = Абонент.ПрописанПоПаспорту;
    ЭлементыФормы.Адрес.Значение = Абонент.АдресПодключения;
    ЭлементыФормы.Тариф.Значение = Абонент.Тариф;
    ЭлементыФормы.ПодключенныхКомпьютеров.Значение = Абонент.ПодключенныхКомпьютеров;
    ЭлементыФормы.Логин.Значение = Абонент.Логин;
    ЭлементыФормы.Подключение.Значение = Абонент.Подключение;
    ЭлементыФормы.Статус.Значение = Абонент.Статус;
    
    КонецПроцедуры
    
    Так вот, есть ещё один Элемент Формы СчетАбонента, надпись <<СчетАбонента>> мне надо что бы при выборе абонента и эта надпись автоматом заполнялась, как я понял это надо делать с помощью запроса, научился я работать с запросом извлекать инфу, но вот в данной ситуации не имею понятия как мне это сделать. Подскажите плиз
  2. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    А где этот счет хранится? В регистре или как? Как мы Вам поможем с запросом, если не видим метаданных? :)
  3. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Ой забыл! :)

    Инфа сколько на счету у бонента хранится в РегистрСведений.СчетаАбонентов и два реквизита Абонент и Сумма

    Вот так выглядит форма с конфигуратора
    [​IMG]
  4. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Регистр периодический? Нужно брать последнюю цифру?
    Код:
    Сумма = РегистрыСведений.СчетаАбонентов.ПолучитьПоследнее(Дата,Новый Структура("Абонент",Абонент)).Сумма
    
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Формы не видно, поэтому поясняйте: Абонент и Сумма - это реквизиты, или все-таки измерение и ресурс? РС - переодический? независимый?

    И еще не совсем понятно. А почему у вас сумма в РС, а не в РН?
  6. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Наташа извиняюсь перепутал! РегистрНакопления! Вид Остатки

    shurikvz думаю на счет РС вопрос решен) я перепутал у меня все в ригистрах накопления хранится. Реквизит Абонент Ресурс Сумма
  7. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    [off]Всё таки не очень я хороший телепат :angry: [/off]
  8. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Я просто спешил и вот набочинил с ошибками )) Ну так что есть варианты?)
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Так (не совсем уверен в таком варианте, никогда не пользовался).
    Код:
    СчетАбонента = РегистрыНакопления.Остатки.Остатки(Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая), Новый Структура("Абонент", Абонент), "Абонент", "Сумма")[0].Сумма;
    
    
    или так:
    Код:
    ...
    
    "ВЫБРАТЬ
    СчетаАбонентовОстатки.Сумма
    ИЗ
    РегистрНакопления.СчетаАбонентов.Остатки(&Дата, Абонент = &Абонент) КАК СчетаАбонентовОстатки"
    
    ...
    
    Запрос.УстановитьПараметр("Дата", Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая));
    Запрос.УстановитьПараметр("Абонент", Абонент);
    
    
  10. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Запрос = Новый Запрос
    Запрос.Текст = "ВЫБРАТЬ
    | СчетаАбонентовОстатки.Сумма
    |ИЗ
    | РегистрНакопления.СчетаАбонентов.Остатки(&Дата, Абонент = &Абонент) КАК СчетаАбонентовОстатки"
    Запрос.УстановитьПараметр("Дата", Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая));
    Запрос.УстановитьПараметр("Абонент", Абонент);
    Результат = Запрос.Выполнить().Выбрать();


    А дальше? как инфу в надпись извлечь?
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    Результат.Следующий();
    СчетАбонента = Результат.Сумма;
    
    
  12. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Код:
    СчетАбонента = РегистрыНакопления.СчетаАбонентов.Остатки(Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая), Новый Структура("Абонент", Абонент), "Абонент", "Сумма")[0].Сумма;
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | СчетаАбонентовОстатки.СуммаОстаток
    |ИЗ
    | РегистрНакопления.СчетаАбонентов.Остатки(&Дата, Абонент = &Абонент) КАК СчетаАбонентовОстатки";
    Запрос.УстановитьПараметр("Дата", Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая));
    Запрос.УстановитьПараметр("Абонент", Абонент);
    Результат = Запрос.Выполнить().Выбрать();
    Результат.Следующий();
    СчетАбонента = Результат.Сумма;
    
    
    {Обработка.КарточкаАбонента.Форма.Форма(29)}: Поле объекта не обнаружено (Сумма)
    СчетАбонента = Результат.Сумма;

    Ничё не пойму...
  13. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Все сделал. Надо было исправить Сумму на СуммаОстаток и добавить
    ЭлементыФормы.СчетАбонента.Значение = Результат.СуммаОстаток;

    Спасибо тебе большущее!!!!! Помог!

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