Имя: Пароль:
1C
1С v8
Выборка
0 Neznakomka
 
12.02.13
10:53
Привет. не подскажите, есть выборка по документам , необходимо для последнего документа из выборки, для его табличной части в последней строчке ввести др значение, не подскажите ?
1 Maxus43
 
12.02.13
10:54
что такое последний документ?
получай нужный док сразу, запросом или ещё как, и меняй
2 pessok
 
12.02.13
10:55
Выборка.Следующий() возвращает Булево.
ТЧ[ТЧ.Количество()-1] возвращает последнюю строку
3 Neznakomka
 
12.02.13
11:01
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    АридаВедомостьВзвешиванияБА.Ссылка,
   |    СУММА(АридаВедомостьВзвешиванияБА.СуммаПривеса) КАК ОбщаяСумма,
   |    ТиповойОстаткиИОбороты.СуммаОборотДт - ТиповойОстаткиИОбороты.СуммаОборотКт КАК Остаток
   |ИЗ
   |    Документ.АридаВедомостьВзвешиванияБА.БА КАК АридаВедомостьВзвешиванияБА,
   |    РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , , , ) КАК ТиповойОстаткиИОбороты
   |ГДЕ
   |    АридаВедомостьВзвешиванияБА.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   |    И АридаВедомостьВзвешиванияБА.Ссылка.Проведен
   |    И АридаВедомостьВзвешиванияБА.Ссылка.ВидОперации = &ВидОперации
   |    И АридаВедомостьВзвешиванияБА.Ссылка.НоменклатурнаяГруппа = &НоменклатурнаяГруппа
   |    И АридаВедомостьВзвешиванияБА.Ссылка.ПодразделениеОрганизации = &ПодразделениеОрганизации
   |    И АридаВедомостьВзвешиванияБА.Ссылка.СчетЗатрат = &СчетЗатрат
   |    И ТиповойОстаткиИОбороты.Счет = &СчетЗатрат
   |    И ТиповойОстаткиИОбороты.Субконто1 = &ПодразделениеОрганизации
   |    И ТиповойОстаткиИОбороты.Субконто2 = &НоменклатурнаяГруппа
   |
   |СГРУППИРОВАТЬ ПО
   |    АридаВедомостьВзвешиванияБА.Ссылка,
   |    ТиповойОстаткиИОбороты.СуммаОборотДт - ТиповойОстаткиИОбороты.СуммаОборотКт
   |ИТОГИ
   |    СУММА(ОбщаяСумма)
   |ПО
   |    ОБЩИЕ";

   Запрос.УстановитьПараметр("ВидОперации", Перечисления.АридаВидыОперацийВзвешивания.Привес);
   Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));
   Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачалоПериода));
   Запрос.УстановитьПараметр("СчетЗатрат", СчетЗатрат);
   Запрос.УстановитьПараметр("ПодразделениеОрганизации",Подразделение);
   Запрос.УстановитьПараметр("НоменклатурнаяГруппа", НоменклатурнаяГруппа);

   Результат = Запрос.Выполнить();
   //ТЗ = Результат.Выгрузить();
   //ТЗ.ВыбратьСтроку("Тест");
   
   ВыборкаИтоги = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   ВыборкаИтоги.Следующий();
   
   ОбщаяСумма= ВыборкаИтоги.ОбщаяСумма;
   
   Выборка = ВыборкаИтоги.Выбрать();
   Сумма=0;
   
   Для Н=1 По Выборка.Количество() цикл
       Пока Выборка.Следующий() цикл
       Объект = Выборка.Ссылка.ПолучитьОбъект();
           ТекБА = Объект.БА.Выгрузить();
           ОстатокЗаПериод = Выборка.Остаток;
   СуммаКРаспределению = ОбщаяСумма+ОстатокЗаПериод;
       Для Счетчик= 0 По ТекБА.Количество()-1 цикл
                       СтараяСуммаПривеса = ТекБА[Счетчик].СуммаПривеса;    
НоваяСумма = СуммаКРаспределению*СтараяСуммаПривеса/ОбщаяСумма;
       ТекБА[Счетчик].СуммаПривеса = НоваяСумма;
                               КонецЦикла;
4 Neznakomka
 
12.02.13
11:02
вот тут не пойму для всех так , а в последнем документе в посл строчке другую сумму
5 pessok
 
12.02.13
11:03
(3) срочно убери и никому больше не показывай
6 DrShad
 
12.02.13
11:04
Для Н=1 По Выборка.Количество() цикл
       Пока Выборка.Следующий() цикл

цикл с геометрической прогрессией!?
7 Wobland
 
12.02.13
11:05
этот цикл мы зациклим циклом!
8 pessok
 
12.02.13
11:06
(7) это даже напоминает какое-то извращенное издевательство над рекурсией
9 Wobland
 
12.02.13
11:08
предлагаю (3) выкинуть к бениной маме, подумать, сформулировать задачу, подумать ещё раз, приступить к реализации, подумать, исправить ошибки, возрадоваться
10 shadowfiend10
 
12.02.13
13:18
(6) это просто маневр для запугивания будущих разработчиков, результат он получит то правильный, и будет думать что механизм работает и продолжит вставлять свой обход выборки в других реализациях
11 Sorm
 
12.02.13
13:20
(0) "Упорядочить" по и "выбрать первые..." не катит?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.