Как вывести в 1с

Обновлено: 04.07.2024

Механизм настройки списков предоставляется платформой, как говорят программисты «из коробки». Поэтому он доступен пользователям любых прикладных решений. С его помощью пользователи могут изменить внешний вид списка в соответствии со своими предпочтениями или требованиями текущей задачи . Система позволяет в пользовательском режиме изменять структуру списков, устанавливать отборы, группировать элементы и даже настраивать условное оформление выводимых данных.

1. Быстрая сортировка данных

Первой мы рассмотрим такую полезную функцию, как сортировка данных по колонке. Обратите внимание, все колонки списка имеют заголовки с названиями. Их можно «кликать» мышкой. Щелчек левой клавишей мыши по шапке нужного столбца, включает сортировку списка по возрастанию, повторное нажатие меняет направление сортировки.

2. Быстрая сортировка данных по нескольким столбцам одновременно.

Быстрые сортировки можно комбинировать. Например, когда мы хотим сначала отсортировать список по контрагентам, а потом по суммам поступлений. Для этого достаточно нажимать на заголовки столбцов с зажатой клавишей CTRL.

3. Установка периода

Когда речь идет о списке документов, то для него весьма важен период выводимых документов. Включить ограничение по периоду можно через контекстное меню. Его, в свою очередь, можно отрыть, щелкнув правой клавишей мыши по любой строке списка. Далее необходимо выбрать в нем пункт Установить период .

4. Быстрый отбор по текущему значению

Если вам нужно быстро отобрать данные по какому-то значению, то достаточно кликнуть правой кнопкой по этому элементу в списке и выбрать пункт «Найти».

5. Поиск по текущей колонке.

Далее можно включить расширенный поиск по выбранной колонке. Для этого в контекстном меню нужно выбрать пункт Расширенный поиск.

6. Вывод списка

После установок отбора и сортировки списка, вам может понадобиться вывести полученные результаты на печать или сохранить их в файл. Для этого нужно нажать на кнопку « Ещё » и выбрать пункт « Вывести список ». В открывшейся форме настроек, можно флажками указать, какие именно колонки будут показаны в списке, который мы будем выводить на печать.

7. Изменение формы (настройка порядка и видимости колонок)

Для настройки формы нажмите на кнопку еще, и далее выберете пункт Изменить форму . В открывшейся форме настройки, можно управлять видимостью колонок, менять их местами, объединять их в группы и даже добавлять новые. Колонкам можно задавать собственные заголовки, менять их стиль и размеры.

Стоит отметить, что информация представлена достаточно сжато. Поэтому вы можете посмотреть подробный видеоурок. По его материалам написана данная статья.

На этом пока все. Полный текст статьи можно прочитать в разделе Приемы работы с 1с .

Подписывайтесь на канал и наши группы в социальных сетях, чтобы не пропустить новые публикации.

В ссылке лежит база-черновик, созданная на платформе 1С8.3 управляемые формы. У меня настроен безМодальный режим, его всегда можно изменить на модальный:правой клавишей мыши на саму конфигурацию Черновик-Свойства-вкладка Совместимость-режимы модальности(2 поля) см.рис1


В базе-Черновике создан пример Документа и необходимых для него справочников,все данные выдуманные. Эта база создавалась больше как напоминалка - как быстенько сделать тот или иной отчет (или др.способом вывести данные на экран). В реальной жизни - параметры,передающиеся из документа могут быть в разы сложнее,но разобравшись с азами вывода данных,-потом любой сложности отчет не составит труда сделать.

1.Вывод результатов запроса командой Сообщить() из ТаблицыЗначений

Допустим, у нас есть задача: выбрать данные из пары справочников (справочники организованы с табличной частью),но не все данные этих справочников нам нужны,а только те,которые соответствуют открытому на данный момент документу.

Для этого - мы на форму документа вывели кнопку "КонтактыКлиентов", в модуле формы данного документа - у нас есть исполняющая клиентская процедура КонтактыКлиента(Команда), вот здесь и начнем писать первый код.


Код уже в базе написан,просто ставьте/снимайте ремарки с нужного варианта нашего вывода данных на экран:


В данном варианте мы создаем Структуру,записываем в нее данные по Контрагентам и Партнерам из текущего открытого документа.А далее передаем управление в серверную процедуру КонтактыКлиентаНаСервере(Структура,ТабДок). Эта серверная процедура вызывает расчетную экспортную функцию сервера из ОбщегоМодуля.

Прежде чем идти дальше - поясню алгоритм что мы делаем: у нас есть два справочника из которых нам нужны данные,но только те, которые у нас присутствуют в текущем открытом документе. Самым простым и быстрым способом мы можем получить такую выборку,если в пользовательском режиме 1С откроем КонсольЗапросов, а в ней и составим сложный запрос,параметром которого будет временная таблица - именно в нее мы и передаем значения из документа,и именно она и будет являться фильтром-отбором в нашем запросе:


вот код подобного запроса, в параметрах которого внешняя временная таблица:

Логика понятна - как мы с помощью запроса с параметром "ВнешниеДанные" получаем необходимую нам выбоку, теперь вновь возвращаемся в наш документ.

Итак,расчетная серверная функция просто решает тот запрос,который мы только что составили в КонсолиЗапросов.


2.Вывод результатов запроса - просто в табличный документ

Востановите ремарки в расчетной серверной процедуре из ОбщегоМодуля, снимите ремарку в модуле формы документа ТабДок.Показать();

Запускайте вновь пользовательский режим 1С, после нажатия на кнопку "КонтактыКлиентов" - мы получаем вывод нашей выборки в обычный ТабличныйДокумент:


3.Вывод результатов запроса с помощью ДвумерногоМассива

Заремарьте в модуле формы в проц.КонтактыКлиента(Команда) код с 1-2 вариантов вывода данных на экран.

Разремарьте тут же 3-й вариант

Здесь и в 4-м варианте реализована прежде всего суть всех страданий 1.8.3: их работой в клиент-серверном режиме)).

Так как нельзя между клиентом и сервером перегонять таблицу значений, а нам,допустим, ну очень нужно итоговые данные из расчетной процедуры видеть на клиенте, то варианта два - передавать между клиентом и сервером Структуру или Массив!

4.Вывод результатов запроса с помощью МассиваСтруктур (с двумя вариантами)

5.Вывод обычным объект-Отчетом без СКД

Это все тот же запрос, просто в данном варианте - он находится в модуле формы объекта-Отчета.Все так же считает. Результат выводится через табличный документ в МакетОтчета, который сама как придумала,так и нарисовала:


п.с.Это самый стандартный способ вывода данных - через обычный объект-Отчет с обычным Макетом, без всяких СКД. и запрос для него очень быстро набрать в КонсолиЗапросов можно. Не знаю, мне больше всего нравится именно этот вариант, но как говорят -каждому на свой вкус и цвет.

6.Вывод объект-Отчетом-СКД+УстановкаПараметров

Начинается СКД - Схема Компановки Данных.

Сам отчет получился очень простой - в нем нет практически кода, всю работу выполняет СКД!

Но вот с составлением запросов в данном СКД - пришлось повозиться. Здесь нет никакой внешней временной таблицы - связь идет через Параметр документа &Ссылка. А вот как передать ее в СКД - я голову поломала немножко)) Потом просто пришлось использовать дополнительный реквизит на форме - в него загружать Параметр ссылки при процедуре ПриСозданииНаСервере,а потом из процедуры ПриКомпоновкеРезультата - выхватывать этот параметр с реквизита формы и устанавливать его стандартными настройками установки параметров для объекта-Отчета.

На идею - попробывать создать сложные запросы без внешней временной таблицы натолкнул Sergey Andreev (starik-2005).Спасибо.

Вот такая красота в итоге:


7.Вывод объект-Отчетом-СКД+ВнешняяВременнаяТаблица

В этом варианте у нас как и раньше (кроме п.6) фильтр по отбираемым данным справочникам идет с помощью внешней временной таблицы, в которую мы загружаем данные из документа.

вот такой вид имеет этот вариант:


8.Вывод программно СКД без объекта-Отчета с Параметром=ВнешняяВременнаяТаблица

А теперь представим, что нам срочно нужно вывести какие-нибудь расчеты, но по непонятным причинам - мы не можем воспользоваться объектом-Отчет))

Здесь просто создаем Обработку, на форму ей скидываем все наши параметры, которые нужны для построения запроса в СКД, потом подтягиваем эти параметры из другой процедуры - и результат выводим в программно созданный табличный документ.

Оставила в этом варианте прикрепленный еще один МакетСКД - возможно кто-то сможет с помощью него пойти по пути передачи параметра,н-р, &Ссылки (у меня в этом вареанте решено через внешнюю врем.таб) - я сколько не пыталась подгрузить в Параметры СКД при режиме отсутствия объекта-Отчета - у меня не пошло.

Но так как рабочим механизмом здесь является программно вызываемый СКД, то в нашей табличке мы можем установить шаблонМакетов - все же красивее смотрится!))


Вот и все. Теперь не только начинающие программисты смогут быстренько что-то вывести на экран, а и опытные пользователи смогут разобраться в приведенных примерах и вуа-ля! самой большой сложности отчет готов.

Постраничный вывод в табличный документ

Для некоторых отчетов необходимо, чтобы в конце страницы содержалась некоторая область, которая бы сообщала информацию о содержимом страницы. Это может быть, например, информация о сумме по странице, количестве строк на странице и т.п. Во встроенном языке 1С:Предприятия предусмотрены специальные средства для разбиения табличного документа на страницы. В данном разделе рассказывается, каким образом можно организовать постраничный вывод при выводе информации в табличный документ.

Метод табличного документа ПроверитьВывод()

Объект ТабличныйДокумент имеет метод ПроверитьВывод() , предназначенный для того, чтобы проверить, поместится ли список областей на текущую страницу. В случае если метод вернет значение Истина , вывод областей, переданных в метод, не приведет к созданию новой страницы, иначе, для того, чтобы вывести области, в табличном документе будет создана новая страница. Данный метод работает с учетом настроек печати документа, у которого вызывается метод.

Рассмотрим пример. Пусть нам необходимо создать отчет "Платежная ведомость". Требуется, чтобы на первой странице был заголовок, отображающий информацию о ведомости в целом, на остальных страницах - заголовок, содержащий только шапку таблицы ведомости. В подвалах страницы необходимо иметь информацию о сумме по странице. В подвале последней страницы необходимо иметь итоговую информацию по всей ведомости.

Для того чтобы реализовать подобный отчет нам потребуется использовать метод ПроверитьВывод() . Пример алгоритма отчета будет выглядеть так:

1. выводим в результирующий табличный документ область - заголовок первой страницы;
2. для каждой строки из ведомости:

2.1. проверяем, вмещается ли на текущую страницу область со строкой ведомости и область итога по странице;
2.2. если области помещаются на странице - выводим строку области;
2.3. иначе - выводим подвал страницы, выводим горизонтальный разделитель страницы, выводим шапку страницы, выводим строку ведомости;

3. выводим подвал отчета.

Ниже приведен пример того, как подобный алгоритм может быть реализован на встроенном языке 1С:Предприятия 8.0:

Метод табличного документа ПроверитьПрисоединение()

Метод табличного документа ПроверитьПрисоединение() работает аналогично методу ПроверитьВывод() , с тем отличием, что данный метод проверяет, изменится ли количество страниц по горизонтали при выводе в отчет областей при помощи метода Присоединить() .

Весь программный код всегда пишется в модулях. В платформе 1С есть много модулей: модуль объекта, общий модуль, модуль менеджера, модуль приложения и др. Самым главным является - модуль объекта.

В итоге получается, что модули - это специальный объект, который предназначен для написания программного кода и хранения его там, а также выполнение.

1. Модуль приложения - обработка событий, связанных с запуском и завершением работы платформы.
2. Модуль внешнего соединения - так же, как и модуль приложения, предназначен для обработки событий, связанных с запуском и завершением платформы, но только в момент подключения к какой-то определенной информационной базе.
3. Модуль сеанса - предназначен для связи с объектом "параметры сеанса", их инициализация.
4. Общие модули - объекты, которые предназначены для хранения общих процедур и функций, к которым можно подключаться из любого объекта дерева конфигурации.
5. Модуль формы - предназначен для обработки событий определенных объектов при работе с ними пользователя.
6. Модуль объекта - предназначен для событий, которые обрабатываются сразу для всего объекта, а не только для формы объекта.
7. Модуль менеджера - предназначен для обработки событий, которые будут дополнять стандартный механизм платформы.

У каждого модуля есть свое расположение, но начнем с самого главного - модуль приложения (Рисунок 2).

Так как это начало работы системы, то нам необходимо использовать модуль приложения.

Откроем его (Рисунок 3).

На данный момент модуль пуст, так как вы не писали в нем еще ни одной строки программного кода.

Давайте запишем в этом модуле следующую процедуру (Рисунок 4).

Как было сказано еще в самом начале в первых уроках, что данный канал больше несет практический характер, недели чем теоретический и именно поэтому пока что тут не будет рассматриваться синтаксис, семантика и правила написания. Сейчас мы решаем задачи практически на конкретных примерах. Когда мы начнем изучать основы программирования на платформе 1С, то там будут рассмотрены основные принципы и основы программирования в платформе 1С.
Научиться работать в платформе 1С проще на конкретных практических примерах, которые идут от более легкого к более сложному процессу.

Как было сказано выше, что данный модуль предназначен для обработки событий при запуске и завершении работы с платформой, а значит, что этот модуль нам дает возможность выбрать, когда мы хотим - при запуске или при завершении. Возможность эту можно посмотреть, нажав на выпадающий список (Рисунок 8).

В выпавшем списке выберем строку "ПередНачаломработыСистемы" и он появится в модуле выше нашей строки кода (Рисунок 9).

Пока вчитываться в саму процедуру ненужно, а нужно просто удалить строку зеленого цвета и вместо нее вставить нашу строку (Рисунок 10).

Рисунок 10 - Процедура перед началом работы системы Рисунок 10 - Процедура перед началом работы системы

На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!

Ссылка для вступления телеграм-канал - t.me.Apiscourses

Подписаться в группу ВКонтакте

Прошлые уроки:

На этом все. Жду Вас на следующем занятии.

P.S. Подписывайтесь на мой канал :-)

программирование программирование 1с 1с предприятие обучение онлайн обучение 1с

Читайте также: