8.х Области в макете

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Siddy, 14 мар 2010.

  1. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    Платформа 15.14

    Подскажите, пожалуйста, как правильно расположить области, чтобы получить табличный документ, примерно как во вложенном файле? (Заранее неизвестно, какой диапазон дат выберет пользователь, т.е требуется идти и по вертикали и горизонтали. В Excel'е я бы примерно так сделал:
    Код:
    Строка =1;
    Для Столбец = 1 По УсловиеСтолбец Цикл
    Ячейка[Строка,Столбец].Value = Выборка.Дата; 
    Для Строка = 1 По УсловиеСтрока Цикл
    Ячейка[Строка,Столбец].Value = Выборка.Контрагент;
    КонецЕсли;
    КонецЕсли;
    
    )
    Еще момент: в 7ке можно было перебирать выборку из запроса "пока группировка...", а в 8.1 это как можно сделать?

    Заранее спасибо)
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Файла не хватает :)
    А разницы, где будет область - нет. Важно, как будете их выводить.
  3. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    Файл опять не захотел прикрепляться...) Хочется, чтобы было примерно так:

    |-----------------------------------------------------------------------------------------|
    |Контрагент1 |
    |-----------------------------------------------------------------------------------------|
    |01.01.2010 |02.01.2010 |03.01.2010 |04.01.2010 |05.01.2010 |
    |Номенлатура1|Номенлатура2|Номенлатура1|Номенлатура3|Номенлатура5 |
    |Номенлатура4|Номенлатура2|Номенлатура5|Номенлатура1|Номенлатура7 |
    |Номенлатура3|Номенлатура7|Номенлатура10|Номенлатура2|Номенлатура1|
    |-----------------------------------------------------------------------------------------|
    |Контрагент2 |
    |-----------------------------------------------------------------------------------------|
    |01.01.2010 |02.01.2010 |03.01.2010 |04.01.2010 |05.01.2010 |
    |Номенлатура4|Номенлатура6|Номенлатура1|Номенлатура3|Номенлатура5 |
    |Номенлатура4|Номенлатура2|Номенлатура7|Номенлатура1|Номенлатура7 |
    |Номенлатура3|Номенлатура7|Номенлатура2|Номенлатура5|Номенлатура1 |



    Есть запрос, который выбирает, все, что нужно, т.е. легко получается таблица следующего вида:
    |`Контрагент`|`Дата` |`Номенклатура`|
    |Контрагент1 |01.01.2010|Номенклатура1 |
    |Контрагент1 |01.01.2010|Номенклатура4 |
    |Контрагент1 |01.01.2010|Номенклатура3 |
    |Контрагент1 |02.01.2010|Номенклатура2 |
    ....

    но с расположением или, как сказал BabySG, областей большие проблемы... Подскажите, как их правильно выводить?
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Можно



    Как их выводит, все зависит от того что у вас зварос содержит, там вы или построчно выводите, сразу одну область или присоединением, все зависит от того что запрос возвращает
  5. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    я тут вообще голову свернул....

    Код:
    "ВЫБРАТЬ
    |	ПланРабот.ПланНаДату КАК ПланНаДату,
    |	ПланРабот.Составлен,
    |	ПланРаботТабРабот.Номенклатура КАК Номенклатура,
    |	ПланРаботТабРабот.ДатаПлан КАК ДатаПлан,
    |	ПланРаботТабРабот.ДатаФакт,
    |	ПланРабот.Автор КАК Автор,
    |ИЗ
    |	Документ.ПланРабот.ТабРабот КАК ПланРаботТабРабот
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланРабот КАК ПланРабот
    |		ПО ПланРаботТабРабот.Ссылка = ПланРабот.Ссылка
    |ГДЕ
    |	ПланРабот.ПланНаДату >= &НачМесяца
    |	И ПланРабот.ПланНаДату <= &КонМесяца
    |
    |УПОРЯДОЧИТЬ ПО
    |	ДатаПлан,
    |	Автор
    |ИТОГИ
    |	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура)
    |ПО
    |	ДатаПлан ПЕРИОДАМИ(НЕДЕЛЯ, , )";
    
    

    Примерно такой алгоритм:
    пока один и тот же автор выводим
    если день месяца равен дню в выборке тогда выводим номенклатуру в колонку под соответсвующей датой

    Проблема в этих долбанных областях, двух тупых методах Вывести() и Присоединить(), тупых требованиях и моих кривых руках. Если с последними я еще как-то слажу, то с остальными - засада. Сделал выгрузку в Excel, открытие листа Excel из 1С, но это так сказать, временный выход...
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    С таким запросом как у Вас ваш алгоритм не даст ничего.

    Что бы сильно не замарачиваться, я бы советовал вам из Вашего запроса получить ТЗ и сделать из нее ТЗ вида

    Как вам надо выводить, тогда проще будет гораздо и будете пользоваться только присоеденить и все.

Поделиться этой страницей