Пока ВыборкаДетали.Следующий() Цикл КонецЦикла;
Цикл в 1с 8.1
#1
Отправлено 24 января 2012 - 10:47
#2
Отправлено 24 января 2012 - 10:52
если нужно только к предыдущему - можно хранить значение предыдущего элемента в переменной.
#3
Отправлено 24 января 2012 - 11:06
Что делать, например, в момент первой итерации?
#4
Отправлено 24 января 2012 - 12:03
#5
Отправлено 24 января 2012 - 12:07
#6
Отправлено 24 января 2012 - 12:12
#7
Отправлено 24 января 2012 - 12:21
rshakiro (24 января 2012 - 12:12) писал:
#8
Отправлено 24 января 2012 - 12:24
#9
Отправлено 24 января 2012 - 12:29
rshakiro (24 января 2012 - 12:24) писал:
Конфигурация типовая?
Текст запроса показывайте, и задачу опишите откуда, как и что в итоге получить надо.
#10
Отправлено 24 января 2012 - 12:33
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПланыНаГод.Владелец, | ПланыНаГод.Выполнение, | ПланыНаГод.Год КАК Год, | ПланыНаГод.Месяц КАК Месяц, | ПланыНаГод.ФинансированиеФакт |ИЗ | Справочник.ПланыНаГод КАК ПланыНаГод |ГДЕ | ПланыНаГод.Владелец В(&Владелец) | И ПланыНаГод.Выполнение > 0 | И ПланыНаГод.План = ЛОЖЬ | |УПОРЯДОЧИТЬ ПО | Год УБЫВ, | Месяц"; Запрос.УстановитьПараметр("Владелец", Владелец); Результат = Запрос.Выполнить(); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетали = Результат.Выбрать(); Колво = ВыборкаДетали.Количество(); Пока ВыборкаДетали.Следующий() Цикл ГенУслуги = ВыборкаДетали.Владелец.ГенУслуги; Остаток = ВыборкаДетали.Выполнение - ВыборкаДетали.ФинансированиеФакт + ВыборкаДетали.Выполнение * ГенУслуги / 100; ОбластьДетальныхЗаписей.Параметры.Остаток = Остаток; ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень()); КонецЦикла; Остаток = ОбщаяСтоимость - ВыполнениеСумма; ОбластьПодвал.Параметры.Остаток = Остаток; ТабДок.Вывести(ОбластьПодвал); ТабДок.ЗакончитьАвтогруппировкуСтрок();
Сообщение отредактировал shurikvz: 24 января 2012 - 12:46
#11
Отправлено 24 января 2012 - 13:01
Почему нельзя все посчитать в запросе?
Добавить в выборку:
"| ПланыНаГод.Выполнение - ПланыНаГод.ФинансированиеФакт + ПланыНаГод.Выполнение * ПланыНаГод.Владелец.ГенУслуги / 100 КАК Остаток"
ну и"ИТОГ .. ПО .."
не знаю по чему они вам там нужны?
#12
Отправлено 24 января 2012 - 14:29
"ВЫБРАТЬ |ПланыНаГод.Владелец, |ПланыНаГод.Выполнение, |ПланыНаГод.Год КАК Год, |ПланыНаГод.Месяц КАК Месяц, |ПланыНаГод.ФинансированиеФакт |ИЗ |Справочник.ПланыНаГод КАК ПланыНаГод |ГДЕ |ПланыНаГод.Владелец В(&Владелец) |И ПланыНаГод.Выполнение>0 |И ПланыНаГод.План = ЛОЖЬ |УПОРЯДОЧИТЬ ПО |Год УБЫВ, |Месяц |ПланыНаГод.Выполнение - ПланыНаГод.ФинансированиеФакт + ПланыНаГод.Выполнение * ПланыНаГод.Владелец.ГенУслуги / 100 КАК Остаток |";Как записать код без итогов? Как обратиться к этой переменной?
#13
Отправлено 24 января 2012 - 14:31
rshakiro (24 января 2012 - 14:29) писал:
вы запрос сами писали?
"ВЫБРАТЬ |ПланыНаГод.Владелец, |ПланыНаГод.Выполнение, |ПланыНаГод.Год КАК Год, |ПланыНаГод.Месяц КАК Месяц, |ПланыНаГод.ФинансированиеФакт, |ПланыНаГод.Выполнение - ПланыНаГод.ФинансированиеФакт + ПланыНаГод.Выполнение * ПланыНаГод.Владелец.ГенУслуги / 100 КАК Остаток |ИЗ |Справочник.ПланыНаГод КАК ПланыНаГод |ГДЕ |ПланыНаГод.Владелец В(&Владелец) |И ПланыНаГод.Выполнение>0 |И ПланыНаГод.План = ЛОЖЬ |УПОРЯДОЧИТЬ ПО |Год УБЫВ, |Месяц |";
#14
Отправлено 24 января 2012 - 14:36
#16
Отправлено 24 января 2012 - 15:58
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |ПланыНаГод.Владелец, |ПланыНаГод.Выполнение, |ПланыНаГод.Год КАК Год, |ПланыНаГод.Месяц КАК Месяц, |ПланыНаГод.ФинансированиеФакт |ИЗ |Справочник.ПланыНаГод КАК ПланыНаГод |ГДЕ |ПланыНаГод.Владелец В(&Владелец) |И ПланыНаГод.Выполнение > 0 |И ПланыНаГод.План = ЛОЖЬ |УПОРЯДОЧИТЬ ПО |Год УБЫВ, |Месяц |"; Запрос.УстановитьПараметр("Владелец", Владелец); Результат = Запрос.Выполнить(); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетали = Результат.Выбрать(); ВыполнениеСумма = 0; ФинансированиеСумма = 0; ОстатокТек = 0; Пока ВыборкаДетали.Следующий() Цикл Процент = ВыборкаДетали.Владелец.ГенУслуги; ВыполнениеСумма = ВыполнениеСумма + ВыборкаДетали.Выполнение;<br>ФинансированиеСумма = ФинансированиеСумма + ВыборкаДетали.ФинансированиеФакт; ОстатокТек = ВыполнениеСумма + ВыполнениеСумма * Процент / 100 - ФинансированиеСумма; ОбластьДетальныхЗаписей.Параметры.ОстатокТек = ОстатокТек;<br>ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень()); КонецЦикла; Остаток = ОбщаяСтоимость - ВыполнениеСумма; ОбластьПодвал.Параметры.Остаток = Остаток; ТабДок.Вывести(ОбластьПодвал); ТабДок.ЗакончитьАвтогруппировкуСтрок();
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных










