Помогите плиз с печатной формой (картинка)
30.08.2012
15:06
#1
В общем для банка, нужно выгрузать из 1с 8.2 ЗУП реестры сотрудников для перечесления на карточку зарплаты.
Все сделал. все работает. Номер лицевого счета, фио, сумма.
Только не могу понять, по какой причине (на картинке видно) печатная форма мне выводит много строк. То есть вот там 2 человека. Почему после них еще куча пустых строк выводиться. Где рыть ?
Все сделал. все работает. Номер лицевого счета, фио, сумма.
Только не могу понять, по какой причине (на картинке видно) печатная форма мне выводит много строк. То есть вот там 2 человека. Почему после них еще куча пустых строк выводиться. Где рыть ?
30.08.2012
15:07
#2
или как ограничить. что бы после последней заполненной строки, далее ни чего не выводилось.
30.08.2012
17:28
#4
это внешняя печатная форма. для документа зарплата к выплате организации.
могу скинуть модуль печати, надо?
могу скинуть модуль печати, надо?
30.08.2012
17:30
#5
"Вот процедура печати
ПечатаемыйДокумент = СсылкаНаОбъект;
Ведомости = СсылкаНаОбъект;
ФИОСокращенно = Ложь;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписокПеречислений";
Макет = ПолучитьОбщийМакет("СписокПеречисленийЗарплатыВБанк4");
// получаем данные для печати
ВыборкаДляШапки = СформироватьЗапросПоДокументу(ПечатаемыйДокумент).Выбрать();
ВыборкаРаботники = СформироватьЗапросДляПечатиПеречняПеречислений(ПечатаемыйДокумент, Ведомости, ФИОСокращенно).Выбрать();
// подсчитываем количество страниц документа - для корректного разбиения на страницы
ВсегоСтрокДокумента = ВыборкаРаботники.Количество();
ОбластьМакетаШапкаДокумента = Макет.ПолучитьОбласть("ШапкаДокумента");
ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
// ОбластьМакетаИтогПоСтранице = Макет.ПолучитьОбласть("ИтогПоЛисту");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
// массив с двумя строками - для разбиения на страницы
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
// ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
// выводим данные о руководителях организации
Пока ВыборкаДляШапки.Следующий() Цикл
ОбластьМакетаШапкаДокумента.Параметры.Заполнить(ВыборкаДляШапки); // Шапка документа.
ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации = СокрЛП(ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации);
ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаДляШапки);
ОбластьМакетаПодвал.Параметры.Заполнить(ВыборкаДляШапки); // подписи
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаШапкаДокумента);
ТабДокумент.Вывести(ОбластьМакетаШапка);
ВыведеноСтраниц = 1; ВыведеноСтрок = 0; Итого = 0;
// выводим данные по строкам документа.
Пока ВыборкаРаботники.Следующий() Цикл
// разбиение на страницы
ВыведеноСтрок = ВыведеноСтрок + 1;
ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаРаботники);
ОбластьМакетаСтрока.Параметры.НомерСтроки = ВыведеноСтрок;
ОбластьМакетаСтрока.Параметры.НомерЛицевогоСчета = ВыборкаРаботники.ФизЛицоСсылка.ЛицевойСчет1;
// Проверим, уместится ли строка на странице или надо открывать новую страницу
ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
Если Не ВывестиПодвалЛиста и ВыведеноСтрок = ВсегоСтрокДокумента Тогда
ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
КонецЕсли;
Если ВывестиПодвалЛиста Тогда
// ОбластьМакетаИтогПоСтранице.Параметры.ИтогоНаСтранице = ИтогоНаСтранице;
// ТабДокумент.Вывести(ОбластьМакетаИтогПоСтранице);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Вывести(ОбластьМакетаШапка);
ВыведеноСтраниц = ВыведеноСтраниц + 1;
// ИтогоНаСтранице = 0;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакетаСтрока);
// ИтогоНаСтранице = ИтогоНаСтранице + ВыборкаРаботники.Сумма;
Итого = Итого + ВыборкаРаботники.Сумма;
КонецЦикла;
// Если ВыведеноСтрок > 0 Тогда
// ОбластьМакетаИтогПоСтранице.Параметры.ИтогоНаСтранице = ИтогоНаСтранице;
// КонецЕсли;
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
// ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
Для Сч = 1 По ОбластьМакетаСтрока.Параметры.Количество() Цикл
ОбластьМакетаСтрока.Параметры.Установить(Сч - 1,"""");
КонецЦикла;
ОбластьМакетаСтрока.Параметры.Физлицо = " " + Символы.ПС + " ";
Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, Ложь) Цикл
ТабДокумент.Вывести(ОбластьМакетаСтрока);
КонецЦикла;
// ТабДокумент.Вывести(ОбластьМакетаИтогПоСтранице);
ОбластьМакетаПодвал.Параметры.Итого = Итого;
ОбластьМакетаПодвал.Параметры.колпер = ВыведеноСтрок;
ОбластьМакетаПодвал.Параметры.колраб = ВыведеноСтрок;
ТабДокумент.Вывести(ОбластьМакетаПодвал);
колпер = ВыведеноСтрок;
колраб = ВыведеноСтрок;
Возврат ТабДокумент;
КонецФункции //"
ПечатаемыйДокумент = СсылкаНаОбъект;
Ведомости = СсылкаНаОбъект;
ФИОСокращенно = Ложь;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписокПеречислений";
Макет = ПолучитьОбщийМакет("СписокПеречисленийЗарплатыВБанк4");
// получаем данные для печати
ВыборкаДляШапки = СформироватьЗапросПоДокументу(ПечатаемыйДокумент).Выбрать();
ВыборкаРаботники = СформироватьЗапросДляПечатиПеречняПеречислений(ПечатаемыйДокумент, Ведомости, ФИОСокращенно).Выбрать();
// подсчитываем количество страниц документа - для корректного разбиения на страницы
ВсегоСтрокДокумента = ВыборкаРаботники.Количество();
ОбластьМакетаШапкаДокумента = Макет.ПолучитьОбласть("ШапкаДокумента");
ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
// ОбластьМакетаИтогПоСтранице = Макет.ПолучитьОбласть("ИтогПоЛисту");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
// массив с двумя строками - для разбиения на страницы
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
// ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
// выводим данные о руководителях организации
Пока ВыборкаДляШапки.Следующий() Цикл
ОбластьМакетаШапкаДокумента.Параметры.Заполнить(ВыборкаДляШапки); // Шапка документа.
ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации = СокрЛП(ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации);
ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаДляШапки);
ОбластьМакетаПодвал.Параметры.Заполнить(ВыборкаДляШапки); // подписи
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаШапкаДокумента);
ТабДокумент.Вывести(ОбластьМакетаШапка);
ВыведеноСтраниц = 1; ВыведеноСтрок = 0; Итого = 0;
// выводим данные по строкам документа.
Пока ВыборкаРаботники.Следующий() Цикл
// разбиение на страницы
ВыведеноСтрок = ВыведеноСтрок + 1;
ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаРаботники);
ОбластьМакетаСтрока.Параметры.НомерСтроки = ВыведеноСтрок;
ОбластьМакетаСтрока.Параметры.НомерЛицевогоСчета = ВыборкаРаботники.ФизЛицоСсылка.ЛицевойСчет1;
// Проверим, уместится ли строка на странице или надо открывать новую страницу
ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
Если Не ВывестиПодвалЛиста и ВыведеноСтрок = ВсегоСтрокДокумента Тогда
ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
КонецЕсли;
Если ВывестиПодвалЛиста Тогда
// ОбластьМакетаИтогПоСтранице.Параметры.ИтогоНаСтранице = ИтогоНаСтранице;
// ТабДокумент.Вывести(ОбластьМакетаИтогПоСтранице);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Вывести(ОбластьМакетаШапка);
ВыведеноСтраниц = ВыведеноСтраниц + 1;
// ИтогоНаСтранице = 0;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакетаСтрока);
// ИтогоНаСтранице = ИтогоНаСтранице + ВыборкаРаботники.Сумма;
Итого = Итого + ВыборкаРаботники.Сумма;
КонецЦикла;
// Если ВыведеноСтрок > 0 Тогда
// ОбластьМакетаИтогПоСтранице.Параметры.ИтогоНаСтранице = ИтогоНаСтранице;
// КонецЕсли;
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
// ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
Для Сч = 1 По ОбластьМакетаСтрока.Параметры.Количество() Цикл
ОбластьМакетаСтрока.Параметры.Установить(Сч - 1,"""");
КонецЦикла;
ОбластьМакетаСтрока.Параметры.Физлицо = " " + Символы.ПС + " ";
Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, Ложь) Цикл
ТабДокумент.Вывести(ОбластьМакетаСтрока);
КонецЦикла;
// ТабДокумент.Вывести(ОбластьМакетаИтогПоСтранице);
ОбластьМакетаПодвал.Параметры.Итого = Итого;
ОбластьМакетаПодвал.Параметры.колпер = ВыведеноСтрок;
ОбластьМакетаПодвал.Параметры.колраб = ВыведеноСтрок;
ТабДокумент.Вывести(ОбластьМакетаПодвал);
колпер = ВыведеноСтрок;
колраб = ВыведеноСтрок;
Возврат ТабДокумент;
КонецФункции //"
30.08.2012
17:33
#6
Если это ВПФ, то уж прикрепляй файл .epf к сообщению, а не модуль тут выкладывай.
30.08.2012
18:59
#7
"Можно закоментарить этот кусок.
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
// ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
Для Сч = 1 По ОбластьМакетаСтрока.Параметры.Количество() Цикл
ОбластьМакетаСтрока.Параметры.Установить(Сч - 1,"""");
КонецЦикла;
ОбластьМакетаСтрока.Параметры.Физлицо = " " + Символы.ПС + " ";
Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, Ложь) Цикл
ТабДокумент.Вывести(ОбластьМакетаСтрока);
КонецЦикла;"
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
// ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
Для Сч = 1 По ОбластьМакетаСтрока.Параметры.Количество() Цикл
ОбластьМакетаСтрока.Параметры.Установить(Сч - 1,"""");
КонецЦикла;
ОбластьМакетаСтрока.Параметры.Физлицо = " " + Символы.ПС + " ";
Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, Ложь) Цикл
ТабДокумент.Вывести(ОбластьМакетаСтрока);
КонецЦикла;"
Читают тему
(гостей: 1)