Как напечатать выделенный фрагмент в 1с
В 1С Предприятии для представления табличной информации существует специальный вид файлов "Табличный документ". Файлы могут быть созданы в 1С Конфигураторе или в 1С Предприятии. Для создания новых файлов необходимо перейти в главном меню Файл->Новый. В языке программирования 1С существует одноименный объект ТабличныйДокумент, который позволяет программно создавать, сохранять и выводить табличные документы.
Область печати
В табличном документе может быть определена область печати. В этом свойстве можно указать ту область, которая будет напечатана на принтере. Такое может потребоваться если нужно распечатать часть документа. Это можно сделать двумя способами. Задать можно только одну область.
1. Через пользовательские настройки
Область печати может быть задана непосредственно через главное меню Таблица->Настройка печати->Задать область печати. Так же через главное меню можно удалить область печати Таблица->Настройка печати->Удалить область печати. Добавляемая и удаляемая области должны быть выделены.
На печать будет выведена 3 строка с 1 по 7 колонку. Остальные области будут проигнорированы.
2. Средствами встроенного языка
Другой вариант определить область печати - программный. Используя объект встроенного языка ТабличныйДокумент, можно задать какую область печатать. Для этого есть специальное свойство ОбластьПечати. В этом свойстве определяется ОбластьЯчеекТабличногоДокумента, которая будет печататься.
Следует учесть, что при программном выводе одного табличного документа в другой свойство ОбластьПечати затирается. Так же происходит при определении области печати в макете и последующем выводе макета в табличный документ. Поэтому область печати нужно задавать в результирующем табличном документе.
Повторяющаяся область печати
Табличный документ широко применяется при создании печатных форм. Довольно часто, при создании печатных форм может потребоваться повторять какую либо информацию вверху на каждой последующей странице. Например, это может быть шапка таблицы. Задать можно только одну область.
1. Через пользовательские настройки
Повторяющуюся область можно задать через главное меню Таблица->Настройки печати->Повторять на каждом листе. Для удаления области, в главном меню нужно выбрать Таблица->Настройки печати->Удалить повторение. Добавляемая и удаляемая области должны быть выделены.
На всех последующих страницах, вверху, будет повторяться вывод 3 строки. Остальные области будут выводиться как обычно.
2. Средствами встроенного языка
Для решения задачи вывода повторяющейся области, в объекте ТабличныйДокумент есть специальные свойства: ПовторятьПриПечатиСтроки и ПовторятьПриПечатиКолонки. Как видно из названия, в первом свойстве ПовторятьПриПечатиСтроки определяется область строк (тип: ОбластьЯчеекТабличногоДокумента, задается только номерами строк), а во втором ПовторятьПриПечатиКолонки задается область колонок (тип: ОбластьЯчеекТабличногоДокумента, задается только номерами колонок).
Следует учесть, что при программном выводе одного табличного документа в другой, свойства ПовторятьПриПечатиСтроки и ПовторятьПриПечатиКолонки затираются. Так же происходит при определении повторяющихся областей печати в макете и последующем выводе макета в табличный документ. Поэтому эти свойства нужно задавать в результирующем табличном документе.
Комментарии (1)
(3)Сделал по его образцу в ЗУП 3.1 но выходит ошибка:
А вот исходная процедура:
Не в курсе что это может быть? И как правильно передать в новую БСП объекты печати?
Проверь наличие Ключевых Параметров Форма
ДополнительнаяОбработкаСсылка типа СправочникСсылка.ДополнительныеОтчетыИОбработки
ИдентификаторКоманды тип строка
ИмяФормы тип строка
ОбъектыНазначения произвольный
Отладчиком на данной строке. и открывай ВПФ.
Выделение строк в форме происходит на клиенте и в объекте "Форма", а печать - на сервере и через запрос к базе данных. Возможно, наверное, передать в процедуру печати номера выделенных строк, а уже по этим номерам создать запрос к базе данных и процедуру печати передать в процедуру печати номера выделенных строк собственно, в передаче вся сложность, поэтому и посчитал, что передать массив строк во внешнюю печатную форму проще, чем разобраться с каскадом заумных стандартных обработчиков. Тем более, что надо ещё обрабатывать ситуацию "выделена одна строка". Тем более, что надо ещё обрабатывать ситуацию "выделена одна строкаЗачем? Достаточно использовать массив с одним элементом. (11) В интерфейсном смысле - когда пользователь вызывает отдельную форму для печати выделенных строк, он понимает, что напечатается одна выделенная строка, а не весь документ. (9)да именно, что сложность в передаче. Теоретически можно передать массив сотрудников через стандартные процедуры печати, которые создают структуры и запихивают в них одни и те же данные несколько раз, но это, наверное, не самое изящное решение Массив выделенных строк можно получить на клиенте через:
Этот массив строк передается в процедуру печати на сервер, где строится запрос с условием:
Все. Только нужно учесть, что в МассивеСтрок хранятся индексы, а не номера строк.
Здесь "Материалы" - это табличная часть "Материалы" документа "ПоступлениеМЗ". В ЗУПе табличная часть будет иметь другое название, например: "Сотрудники".
Использование области печати и повторяющихся областей печати табличного документа
Табличный документ предоставляет возможность указать область, которая будет выводиться на печать, а также указывать области, которые будут выводиться на каждой странице. В данной статье рассматривается управление данными свойствами табличного документа из встроенного языка 1С:Предприятия 8.
Область печати
Область печати табличного документа отвечает за то, что будет выдаваться на принтер при печати данного табличного документа.
Во встроенном языке область печати представляется свойством табличного документа ОбластьПечати . Данное свойство имеет тип ОбластьЯчеекТабличногоДокумента . В качестве области для данного свойства может выступать только область ячеек самого табличного документа. Т.е. для данного свойства нельзя использовать область ячеек другого табличного документа.
Пример установки области печати:
В данном примере табличному документу устанавливаются в качестве области печати строки с 5-й по 10-ю включительно. Т.е. при печати данного документа будет распечатаны только эти строки.
Отметим, что данное свойство не копируется при выводе одного табличного документа в другой. По этому, устанавливать данное свойство нужно именно в том документе, который будет показан пользователю, т.к. установка данного свойства, например, в макете должного эффекта не даст.
Повторяющиеся области печати
Повторяющиеся области печати используются для того, чтобы некоторые области табличного документа распечатывались на каждой странице. Наиболее распространенный пример применения повторяющихся при печати областей - печать шапки таблицы на каждой странице.
Повторяющиеся на каждой странице области бывают двух видов: повторяющиеся строки и повторяющиеся колонки. Данные области во встроенном языке представляются свойствами ПовторятьПриПечатиСтроки и ПовторятьПриПечатиКолонки . Они имеют тип ОбластьЯчеекТабличногоДокумента . В качестве области для данных свойств могут выступать только области ячеек самого табличного документа. Т.е. для данного свойства нельзя использовать область ячеек другого табличного документа. Причем, для свойства ПовторятьПриПечатиСтроки могут быть использованы только области - строки, а для свойства ПовторятьПриПечатиКолонки - только области - колонки. Использование прямоугольных областей табличного документа для данных свойств недопустимо.
Пример установки повторяющихся строк:
В данном примере, на каждой печатаемой странице табличного документа будут выводиться строки с 5-й по 10-ю включительно.
Пример установки повторяющихся колонок:
В данном примере, на каждой печатаемой странице табличного документа будет выводиться первая колонка табличного документа.
Отметим, что данные свойства не копируется при выводе одного табличного документа в другой. По этому, устанавливать данные свойства нужно именно в том документе, который будет показан пользователю, т.к. установка данного свойства, например, в макете должного эффекта не даст.
От простой для отдельных компаний до комплексной автоматизации крупных холдингов.
Сдача регламентированной отчетности в соответствии с законодательством РФ.
Печать документов в программах «1С:Предприятие» осуществляется аналогично другим программам, но у пользователей могут возникать вопросы, связанные со спецификой настроек, например, печатной формы или параметров страницы, а также о выводе на печать необходимых реквизитов и т.п. Рассмотрим настройку и печать документов на примере программы «1С:Бухгалтерия предприятия 3.0».
Настройка печатного документа
Собравшись распечатать документы, первое, что необходимо сделать – сформировать печатную форму со всеми заполненными реквизитами. Большинство документов имеют обязательные реквизиты, например, подписи ответственных лиц. Для того чтобы они проставлялись в печатной форме по умолчанию, их необходимо заполнить в сведениях об организации через «Главное» - «Реквизиты организации».
Открыв раздел «Подписи», необходимо указать данные руководителя, главного бухгалтера и кассира. Если ответственные лица меняются, историю их изменения можно посмотреть, нажав гиперссылку «История». Это актуально, если нужно распечатать документы до определенного числа за подписью одного ответственного лица, а после определенной даты должна проставляться подпись другого ответственного лица.
Также необходимо заполнить данные ответственных лиц за подготовку отчетов через гиперссылку «Ответственные лица за подготовку отчетов». Эти данные будут автоматически попадать в сформированную печатную форму отчета.
Например, в печатной форме документа «Расходный кассовый ордер» отразились заполненные ранее данные ответственных лиц.
При заполнении документов важно обратить внимание на то, что для формирования печатной формы могут быть предусмотрены отдельные закладки, где вносят дополнительные данные. Например, в инвентаризационной описи или в актах на списание членов комиссии необходимо указать на отдельной закладке.
Если данные не будут заполнены, поля в печатной форме останутся пустыми.
Печать табличного документа 1С. Параметры печати
Все печатные формы документов или отчетов в 1С представлены в виде таблиц, и зачастую пользователь сталкивается с тем, что документ не помещается на лист, выходит за границы печати, разделяет отчет на два листа. В таких случаях перед печатью рекомендуется воспользоваться кнопкой «Предварительный просмотр документа». Она есть в любой печатной форме документа или отчета. Нажав ее, можно увидеть, как документ будет располагаться на листе бумаги и, допустим, сменить ориентацию документа.
В нижней части листа при этом можно увидеть, на скольких страницах помещается отчет или документ. Бывает, что за пределы листа выходит одна колонка, и пользователю было бы удобнее, если бы документ влезал полностью на один лист. Для настройки параметров в любой печатной форме имеется кнопка «Параметры страницы». Нажав ее, мы сможем настроить параметры для вывода на печать формы документа или отчета.
- Масштаб. Первая настройка, на которую следует обратить внимание. Автоматически программа устанавливает масштаб 100%, но при необходимости мы можем установить переключатель в положение «По ширине листа». В этом случае наша печатная форма автоматически разместится по ширине листа.
- Ориентация. При необходимости пользователь может задать ориентацию «Портрет» – вертикальное размещение, или «Альбомная» – горизонтальное размещение, для оптимального размещения документа на печатном листе.
- Поля. Бывает, что документ выходит за пределы полей немного, и чтобы не изменять масштаб документа, можно попробовать уменьшить отступы полей или увеличить отступ поля слева. Это поле необходимо для подшивки документов. Если оно будет сильно уменьшено, часть документа в подшивке окажется нечитаемой. Рекомендуется левое поле устанавливать примерно 3 сантиметра (поля в настройке указаны в миллиметрах).
- Экземпляров на странице. В этой настройке можно задать, сколько экземпляров разместить на одной странице. Установка переключателя в положение «Авто» приведет к автоматическому подбору, иначе – на лист будет выводиться по одному экземпляру. Этой настройкой удобно пользоваться при выводе на печать небольших документов, например расчетные листки сотрудников.
- Колонтитулы. Определяют размер печатной области листа. При необходимости мы можем уменьшить их размер.
- Чередование страниц и двусторонняя печать. Данные параметры позволяют распечатать документы с двух сторон листа. Актуально при больших объемах информации.
«Предварительный просмотр. » и «Параметры страницы. » доступны в главном меню программы в пункте «Файл». Для доступа к ним надо находиться в печатной форме документа. Но способ открыть их непосредственно из формы более простой.
Настроив параметры страницы и нажав «Печать», мы выбираем принтер, задаем количество экземпляров и, если надо, диапазон печати.
В данном примере на печать выводятся страницы с 3 по 5 и 10 страница.
Ошибки печати
Бывает, пользователь отправляет на печать документ, а программа или выдает ошибку, или вообще ничего не происходит. Причиной этому может быть то, что у пользователя изменился принтер, например, его переустановили. Программа по умолчанию обращается к тому принтеру, на который ранее отправляли печатать документы. Изменение принтера в параметрах печати может не дать результата и выдавать ошибку печати. В этом случае необходимо сбросить настройки печати. Для этого зайдем в пункт меню «Администрирование» - «Настройки пользователей и прав».
Переходим по гиперссылке «Настройки пользователей».
На закладке «Прочие настройки» для выбранного пользователя выделить строку «Настройки печати табличных документов» и нажать кнопку «Очистить».
После сброса настроек следует еще раз изменить принтер в меню «Параметры страницы».
При работе с программой 1С через браузер может возникнуть ситуация, когда вместо печати документ сохраняется в формат PDF. В некоторых браузерах такое бывает, когда принтер не подключен. В этом случае необходимо проверить установлен ли принтер. При нажатии на «Печать» или «Предварительный просмотр» появится окно печати документа, где, нажав кнопку «Изменить», указываем нужный принтер. Окно выглядит иначе, чем в программе 1С, так как браузер имеет свои настройки печати.
Зачастую ошибки, возникающие при печати документов из 1С, непосредственно с работой программы не связаны. Их самой частой причиной становятся сбои в работе сети, неверные настройки принтера или сетевого доступа к принтерам. Реже проблемы печати возникают из-за ошибок в коде программы, но разработчики сразу их ликвидируют.
Редактор текста и модуля — это один из инструментов разработки. Он используется для редактирования текстовых документов и для редактирования программных модулей конфигурации.
Редактор текстов и модулей предоставляет пользователю все основные функции, необходимые при редактировании как простых текстов, так и текстов программных модулей. Конфигуратор 1С:Предприятия 8 использует этот редактор в двух режимах:- для редактирования текстовых документов;
- для редактирования текстов модулей (как составную часть редактора формы).
Редактирование текстовых документов
В режиме редактирования текстовых документов редактор поддерживает все стандартные функции редактирования текста:- создание нового документа или открытие одного из существующих документов;
- ввод и редактирование текста;
- сохранение отредактированного текста;
- печать текста.
В процессе редактирования текста можно переходить к конкретной строке документа, сдвигать блоки текста на позицию табуляции, выполнять поиск и замену и использовать закладки. Закладки могут быть размещены на любой строке текста:
В дальнейшем быстрый переход по закладкам возможен по сочетанию клавиш или команде меню:
Редактирование текстов модулей
Редактирование текстов модулей может выполняться в процессе создания формы объекта прикладного решения, непосредственно при разработке модулей объектов или всего приложения, и при редактировании внешнего текстового файла, содержащего текст модуля.
Помимо стандартных действий, присущих любому текстовому редактору, редактор текстов и модулей имеет ряд специфических особенностей:
Выделение цветом синтаксических конструкций
Для удобства редактирования текстов модулей редактор выделяет цветом элементы встроенного языка: ключевые слова, языковые константы, операторы, комментарии и пр.:
Разработчик может использовать цвета выделения, установленные по умолчанию, или настроить их самостоятельно. В общем случае система сама отслеживает необходимость включения режима выделения цветом. Однако в ситуации, когда система «не знает» о том, что редактируется текст модуля (например, если редактируется внешний текстовый файл, содержащий текст модуля), разработчик может включить режим выделения цветом вручную, используя меню конфигуратора:
Группировка
При просмотре модулей редактор позволяет объединять некоторые синтаксические конструкции языка в группы, сворачивать и разворачивать их. Использование группировки синтаксических конструкций позволяет лучше воспринимать различные части текста, а также переносить и копировать группы целиком:
Свернутый текст замещается специальным маркером, который позволяет просмотреть содержимое свернутой группы в виде подсказки:
Разработчику предоставляется возможность настраивать режим группировки, указывая, какие синтаксические конструкции могут группироваться, и каким должно быть исходное состояние группировки (свернутая или развернутая) при открытии документа. Таким образом, он может настроить, например, использование группировок «по максимуму»:
Области
Разработчик может выделять произвольные области текста, группировать и сворачивать их подобно тому, как сворачиваются инструкции циклов, условий, процедур и функций.
Каждой области текста, которую выделяет разработчик, он может дать собственное имя. Это позволяет простым и понятным образом выделять части модуля, имеющие сходный смысл.
Области могут быть вложены друг в друга или в другие группируемые конструкции языка.
Операции с блоками
Редактор позволяет выполнять ряд операций над выделенными блоками текста модуля: автоматическое форматирование, изменение отступа, добавление/удаление комментариев и переносов строк.
Форматирование модуля
Хорошим стилем написания модулей считается использование синтаксического отступа для выделения управляющих конструкций встроенного языка. Редактор позволяет автоматически форматировать текст при его вводе, и кроме этого, выполнять автоматическое форматирование уже введенного текста.
Результат автоматического форматирования:
Увеличение/уменьшение отступа
Наряду с автоматическим форматированием всего выделенного текста, редактор поддерживает также операции сдвига выделенного блока вправо или влево на шаг табуляции.
Это облегчает ручное форматирование больших фрагментов кода.
Добавление/удаление комментариев
Также редактор содержит очень удобную для разработчика функцию автоматической (одним нажатием мыши) установки и снятия комментариев на выделенный текст. Такая возможность часто используется при отладке модулей:
Добавление/удаление переноса строки
Использование добавления и удаления переноса строки часто применяется при переносе текстов запроса между модулем и, например, консолью запросов.
Таким образом, отладив запрос в консоли запросов, разработчик может просто скопировать текст запроса из консоли, вставить его в модуль и одним движением добавить перенос строки ко всем строкам текста запроса:
Переход по процедурам и функциям
В ситуации, когда модуль содержит большое количество процедур и функций, удобно использовать режим поиска процедур, который поддерживается редактором. Процедуры и функции отображаются в отдельном окне в порядке их расположения в модуле, однако разработчик может отсортировать их по алфавиту. Пиктограммы слева от названия обозначают имеющиеся процедуры и функции, а имена в угловых скобках соответствуют предопределенным процедурам, которые в настоящий момент отсутствуют, но могут быть размещены в данном модуле.
Если установить курсор на той процедуре, которая еще отсутствует в модуле, и нажать Перейти, конструктор автоматически вставит в текст модуля заголовок предопределенной процедуры.
Переход к определению процедур и функций
Редактор позволяет автоматически переходить к определению процедуры или функции, использованной в тексте модуля. Для этого достаточно установить курсор на имени нужной функции в теле модуля и выполнить команду контекстного меню или нажать «горячую» клавишу. В окне редактора будет открыт текст искомой процедуры или функции:
Контекстная подсказка
Редактор предоставляет средство контекстного ввода выражений с использованием системных объектов, их свойств, методов и пр. В процессе ввода текста или при нажатии комбинации клавиш редактор выводит контекстный список, позволяющий выбрать нужное свойство, метод, функцию и т. д., что позволяет быстро и правильно набирать тексты модулей:
Контекстная подсказка также работает и для параметров некоторых методов, если эти параметры задаются строковыми литералами.
Копирование имен объектов и реквизитов
При написании текста модуля разработчик может просто перетаскивать мышью имена объектов или их реквизитов из дерева метаданных в нужное место модуля:
Проверка модуля
Редактируемый модуль может быть проверен на правильность использования синтаксических конструкций встроенного языка, корректность обращений к методам и свойствам объектов «через точку», а также на корректность некоторых параметров, имеющих тип «Строка»:
Кроме этого конфигуратор поддерживает выполнение полной проверки всех модулей, содержащихся в прикладном решении.
В процессе работы с модулем разработчик имеет возможность получать контекстную подсказку по встроенному языку, используя синтакс-помощник. Для этого достаточно установить курсор на интересующий элемент языка и нажатием комбинации клавиш (или по контекстному меню) перейти к описанию этого элемента языка в синтакс-помощнике.
Ограничение доступа к модулю
Для большинства модулей прикладного решения можно установить пароль доступа, защищающий авторские права разработчика конфигурации. При попытке открыть защищенный модуль выводится диалог ввода пароля:
Использование шаблонов
При редактировании текстовых документов и модулей конфигуратор предоставляет разработчику возможность использовать механизм шаблонов для автоматической подстановки часто используемых фрагментов текста.
Читайте также: