Табличный документ 1с показать
В массе своей, в прикладных задачах нужно вывести на печать какие-либо данные оформленные нужным образом (например, счет, торговую накладную, акт сверки и т.п.). Для вывода на печать в 1С 8.3. можно использовать табличные документы. В предыдущей статье я показал, как создать макет табличного документа и как правильно его оформить. Нам осталось научиться заполнять его данными и выводить на просмотр для последующей печати. Материал по выводу табличного документа на печать, я решил разбить на две части. В первой части мы разберем простой пример (я бы назвал его учебным), а во втором случае реализуем пример приближенный к реальному. Эта статья — первая часть, в ней мы реализуем простой пример: будем выводить табличный документ на печать, используя команду управляемой формы. Этот вариант имеет следующий недостаток: нельзя вывести печатную форму из списка документов, можно это сделать, только открыв форму документа. Для того, чтобы можно было вывести печатную форму из списка документов, необходимо создать команду документа. Этот вариант мы рассмотрим в следующей статье.
И так, сам макет документа мы уже создали, как это сделано, вы можете узнать в соответствующей статье.
Сейчас мы получим ранее созданный макет, заполним табличный документ 1С по этому макету, и нам останется вывести табличный документе 1С на просмотр для последующей печати.
Мы сделаем упрощенный (учебный) вариант: формирование всего нашего табличного документа будет осуществляться на модуле управляемой формы. Для этого мы на форме документа создадим команду «ПечатьДокумента», которую разместим в командной панели формы.
Для команды ПечатьДокумента создадим два обработчика в клиентском и серверном контексте.
Серверный обработчик переименуем в функцию, в нем мы создадим программно табличный документ 1С, который она и будет возвращать.
Теперь нужно получить макет, созданный в предыдущей статье, для этого мы будем использовать метод менеджера документа ПолучитьМакет.
Имейте в виду, что метод ПолучитьМакет напрямую доступен только или в модуле документа, или в модуле менеджера документа. Еще этот метод можно применить, используя менеджер конкретного объекта, как я сделал выше. Непосредственно на форме его использовать нельзя!
Алгоритм заполнения табличного документа будет следующим: мы будем получать нужную область макета, если необходимо заполнять эту область какими-нибудь данными, а потом выводить полученную область в табличный документ.
Напомню, что макет у нас имеет четыре области: Шапка, ШапкаТаблицы, СтрокаТаблицы, Подвал. Области Шапка, ШапкаТаблицы и Подвал будут выведены в табличный документ всего один раз, а область СтрокаТаблицы будет выведена столько раз, сколько строк в табличной части обрабатываемого документа.
Весь код ниже я выполняю между кодом получения макета и возвратом табличного документа.
Получим самую первую область макета, при помощи метода ПолучитьОбласть, где в качестве параметра следует указать название получаемой области.
В этой области мы используем шаблон, в котором имеются два параметра: НомерДок и ДатаДок передадим номер документа и дату документа в соответствующие параметры области, используя свойство Параметры нужной нам области. Данное свойство содержит коллекцию параметров табличного документа, и мы можем обращаться к нужному параметру через оператор «.».
Мы закончили с областью Шапка, и нам нужно вывести её в табличный документ, делается это при помощи метода Вывести табличного документа, где в качестве параметра указывается выводимая область.
Точно также получим область, которая соответствует шапке таблицы, заполнять его не нужно, а мы просто выведем его сразу же в табличный документ.
Следующим шагом выведем область СтрокаТаблицы, причем эта область должна быть выведена столько раз, сколько строк в табличной части документа. Поэтому мы сначала получим эту область, а потом циклом будем обходить табличную часть, заполнять параметры области и выводить область в табличный документ.
В коде выше, мы обошли табличную часть документа, обратившись к ней через основной реквизит Объект управляемой формы (основной формы документа).
Обратите внимание, я использовал метод Заполнить, потому что названия параметров макета совпадают с названиями реквизитов табличной части документа.
Нам осталось получить область Подвал и вывести её в табличный документ.
На этом мы закончим работать с функцией на сервере, весь ее код будет выглядеть следующим образом.
Нам осталось доделать клиентскую процедуру ПечатьДокумента: мы будем выводить на просмотр полученный табличный документ при помощи метода табличного документа Показать().
В качестве первого параметра метода Показать, я указал название, которое выйдет на форме табличного документа.
Проверим, как работает наш код.
Напомню, что я рассмотрел самый простой (учебный) пример вывода печатной формы, следующие примеры будут более приближенные к реальным.
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Добрый день конфигурация УНФ редакция 1.4 (1.4.2.22) на УФ.
Если например печатать печатную форму МХ-18 для документа производство, то макет выводится в типовую фрму печати документов (скрин приложил).
Создаю внешний отчет. Хочу, чтобы при печати макет выводился в аналогичную форму.
Код следующий:
Тоесть у меня при таком подходе выводится некая таблица. А нужно чтобы печаталось в форму печати документов.
скорее всего нужно вызвать какую ни будь глобальную процедуру, которая выводит на общую форму печати. Могу ошибаться т.к. нет конфигурации, что бы сказать точно. Вообщем смотри как выводится типовой отчет.
посмотрите процедуру ВыполнитьКомандуПечати() общего модуля УправлениеПечатьюКлиент, там происходит открытие табличного документа в общей форме ПечатьДокументов
(2) leriko, (3) SergArmy,
Там вызывается процедура из клиентского общего модуля. Как мне в эту процедуру передать свой ТабличныйДокумент??
(4) Manticor, А если так пробовать?
Я так делаю при изготовлении внешних печатных форм)
А у тебя внешняя.
(5) Bukaska, ааа, у меня же пея форма в виде отчета, так не прокатит занчит. Ох уж эта библиотека подсистем)) Спасибо
(5) Bukaska, кстати от этого сути не меняется к сожалению(((
вместо ПечатьДокумента у меня Функция Данные() которая возвращает ТабличныйДокумент. Тоесть
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "ТребованиеНакладная", Данные());
вообще не выводится форма.
(7) Manticor, Посмотри общую форму "ПечатьДокументов" (посмотрел в БСП) или ДополнительныеОтчетыИОбработки.ПечатьПоВнешнемуИсточнику
Переменная «ПараметрыОткрытия» имеет тип «Структура». В него необходимо передать переменную «КоллекцияПечатныхФорм» тип значения которой «ТаблицаЗначений». Эту переменную получил с помощью процедуры общего модуля «УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(……)». В переменной «КоллекцияПечатныхФорм» содержится наш «ТабличныйДокумент», а у общей формы есть параметры «КоллекцияПечатныхФорм». Так вот если он уже заполнен, то происходит его вывод на форму.
Казалось бы вот и всё. Внешняя печатная форма выводится в общую форму – все довольны. Единственное я упустил, что отладку я производил на управляемых формах, но на «Толстом клиенте». А когда запустил под «Тонким клиентом» вывалилась очевидная ошибка. На тонком клиенте не доступен тип значения «ТаблицаЗначений», на форме его надо преобразовать в тип «ДанныеФормыКоллекция».
И вот здесь начались мои танцы с бубном в попытке передать «Таблицузначений». Как писалось выше конфигурацию менять нельзя, да и не к чему. Метод «ОткрытьФорму» доступен только на клиенте, поэтому передать «ТаблицуЗначений» не получилось. Пришлось поступить по-варварски.
Взял и скопировал эту общую форму к себе в обработку (знаю плохо сделал) и стал туда передавать не «ДанныеФормыКоллекция» , а Структуру из таблицызначений полученную следующим образом. Этот код выполнялся в модуле моей формы.
Далее уже в модуле общей формы «ПечатьДокументов» в процедуре «ПриСозданииНаСервере»
Преобразовал эту структуру в таблицу значений
И заменил переменную «КоллекцияПечатныхФорм» на «ТаблицаЗначенияКоллекция». Вот после этого у меня заработало и на «тонком клиенте».
Пробовал открывать общую форму «ПечатьДокументов» и без этих параметров, что бы вызвалась экспортная процедура «Печать» из модуля внешней обработки. Вызывается всё хорошо, но она уже не видит заполненных реквизитов на форме.
Так вот вопрос, можно как то это реализовать по другому, Что бы не тащить общею форму к себе в обработку?
В предыдущих статьях, все табличные документы выводились в виде отдельного окна, что, согласитесь, бывает иногда не удобно. В этой статье я покажу, как выводить табличный документ на управляемой форме.
Я рассмотрю два примера. В первом, мы будем на управляемой форме выводить произвольный отчет, который будет сделан при помощи макета табличного документа. А во втором примере, я создам форму для вывода различных печатных форм документов, как это делается в большинстве современных конфигураций.
Пример с отчетом
Реализуем самый простой вариант отчета, который будет без какой-то смысловой нагрузки, призванный просто показать, как работает табличный документ на управляемой форме. В основном все современные отчеты делают на СКД, но этот мы сделаем по «старинке», используя табличный документ. Для этого создадим объект Отчет и подчиненный ему макет табличного документа всего с одной областью.
Подробнее о том, как создается и оформляется макет табличного документа, читайте в этой статье:
Следующим шагом создадим пустую форму подчиненную этом отчёту, и добавим у неё реквизит управляемой формы с типом ТабличныйДокумент.
Поместим этот реквизит на форму. Если его перетащить мышкой, то он станет элементом поля табличного документа. Чтобы не было заголовка, нужно в свойстве ПоложениеЗаголовка добавленного элемента формы установить значение Нет.
Создадим команду управляемой формы, и поместим её на форму в виде кнопки.
Для команды создадим обработчики в серверном и клиентском контексте. В серверном обработчике получим макет табличного документа и единственную область макета. А потом просто будем выводить, как мы это уже делали ранее, полученную область в табличном документе — реквизите формы.
Подробнее о заполнении табличных документов читайте в этой статье:
И всё, если мы сейчас попробуем выполнить нашу команду, то отчет заполнится нужными данными.
Пример с печатной формой документа
А сейчас, мы доработаем вывод печатной формы документа, который мы делали в статье ранее:
Раньше у нас печатная форма документа выходила каждый раз в отдельном окне, так её выводила платформа 1С, мы же сделаем так, чтобы печатная форма выводилась в нужной нам управляемой форме.
Для этого мы создадим общую форму, которую назовем ФормаВыводаПечатнойФормы.
У этой формы создадим реквизит с типом ТабличныйДокумент, разместим его на форме, а также поменяем заголовок формы.
Следующим шагом, создадим параметр ТабДок с типом ТабличныйДокумент.
Нам осталось при создании формы реквизиту управляемой формы присвоить значение параметра.
На этом мы закончим работать с общей формой. В нашем случае, при открытии, форма будет заполняться тем табличным документом, который будет передан в параметре.
Перейдем в модуль команды документа, которую мы создали в предыдущей статье.
И подправим эту команду: будем открывать общую форму, в которую в качестве параметра передадим сформированный ранее табличный документ.
Чтобы каждый раз открывалась новая форма, я передают в качестве третьего параметра новый уникальный идентификатор.
Всё! На этом доработка команды закончена. Можно проверить, как работает открытие нашей формы.
Причем, форму мы можем открыть, как с общего списка документов, так и из нужного нам документа.
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Все версии 7.x 8.x ОП 8.2 УП 8.3 УП Видео Добавить FAQТабличный документ | Версия | |
---|---|---|
Автоматическая установка ширины колонки табличного документа. | [7.x, 8.x] | |
Вывести табличный документ в PDF | [8.x] | |
Вывод картинки (изображения) на печать, в макет (табличный документ) | [7.x, 8.x] | |
Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул | [8.x] | |
Вывод результата запроса в табличный документ | [8.x] | |
Выгрузка табличного документа в Google таблицу | [8.x] | |
Группировка строк в табличном документе | [8.x] | |
Загрузка данных в документ из табличного документа (в ТД скопировано из Excel) | [8.x] | |
Как в отобразить картинку в табличной части | [8.x] | |
Как в табличном документе изменить значение определенной ячейки? | [8.x] | |
Как вставить Разделитель страниц или Новую страницу? | [7.x, 8.x, 8.2 УП] | |
Как выгрузить табличный документ в excel | [8.x] | |
Как закрепить, фиксировать область выводимого табличного документа? | [7.x, 8.x] | |
Как изменить шрифт в ячейке Табличного Документа? | [8.x] | |
Как отсечь ненужные пробелы из выборки запроса при заполнении параметров макета | [8.x] | |
Как очистить табличный документ? | [8.x] | |
Как преобразовать MXL файл в Таблицу Значений? | [8.x, 8.2 УП, 8.3] | |
Как при выводе данных в Табличный Документ изменить Текст и Цвет Текста конкретной ячейки? | [7.x, 8.x] | |
Как при выводе данных в табличный документ свернуть выводимые группировки? | [8.x] | |
Как при печати выводить шапку на каждой странице (ПовторятьПриПечатиСтроки)? | [8.x, 8.2 УП, 8.3] | |
Как программно изменить текст, цвет, фон ячейки или области табличного документа? | [8.x, 8.2 УП, 8.3] | |
Как сделать Расшифровку в табличном документе | [8.x, 8.2 УП, 8.3] | |
Как сделать чтобы при выделении числе в табличном документе, отчете выводилась их сумма? | [8.x, 8.2 УП] | |
Как сделать чтобы при редактировании в ячейке появлялся калькулятор? | [8.x, 8.2 УП] | |
Как сжать ширину колонок табличного поля | [8.x] | |
Как сформировать, вывести на печать таблицу, табличный документ | [7.x, 8.x] | |
Как убрать, очистить выделение в табличном документе и переместить курсор в R1C1? | [8.x] | |
Как установить значение в Ячейку Табличного Документа | [8.x, 8.2 УП] | |
Кнопки управления уровнями группировки (генерировать программно) | [8.x, 8.2 УП] | |
Сводные таблицы | [8.x, 8.2 УП] | |
Создание сводной таблицы | [8.x] | |
Табличный документ: Колонтитулы и параметры страницы | [8.x] | |
Функции преобразуют табличный документ (ТД) в строку и обратно | [8.x] | |
Функция загружает весь табличный документ в таблицу значений | [8.x] | |
Шаблон кода для вывода данных в табличный документ | [8.x, 8.2 УП, 8.3] |
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 10060 (0x0000274C): Попытка установить соединение была безуспешной 19
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D: ВашаБаза 1с77 " ; Пользователь= Посмотреть все результаты поиска похожих
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Посмотреть все в категории Табличный документ
Читайте также: