1C v7.7: Вывод на печать произвольной переменной типа "Таблица значений"

Публикация № 68936

Разработка - Практика программирования

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

Автор: Денис Горбунов, осень 2001 - осень 2003
Оригинал расположен на: http://faq1c.gorbunov.ru

Побаяню и я.

1C v7.7: Вывод на экран произвольной переменной типа "Таблица значений"

Описание

Процедура предназначена для облегчения отладки прикладных решений (конфигураций).
Выводит на экран в удобночитаемом виде содержимое произвольной переменной типа "ТаблицаЗначений".
Может быть использована с любой конфигурацией 1С: Предприятие V 7.7.

Автор: Денис Горбунов, осень 2001 - осень 2003
Оригинал расположен на: 
http://faq1c.gorbunov.ru/node/3
Как это использовать

Входные параметры:

1. Тип "ТаблицаЗначений", переменная, содержимое которой мы хотим посмотреть.
2. Тип "Строка", заголовок окна, которое будет выведено на экран, необязательный параметр.

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

Результат работы:
Формирование и вывод на экран печатной формы (объекта типа "Таблица").
Выглядит как обычная таблица - с шапкой (заголовком), разной шириной колонок (ширина определяется автоматически по содержимому)

История создания

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

Да и, вообще, просмотр сложных структур данных неудобен в большинстве отладчиков большинства систем программирования, а не только 1С: Предприятие V 7.7. Мне давненько это не нравилось.

И напала на меня мысль, что в языке программирования 1С: Предприятие V 7.7 есть все необходимые средства для реализации универсального алгоритма просмотра "ТаблицыЗначений".

Отбится от этой мысли не удалось. И первый (насколько я помню даже еще нерабочий) вариант был сделан в тот же день. И через небольшой промежуток времени алгоритм был доведен до ума.
В течение 2001, 2002, 2003 годов алгоритм совершенстовался по мелочам. Основная же идея созрела еще в самый первый день.

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

Исходный текст

Врезается в глобальный модуль прикладного решения (конфигурации) и вызывается откуда угодно. Если не хочется врезать в глобальный модуль, то слово "Экспорт" в объявлении процедуры смысла не имеет ;)

 

Процедура глВывестиТаблицуЗначений(ТаблицаЗначений, Заголовок = "") Экспорт
    Перем
Таб, ИИ, ЖЖ, НазваниеКолонки, ТипКолонки, Ширина, Значение, Сообщение;
   
Таб = СоздатьОбъект("Таблица");
    Если
ТипЗначенияСтр(ТаблицаЗначений) <> "ТаблицаЗначений" Тогда
       
Сообщение = "В процедуру ""глВывестиТаблицуЗначений()"" передана переменная не типа ""ТаблицаЗначений"", "+
       
"а типа """+СокрЛП(ТипЗначенияСтр(ТаблицаЗначений))+"""";
       
Таб.Область(1, 1, 1, 1).Текст = Сообщение;
       
Таб.Область(1, 1, 1, 1).ШиринаСтолбца(СтрДлина(Сообщение));
       
Таб.ТолькоПросмотр(1);
       
Таб.Показать("Не таблица значений: "+Заголовок);
        Возврат;
    КонецЕсли;
    Для
ЖЖ = 1 по ТаблицаЗначений.КоличествоКолонок() цикл
       
ТаблицаЗначений.ПолучитьПараметрыКолонки(ЖЖ,,,, НазваниеКолонки);
       
Таб.Область(1, ЖЖ, 1, ЖЖ).Текст = СокрЛП(НазваниеКолонки);
       
Таб.Область(1, ЖЖ, 1, ЖЖ).РамкаОбвести(5, 5, 5, 5);
       
Таб.Область(1, ЖЖ, 1, ЖЖ).ВертикальноеПоложение(3);
       
Таб.Область(1, ЖЖ, 1, ЖЖ).ГоризонтальноеПоложение(3);
       
Таб.Область(1, ЖЖ, 1, ЖЖ).РазмерШрифта(7);
       
Таб.Область(1, ЖЖ, 1, ЖЖ).Полужирный(1);
       
Ширина = Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца();
       
Ширина = Макс(Ширина, СтрДлина(СокрЛП(НазваниеКолонки)));
       
Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца(Ширина);
    КонецЦикла;
    Для
ИИ = 1 по ТаблицаЗначений.КоличествоСтрок() цикл
        Для
ЖЖ = 1 по ТаблицаЗначений.КоличествоКолонок() цикл
           
Значение = ТаблицаЗначений.ПолучитьЗначение(ИИ, ЖЖ);
           
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).Текст = Значение;
           
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).Расшифровка(Значение, 0);
           
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).РамкаОбвести(3, 0, 3, 0);
           
Ширина = Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца();
           
Ширина = Макс(Ширина, СтрДлина(СокрЛП(Строка(Значение))));
           
Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца(Ширина);
           
ТаблицаЗначений.ПолучитьПараметрыКолонки(ЖЖ, ТипКолонки); ;
            Если
ТипКолонки = "Число" тогда
               
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).ГоризонтальноеПоложение(2);
            КонецЕсли;
            Если
ИИ = ТаблицаЗначений.ТекущаяСтрока() тогда
               
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).ЦветФона(255, 0, 0);
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
   
Таб.ТолькоПросмотр(1);
   
Таб.Показать("Таблица значений: "+Заголовок);
КонецПроцедуры

На приведенном скриншоте результат отладочной таблицы для обработки Движение ОС (//infostart.ru/public/68881/) 

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. anton.fly7 149 14.04.10 11:06 Сейчас в теме
2. v.l. 14.04.10 11:18 Сейчас в теме
3. Ёпрст 1036 14.04.10 12:31 Сейчас в теме
Э... а куды мой пост делся ?


4. v.l. 14.04.10 12:37 Сейчас в теме
(3) А никуды не делся - удалился вместе с дублем статьи.
Дык и там есть расшифровка, о которой все мечтают:
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).Расшифровка(Значение, 0);
5. Ёпрст 1036 14.04.10 13:39 Сейчас в теме
(4) в первоналальном варианте нихрена там не было.
6. v.l. 14.04.10 13:47 Сейчас в теме
7. v.l. 14.04.10 13:47 Сейчас в теме
8. Pin 161 15.04.10 11:30 Сейчас в теме
Вообще-то этим уже в субботу побаянили вот тут

(4)Я с вашего позволения пожалуй порву баян и выложу реализацию с нормальной расшифровкой, а не с этим недоразумением которое тут "как бы есть".
9. v.l. 15.04.10 12:15 Сейчас в теме
(8) А давайте объединим усилия в одну публикацию?
Скажите, чего не так в расшифровке и напишите Ваш вариант а я добавлю.
А то прямо "перенумератор"! какой-то получился.
10. Dolly_EV 267 15.04.10 12:38 Сейчас в теме
(8) Какой-то заразительный боян... ;) Я тоже побояню: http://infostart.ru/public/69026/
(9) как-то разом на всех напала необходимость в отладке)) можно уже отдельную подгруппу организовать в классификаторе "просмотрщики ТЗ, СЗ, ИТЗ"
11. shoy 19 21.04.10 10:31 Сейчас в теме
:D
Бойтесь все! Сейчас придёт в студию самый крутой автор самой первой подобной разработки и всех вас съест! 8-)

я вот помню ещё одну такую!
С возможностями визуального изменения (сортировка, свёртка, группировка, изменения порядка колонок, и их формата. С загрузкой из разных видов таблиц (ТЗ, ТЧ, справочник).
Умеет сохранять свои результаты и возвращаться к ним.
http://infostart.ru/projects/664/?ref=825
v.l.; Rustig; +2 Ответить
12. v.l. 21.04.10 10:43 Сейчас в теме
(11) Прийдеть автор, захочет убрать - убру!
Ссылку на него я положил в заголовке, такчто все копирайты соблюдены.

Интюресная обработочка ;)
Оставьте свое сообщение

См. также

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

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

5500 рублей

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки.

Статья Программист Нет файла v7.7 1С7:Комплекс 1С7:ТиС УУ Бесплатно (free) Практика программирования Адаптация типовых решений

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    2238    ksnik    0       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Проверка часового пояса

Статья Программист Нет файла v7.7 Windows Бесплатно (free) Практика программирования

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    9344    kudenzov    3       

[ПОЛЕЗНЯШКА, 7.7] Как посчитать итоги по документам черным запросом с изподвывертом?

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

Мелкая полезняшка, считает запросом итоговую сумму документов и количество документов.

12.03.2016    16870    CheBurator    18       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования WEB

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    51122    Serginio    33       

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д.

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    28023    Serginio    22       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

Использование классов .Net в 1С для новичков

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    67060    Serginio    104       

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Оптовая торговля Розничная торговля Бесплатно (free) Практика программирования Внешние источники данных

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    21758    Palmer1976    3       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    15309    etmarket    14       

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Универсальные функции

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    15150    Anzhey    13       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

Универсальный способ сравнения таблиц

Статья Программист Нет файла v7.7 v8 Бесплатно (free) Практика программирования

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    16761    json    1       

Числа прописью в родительном падеже в 7.7? Легко!

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

20.06.2015    11130    gimalaj    3       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Загрузка и выгрузка в Excel Практика программирования

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    77876    shmellevich    35       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Исправление в типовой комплексной конфигурации глобальной функции глВсеРеквизитыДокументаЗаполнены()

Статья Программист Нет файла v7.7 1С7:Комплекс Россия Windows Бесплатно (free) Практика программирования

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

20.08.2014    6927    hvv2002    0       

ЗаполнитьЗначенияСвойств - заставляем работать в 7.7

Статья Программист Нет файла v7.7 1cv7.md Бесплатно (free) Практика программирования

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    20019    tomvlad    5       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Полезные функции. Склонение (должность и фамилия подписантов). Любой язык

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования

Уехал директор в командировку, отпуск... , оставил доверенность на хозяйственные операции на другого сотрудника. Все договора и другие документы в обмороке - "подписант" теперь другой, по тексту тоже много правок... Пересмотрел много публикаций, вариантов много, не приглянулось. Сделал свой "Баян" . У меня всего-то крутится пять фигурантов ... Нет простого, наглядного и всепогодного варианта без языкового барьера. Всем процессом управляет пользователь.

03.03.2014    16261    kompas-dm    5       

Реализация Ctrl+Z в 1С 7.7 (ТиС)

Статья Программист Нет файла v7.7 1С7:ТиС Windows Бесплатно (free) Практика программирования

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

15.07.2013    6533    a.o.popova    10       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

Копия напечатанного документа или как спрятать документ.

Статья Программист Нет файла v7.7 Бесплатно (free) Журнал регистрации Практика программирования

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

11.04.2013    14126    Dima_    8       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Автосохранение документа в 1С 7.7

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Бесплатно (free) Практика программирования

В данной статье мы рассмотрим автосохранение документа в 1С 7.7!

22.03.2013    12073    aagubarev    25