Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 июн 2022, 09:05

Вывод на печать

Автор Fateev_max, 08 дек 2010, 09:20

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

Fateev_max

Есть справочник контрагентов необходимо вывести его на печать.Этот справочник вывел средствами конструктора.У каждого контрагента есть договора размещенные в справочнике ДоговорыКонтрагента.Необходимо еще выводить для справочника контрагентов его договора. Как обойти эти договора?
Пробывал так
Пока Выборка1.Следующий() Цикл
     Если Выборка1.Владелец=Выборка.Наименование
      Тогда
      Элемент.Параметры.ДоговорыКонтрагентов=Выборка1.Наименование;
       
   ТабДок.Вывести(Элемент);    



Процедура Печать(Элемент)
   //{{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК(Печать)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   ТабДок = Новый ТабличныйДокумент;
   Макет = Справочники.Контрагенты.ПолучитьМакет("Печать");
   // Заголовок
   Область = Макет.ПолучитьОбласть("Заголовок");
   ТабДок.Вывести(Область);
   // Шапка
   Область = Макет.ПолучитьОбласть("Шапка");
   ТабДок.Вывести(Область);
   Выборка = Справочники.Контрагенты.ВыбратьИерархически();
   Выборка1 = Справочники.ДоговорыКонтрагентов.Выбрать();
   Группа = Макет.ПолучитьОбласть("Группа");
   Элемент = Макет.ПолучитьОбласть("Элемент");
   Пока Выборка.Следующий() Цикл
      
      Если Выборка.ЭтоГруппа Тогда
         Группа.Параметры.Заполнить(Выборка);
         ТабДок.Вывести(Группа);
      Иначе
      
         Элемент.Параметры.Код=Выборка.Код;
         Элемент.Параметры.Наименование=Выборка.Наименование;
         Элемент.Параметры.Адрес=Выборка.Адрес;
         Элемент.Параметры.ИНН=Выборка.ИНН;
         
                  ТабДок.Вывести(Элемент);
         
      Пока Выборка1.Следующий() Цикл
     Если Выборка1.Владелец=Выборка.Наименование
      Тогда
      Элемент.Параметры.ДоговорыКонтрагентов=Выборка1.Наименование;
       
   ТабДок.Вывести(Элемент);    
     Иначе
                КонецЕсли;
         КонецЦикла;
   
         КонецЕсли;         
                
        КонецЦикла;

   ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита = Истина;
   ТабДок.ТолькоПросмотр = Истина;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.Показать();
   //}}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры

markantonio


Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Группа.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Группа);
Иначе
Элемент.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Элемент);

Выборка1 = Справочники.ДоговорыКонтрагентов.Выбрать(,Выборка);

Пока Выборка1.Следующий() Цикл
//.................................
//.................................
КонецЦикла;


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


Fateev_max

Процедура Печать(Элемент)
   //{{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК(Печать)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   ТабДок = Новый ТабличныйДокумент;
   Макет = Справочники.Контрагенты.ПолучитьМакет("Печать");
   // Заголовок
   Область = Макет.ПолучитьОбласть("Заголовок");
   ТабДок.Вывести(Область);
   // Шапка
   Область = Макет.ПолучитьОбласть("Шапка");
   ТабДок.Вывести(Область);
   Выборка = Справочники.Контрагенты.ВыбратьИерархически();
   Группа = Макет.ПолучитьОбласть("Группа");
   Элемент = Макет.ПолучитьОбласть("Элемент");
   Пока Выборка.Следующий() Цикл
      
      Если Выборка.ЭтоГруппа Тогда
         Группа.Параметры.Заполнить(Выборка);
         ТабДок.Вывести(Группа);
      Иначе
      
         Элемент.Параметры.Код=Выборка.Код;
         Элемент.Параметры.Наименование=Выборка.Наименование;
         Элемент.Параметры.Адрес=Выборка.Адрес;
         Элемент.Параметры.ИНН=Выборка.ИНН;
         
                  ТабДок.Вывести(Элемент);
      Выборка1 = Справочники.ДоговорыКонтрагентов.Выбрать(,Выборка);   
      Пока Выборка1.Следующий() Цикл
     Элемент.Параметры.ДоговорыКонтрагентов=Выборка1.Наименование;
   ТабДок.Вывести(Элемент);    
            КонецЦикла;

                 КонецЕсли;   
         КонецЦикла;
   
   ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита = Истина;
   ТабДок.ТолькоПросмотр = Истина;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.Показать();
   //}}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры

Выдает ошибку {Справочник.Контрагенты.Форма.ФормаСписка(30)}: Ошибка при вызове метода контекста (Выбрать): Несоответствие типов (параметр номер '2')
      Выборка1 = Справочники.ДоговорыКонтрагентов.Выбрать(,Выборка);   


markantonio

Выборка1 = Справочники.ДоговорыКонтрагентов.Выбрать(,Выборка.Ссылка);

попробуй.

Fateev_max

Добавил в выборку отбор по владельцу Выбрать(,выборка.Ссылка);
Договор начал выводится.Допустим Сидоров Договор 111.
Затем договор выводится у руданова ,хотя у руданова нет этого договора.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск