Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
23 Июл 2017, 21:36
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: ВПФ Спецификации номенклатуры  (Прочитано 331 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tatohka

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-09-16
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте, люди добрые помогите пожалуйста, не знаю как в печатной форме раскидать количество по столбцам номенклатуры
                         

//
Функция ПечатьСпецификации()
   
   ТабДок = Новый ТабличныйДокумент;
   ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Спецификация";
   ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
   Макет = ПолучитьМакет("Спецификация");
       ЗапросШапка = Новый Запрос;
    ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
   ЗапросШапка.Текст =

      "ВЫБРАТЬ
      |   СпецификацииНоменклатуры.Родитель КАК Родитель,
      |   СпецификацииНоменклатуры.Наименование КАК Наименование
      |ИЗ
      |   Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
      |ГДЕ
      |   СпецификацииНоменклатуры.Ссылка = &ТекущийДокумент";
   
    Выборка = ЗапросШапка.Выполнить().Выбрать();
   Выборка.Следующий();

          Запрос = Новый Запрос;
         Запрос.УстановитьПараметр("Документ", СсылкаНаОбъект);
   Запрос.Текст =
      "ВЫБРАТЬ
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Номенклатура,
      |   ПРЕДСТАВЛЕНИЕ(СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура),
      |   СпецификацииНоменклатурыИсходныеКомплектующие.КоличествоЭлементовВМакеЖБИ
      |ИЗ
      |   Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
      |ГДЕ
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = &Документ
      |
      |СГРУППИРОВАТЬ ПО
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.КоличествоЭлементовВМакеЖБИ
      |
      |УПОРЯДОЧИТЬ ПО
      |   Номенклатура
      |ИТОГИ ПО
      |   Номенклатура";

       
   Результат = Запрос.Выполнить();

      ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подписи");
   ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   
    ОбластьЗаголовок.параметры.Родитель = Выборка.родитель;
    ОбластьЗаголовок.параметры.Наименование = Выборка.Наименование;

   ТабДок.Очистить();
   ТабДок.Вывести(ОбластьЗаголовок);
   ОбластьШапкаТаблицы =Макет.ПолучитьОбласть("R7C1:R9C13");
    ОбластьШапкаТаблицы.Параметры.АрматурныеЭлементы = "Арматурные элементы";
   ОбластьШапкаТаблицы.Параметры.Блоки  = "Блоки АРМ каркасов";
   ОбластьШапкаТаблицы.Параметры.Марка = "Марка";
   ОбластьШапкаТаблицы.Параметры.КоличествоПоМарке = "Кол-во по марке, шт";
   ОбластьШапкаТаблицы.Параметры.Диаметр = "Диаметр";
   ОбластьШапкаТаблицы.Параметры.Масса = "Масса п.м., кг.";
    ОбластьШапкаТаблицы.Параметры.Размеры = "Размеры, мм";
   ОбластьШапкаТаблицы.Параметры.Количество = "Кол-во, шт";
   ОбластьШапкаТаблицы.Параметры.МассаЭлеммента = "Масса1 элемента по р.ч.";
   ОбластьШапкаТаблицы.Параметры.МассаИзделия = "Масса на изделие без потерь";
   
ТабДок.Вывести(ОбластьШапкаТаблицы);
   ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура|ШапкаТаблицы");
    ОбластьЗаписей = Макет.ПолучитьОбласть("Детали|Номенклатура");

     ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.Прямой);
         КоличествоСтолбцовНом = 0;
Пока ВыборкаНоменклатура.Следующий() Цикл
    КоличествоСтолбцовНом = КоличествоСтолбцовНом + 1;
   ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
      ТабДок.Присоединить(ОбластьНоменклатура);
     Если ОбластьНоменклатура.Параметры.Номенклатура <> "" тогда
       ТабДок.Область(6,14,6,14+ (КоличествоСтолбцовНом-1)).Объединить();
       ТабДок.Область(6,14,6,14+ (КоличествоСтолбцовНом-1)).Текст = "МассаБезПотерь";
        ТабДок.Область(7,14,7,14+ (КоличествоСтолбцовНом-1)).Объединить();
       ТабДок.Область(6,14,6,14+ (КоличествоСтолбцовНом-1)).ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
       КонецЕсли;
    
    ВыборкаСтрок = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.Прямой);

     Пока ВыборкаСтрок.Следующий() Цикл
         ОбластьЗаписей.Параметры.Заполнить(ВыборкаСтрок);
         ТабДок.Область(6,14,6,14+ (КоличествоСтолбцовНом-1)).Присоединить(ОбластьЗаписей);

      КонецЦикла;
   
    КонецЦикла;


                    ЗапросСтрока = Новый Запрос;
          ЗапросСтрока.УстановитьПараметр("Документ", СсылкаНаОбъект);
    ЗапросСтрока.Текст =
      "ВЫБРАТЬ
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Количество,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.НомерОперацииМаршрута КАК НомерОперацииМаршрута,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.ПозицияПоСпецификации КАК ПозицияПоСпецификации,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.КоличествоПоМаркеЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.ДиаметрЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.МассаЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.РазмерыЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.МассаПозицииЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.КоличествоЭлементовВМакеЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Номенклатура
      |ИЗ
      |   Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
      |ГДЕ
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = &Документ
      |
      |СГРУППИРОВАТЬ ПО
      |   СпецификацииНоменклатурыИсходныеКомплектующие.НомерОперацииМаршрута,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.ПозицияПоСпецификации,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Количество,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.КоличествоПоМаркеЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.ДиаметрЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.МассаЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.РазмерыЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.МассаПозицииЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.КоличествоЭлементовВМакеЖБИ,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура
      |
      |УПОРЯДОЧИТЬ ПО
      |   НомерОперацииМаршрута
      |ИТОГИ ПО
      |   НомерОперацииМаршрута,
      |   ПозицияПоСпецификации";

    Результат1 = ЗапросСтрока.Выполнить();


   ОбластьНомерОперацииМаршрута = Макет.ПолучитьОбласть("НомерОперацииМаршрута");
   ОбластьПозицияПоСпецификации = Макет.ПолучитьОбласть("ПозицияПоСпецификации");
   ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
   ОбластьЗаписей = Макет.ПолучитьОбласть("Детали|Номенклатура");
   ОбластьПодписи= Макет.ПолучитьОбласть("Подписи");

   ТабДок.НачатьАвтогруппировкуСтрок();

   ВыборкаНомерОперацииМаршрута = Результат1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

   Пока ВыборкаНомерОперацииМаршрута.Следующий() Цикл
      ОбластьНомерОперацииМаршрута.Параметры.Заполнить(ВыборкаНомерОперацииМаршрута);
      ОбластьНомерОперацииМаршрута.Область(1,2,1,14+ (КоличествоСтолбцовНом-1)).ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
      ОбластьНомерОперацииМаршрута.Область(1,2,1,14+ (КоличествоСтолбцовНом-1)).ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
      ТабДок.Вывести(ОбластьНомерОперацииМаршрута, ВыборкаНомерОперацииМаршрута.Уровень());
             
      ВыборкаПозицияПоСпецификации = ВыборкаНомерОперацииМаршрута.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                Пока ВыборкаПозицияПоСпецификации.Следующий() Цикл
       ОбластьПозицияПоСпецификации.Параметры.Заполнить(ВыборкаПозицияПоСпецификации);
         ОбластьПозицияПоСпецификации.Область(1,2,1,14+ (КоличествоСтолбцовНом-1)).ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
          ОбластьПозицияПоСпецификации.Область(1,2,1,14+ (КоличествоСтолбцовНом-1)).ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
         ТабДок.Вывести(ОбластьПозицияПоСпецификации, ВыборкаПозицияПоСпецификации.Уровень());

         ВыборкаДетальныеЗаписи = ВыборкаПозицияПоСпецификации.Выбрать();
         
                 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            Областьзаписей.Параметры.Количество = ВыборкаДетальныеЗаписи.Номенклатура;              
             
           ОбластьДетальныхЗаписей.Область(1,2,1,14+ (КоличествоСтолбцовНом-1)).ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
              ОбластьДетальныхЗаписей.Область(1,2,1,14+ (КоличествоСтолбцовНом-1)).ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
            
            ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
            
         КонецЦикла;
      КонецЦикла;
   КонецЦикла;

   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   ТабДок.Вывести(ОбластьПодписи);
     
Возврат ТабДок;

КонецФункции // ПечатьСпецификаци()


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
105 Сообщений
alex0402
93 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
65 Сообщений
ilyay ilyay
49 Сообщений
Golickoff Golickoff
49 Сообщений
AIFrame
47 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
LexaK
22 Сообщений

* Кто онлайн

  • Точка Гостей: 232
  • Точка Скрытых: 0
  • Точка Пользователей: 10
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal