Имя: Пароль:
1C
1С v8
Получить значение регистра
0 Scorp1985
 
01.08.13
21:52
Здравствуйте!

Вопрос новичка.

Есть регистр накопления БалансКонтрагентов, с измерением Контрагент и ресурсом Баланс.

Мне необходимо использовать его при заполнении формы документа, как обратиться к значению в функции - пометил как "????"

Функция ПосчитатьБаланс(СуммаНакладной, Контрагент)
    Возврат ???? - СуммаНакладной;
КонецФункции

Ну и как всегда, сильно не пинайте)
1 GROOVY
 
01.08.13
21:53
Вопроса не увидел.
2 Как страшно жить
 
01.08.13
21:54
смотри метод Остатки
3 zippygrill
 
01.08.13
21:57
6 лет опыта...))
еше подсказка: в документе РТУ в УПП по моему есть надпись "задолженость по договору". Там как раз используется функция из общего модуля.
4 Scorp1985
 
01.08.13
22:01
(2)  пошёл смотреть, спасибо
(3) 6 лет как зарегистрирован) опыта нет. У меня своя конфига, не УПП
5 zippygrill
 
01.08.13
22:05
вот

// Вычисляет текущий долг контрагента по заданному договору и сделке в валюте взаиморасчетов
// по данному договору
//
// Параметры:
//  Договор - ссылка на элемент справочника, определяет договор контрагента, по которому надо получить долг,
//  Сделка  - ссылка на документ, определяет сделку (заказ, накладную, платежный документ) по которому надо получить долг.
//  СсылкаДокумент           - ссылка на документ, для которого рассчитывается долг.
//
// Возвращаемое значение:
//  Число -  текущий размер долга, если удалось вычислить текущий долг, иначе - 0.
//
Функция ТекущийДолг(Договор, Сделка = Неопределено, СсылкаДокумент) Экспорт

    ТекущийДолг = 0;
    СтруктураОтбора = Новый Структура(); // для отбора остатков взаиморасчетов
    СтруктураОтбора.Вставить("ДоговорКонтрагента", Договор);
    СтруктураОтбора.Вставить("Контрагент", Договор.Владелец);
    
    Если ЗначениеЗаполнено(Договор) Тогда
        Если Договор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом Тогда
            ТекущийДолг = РегистрыНакопления.ВзаиморасчетыСКонтрагентами.Остатки(,
                        СтруктураОтбора,"ДоговорКонтрагента","СуммаВзаиморасчетов").Итог("СуммаВзаиморасчетов");
                        
        Иначе // Взаиморасчеты ведутся по сделкам
            Если ЗначениеЗаполнено(Сделка) Тогда
                СтруктураОтбора.Вставить("Сделка", Сделка);
                ТекущийДолг = РегистрыНакопления.ВзаиморасчетыСКонтрагентами.Остатки(,
                СтруктураОтбора,"ДоговорКонтрагента,Сделка","СуммаВзаиморасчетов").Итог("СуммаВзаиморасчетов");
            КонецЕсли;
        КонецЕсли;
        
    КонецЕсли;

    Возврат ТекущийДолг;
    
КонецФункции // ТекущийДолг()
6 zippygrill
 
01.08.13
22:09
*еще
(4) простимо :)
7 Как страшно жить
 
01.08.13
22:10
(5) зачем Итог()?
8 zippygrill
 
01.08.13
22:13
(7) работает, не трожь :)
9 Scorp1985
 
01.08.13
22:14
(5) кажется вырубил то что мне нужно

Остался вопрос для тупых совсем)

Элементы.БалансКонтрагента = ПосчитатьБаланс(Объект.СуммаНакладной,Объект.Контрагент);

Как записать в элемент то))) Пишет недоступно для записи)
10 Как страшно жить
 
01.08.13
22:15
можно не буду тупым?
БалансКонтрагента = ПосчитатьБаланс(Объект.СуммаНакладной,Объект.Контрагент);
11 zippygrill
 
01.08.13
22:15
(7) у тебя раздвоение личность чтоли? :))
"Элементы.БалансКонтрагента" - что это? элемент формы или объекта или что?
12 zippygrill
 
01.08.13
22:15
Элементы.БалансКонтрагента.Значение :)
13 Scorp1985
 
01.08.13
22:18
(11) (10) Сделал ЭтаФорма.БалансКонтрагетна = и т.д. так можно?)
14 zippygrill
 
01.08.13
22:20
ответь в (11)
15 Scorp1985
 
01.08.13
22:21
(14) ЭлементФормы
16 Scorp1985
 
01.08.13
22:25
Заработало в общем всё, спасибо)) глядишь научусь программировать)
17 Scorp1985
 
01.08.13
22:45
(11) А как поменять цвет текса этой надписи?)))