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

Автор Тема: Не все строки табличной части выводятся на печать  (Прочитано 261 раз)

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

Оффлайн Space_minus

  • **
  • Сообщений: 81
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-03-17
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте! Подскажите как правильно сделать вывод табличной части на ПФ выводится 1 фамилия 2 раза
форма:

Печатная форма:

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

Запрос.УстановитьПараметр("Ссылка",МассивОбъектов);
РезультатЗапроса = Запрос.Выполнить().Выбрать();

Пока РезультатЗапроса.Следующий() Цикл
Макет = ПолучитьМакет("СписокГруппы");
НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;

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

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

  Для каждого Строка Из ТчСтуденты Цикл

      Фамилия = Лев(РезультатЗапроса.Обучающийся,Найти(РезультатЗапроса.Обучающийся," "));
      Имя = СокрЛП(Лев(СокрЛП(Сред(РезультатЗапроса.Обучающийся,СтрДлина(Фамилия),СтрДлина(РезультатЗапроса.Обучающийся))),Найти(СокрЛП(Сред(РезультатЗапроса.Обучающийся,СтрДлина(Фамилия),СтрДлина(РезультатЗапроса.Обучающийся)))," ")));
      ИО=СокрЛП(Сред(РезультатЗапроса.Обучающийся,СтрДлина(Фамилия),СтрДлина(РезультатЗапроса.Обучающийся)));
      Отчество = СокрЛП(Сред(ИО,Найти(ИО," "),СтрДлина(ИО)));
  ОбластьМакета.Параметры.Фамилия = Фамилия;
  ОбластьМакета.Параметры.Отчество = Отчество;
  ОбластьМакета.Параметры.Имя = Имя;
  ОбластьМакета.Параметры.НаимУсл = РезультатЗапроса.Услуга;
  ОбластьМакета.Параметры.Заполнить(РезультатЗапроса);
 
  // категории мед справки
МассивКатегорий = Новый Массив;
А = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_А;
Б = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_B;
С = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_C;
Д = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_D;
БЕ = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_BE;
СЕ = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_CE;
ДЕ = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_DE;
ТМ = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_TM;
ТБ = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_TB;
М = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_M;
А1 = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_A1;
Б1 = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_B1;
С1 = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_C1;
Д1 = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_D1;
С1Е = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_C1E;
Д1Е = Строка.ФИО_Студента.ФизЛицо.Категория_Мед_Справки_D1E;
Если А  = Истина Тогда
МассивКатегорий.Добавить("A");
КонецЕсли;
Если  Б  = Истина Тогда
МассивКатегорий.Добавить("B");
КонецЕсли;
Если  С  = Истина Тогда
МассивКатегорий.Добавить("С");
КонецЕсли;
Если  Д  = Истина Тогда
МассивКатегорий.Добавить("D");
КонецЕсли;
Если  БЕ  = Истина Тогда
МассивКатегорий.Добавить("BE");
КонецЕсли;
Если  СЕ  = Истина Тогда
МассивКатегорий.Добавить("СЕ");
КонецЕсли;
Если  ДЕ  = Истина Тогда
МассивКатегорий.Добавить("DE");
КонецЕсли;
Если  СЕ  = Истина Тогда
МассивКатегорий.Добавить("СЕ");
КонецЕсли;
Если  ДЕ  = Истина Тогда
МассивКатегорий.Добавить("DE");
КонецЕсли;
Если  ТМ  = Истина Тогда
МассивКатегорий.Добавить("ТМ");
КонецЕсли;
Если  ТБ  = Истина Тогда
МассивКатегорий.Добавить("TB");
КонецЕсли;
Если  М  = Истина Тогда
МассивКатегорий.Добавить("М");
КонецЕсли;
Если  А1  = Истина Тогда
МассивКатегорий.Добавить("А1");
КонецЕсли;
Если  Б1  = Истина Тогда
МассивКатегорий.Добавить("B1");
КонецЕсли;
Если  С1  = Истина Тогда
МассивКатегорий.Добавить("С1");
КонецЕсли;
Если  Д1  = Истина Тогда
МассивКатегорий.Добавить("D1");
КонецЕсли;
Если  С1Е  = Истина Тогда
МассивКатегорий.Добавить("С1Е");
КонецЕсли;
Если  Д1Е  = Истина Тогда
МассивКатегорий.Добавить("D1Е");
КонецЕсли;
А = "";
Для каждого Стр Из МассивКатегорий Цикл
А = А+" ,"+Стр;
КонецЦикла;
   Если Не ПустаяСтрока(А) Тогда
   ОбластьМакета.Параметры.МедКатегория = ""+Сред(А,3,СтрДлина(А));
   Иначе
   ОбластьМакета.Параметры.МедКатегория = "";
   КонецЕсли;
   
    // категории водительского удостоверения
МассивКатегорийПрав = Новый Массив;
M = Строка.ФИО_Студента.ФизЛицо.M;
A1 = Строка.ФИО_Студента.ФизЛицо.A1;
A = Строка.ФИО_Студента.ФизЛицо.A;
C1 = Строка.ФИО_Студента.ФизЛицо.C1;
C = Строка.ФИО_Студента.ФизЛицо.C;
B1 = Строка.ФИО_Студента.ФизЛицо.B1;
B = Строка.ФИО_Студента.ФизЛицо.B;
D1 = Строка.ФИО_Студента.ФизЛицо.D1;
D = Строка.ФИО_Студента.ФизЛицо.D;
BE = Строка.ФИО_Студента.ФизЛицо.BE;
C1E = Строка.ФИО_Студента.ФизЛицо.C1E;
D1E = Строка.ФИО_Студента.ФизЛицо.D1E;
DE = Строка.ФИО_Студента.ФизЛицо.DE;
CE = Строка.ФИО_Студента.ФизЛицо.CE;
Трам = Строка.ФИО_Студента.ФизЛицо.Трам;
Тролл = Строка.ФИО_Студента.ФизЛицо.Тролл;
Если M  = Истина Тогда
МассивКатегорийПрав.Добавить("M");
КонецЕсли;
Если  A1  = Истина Тогда
МассивКатегорийПрав.Добавить("A1");
КонецЕсли;
Если  A  = Истина Тогда
МассивКатегорийПрав.Добавить("A");
КонецЕсли;
Если  C1  = Истина Тогда
МассивКатегорийПрав.Добавить("C1");
КонецЕсли;
Если  C  = Истина Тогда
МассивКатегорийПрав.Добавить("C");
КонецЕсли;
Если  B1  = Истина Тогда
МассивКатегорийПрав.Добавить("B1");
КонецЕсли;
Если  B  = Истина Тогда
МассивКатегорийПрав.Добавить("B");
КонецЕсли;
Если  D1  = Истина Тогда
МассивКатегорийПрав.Добавить("D1");
КонецЕсли;
Если  D  = Истина Тогда
МассивКатегорийПрав.Добавить("D");
КонецЕсли;
Если  BE  = Истина Тогда
МассивКатегорийПрав.Добавить("BE");
КонецЕсли;
Если  C1E  = Истина Тогда
МассивКатегорийПрав.Добавить("C1E");
КонецЕсли;
Если  D1E  = Истина Тогда
МассивКатегорийПрав.Добавить("D1E");
КонецЕсли;
Если  DE  = Истина Тогда
МассивКатегорийПрав.Добавить("DE");
КонецЕсли;
Если  CE  = Истина Тогда
МассивКатегорийПрав.Добавить("CE");
КонецЕсли;
Если  Трам  = Истина Тогда
МассивКатегорийПрав.Добавить("Трам");
КонецЕсли;
Если  Тролл  = Истина Тогда
МассивКатегорийПрав.Добавить("Д1");
КонецЕсли;
А = "";
Для каждого Стр Из МассивКатегорийПрав Цикл
А = А+" ,"+Стр;
КонецЦикла;
   Если Не ПустаяСтрока(А) Тогда
   ОбластьМакета.Параметры.ВодКатегория = ""+Сред(А,3,СтрДлина(А));
   Иначе
   ОбластьМакета.Параметры.ВодКатегория = "";
   КонецЕсли;
ТабДок.Вывести(ОбластьМакета);
  КонецЦикла;
          Возврат ТабДок;
КонецЦикла;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок,НомерСтрокиНачало, ОбъектыПечати, РезультатЗапроса.Ссылка);
КонецФункции


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

СМОТРЕТЬ >>


Оффлайн LexaK

  • *****
  • Сообщений: 1084
  • РЕПУТАЦИЯ: 284
  • КПД: 26%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
скорее всего у вас один человек в нескольких списках сразу,
возможно какие-то документы у вас распроведены и даже помечены на удаление,
но в отчет попадет все.

1.добавьте в отчет условие что документ должен быть проведен (если он может проводиться)
или хотя бы что он не помечен на удаление
2.проверьте двойников (один человек входит в несколько списков)
3.добавьте в отчет поля документа Номер списка, Дата Списка
4. могут быть полные однофамильцы и тезки, добавьте в этом случае код физлица (или номер какого ни будь документа, например номер паспорта)
Помогло? - Нажми СПАСИБО!!!
                       :)


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
167 Сообщений
alex0402
55 Сообщений
MuI_I_Ika MuI_I_Ika
47 Сообщений
crow1983
35 Сообщений
LexaK
32 Сообщений
alexandr_ll
30 Сообщений
sertak sertak
25 Сообщений
Vzonder
22 Сообщений
дфтын дфтын
17 Сообщений
BuhRust
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal