8.х Выход печатных форм по количеcтву строк

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем vidoomka, 24 дек 2013.

  1. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    в УПП есть документ по умолчанию "Заказ поставщику" . при создании его печатной формы нужно учесть количество складов. Что бы при выводе на печать для каждого склада печатался отдельный документ. Помогите от чего отталкиваться. Использовала конструкцию Для каждого Строка из Выборка.Строки.
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Используйте ПроверитьВывод()

    Или же группируйте по складам ваш запрос. При очередном проходе цикла выводите на новый лист.
  3. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Код:
    |СГРУППИРОВАТЬ ПО
    |    ЗаказПоставщику.Контрагент,
    |    ЗаказПоставщикуТовары.ЕдиницаИзмерения,
    |    ЗаказПоставщикуТовары.Номенклатура,
    |    ЗаказПоставщику.Номер,
    |    ЗаказПоставщику.НомерВЕвфрате,
    |    ЗаказПоставщикуТовары.Склад
    |ИТОГИ ПО
    |    Склад";
    РезультатВыборка= Запрос.Выполнить();
    Выборка2=РезультатВыборка.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    ТабДок= новый массив;
    
    Для Каждого Склад Из Выборка2.Строки Цикл
    
    КонецЦикла;
    
    Возврат ТабДок;
    сделала вот так, но все не то
    Для Каждого Склад Из Выборка2.Строки Цикл
    ТабДок.Добавить(ВыводПечатнойФормы);   
    КонецЦикла;
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Сделайте запрос по вашей табличной части документа, а не по документу в целом.
  5. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    исправила, не помогло.
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Покажите запрос, с выборкой табличной части.
  7. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Код:
    Функция ВыводЛистаПриемки ()
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЛистПриемки_Печать11";
    
    Макет = Документы.ЗаказПоставщику.ПолучитьМакет("Печать11");
    
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Запрос.Текст ="ВЫБРАТЬ
    |	ЗаказПоставщику.Номер,
    |	ЗаказПоставщику.НомерВЕвфрате,
    |	ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
    |	ЗаказПоставщикуТовары.Количество КАК Количество,
    |	ЗаказПоставщикуТовары.ЕдиницаИзмерения,
    |	ЗаказПоставщикуТовары.Склад КАК Склад,
    |	ЗаказПоставщику.Контрагент
    |ИЗ
    |	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
    |		ПО ЗаказПоставщикуТовары.Ссылка = ЗаказПоставщику.Ссылка
    |ГДЕ
    |	ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент
    |
    |СГРУППИРОВАТЬ ПО
    |	ЗаказПоставщикуТовары.Номенклатура,
    |	ЗаказПоставщику.НомерВЕвфрате,
    |	ЗаказПоставщикуТовары.ЕдиницаИзмерения,
    |	ЗаказПоставщику.Номер,
    |	ЗаказПоставщикуТовары.Склад,
    |	ЗаказПоставщикуТовары.Количество,
    |	ЗаказПоставщику.Контрагент";
    
    Выборка=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Индекс = 0;
    
    Пока Выборка.Следующий() Цикл
    //Заголовок  
    Область = Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(Область);
    //Шапка  
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ЭтотОбъект);
    Шапка.Параметры.Склад=Выборка.Склад;
    ТабДок.Вывести(Шапка);
    //ТоварыШапка
    ТоварыШапка=Макет.ПолучитьОбласть("ТоварыШапка");
    ТоварыШапка.Параметры.Заполнить(ЭтотОбъект);
    ТабДок.Вывести(ТоварыШапка);
    //Товар
    Товар = Макет.ПолучитьОбласть("Товар");
    Индекс = Индекс + 1;
    Товар.Параметры.НомерСтроки= Индекс;
    Товар.Параметры.НомерВЕвфрате = Выборка.НомерВЕвфрате;
    Товар.Параметры.Номер = Выборка.Номер;
    Товар.Параметры.Номенклатура = Выборка.Номенклатура;
    Товар.Параметры.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
    Товар.Параметры.Количество = Выборка.Количество;
    ТабДок.Вывести(Товар);
    Подвал=Макет.ПолучитьОбласть("Подвал");
    Подвал.Параметры.Заполнить(ЭтотОбъект);
    ТабДок.Вывести(Подвал);
    
    КонецЦикла;
    
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    
    Возврат ТабДок;  
    КонецФункции  
    //печатает лист приемки
    Функция ПечатьЛистаПриемки()  
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Запрос.Текст ="ВЫБРАТЬ
    |	ЗаказПоставщикуТовары.Номенклатура,
    |	ЗаказПоставщикуТовары.ЕдиницаИзмерения,
    |	ЗаказПоставщикуТовары.Количество КАК Количество,
    |	ЗаказПоставщикуТовары.Склад КАК Склад
    |ИЗ
    |	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
    |		ПО ЗаказПоставщикуТовары.Ссылка = ЗаказПоставщику.Ссылка
    |ГДЕ
    |	ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент
    |
    |СГРУППИРОВАТЬ ПО
    |	ЗаказПоставщикуТовары.ЕдиницаИзмерения,
    |	ЗаказПоставщикуТовары.Номенклатура,
    |	ЗаказПоставщикуТовары.Склад,
    |	ЗаказПоставщикуТовары.Количество
    |ИТОГИ ПО
    |	Склад";
    РезультатВыборка= Запрос.Выполнить();
    Выборка2=РезультатВыборка.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    ТабДок= новый массив;
    
    Для Каждого Склад Из Выборка2.Строки Цикл
    
    ВыводЛистаПриемки ();
    
    КонецЦикла;
    
    //Возврат ТабДок;  
    КонецФункции

    задание такое. для каждого склада должна выходить своя печатная форма. на пример 3 склада - 3 печатных формы на разных листах. а в реализованном мною запросе выходит 3 отдельных листа с одинаковым содержанием.
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Оформляйте код тегами code1c
  9. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Вам нужно сгруппировать склады, используя итоги, таким образом у вас получится группировка по складу.

    Выдумка, вы что, стебетесь ???

    Теги это служебные слова и используются в формате [code1c.] ваш код [/code1c.] точки нужно убрать.
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Походу и вправду выдумка.
  11. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    о боже как это??????????

    что-то типа этого?

    Не сердитесь я совсем недавно в этой теме.
  12. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Печатаете код, далее выделяете его и на кнопочку КОД 1С, в верху, на панели инструментов.

    Ладно, забудьте. Вы девушка ?
  13. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
  14. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Почему ТабДок у вас массив ???
    Матчасть учили ?

    Блин, вот хочется вам помочь, но тааак лень писать код, ужас.
  15. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    нет, не учила матчасть

    не поленитесь..... :unsure:
  16. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    А вот поленюсь. Все можно сделать в одной функции. Делаете два запроса. По документу и по табличной части, хотя можно и одним обойтись, ссылка на объект должна присутствовать в табличной части.
    Там где у вас Итоги по складу (получится группировка), будет цикл, в каждой итерации нужно сделать что-то типа ТабДок.ВывестиГоризонтальныйРазделительСтраниц(), вот и все.
  17. TopicStarter Overlay
    vidoomka
    Offline

    vidoomka

    Регистрация:
    24 дек 2013
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    я знаю, про этот метод. мне нужене другой. для каждого склада свой отдельный печатный документ на новом листе.
  18. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Раз знаете про этот метод, желаю вам удачи. Вы меня походу не услышали. Обидно, досадно, ну и ладно!

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