Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запрос в процедуре ПриВыводеСтроки
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bereznoy
В табл части есть рекв с ссылкой на документ реализации и есть рекв оплачено, мне надо что б при выводе строки в Оплачено попадала сумма ПКО которые сделаны на основании ссыоки документа в текущей строке, т.е. сумма документа минус остаток из регистра накопления, пролема заключается в том что если я делаю по кнопке на форме то все ок, а в процедуре при выводе строки ничего не получается
sava1
код в студию
bereznoy
Цитата(sava1 @ 01.10.12, 8:46) необходимо зарегистрироваться для просмотра ссылки
код в студию

Процедура ЗаказыПокупателейПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
        
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
                      |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовО
статок КАК СуммаДолга
                      |ИЗ
                      |    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
                      |ГДЕ
                      |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКон
трагентом = &ТекущийДокумент");
    
Запрос.УстановитьПараметр("ТекущийДокумент", Данныестроки.Заказ);    




РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ДанныеСтроки.Оплата = Выборка.СуммаДолга;    

  

КонецПроцедуры
Vofka
Вообще, мягко говоря, не самый лучший вариант решения, но то такое. Попробуйте перед строкой
ДанныеСтроки.Оплата = Выборка.СуммаДолга;

написать
Выборка.Следующий();
bereznoy
Цитата(Vofka @ 01.10.12, 20:42) необходимо зарегистрироваться для просмотра ссылки
Вообще, мягко говоря, не самый лучший вариант решения, но то такое. Попробуйте перед строкой
ДанныеСтроки.Оплата = Выборка.СуммаДолга;

написать
Выборка.Следующий();

Получилось, спасибо жму, но почему не самый лучший вариант, строчек макс будет 10 штук, быть может лучше ПриПолученииДанных
Vofka
Цитата(bereznoy @ 01.10.12, 21:09) необходимо зарегистрироваться для просмотра ссылки
лучше ПриПолученииДанных

bereznoy
Делаю приполучвении данных, ругается что преобразование значения к типу число .....


Процедура ЗаказыПокупателейПриПолученииДанных(Элемент, ОформленияСтрок)
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
                      |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовО
статок КАК СуммаДолга,
                      |    РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокументаДолга
                      |ИЗ
                      |    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки,
                      |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                      |ГДЕ
                      |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКон
трагентом = &ТекущийДокумент
                      |    И РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент");
    
Запрос.УстановитьПараметр("ТекущийДокумент", ОформлениеСтроки.ДанныеСтроки.Заказ);    

                                  

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ОформлениеСтроки.ДанныеСтроки.Оплата =  Выборка.СуммаДокументаДолга  - Выборка.СуммаДолга;

КонецЦикла;
КонецПроцедуры
Vofka
В данном случае эффект будет одинаковый, поэтому верните назад и учите матчасть.
logist
Цитата(bereznoy @ 01.10.12, 22:11) необходимо зарегистрироваться для просмотра ссылки
ругается что преобразование значения к типу число .....



Процедура ЗаказыПокупателейПриПолученииДанных(Элемент, ОформленияСтрок)
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
                      |    ЕСТЬNULL(РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокументаДолга, 0) - ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовО
статок, 0) КАК СуммаДолга,
                      |    
                      |ИЗ
                      |    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(ДокументРасчетовСКон
трагентом = &ТекущийДокумент) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки,
                      |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                      |ГДЕ
                      |    И РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент");
    
Запрос.УстановитьПараметр("ТекущийДокумент", ОформлениеСтроки.ДанныеСтроки.Заказ);    

                                  

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ОформлениеСтроки.ДанныеСтроки.Оплата =  Выборка.СуммаДолга;

КонецЦикла;
КонецПроцедуры


upd: Хотя не понятно как это Заказ есть ссылка документа РТУ, да и вообще запрос какой-то мне не нравиться)) и вся эта реализация задачи тоже)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.