|
|||
new1snik
30.05.13 – 15:25 |
Добрый день. |
||
ДенисЧ
1 – 30.05.13 – 15:25 |
В конфигурации. Ваш К.О. |
||
new1snik
2 – 30.05.13 – 15:26 |
(1)Где именно в конфигурации? |
||
ДенисЧ
3 – 30.05.13 – 15:27 |
(2) Во всей. Печатные формы могут быть почти в любом объекте метаданных |
||
drcrasher
4 – 30.05.13 – 15:27 |
смысл? |
||
new1snik
5 – 30.05.13 – 15:28 |
(3)То есть нет никакого единого места с ссылками на все созданные в конфигурации печатные формы? |
||
Maxus43
6 – 30.05.13 – 15:29 |
(5) нет. они и внешними быть могут ещё |
||
new1snik
7 – 30.05.13 – 15:33 |
А сейчас задам глупый вопрос, за который меня опять отправят к программистам, но все же. А где и как мне искать печатную форму, если известно только их название? Например, “Счет фактура” или “Товарная накладная”? |
||
rbcvg
8 – 30.05.13 – 15:35 |
(7) Контрл+Шифт+Ф |
||
del123
9 – 30.05.13 – 15:35 |
Проще всего смотреть в модуле, из которого эта форма печатается. |
||
Mitriy
10 – 30.05.13 – 15:37 |
(9) открою страшную тайну – в макетах ничего не печатается… даже в общих… |
||
del123
11 – 30.05.13 – 15:41 |
(10) я и не говорил что в них печатается, я указал место, где лежат макеты, по которым формируются печатные формы. |
||
Qaswer123
12 – 30.05.13 – 15:44 |
(0) Зачем они тебе? |
||
Coole
13 – 30.05.13 – 15:51 |
(0) конфа какая? смотри Общие – Общие макеты. |
||
Qaswer123 14 – 30.05.13 – 16:01 |
(7) Когда ты нажимаешь кнопку “Печать” происходит обращение к функции из модуля объекта. Эта функция выбирает нужный макет и заполняет его. Макет может находится как в ветке объекта (СчетФактураВыданный->Макеты->НужныйМакет), так и в “Общих макетах”. Если это внешняя печатная форма, то макет может храниться прямо в ней. |
TurboConf — расширение возможностей Конфигуратора 1С
Откроем в конфигураторе окно редактирования объекта конфигурации Документ «ПриходнаяНакладная». Перейдем на закладку «Макеты», нажмем кнопку «Конструкторы» и запустим конструктор печати.
В открывшемся окне конструктора на первом шаге укажем, что будет создана новая команда «Печать» для формирования печатной формы документа:
На втором шаге определим реквизиты документа, которые будет содержать шапка печатной формы:
На третьем шаге определим, что все реквизиты табличной части будут отображены в печатной форме:
На четвертом шаге конструктор предложит сформировать подвал печатной формы. Ничего не указываем (подвал использовать не будем) и переходим к следующему шагу.
Здесь ничего не меняем, тем самым согласимся с тем, что команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел «Важное».
Нажмем OK. В конфигураторе откроется модуль команды «Печать», модуль менеджера документа «ПриходнаяНакладная» и макет этого документа.
Модуль команды Печать
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ТабДок = Новый ТабличныйДокумент; Печать(ТабДок, ПараметрКоманды); ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать(); КонецПроцедуры &НаСервере Процедура Печать(ТабДок, ПараметрКоманды) Документы.ПриходнаяНакладная.Печать(ТабДок, ПараметрКоманды); КонецПроцедуры
Модуль менеджера документа
Процедура Печать(ТабДок, Ссылка) Экспорт Макет = Документы.ПриходнаяНакладная.ПолучитьМакет("Печать"); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ПриходнаяНакладная.Дата, | ПриходнаяНакладная.Номер, | ПриходнаяНакладная.Склад, | ПриходнаяНакладная.Материалы.( | НомерСтроки, | Материал, | Количество, | Цена, | Сумма | ) |ИЗ | Документ.ПриходнаяНакладная КАК ПриходнаяНакладная |ГДЕ | ПриходнаяНакладная.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьМатериалыШапка = Макет.ПолучитьОбласть("МатериалыШапка"); ОбластьМатериалы = Макет.ПолучитьОбласть("Материалы"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьМатериалыШапка); ВыборкаМатериалы = Выборка.Материалы.Выбрать(); Пока ВыборкаМатериалы.Следующий() Цикл ОбластьМатериалы.Параметры.Заполнить(ВыборкаМатериалы); ТабДок.Вывести(ОбластьМатериалы, ВыборкаМатериалы.Уровень()); КонецЦикла; ВставлятьРазделительСтраниц = Истина; КонецЦикла; КонецПроцедуры
Макет документа
Редактирование макета
Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним пункт главного меню Таблица > Имена > Назначить имя. Назовем область Всего
, нажмем ОК.
В созданной области, в колонке Цена
, напишем ВСЕГО
, а в колонке Сумма
напишем ВсегоПоДокументу
:
Вызвав палитру свойств для последней заполненной нами ячейки, в свойстве Заполнение
укажем, что в этой ячейке будет находиться не текст, а параметр.
Откроем модуль менеджера документа «ПриходнаяНакладная», найдем в нем процедуру Печать
и отредактируем ее следующим образом
Процедура Печать(ТабДок, Ссылка) Экспорт Макет = Документы.ПриходнаяНакладная.ПолучитьМакет("Печать"); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ПриходнаяНакладная.Дата, | ПриходнаяНакладная.Номер, | ПриходнаяНакладная.Склад, | ПриходнаяНакладная.Материалы.( | НомерСтроки, | Материал, | Количество, | Цена, | Сумма | ) |ИЗ | Документ.ПриходнаяНакладная КАК ПриходнаяНакладная |ГДЕ | ПриходнаяНакладная.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьМатериалыШапка = Макет.ПолучитьОбласть("МатериалыШапка"); ОбластьМатериалы = Макет.ПолучитьОбласть("Материалы"); // получаем область макета «Всего» ОбластьВсего = Макет.ПолучитьОбласть("Всего"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; // цикл по документам (на случай печати списка) Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьМатериалыШапка); ВыборкаМатериалы = Выборка.Материалы.Выбрать(); // сумма табличной части документа СуммаИтог = 0; Пока ВыборкаМатериалы.Следующий() Цикл ОбластьМатериалы.Параметры.Заполнить(ВыборкаМатериалы); ТабДок.Вывести(ОбластьМатериалы, ВыборкаМатериалы.Уровень()); // увеличиваем сумму на каждой итерации СуммаИтог = СуммаИтог + ВыборкаМатериалы.Сумма; КонецЦикла; // устанавливаем значение параметра области ОбластьВсего.Параметры.ВсегоПоДокументу = СуммаИтог; // выводим область макета «Всего» ТабДок.Вывести(ОбластьВсего); ВставлятьРазделительСтраниц = Истина; КонецЦикла; КонецПроцедуры
Поиск:
1С:Предприятие • Документ • Макет • Печать
Вопрос по макету в конфигураторе
Автор plazma, 28 ноя 2012, 16:15
0 Пользователей и 1 гость просматривают эту тему.
Доброго времени суток. Проблема заключается в следующем:
1. В свое время в макет счета на оплату покупателя мы добавили печать и подписи руководителей. Макет присутствовал и проблем ни каких не было. Отсканировали печать, подписи – зашли в конфигуратор все добавили, обновили и вуаля на счете все есть и печать и подписи.
2. В данный момент потребовалось добавить еще информации в счет на оплату покупателя. Заходим в конфигуратор, открываем макет – а его там нет.
3. При прочих равных счет продолжает выходить с печатью и подписями.
ВОПРОС?
Хде макет? Как можно его найти(именно тот который был, он же где то есть раз печатает)и вернуть на место для дальнейшего редактирования?
Прошу не предлагать варианты создания нового макета. Необходимо найти старый.
За ранее спасибо!
Ну так посмотрите в отладчике, что там на самом деле происходит, какой именно вызывается макет при печати…
Цитата: sadovod от 28 ноя 2012, 19:52
Ну так посмотрите в отладчике, что там на самом деле происходит, какой именно вызывается макет при печати…
Спасибо за ответ. К сожаленю очень плохо владею программой. Если можете помочь, помогите решить проблему полностью.
Может :
Ветка Общее – Общие макеты – СчетЗаказ
Это не он?
Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!
Любая информационная система должна уметь выводить данные в нужном для пользователей разрезе. В 1С для этого используются отчеты и печатные формы, а одним из способов их формирования является заполнение макетов нужными данными. Макеты используются повсеместно и необходимо знать хотя бы основные приемы работы с ними.
Как сделать макет в 1С 8.3
Сами макеты представляют собой шаблоны, по которым платформа 1С формирует отчеты или печатные формы с различными данными. В конфигурации 1С вы можете добавить макет практически к любому объекту, чтобы использовать его при выводе на печать. Также они используются во внешних обработках и отчетах, если в вашей конфигурации подключена библиотека стандартных подсистем. Рассмотрим процесс на примере добавления макета для печатной формы для документа «ПоступлениеТоваровУслуг» конфигурации без поддержки.
Если же ваша конфигурация типовая и находится на поддержке 1С, то при внесении в нее изменений придется ее снять с поддержки. Именно поэтому добавление печатной формы с использованием макета часто осуществляют с помощью внешних печатных форм. Процесс создания макета в конфигурации ничем не отличается, поэтому рассмотрим пример с изменением конфигурации. Чтобы создать макет в 1С 8.3 необходимо на подразделе «Макеты» щелкнуть ПКМ и выбрать «Добавить».
В появившемся окне нужно задать имя макета, по которому вы будете обращаться к нему в коде. Синоним платформа автоматически предложит совпадающий с именем, но при желании вы можете его изменить. В качестве типа макета для наших целей подходит «Табличный документ». После установки перед вами откроется окно, похожее на обыкновенный лист Excel.
Теперь настает этап составления той формы отчета, которую мы хотим видеть в качестве конечного результата. В 1С принято составлять табличные документы из областей, в которых расположены переменные, куда и помещаются данные из документов. Чтобы создать новую область с определенным названием необходимо:
- Выделить 1 или несколько ячеек, столбцов или строк;
- В основном меню перейти по пути: «Таблица» – «Имена» – «Назначить имя…»;
- Указать имя. Создадим «шапку» документа, где обычно указывают номер и дату.
Теперь при обращении по выбранному имени 1С будет понимать, о какой области идет речь. Добавим переменных в нашу область для вывода конкретных данных. Для этого в 2 ячейках напишем «Документ №» и «Номер». Пока это просто надписи, которые можно лишь вывести на экран пользователю неизменными.
Теперь объясним 1С, что «Номер» – это переменная. Для этого зайдем в контекстное меню на ячейку с этой надписью и выберем «Свойства». В палитре свойств отыщем пункт «Заполнение» и переведем его в значение «Параметр». В макете мы сразу же увидим изменение отображения ячейки с номером, так как угловые скобки – признак параметра.
Есть и третий тип заполнения ячеек – шаблон. Если вы выставите его, то 1С будет воспринимать содержимое ячейки как текст с параметром, выделенным квадратными ячейками. Обращаться к таким переменным можно таким же способом, как и к обычным параметрам. Этих знаний достаточно, чтобы сформировать до конца простой макет.
Как изменить макет в 1С 8.3
Разработчики 1С потрудились над тем, чтобы макеты 1С смогли удовлетворить разнообразные требования к печатным формам. При этом настройка макета 1С с нуля не займет у программиста много времени. При наведении на конкретную кнопку меню отобразится подсказка с описанием ее действия.
К тому же есть возможность расположить управляющие элементы так, как удобно именно вам.
Чтобы сделать какое-либо изменение макета в 1С, нужно сначала найти этот макет. Если это внешняя обработка или отчет – ищите его в файле, в другом случае он встроен в конфигуратор. Если в структуре объекта нет макетов, то попробуйте разобраться, где вызывается функция вывода на печать и понять, где расположен шаблон. После того как нашли шаблон, ничего не мешает приступить к возможным изменениям:
- Добавить текст или новые параметры. Заполняются параметры в коде – без изменения алгоритма вывода вы не увидите новую переменную;
- Изменить шрифт текста, его размер, стиль, фон и выравнивание. Применяется как к конкретной ячейке, так и к выделенной области;
- Добавить разнообразные выделения границ между ячейками;
- Вставить картинку, диаграмму и многие другие объекты. Причем добавлять можно и предустановленные в 1С, и с вашего локального компьютера;
- Запрещать изменения ячеек. Для этого необходимо выделить участок и в контекстном меню в свойствах выбрать опцию «Защита». Для включения режима необходимо будет еще и в алгоритме вывода печатной формы запустить соответствующую настройку;
ТабличныйДокумент.Защита = Истина;
- Объединить/разъединить ячейки по горизонтали и вертикали;
- Изменить ширину столбцов отдельных строк. Для этого необходимо выделить одну или несколько строк и изменить ширину столбца. Платформа 1С попросит подтвердить изменение формата строк и в макете появятся столбцы разной ширины. Данный функционал позволяет не мучиться с объединением столбцов.
Помните, что нельзя удалять переменные из макета без предварительного изменения кода, даже если они вам не нужны. К ним идет обращение при выполнении алгоритма печати, поэтому если 1С их не найдет, печатная форма перестанет работать. Чтобы убрать их без вмешательства в код, вы можете просто изменить цвет текста на белый. Но лучше все-таки избавиться от их использования – это упростит макет и алгоритм формирования печатной формы.
Невысокие требования к знаниям сказываются на том, что печатные формы и отчеты – первые задачи, которые даются начинающим специалистам 1С. А постоянное использование макета в 1С любой конфигурации говорит о том, что опыт работы с этим объектом платформы пригодится каждому. Именно поэтому ознакомиться с базовыми методами работы с макетом не будет лишним.
При помощи табличных документов, в 1С можно организовывать вывод печатных форм. В этой статье мы научимся создавать макеты табличных документов объектов, на примере макета печатной формы документа.
Чтобы при помощи табличного документа вести какую-то печатную форму, необходимо создать макет табличного документа. Научимся создавать макеты конкретных объектов (справочники, документы). Для этого в конфигураторе 1С нужно выделить ветку «Макеты» ветки соответствующего объекта, вызвать правой клавишей мышки контекстное меню
После выполнения команды откроется конструктор 1С, где можно поменять название макета, но необходимо оставить тип макета «Табличный документ».
Нажимаем кнопку «Готово», после этого будет создан макет табличного документа, который имеет форму таблицы.
Этот макет состоит из строк, столбцов и ячеек. Каждая ячейка имеет свои свойства. Для того, чтобы открыть палитру свойств ячейки, необходимо выделить нужную ячейку, вызывать контекстное меню, и в этом меню выполнить команду «Свойства».
В палитре свойств ячейки можно осуществлять различные настройки, мы же заполним текст ячейки.
Этот текст отобразится в нашей ячейки, и вы заметили, что он как бы сдвинулся относительно самой ячейки. И у нас автоматически появились пунктирные линии. Пунктирные линии ограничивают область, которая выведется на печать. И как вы видите на предыдущей картинке, наш текст немного сдвинулся относительно пунктира. Это значит, что мы хоть и увидим весь текст при просмотре, на печать выйдет только та часть текста, что была до пунктира.
В том случае, когда текст не помещается в ячейку (как у нас сейчас), сделать так, чтобы он весь отображался можно двумя способами: расширить саму ячейку и объединить ячейки.
Объединим ячейки. Для этого выделим нужную область, вызовем контекстное меню и выполним команду «Объединить»
После этого, ячейки, куда входит наша строка, объединятся, а линии печати сдвинутся.
Области макета табличного документа 1С
В макете табличного документа существует возможность задать области. Для чего нужны области? Для того, чтобы более оптимально работать с макетом в программном коде: мы можем несколько раз получать одну и туже область и выводить её в результирующем табличном документе (по сути, на печать).
Зададим в нашем макете табличного документа три области: Шапка, ШапкаТаблицы, СтрокаТаблицы и Подвал. Это будут области строк.
Для того, чтобы задать область, необходимо выделить нужное количество строк (или столбцов), из которых мы хотим сделать область, после выполнить команду «Назначить имя» (Главное меню – Таблица – Имена).
После этого нужно указать имя области (все имена в макете должны быть уникальны)
После этого внешний вид нашего макета изменится – слева появится название области.
После того, как мы добавим ещё три области, наш макет табличного документа будет выглядеть следующим образом.
Области Шапка, ШапкаТаблицы и Подвал будут выводится один раз, а область СтрокаТаблицы будет выводится столько раз сколько строк в табличной части документа.
В нашей выводимой таблице будет 5 столбцов: номер, номенклатура, количество, цена и сумма. Оформим теперь шапку таблицы, написав название каждого столбца. Также мы расширим или сузим ячейки для более удобного просмотра. И сдвинем наш заголовок в шапке на одну ячейку влево (для этого нужно выделить объединенные ячейки и перетащить их мышкой влево)
Параметры макета табличного документа
В область СтрокаТаблицы скопируем те же названия, что из области шапки (кроме №, его так и назовем НомерТаблицы), но это у нас будут не просто названия, а параметры, в которые мы будем передавать данные, при формировании табличного документа. Для того, чтобы сделать данные названия параметрами, первым делом выделим все заполненные ячейки области СтрокаТаблицы, вызовем контекстное меню и выполним команду свойства.
У свойств всех пяти ячеек мы изменим одно только свойство Заполнение — выберем у него значение Параметр.
После этого вид нашего макета табличного документа опять изменится.
Теперь нам осталось сделать нашу таблицу таблицей в прямом смысле. Для этого нужно выделить каждую ячейку шапки и строки (удерживаете клавишу CTRL, кликаете по каждой ячейке мышкой, тогда будет выделена каждая ячейка в отдельности), вызвать, уже знакомым способом, контекстное меню, и в группе Оформление, изменить параметр Обвести.
После этих действий, все нужные ячейки будут обведены.
Печатная форма почти готова, нам осталось сделать, чтобы в шапке вместе с поступлением товара выходил номер и дата документа. Для этого мы выделим ячейку, где введен тест «Документ…» вызовем контекстное меню и в свойстве Заполнение укажем значение Шаблон.
И в тексте ячейки укажем параметры, в которые будем передавать значения. Если в тексте шаблона мы указываем какое-то слово в квадратных скобках, то в эту «переменную» будут переданы параметры при формировании отчета.
Я добавил левую ячейку в объединение ячеек. Чтобы это сделать нужно снять объединение, и создать новое объединение ячеек с еще одной ячейкой.
Всё наш макет готов, в следующей статье научимся выводить его на печать.
Простой пример вывода на печать:
Вывод на печать табличного документа в 1С 8.3
Пример вывода на печать, с использованием команды объекта:
Вывод на печать табличного документа в 1С 8.3. Используем команды объектов
Вывод табличного документ на управляемой форме
Табличный документ на управляемой форме 1С 8.3
Использование расшифровки табличного документа
Расшифровка в табличном документе 1С 8.3
Как использовать расшифровку табличного документа на управляемой форме 1С
Расшифровка в табличном документе на управляемой форме 1С 8.3
Более подробно и основательно работа с печатными формами в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009