|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Привет всем!!! Помогите!!! Изучаю 1С-8ку В книге есть пример который надо модернизировать. Есть документ Расходников. В модуле объекта Расходника (не формы, а объекта!) написана процедура: Процедура Печать() Экспорт ТабДок = Новый ТабличныйДокумент; Макет = Документы.Расходная.ПолучитьМакет("Печать"); // Заголовок Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // Товары Область = Макет.ПолучитьОбласть("ТоварыШапка"); ТабДок.Вывести(Область); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Для Каждого ТекСтрокаТовары Из Товары Цикл ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); ТабДок.Вывести(ОбластьТовары); КонецЦикла; // Услуги Область = Макет.ПолучитьОбласть("УслугиШапка"); ТабДок.Вывести(Область); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); Для Каждого ТекСтрокаУслуги Из Услуги Цикл ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); ТабДок.Вывести(ОбластьУслуги); КонецЦикла; // Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Подвал); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать(); //}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ КонецПроцедуры В форме диалога в Обработке написана процедура: Процедура КнопкаВыполнитьНажатие(Элемент) Выборка=Документы.Расходная.Выбрать(ДатаНачала,КонецДня(ДатаОкончания)); Пока Выборка.Следующий() Цикл Выборка.ПолучитьОбъект().Печать(); КонецЦикла; КонецПроцедуры Комбинация этих 2-х процедур выдает что расходники печатаются в разных окнах, т.е. у меня 2 расходника и 2 окна, будет 3 расходника - будет 3 окна. Как исправить эти модули чтобы расходники печатались в одной форме? Очень-очень нужно!!! Помогите, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2008, 16:34 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Сколько раз будет ТабДок.Показать(); - столько будет и окон. А многочисленные ТабДок.Вывести() - это последовательный вывод различных элементов печатного документа. Исходя из этого можно и попрактиковаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2008, 17:20 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
pailСколько раз будет ТабДок.Показать(); - столько будет и окон. А многочисленные ТабДок.Вывести() - это последовательный вывод различных элементов печатного документа. Исходя из этого можно и попрактиковаться. Получается ТабДок нужно выводить 1 раз и наверно во второй процедуре, но если я перенесу ТабДок.Вывести() во вторую процедуру, то программа ругнется, потому что вторая процедура не поймет что такое ТабДок, в общем я капитально запуталась, не бросайте наедине с проблемой!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2008, 18:45 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Гостья777 pailСколько раз будет ТабДок.Показать(); - столько будет и окон. А многочисленные ТабДок.Вывести() - это последовательный вывод различных элементов печатного документа. Исходя из этого можно и попрактиковаться. Получается ТабДок нужно выводить 1 раз и наверно во второй процедуре, но если я перенесу ТабДок.Вывести() во вторую процедуру, то программа ругнется, потому что вторая процедура не поймет что такое ТабДок, в общем я капитально запуталась, не бросайте наедине с проблемой!!! конечно ТабДок.Показать(); ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2008, 18:47 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Можно вынести ТабДок = Новый ТабличныйДокумент; и ТабДок.Показать() за пределы первой процедуры и передавать ей его как параметр: Процедура Печать(табДок) Экспорт и ТабДок = Новый ТабличныйДокумент; Печать(ТабДок); Печать(ТабДок); ТабДок.Показать(); Однако следует иметь в виду, что инфраструктура печатных форм в типовых конфигурациях рассчитана именно на такой формат вызова процедур, как в оригинале (отсюда и процедуры экспортируемые) Потому для упражнений лучше скопировать исходный код процедуры Печать в другую процедуру с другим именем, да в ней и упражняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2008, 19:21 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
pailМожно вынести ТабДок = Новый ТабличныйДокумент; и ТабДок.Показать() за пределы первой процедуры и передавать ей его как параметр: Процедура Печать(табДок) Экспорт и ТабДок = Новый ТабличныйДокумент; Печать(ТабДок); Печать(ТабДок); ТабДок.Показать(); Однако следует иметь в виду, что инфраструктура печатных форм в типовых конфигурациях рассчитана именно на такой формат вызова процедур, как в оригинале (отсюда и процедуры экспортируемые) Потому для упражнений лучше скопировать исходный код процедуры Печать в другую процедуру с другим именем, да в ней и упражняться. Большое спасибо заа ответ, к сожалению дома нет 1С-ки, проэкспериментирую завтра на работе, не оставляйте меня, пожалуйста завтра с этой проблемой!!! Еще раз огромное спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2008, 19:25 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
а можно интересно в первой процедуре заремить ТабДок.Показать(); а во второй попробовать достучаться до нее, например Выборка.ПолучитьОбъект().Печать().ТабДок.Показать(); или Документы.Расходная.ТабДок.Показать(); или как можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2008, 20:30 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
pailМожно вынести ТабДок = Новый ТабличныйДокумент; и ТабДок.Показать() за пределы первой процедуры и передавать ей его как параметр: Процедура Печать(табДок) Экспорт и ТабДок = Новый ТабличныйДокумент; Печать(ТабДок); Печать(ТабДок); ТабДок.Показать(); Однако следует иметь в виду, что инфраструктура печатных форм в типовых конфигурациях рассчитана именно на такой формат вызова процедур, как в оригинале (отсюда и процедуры экспортируемые) Потому для упражнений лучше скопировать исходный код процедуры Печать в другую процедуру с другим именем, да в ней и упражняться. Спасибо огромное!!! С параметрами сработало!!! Объясните, пожалуйста, новичку еще - я привыкла работать с таблицами, т.е. создала таблицу - там формирую записи, а в 8-ке получается нет таблиц? Т.е. когда я создаю документ, то грубо говоря я тем самым формирую таблицу и получается сколько документов столько и таблиц? Что-то я в бестабличном варианте путаюсь и не понимаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 08:28 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
а как реализовать чтобы документ не разрывался, т.е. у меня сейчас когда выводятся все накладные на одном листе может часть документа остаться на одном листе, а что не поместилось - перенесется на другой, а как сказать программе, что если накладная не помещается чтобы весь документ переносился на другой лист? Пользуюсь получившимися процедурами: 1. Процедура ПечатьОдинЛист(ТабДок) Экспорт Макет = Документы.Расходная.ПолучитьМакет("Печать"); // Заголовок Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // Товары Область = Макет.ПолучитьОбласть("ТоварыШапка"); ТабДок.Вывести(Область); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Для Каждого ТекСтрокаТовары Из Товары Цикл ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); ТабДок.Вывести(ОбластьТовары); КонецЦикла; // Услуги Область = Макет.ПолучитьОбласть("УслугиШапка"); ТабДок.Вывести(Область); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); Для Каждого ТекСтрокаУслуги Из Услуги Цикл ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); ТабДок.Вывести(ОбластьУслуги); КонецЦикла; // Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Подвал); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; КонецПроцедуры 2. Процедура ДействияФормыНаОдномЛисте(Кнопка) ТабДок = Новый ТабличныйДокумент; Выборка=Документы.Расходная.Выбрать(ДатаНачала,КонецДня(ДатаОкончания)); Пока Выборка.Следующий() Цикл Выборка.ПолучитьОбъект().ПечатьОдинЛист(ТабДок); КонецЦикла; ТабДок.Показать(); КонецПроцедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 08:39 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Курить метод ПроверитьВывод() ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 10:06 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
ПЖКурить метод ПроверитьВывод() Уважаемый, ПЖ, объясните как и куда применить этот метод? я изучаю 1С8 (да и вообще 1С) всего 3-ий день, для меня "метод ПроверитьВывод()" это что-то космическое, даже не знаю что имеено проверять этим методом и где его реализовывать, 2 верхние процедуры - это с помощью мастера, где в них можно применить этот метод? они рабочие только где применить этот метод не представляю, помогите, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 10:16 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Пошаговая инструкция: ...в Конфигураторе 1.нажать Ctrl-Shift-F1 (одновременно 3 кнопки) 2. в окне Синтаксис-Помошник (СП) открыть закладку Индекс 3. Набрать там в строке поиска ПроверитьВывод 4. Внимательно почитать описание метода (это в нижнем окошке закладки) 5. Нажать в СП кнопочку с биноклем ("найти текущий элемент в дереве") Почитать описание других методов того же объекта. 6. подумать И учтите, милая... СП: - не кушает драгоценный трафик (ваш) - и не тратит время неопределенного числа пользователей этого форума ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 10:37 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
pailПошаговая инструкция: ...в Конфигураторе 1.нажать Ctrl-Shift-F1 (одновременно 3 кнопки) 2. в окне Синтаксис-Помошник (СП) открыть закладку Индекс 3. Набрать там в строке поиска ПроверитьВывод 4. Внимательно почитать описание метода (это в нижнем окошке закладки) 5. Нажать в СП кнопочку с биноклем ("найти текущий элемент в дереве") Почитать описание других методов того же объекта. 6. подумать И учтите, милая... СП: - не кушает драгоценный трафик (ваш) - и не тратит время неопределенного числа пользователей этого форума Спасибо большое за советы, я ими обязательно воспользуюсь, но возможно ответы на мой вопрос в этом форуме привлекут внимание и других пользователей, а не только мое, я очень благодарна всем кто мне помогает, но вопрос остается в силе. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 10:42 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
вот уважаемый pail стал на меня ругаться, я почитала хэлп, вот что у меня получилось, но подскажите, хоть, начинающему почему не работает? где не правильно? вот код который получился: Процедура ПечатьОдинЛистНеРазрывать(ТабДок) Экспорт Макет = Документы.Расходная.ПолучитьМакет("Печать"); СодержаниеСтр=Новый Массив; ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); ОбластьУслугиШапка = Макет.ПолучитьОбласть("УслугиШапка"); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); ОбластьПодвала = Макет.ПолучитьОбласть("Подвал"); // Заголовок Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // Товары Область = Макет.ПолучитьОбласть("ТоварыШапка"); ТабДок.Вывести(Область); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Для Каждого ТекСтрокаТовары Из Товары Цикл ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); ТабДок.Вывести(ОбластьТовары); КонецЦикла; // Услуги Область = Макет.ПолучитьОбласть("УслугиШапка"); ТабДок.Вывести(Область); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); Для Каждого ТекСтрокаУслуги Из Услуги Цикл ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); ТабДок.Вывести(ОбластьУслуги); КонецЦикла; // Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Подвал); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; Пока ТабДок. ПроверитьВывод (СодержаниеСтр) Цикл СодержаниеСтр.Добавить(ОбластьЗаголовок); // СодержаниеСтр.Добавить(ОбластьШапки); СодержаниеСтр.Добавить(ОбластьТоварыШапка); СодержаниеСтр.Добавить(ОбластьТовары); СодержаниеСтр.Добавить(ОбластьУслугиШапка); СодержаниеСтр.Добавить(ОбластьУслуги); СодержаниеСтр.Добавить(ОбластьПодвала); КонецЦикла; КонецПроцедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 10:58 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
я еще изменила прогу, теперь она выводит каждый из расходников на отдельном листе, ставит разрыв и выводит, помогите мне, подскажите, где я торможу? вот код: Процедура ПечатьОдинЛистНеРазрывать(ТабДок) Экспорт Макет = Документы.Расходная.ПолучитьМакет("Печать"); СодержаниеСтр=Новый Массив; ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); ОбластьУслугиШапка = Макет.ПолучитьОбласть("УслугиШапка"); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); ОбластьПодвала = Макет.ПолучитьОбласть("Подвал"); // Заголовок Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // Товары Область = Макет.ПолучитьОбласть("ТоварыШапка"); ТабДок.Вывести(Область); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Для Каждого ТекСтрокаТовары Из Товары Цикл ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); ТабДок.Вывести(ОбластьТовары); КонецЦикла; // Услуги Область = Макет.ПолучитьОбласть("УслугиШапка"); ТабДок.Вывести(Область); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); Для Каждого ТекСтрокаУслуги Из Услуги Цикл ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); ТабДок.Вывести(ОбластьУслуги); КонецЦикла; // Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Подвал); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; Если ТабДок.ПроверитьВывод(СодержаниеСтр) Тогда Пока ТабДок.ПроверитьВывод(СодержаниеСтр) Цикл СодержаниеСтр.Добавить(ОбластьЗаголовок); // СодержаниеСтр.Добавить(ОбластьШапки); СодержаниеСтр.Добавить(ОбластьТоварыШапка); СодержаниеСтр.Добавить(ОбластьТовары); СодержаниеСтр.Добавить(ОбластьУслугиШапка); СодержаниеСтр.Добавить(ОбластьУслуги); СодержаниеСтр.Добавить(ОбластьПодвала); КонецЦикла; ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; КонецПроцедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 11:26 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
я вот что поняла - не правильно я делаю, я пытаюсь поставить разрыв страницы там где идет формирование расходника, а его надо ставить где мы делаем ТабДок.Показать() - т.е. надо во второй процедуре, а вот как связать - ну не понимаю, не доходит, не бросайте!!! вот коды, которые надо поправить, пожалуйста... Процедура ПечатьОдинЛистНеРазрывать(ТабДок) Экспорт Макет = Документы.Расходная.ПолучитьМакет("Печать"); СодержаниеСтр=Новый Массив; ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); ОбластьУслугиШапка = Макет.ПолучитьОбласть("УслугиШапка"); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); ОбластьПодвала = Макет.ПолучитьОбласть("Подвал"); // Заголовок Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // Товары Область = Макет.ПолучитьОбласть("ТоварыШапка"); ТабДок.Вывести(Область); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Для Каждого ТекСтрокаТовары Из Товары Цикл ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); ТабДок.Вывести(ОбластьТовары); КонецЦикла; // Услуги Область = Макет.ПолучитьОбласть("УслугиШапка"); ТабДок.Вывести(Область); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); Для Каждого ТекСтрокаУслуги Из Услуги Цикл ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); ТабДок.Вывести(ОбластьУслуги); КонецЦикла; // Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Подвал); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; КонецПроцедуры я так понимаю надо разрыв и проверку ПроверкаВывод() и ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); делать здесь, но вот как... Процедура ДействияФормыНаОдномЛистеНеРазрывать(Кнопка) ТабДок = Новый ТабличныйДокумент; Выборка=Документы.Расходная.Выбрать(ДатаНачала,КонецДня(ДатаОкончания)); Пока Выборка.Следующий() Цикл Выборка.ПолучитьОбъект().ПечатьОдинЛистНеРазрывать(ТабДок); КонецЦикла; ТабДок.Показать(); КонецПроцедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 12:38 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Люди добрые, помогите!.... вы же умные, вам же просто, а я только начинаю понимать,можт я вам когда тоже пригожусь... я понимаю что если вывод ТабДок.Показать(); во второй процедуре, то проверка ПроверитьВывод тоже должна быть во второй, и разрыв страницы тоже во второй, но с другой строны я ведь могу проверить ПроверитьВывод только в первой процедуре, т.е. где идет формирование макета, в общем не знаю... я запуталась... не бросайте меня!!!!! пожалуйста... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 13:35 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
ну что Вы мне прямо байкот объявили!!! где я не права, вот чувствую истина где-то рядом, но не могу понять где... вот что у меня получилось (но почему-то опять ставит разрыв после каждого расходника): Модуль который формирует расходник: Процедура ПечатьОдинЛистНеРазрывать(ТабДок,СодержаниеСтр,Макет) Экспорт // Заголовок Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // Товары Область = Макет.ПолучитьОбласть("ТоварыШапка"); ТабДок.Вывести(Область); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Для Каждого ТекСтрокаТовары Из Товары Цикл ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); ТабДок.Вывести(ОбластьТовары); КонецЦикла; // Услуги Область = Макет.ПолучитьОбласть("УслугиШапка"); ТабДок.Вывести(Область); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); Для Каждого ТекСтрокаУслуги Из Услуги Цикл ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); ТабДок.Вывести(ОбластьУслуги); КонецЦикла; // Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Подвал); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецПроцедуры модуль из обработки, который формирует общий список расходников на листе: Процедура ДействияФормыНаОдномЛистеНеРазрывать(Кнопка) ТабДок = Новый ТабличныйДокумент; СодержаниеСтр=Новый Массив; Макет = Документы.Расходная.ПолучитьМакет("Печать"); Выборка=Документы.Расходная.Выбрать(ДатаНачала,КонецДня(ДатаОкончания)); Пока Выборка.Следующий() Цикл Выборка.ПолучитьОбъект().ПечатьОдинЛистНеРазрывать(ТабДок,СодержаниеСтр,Макет); КонецЦикла; ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); ОбластьУслугиШапка = Макет.ПолучитьОбласть("УслугиШапка"); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); ОбластьПодвала = Макет.ПолучитьОбласть("Подвал"); Если ТабДок.ПроверитьВывод(СодержаниеСтр) Тогда Пока ТабДок.ПроверитьВывод(СодержаниеСтр) Цикл СодержаниеСтр.Добавить(ОбластьЗаголовок); // СодержаниеСтр.Добавить(ОбластьШапки); СодержаниеСтр.Добавить(ОбластьТоварыШапка); СодержаниеСтр.Добавить(ОбластьТовары); СодержаниеСтр.Добавить(ОбластьУслугиШапка); СодержаниеСтр.Добавить(ОбластьУслуги); СодержаниеСтр.Добавить(ОбластьПодвала); КонецЦикла; //ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); тоже ставит разрыв после // каждого расходника КонецЕсли; ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); ТабДок.Показать(); ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2008, 15:38 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Люди, если Вы мне не поможите, значит мне будет секир-башка! После работы оставаться нельзя, взломать 8-ку невозможно, поэтому дома тоже ее нет, на работе еще 5 дельфийских проектов, которые надо поддерживать, причем самостоятельно надо изучать 8-ку, времени копаться просто нет, вот 3-ий день над этим сижу урывками, ничего не получается, в языке путаюсь, причем еще два табличных блока Товары и Услуги, которые тоже формируеются с разным количеством записей, как-то надо при формировании отслеживать ПроверитьВывод, но не укладывается в голове что именно надо, вот 2 кода - один из Обработки, другой из Модуля расходника, в паре они формируют вывод расходников в одном окне, как сделать чтобы расходник не разрывался? Модуль Расходника Процедура ПечатьОдинЛист(ТабДок) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать) // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! /////////////////////////////////// ТабДок = Новый ТабличныйДокумент; Макет = Документы.Расходная.ПолучитьМакет("Печать"); // Заголовок Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // Товары Область = Макет.ПолучитьОбласть("ТоварыШапка"); ТабДок.Вывести(Область); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Для Каждого ТекСтрокаТовары Из Товары Цикл ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); ТабДок.Вывести(ОбластьТовары); КонецЦикла; // Услуги Область = Макет.ПолучитьОбласть("УслугиШапка"); ТабДок.Вывести(Область); ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); Для Каждого ТекСтрокаУслуги Из Услуги Цикл ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); ТабДок.Вывести(ОбластьУслуги); КонецЦикла; // Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Подвал); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ////////////////////////////////////////////// ТабДок.Показать(); //}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ КонецПроцедуры Модуль Формы Обработки Процедура ДействияФормыНаОдномЛисте(Кнопка) ТабДок = Новый ТабличныйДокумент; Выборка=Документы.Расходная.Выбрать(ДатаНачала,КонецДня(ДатаОкончания)); Пока Выборка.Следующий() Цикл Выборка.ПолучитьОбъект().ПечатьОдинЛист(ТабДок); КонецЦикла; ТабДок.Показать(); КонецПроцедуры как их изменить?... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2008, 10:59 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Знатоки, а не плохо бы и правда поправить прогу, что-то и у меня не срабатывает как подобает ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2008, 12:56 |
|
Печать расходников на одном листе
|
|||
---|---|---|---|
#18+
Гостья777Люди, если Вы мне не поможите, значит мне будет секир-башка! После работы оставаться нельзя, взломать 8-ку невозможно, поэтому дома тоже ее нет, на работе еще 5 дельфийских проектов, которые надо поддерживать, причем самостоятельно надо изучать 8-ку, времени копаться просто нет, вот 3-ий день над этим сижу урывками, ничего не получается, в языке путаюсь, причем еще два табличных блока Товары и Услуги, которые тоже формируеются с разным количеством записей, как-то надо при формировании отслеживать ПроверитьВывод, но не укладывается в голове что именно надо, вот 2 кода - один из Обработки, другой из Модуля расходника, в паре они формируют вывод расходников в одном окне, как сделать чтобы расходник не разрывался? как их изменить?... попробуй как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2008, 13:00 |
|
|
start [/forum/topic.php?fid=28&fpage=172&tid=1524934]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
170ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 277ms |
0 / 0 |