• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вывод результатов в новом столбце.

  • Автор темы neiroromantik
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

neiroromantik

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

Таб.ВывестиСецию("Основная"); //здесь выводится номенклатура и средняя цена
КонецЦикла ;
КонецЦикла;
В итоге получается таблица следующего вида.

дата начала месяца.
номенклатура | средняя цена.

дата начала месяца.
номенклатура | средняя цена.

и т.д.
А нужно чтобы дата начала каждого месяца и результаты по нему выводились в новом столбце.
Например, так.
дата начала месяца. | дата начала месяца.
номенклатура | средняя цена. | номенклатура | средняя цена.

Как вывести результат в новом столбце не хватает воображения. Помогите, пожайлуста.
 
T

thinkfast

Для 8-ки вот рабочий пример, на его примере все поймешь:

ТабДок = Новый ТабличныйДокумент;
Секция = ТабДок.ПолучитьОбласть("R1C1");
ТабДок.НачатьАвтогруппировкуКолонок();
Секция.Область("R1C1").Текст = "Параметр";
ТабДок.Вывести(Секция,1,"Группа 1",Ложь);
Для К=1 По 10 Цикл
Секция = ТабДок.ПолучитьОбласть("R1C1");
Секция.Область().Текст = "А"+К;
Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
ТабДок.Присоединить(Секция,2,"Группа 2",Истина);
КонецЦикла;
Секция.Область("R1C1").Текст = "Итого:";
ТабДок.Присоединить(Секция,1,"Группа 2",Ложь);
Секция.Область("R1C1").Текст = "Значение";
ТабДок.Вывести(Секция,1,"Группа 2",Ложь);
Цена = 10; Итог = Цена;
Для К=1 По 10 Цикл
Секция = ТабДок.ПолучитьОбласть("R1C1");
Секция.Область().Текст = Цена;
ТабДок.Присоединить(Секция,2,"Группа 2",Истина);
Цена = Цена + 10;
Итог = Итог + Цена;
КонецЦикла;
Секция.Область("R1C1").Текст = Итог;
ТабДок.Присоединить(Секция,1,"Группа 2",Ложь);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
ТабДок.ИтогиСправа = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Пример использования гор. автогруппировки");
 
K

KiR

neiroromantik, не совсем понял - тебе получается нужно чтобы строки присоеденялись не по вертикали, а по горизонтали?
 
V

vbs

Я в 7.7 делаю так :
Детализация по периодам устанавливается в вариантах : день, неделя, декада, месяц, квартал, год
Далее вывожу итоги в ТЗ и добавляю к ней колонку НомерПериода, заполняю ее процедуркой, вычисляющей его значение.
Для дня и года тривиально, для месяца - только учесть случай, когда даты начала и конца в разных годах
Далее группирую ТЗ, перебираю ее и присоединяю горизонтальные секции столько раз, сколько нужно
 
N

neiroromantik

Спасибо всем за рекомендации. Ссори, нужно было сразу написать, что работаю с 7-кой. Нужно, чтобы строки выводились слева направо в таком порядке.
Месяц1 Месяц2 Месяц 3 и т.д.
Номенклатура1 Цена Цена Цена
Номенклатура2 Цена Цена Цена
НоменклатураN Цена Цена Цена

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

КонецЦикла ;
КонецЦикла;
В итоге все выводится в одну строку с огромным числом колонок (
 
V

vbs

Посмотри обработку для торговли - в ней указано, как вычисляется нужный период.
Идеология станет понятна, для бухгалтерии легко сможешь адаптировать
 

Вложения

  • dinamica.rar
    17,4 КБ · Просмотры: 129
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!