Прочитать табличный документ 1с в таблицу значений
Рассмотрим основные приемы работы с таблицей значений при помощи встроенного языка 1С. Примеры будем ориентировать на потребность программиста 1С применять эти способы и приемы в версиях 1С 8.3 и 1С 8.2
Как известно, таблица значений чрезвычайно удобный инструмент для оперирования с наборами данных.
Рассматривать будем начиная с самого простого, постепенно усложняя примеры работы с таблицей значений.
Создание таблицы значений 1С. Как создать таблицу значений в 1С 8.3, 1С 8.2
Добавление колонок в таблицу значений 1С. Как добавить колонки в таблицу значений в 1С 8.3, 1С 8.2
Во многих случаях, если не во всех, нужно указывать тип данных помещаемых в колонку таблицы. Указание типа данных добавит корректности при дальнейшей работе с таблицей значений.
Добавление строк в таблицу значений 1С. Как добавить строки в таблицу значений в 1С 8.3, 1С 8.2
В результате такого действия будет добавлена первая строка. Добавление второй строки полностью аналогично добавлению первой.
Наиболее удобно применять заполнение таблицы в цикле. Например:
Или заполнение в цикле для вывода результата SQL-запроса
Удаление строки из таблицы значений в 1с 8.3, 8.2
Цифра, в данном случае, обозначает индекс удаляемой строки. Т.е. будет удалена шестая строка, т.к. у первой строки индекс нулевой.
Перечисление строк таблицы значений. Как перебрать строки в таблице значений в 1С 8.3, 1С 8.2
Перечисление колонок таблицы значений Как вывести имена колонок в таблице значений в 1С 8.3, 1С 8.2
Записать данные таблицу значений, если имя колонки находится в переменной?
Выборка строки из таблицы значений через отдельное окно. Как установить курсор на нужной строке из таблицы значений 1С 8.3, 1С 8.2
или, для примера:
Выгрузка и загрузка колонки из таблицы значений. Как выгрузить или загрузить колонку таблицы значений 1с 8.3, 1С 8.2
Пакетное заполнение значения в колонке таблицы значений. Как заполнить всю колонку таблицы значений в 1С 8.3, 1С 8.2
-Заполнение нулями
-Заполнение предопределенными значениями
Поиск определенной строки по значению. Как найти строку в таблице значений по известному значению в 1С 8.3, 1С 8.2
— поиск по известному значению
Например нам знакома одна из величин в колонке «НазваниеКолонки2», пусть это будет значение 31 из примера номер 9. Тогда поиск позиционирует нас на строку с порядковым индексом 1.
— поиск по колонкам
Также, если мы планируем выполнить поиск по известной колонке, можно указать ее название. Или названия нескольких колонок.
— поиск всех вхождений значения
Копирование таблицы значений Как скопировать таблицу значений в 1С 8.3, 1С 8.2
— копирование таблицы один к одному
— копированиме в новую таблицу только нужных колонок
— копирование по отбору
Будет скопирована только строчка со значеним отбора. Или копирование отбора для колонок.
Сворачивание таблицы значений. Как свернуть таблицу по колонке в 1С 8.3, 1С 8.2
— группирование по двум колонкам, суммирование по одной
Сортировка таблицы значений. Как в 1С 8.3, 1С 8.2 отсортировать таблицу значений по колонке
— по убыванию
— по возрастанию
Причем стоит отметить, сортировка может быть как по числовому полю, так и по строковому или по дате.
— по нескольким колонкам
Сдвиг в таблице значений. Как в таблице значений в 1с 8.3, 1С 8.2 сдвинуть строку
— сдвиг первой строки на одну позицию по индексу вверх
— сдвиг второй строки на одну позицию по индексу вниз
Как выгрузить таблицу значений в табличную часть
Описание таблицы на форме интерфейса 1С. Как таблицу значений вывести на форме в 1С 8.3, 1С 8.2
Если у Вас появились вопросы по статье или остались нерешенные проблемы обсудить их Вы можете на Форуме 1С Вопросы и ответы
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Заходите в «Одноклассники»!
Регистрируйтесь в «Вконтакте»!
Темы форума
1С на Линукс. advanter, 17.11
Аренда сервера.. за границей. advanter, 03.10
удаление чека. zvar, 11.09
1c 8.3 бухучет 8.2 сотрудники. zvar, 11.09
Корректировка расходной накладной. zvar, 11.09
Декретные. skameykin22, 30.07
обмен данными. taba88, 12.06
Списання малоцінки. advanter, 12.06
Допоможіть новачку. ). advanter, 12.06
Ошибка потока 1с 8.2 Предприятие после обновления SOS. advanter, 07.06
Изменить название основания на печатной форме. advanter, 16.05
Движение денежных средств за период по ответственным. advanter, 25.04
Рубрики
Это интересно:
Ответы на вопросы:
Полное или частичное копирование материалов сайта разрешается при наличии в тексте прямой индексируемой ссылки на сайт
Возникают ситуации, когда требуется считать данные с табличного документа и обработать их. Читать табличный документ по ячейкам утомительно и медленно, но существует способ чтения области ячеек в таблицу значений.
Способ основывается на использовании объекта ПостроительОтчета - это объект, позволяющий на основе заданного текста запроса или источника данных, а так же настроек, получить результат и вывести его в табличный документ или диаграмму.
1. Получаем область ячеек табличного документа, которую требуется поместить в таблицу значений. Получение области нужно задавать таким образом, что бы в неё входила строка заголовков колонок (см. рисунок 1), особенность работы объекта ПостроительОтчета.
Рисунок 1. Область ячеек табличного документа |
2. На основе области ячеек табличного документа создаем описание источника данных.
3. Создаем объект ПостроительОтчета, указываем источник данных вместо текста запроса и выполняем построение отчета.
Результат чтения данных из источника после вызова метода Выполнить() находится в свойстве Результат. Данное свойство содержит объект типа РезультатЗапроса, объект такого же типа возвращается при выполнении запроса.
4. Выгрузим результат в таблицу значений (см. рисунок 2), вызвав метод Выгрузить() объекта типа РезультатЗапроса.
Рисунок 2. Таблица значений, созданная на основании табличного документа |
Из очевидных минусов, значения колонок строкового типа. Так же объект ПостроительОтчета доступен только на сервере, придется гнать табличный документа с клиента на сервер.
Итоговый программный код
Обработку с реализацией данного способа можно скачать здесь.
Табличный документ - предназначен для формирования печатных форм первичных документов, отчетов, при размещении на форме также может использоваться в качестве средства интерактивного ввода данных. Табличные документы вида "Макет" служат прообразами для других табличных документов. Макеты могут содержать параметры, предназначенные для заполнения конкретными данными. Перед выводом области макета в результирующую таблицу параметрам можно присвоить значения и результаты выражений. Также макеты могут иметь параметры расшифровки, значения которых задаются аналогично параметрам. Расшифровка не влияет на внешний вид результирующей таблицы и используется для создания связанных отчетов, открытия форм или иных действий.
Создал реквизит формы с типом ТабличныйДокумент , вынес на форму сам реквизит и его командную панель и ужаснулся, команда Сохранить есть, а команда Открыть отсутствует.
Стандартные команды табличного документа |
Спасибо разработчикам платформы 1С, они предоставили разработчиками две замечательные функции: ПоместитьФайл и ПоместитьФайлы . Эти функции умеют помещать файлы из локальной файловой системы во временное хранилище. Более детальное описание функций приводить не буду, слишком много строк, просто покажу как работать с функцией ПоместитьФайл на примере открытия файла табличного документа.
Пишем код для команды, которая выполняется на клиенте
&НаКлиенте
Процедура ЗагрузитьПечатнуюФорму(Команда)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Текст = "ru = ""Табличный документ""; en = ""Spreadsheet document""";
Фильтр = НСтр(Текст)+"(*.mxl)|*.mxl";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл табличного документа";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ВыбраныйФайл = ДиалогОткрытияФайла.ПолноеИмяФайла;
АдресВременногоХранилища = "";
ПоместитьФайл(АдресВременногоХранилища, ВыбраныйФайл, , Ложь, ЭтаФорма.УникальныйИдентификатор);
ПечатнаяФормаПрочитать(АдресВременногоХранилища);
КонецЕсли;
КонецПроцедуры
Подготавливаем диалог выбора файла и вызываем функцию ПоместитьФайл . После передаем выполнение кода на сервер вызовом процедуры ЗагрузитьПечатнуюФорму .
Создаем процедуру для вызова метода Прочитать, которая выполняется на сервере
&НаСервере
Процедура ПечатнаяФормаПрочитать(АдресВременногоХранилища)
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("mxl");
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ЭтаФорма.ПечатнаяФорма.Прочитать(ИмяВременногоФайла);
Попытка
УдалитьФайлы(ИмяВременногоФайла);
Исключение
КонецПопытки;
КонецПроцедуры // ПечатнаяФормаПрочитать()
Получаем из временного хранилища двоичные данные файла, сохраняем их во временный файл и вызываем метод Прочитать .
Все просто, единственный минус, это передача файла с клиента на сервер, и чем больше файл и меньше скорость интернета, тем дольше будет выполняться загрузка табличного документа.
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D: ВашаБаза 1с77 " ; Пользователь= Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Посмотреть все результаты поиска похожих
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Посмотреть все в категории Табличный документ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D: ВашаБаза 1с77 " ; Пользователь= Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Посмотреть все результаты поиска похожих
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Посмотреть все в категории Табличный документ
Читайте также: