Как в 1с выгрузить в таблицу
Таблица значений часто применяется при программировании на 1С, потому что имеет множество полезных возможностей и работает очень быстро. Таблица значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.
//можно указать тип данных каждой колонки
//если тип данных колонки не указан, то можно хранить данные любого типа
Синтаксис: НоваяКолонка(, , , , , , , )
Добавление строк в таблицу значений
Перебор строк таблицы значений
Сортировка таблицы значений
Поиск в таблице значений
Синтаксис: НайтиЗначение(,,)
Возвращает число: 0 - значение не найдено; 1 - значение найдено
Если указан параметр , то поиск производится только по заданной строке
Если указан параметр , то поиск производится только по заданной колонке
Итоги и группировка таблицы значений
//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть
Удаление строк и колонок из таблицы значений
ВНИМАНИЕ
Часто требуется удалить строки, удовлетворяющие определенному условию.
Так как при удалении строки из таблицы значений следующая строка становится текущей,
то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.
В этом случае я рекомендую использовать следующий прием:
А вот еще один правильный алгоритм, предложенный Wlad:
Замечание(Туц). Предыдущий вариант не совсем правильный. Случай, когда последняя строка попадает под условие и в условии идёт обращение к строке таблицы, приводит к ошибке. Т.е. происходит попытка чтения для строки 0.
И ещё вариант, предложенный Туц:
Замечание (vligm). А я использую такой алгоритм (это, собственно говоря, шаблон):
Таблица значений как элемент диалога
Таблица значений может использоваться в экранных формах как элемент диалога с пользователем.
Методы УстановитьЗначение и ПолучитьЗначение
Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.
Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).
Как скопировать или выгрузить данные из одной таблицы значений в другую таблицу значений?
1. Добавление, копирование строк из одной таблицы значений в другую таблицу значений:
Код 1C v 8.х
2. Можно использовать метод Скопировать() объекта ТаблицаЗначений:
Первым параметром в этот метод передается массив строк для копирования, если он не указан - копируются все строки таблицы значений. Этот параметр также может содержать отбор по значению колонок.
Вторым параметром передается список колонок для копирования в формате "Колонка1, Колонка2. ". Если параметр не указан, копируются все колонки таблицы.
Допустим, есть таблица значений ТЗ с колонками Код, Номенклатура и Цена.
С помощью следующего кода мы выгрузим из этой таблицы в новую таблицу значений ТЗ1 все значения, содержащиеся в колонках Номенклатура и Цена:
Код 1C v 8.х
В следующем примере мы выгрузим все строки исходной таблицы, в которых значение поля Цена = 15000.
Код 1C v 8.х
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C 3
При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки :( Путем тестов было вяснено, что проблема Ввод по строке - поиск по первым символам или в любом месте наименования 6
При разработке конфигурации, для упрощении ввода документов потребовалось настроить ввод номенклатуры по совпадению любой части наименования! В 1С 8.3 по умолчанию настройки справочника номенклатуры такие: При такой настройке, механизм поиска в Посмотреть все результаты поиска похожих
Еще в этой же категории
Функции сохранения таблицы значений в файл и чтения из файла 2
В данном примере хочу привести несколько универсальных функций по выгрузке таблицы значений в файл и дальнейшего чтения из файла: П орядок программных действий при выгрузке в файл выглядит так: Подготавливаем таблицу значений (выгружаем из та Посмотреть все в категории Работа с Таблицей Значений
Результат запроса может быть выгружен в таблицу значений или дерево значений с помощью метода Выгрузить. Затем над ними могут быть произведены другие операции: сортировка, свертка, перебор строк и другие действия.
Следующий пример выгружает результат запроса в таблицу значений с прямым порядком обхода строк:
Код 1C v 8.х
Если используется иерархический обход результата запроса или обход по группировкам, тогда удобнее выгрузить не в таблицу значений, а в дерево значений, как делается в следующем примере:
Код 1C v 8.х
Похожие FAQ
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Посмотреть все результаты поиска похожих
Еще в этой же категории
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Что такое менеджер временных таблиц и как с ним работать? 11
В 1С есть такая замечательная вещь, как МенеджерВременныхТаблиц . Этот объект позволяет передавать временные таблицы из одного запроса в другой. То есть, мы можем создать временную таблицу в запросе, прерваться, выполнить какой-нибудь код, и продо Объектная модель схемы запроса 5
Периодически во встроенном языке возникает необходимость изменения текста запроса в зависимости от разных алгоритмических условий. Раньше подобная задача решалась путем непосредственного формирования нужного текста запроса в виде строки. А это не вс Как в запросе объединить несколько значений в один столбец отобрав по условию? 1
Бывают ситуации, особенно когда формируешь отчеты по проводкам, где надо вывести отчет по одному типу значений и эти значения могут быть в разных колонках регистра. В примере ниже, необходимо собрать отчет в разбивке по Номенклатурным группам. Про Курс по разработке и оптимизации запросов в 1С (Часть 1) 0
Часть 1. Основные конструкции языка запросов и их назначение • Назначение языка запросов • Структура запроса • Основные секции запроса и их назначение • Группировка результатов запроса • Фильтрация результатов запроса • Объединения и соединени Посмотреть все в категории Запросы
Платформы 1С имеют встроенный функционал для сохранения данных в Excel. Обычно этой возможности достаточно для выгрузки, в противном случае возможно использование Com-объект «Excel.Application». В данной статье рассмотрим различные способы выгрузки данных в эксель.
Выгрузка в 1С из v7.7 стандартными средствами
Сохранение в эксель в 7.7 возможно только сформированных табличных документов, например отчетов.
После того, как отчет формирован, нажимаете меню «Файл\Сохранить как»:
Далее следует задать имя файла (если не подходит предложенное системой), путь сохранения и поменять тип на Таблица Excel:
Всё! Данные в 1С выгружены:
Выгрузка данных из 1С v. 8.3 (8.2, 8.1)
Производится также из табличного документа, но платформа умеет выводить в табличный документ списочные данные.
В демо базе, открываем справочник клиенты, в меню «Все действия» нажимаем «Вывести список…»
Данная команда позволяет вывести видимые колонки.
В обычных формах данную команду можно вызвать правой кнопкой на списке.
В следующем диалоге выбираем нужные колонки:
В результате сформируется табличный документ, который доступен для сохранения.
Далее, нажимаем на кнопку сохранения, в котором меняем тип файла на «Лист Excel»:
или через меню «Файл\Сохранить»
Обратите внимание: восьмерка более современная, для сохранения доступен более широкий список форматов.
Также следует заметить:
- разработчик может отключить сохранение из списков, у отдельных форм
- обычно этот типовой функционал расширяется по кнопке, либо вызов более удобного отчета
- у вас может отсутствовать право «Вывода», уберет возможность копирования в буфер обмена или печать документа, соответственно и сохранить в эксель в этом случае не получится
- возможность вывода списков доступно и в конфигураторе (например в момент отладки можно выгрузить таблицу значений)
Выгрузка в Excel доступна также через функционал БСП (библиотеки стандартных подсистем), который используется в большинстве типовых решений 1С.
Например из отчета «Остатки ТМЦ» в управлении торговлей 11.2:
Сохранение в Excel программным путем
Вариант 1: вызов сохранения табличного документа
У табличного документа есть метод «Записать», параметрами которого выступает ТипФайлаТабличногоДокумента
Вариант 2: использование объекта Excel.Aplication
Данная возможность доступна в среде Windows, желательно исполнение данного кода на стороне клиента, либо требуется дополнительная настройка серверной части.
Далее, простой код для записи данных в Excel (специально не усложняем, ничего лишнего. Явно к 1с относится только 2 строка, остальное это использование методов и свойств объекта Excel.Application, документация по которому доступна на сайте микрософт):
3) Добавим реквизит формы “ОтборНаФорме” с типом “КомпоновщикНастроекКомпоновкиДанных”. Перенесём таблицу с отборами на форму.(рис.4). Реквизит мы назвали "ОтборНаФорме", но там не только настройки отбора. Помимо "Отбора", на форму можно вынести: "Параметры данных", "Выбор", "Порядок" - любую настройку Компоновщика Настроек - ОтборНаФорме.Настройки.
4) Добавим реквизит формы “ТаблицаОжиданий” с типом "ТаблицаЗначений", куда будем выгружать результата нашей СКД. Перенесём таблицу на форму. (рис.5).
5) В обработчике формы “ПриСозданииНаСервере” Инициализируем компоновку, чтобы окошко с отборами заполнялось выбранными отборами нашего СКД.
6) Осталось выполнить нашу СКД(Макет) по Настройкам на форме (ОтборНаФорме.Настройки) и результат загрузить в таблицу значений
Стоит отметить:
1) В компоновщик настроек можно передать параметры. Параметры должны быть в описании нашей СКД (закладка "Параметры"). "НастройкиКомпановщикаНастроек" - в нашем примере это "ОтборНаФорме.Настройки"
2) Настройки нашего реквизита "ОтборНаФорме" можно сохранять/восстанавливать, например, в/из константы.
В процедуре инициализации восстанавливаем:
3) Результат СКД можно выгрузить в "ДеревоЗначений". Имеет смысл, если Структура нашего СКД тоже имеет древовидную структуру, имеет больше одной группировки.
4) Результат СКД можно выгружать не только в КоллекциюЗначений, коей является ТаблицаЗначений, но и в ТабличныйДокумент. Для этого нужно указать другой объект для вывода результата и в параметрах процедуры выполнения компоновщика указать тип генератора.
Для таблицы значений:
Для табличного документа(тут тип генератора можно не указывать, подходит тип по умолчанию):
5) Текст запроса СКД можно изменить. Конечно, менять текст имеет смысл только в процедуре выполнения компоновщика, в нашей случае это процедура ЗаполнитьНаСервере()
Таким образом, обработка может работать в ручном режиме и в автоматическом(в режиме регламентного задания, по сохранённым настройкам). Процедуры регламентного режима, которые выполняют СКД по Настройкам, конечно, должны быть размещены в модуле объекта обработки.
Для автоматического режима ничего восстанавливать не нужно. Форму мы не открываем. Передаём сохранённую настройку из константы(НастройкаИзКонстанты) прямо в функцию выполнения Компоновщика.
Не нужно открывать конфигуратор и менять условия в запросах, достаточно изменить настройки компановщика в хранилище. Мало того, одна СКД может отрабатывать по нескольким настройкам.
Читайте также: