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

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

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

Оффлайн Space_minus

  • **
  • Сообщений: 92
  • РЕПУТАЦИЯ: 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,СтрДлина(А));
   Иначе
   ОбластьМакета.Параметры.ВодКатегория = "";
   КонецЕсли;
ТабДок.Вывести(ОбластьМакета);
  КонецЦикла;
          Возврат ТабДок;
КонецЦикла;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок,НомерСтрокиНачало, ОбъектыПечати, РезультатЗапроса.Ссылка);
КонецФункции



Оффлайн LexaK

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

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


Теги:
 

УТ 11.В документе "Заявка на расходование денежных средств" нет кнопки "Печать"!

Автор Valery3103Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3543
Последний ответ 29 Июн 2012, 18:37
от LexaK
Печать справки "Б"

Автор wvlasРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1905
Последний ответ 27 Апр 2016, 18:01
от wvlas
Как "поймать" нажатие на кнопку "Печать" в открываемом макете(табличный документ)?

Автор taramz5Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 869
Последний ответ 14 Фев 2017, 14:27
от ilyay
Работа с табличной частью в документе. Или Работа с ШАПКОЙ документа

Автор gorbach178500Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 2822
Последний ответ 30 Сен 2011, 20:01
от gorbach178500
Расширение меню кнопки "Печать"

Автор dab2Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 5650
Последний ответ 23 Июл 2010, 13:26
от dab2

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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

alex0402
92 Сообщений
oleg-x
79 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
68 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
42 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений
Dethmontt Dethmontt
22 Сообщений
wise wise
21 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal