Как в 1с выгрузить в таблицу

Обновлено: 07.07.2024

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

//можно указать тип данных каждой колонки
//если тип данных колонки не указан, то можно хранить данные любого типа
Синтаксис: НоваяКолонка(<Идентификатор>, <Тип>, <Длина>, <Точность>, <Заголовок>, <Ширина>, <Формат>, <Положение>)

Добавление строк в таблицу значений

Перебор строк таблицы значений

Сортировка таблицы значений

Поиск в таблице значений

Синтаксис: НайтиЗначение(<Знач>,<Строка>,<Колонка>)
Возвращает число: 0 - значение не найдено; 1 - значение найдено
Если указан параметр <Строка>, то поиск производится только по заданной строке
Если указан параметр <Колонка>, то поиск производится только по заданной колонке

Итоги и группировка таблицы значений

//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть

Удаление строк и колонок из таблицы значений

ВНИМАНИЕ
Часто требуется удалить строки, удовлетворяющие определенному условию.
Так как при удалении строки из таблицы значений следующая строка становится текущей,
то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.

В этом случае я рекомендую использовать следующий прием:

А вот еще один правильный алгоритм, предложенный Wlad:

Замечание(Туц). Предыдущий вариант не совсем правильный. Случай, когда последняя строка попадает под условие и в условии идёт обращение к строке таблицы, приводит к ошибке. Т.е. происходит попытка чтения для строки 0.

И ещё вариант, предложенный Туц:

Замечание (vligm). А я использую такой алгоритм (это, собственно говоря, шаблон):

Таблица значений как элемент диалога

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

Методы УстановитьЗначение и ПолучитьЗначение

Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.
Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).

Синтаксис: УстановитьЗначение(<Строка>,<Колонка>,<Знач>)
Синтаксис: ПолучитьЗначение(<Строка>,<Колонка>)

Выгрузка данных из 1С в Microsoft Excel

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

Выгрузка информации из 1C в Excel

Если загрузка данных из Excel в 1С – это довольно сложная процедура, автоматизировать которую можно только с помощью сторонних решений, то обратный процесс, а именно выгрузка из 1С в Эксель – это сравнительно простой набор действий. Его можно легко выполнить с помощью встроенных инструментов вышеуказанных программ, причем сделать это можно несколькими способами, в зависимости от того, что именно пользователю нужно перенести. Рассмотрим, как это выполнить на конкретных примерах в 1С версии 8.3.

Способ 1: копирование содержимого ячейки

Одна единица данных содержится в ячейке 1С. Её можно перенести в Эксель обычным методом копирования.

  1. Выделяем ячейку в 1С, содержимое которой нужно скопировать. Кликаем по ней правой кнопкой мыши. В контекстном меню выбираем пункт «Копировать». Можно воспользоваться также универсальным способом, который действует в большинстве программ, работающих на ОС Windows: просто выделяем содержимое ячейки и набираем комбинацию клавиш на клавиатуре Ctrl+C.

Копирование в 1С

Вставка через контекстное меню в Microsoft Excel

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

Вставка через кнопку на ленте в Microsoft Excel

Содержимое ячейки 1С будет вставлено в Excel.

Данные в ячейку вставлены в Microsoft Excel

Способ 2: вставка списка в существующую книгу Excel

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

  1. Открываем любой список, журнал или справочник в 1С. Кликаем на кнопку «Все действия», которая должна располагаться вверху от обрабатываемого массива данных. Запускается меню. Выбираем в нем пункт «Вывести список».

Переход к выводу списка в Microsoft Excel

Поле «Выводить в» имеет два значения:

По умолчанию установлен первый вариант. Для переноса данных в Эксель он как раз и подходит, так что тут мы ничего не меняем.

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

Окно вывода списка в Microsoft Excel

Копирование списка в 1С

Вставка списка в Microsoft Excel

Список вставлен в документ.

Список вставлен в документ в Microsoft Excel

Способ 3: создание новой книги Excel со списком

Также список из программы 1С можно сразу вывести в новый файл Эксель.

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

Сохранение списка в 1С

Ещё проще сделать переход, нажав на кнопку «Сохранить», которая имеет вид дискеты и расположена в блоке инструментов 1С в самом верху окна. Но такая возможность доступна только пользователям, которые применяют программу версии 8.3. В ранних версиях можно использовать только предыдущий вариант.

Переход к сохранению списка в 1С

Сохранение таблицы из 1С в Microsoft Excel

Весь список будет сохранен отдельной книгой.

Способ 4: копирование диапазона из списка 1С в Excel

Бывают случаи, когда нужно перенести не весь список, а только отдельные строки или диапазон данных. Этот вариант тоже вполне воплотим с помощью встроенных инструментов.

    Выделяем строки или диапазон данных в списке. Для этого зажимаем кнопку Shift и кликаем левой кнопкой мыши по тем строкам, которые нужно перенести. Жмем на кнопку «Все действия». В появившемся меню выбираем пункт «Вывести список…».

Переход к выводу диапазона данных в 1С

Окно вывода списка выделенных строк в Microsoft Excel

Список выведен в 1С

Способ 5: Сохранение документов в формате Excel

В Excel иногда нужно сохранять не только списки, но и созданные в 1С документы (счета, накладные платежные поручения и т.д.). Это связано с тем, что для многих пользователей редактировать документ проще в Экселе. К тому же в Excel можно удалить заполненные данные и, распечатав документ, использовать его при необходимости как бланк для ручного заполнения.

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

Вывод на печать документа в 1С

Переход к сохранению документа в Microsoft Excel

Переход к сохранению документа в программе 1С

Сохранение документа в формате Microsoft Excel

Документ будет сохранен в формате Эксель. Этот файл теперь можно открывать в данной программе, и проводить дальнейшую его обработку уже в ней.

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Выгрузка в 1С из v7.7 стандартными средствами

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

sohranit-kak

Далее следует задать имя файла (если не подходит предложенное системой), путь сохранения и поменять тип на Таблица Excel:

sohranit-kak-tablitsa-excel

Всё! Данные в 1С выгружены:

vygruzhennye-dannye-iz-7-7-v-excel

Выгрузка данных из 1С v. 8.3 (8.2, 8.1)

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

vyvesti-spisok

Данная команда позволяет вывести видимые колонки.

В обычных формах данную команду можно вызвать правой кнопкой на списке.

В следующем диалоге выбираем нужные колонки:

vyvesti-spisok-vybor-polej

В результате сформируется табличный документ, который доступен для сохранения.

fajl-sohranit

Обратите внимание: восьмерка более современная, для сохранения доступен более широкий список форматов.

Также следует заметить:

Выгрузка в Excel доступна также через функционал БСП (библиотеки стандартных подсистем), который используется в большинстве типовых решений 1С.


Сохранение в Excel программным путем

Вариант 1: вызов сохранения табличного документа

zapisat-tiptablichnogo-dokumenta

ТабличныйДокумент . Записать ( ТипФайлаТабличногоДокумента . XLS, ) ;

Вариант 2: использование объекта Excel.Aplication

Данная возможность доступна в среде Windows, желательно исполнение данного кода на стороне клиента, либо требуется дополнительная настройка серверной части.

Рассмотрим два способа в 1с свернуть таблицу значений. Для первого воспользуемся методом таблицы значений Свернуть, для второго используем Запрос.

Свернуть с использованием метода таблицы значений

У таблицы значений существует специальный метод Свернуть. Он позволяет группировать строки по полям, указанным в первом параметре и суммировать значения полей, указанных во втором параметре.

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

1с свернуть таблицу значений

Также стоит отметить следующие особенности метода Свернуть:

  • Работает только НаСервере (как и любые действия с таблицами значений);
  • Прост в реализации;
  • Может суммировать значения, но не может получать минимум, максимум, среднее и т.д.

Свернуть таблицу значений при помощи запроса

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

Для свертки таблицы значений запросом необходимо:

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

Пример 2. Пусть у нас существует таблица значений с колонками Номенклатура, Цена, Количество, Сумма. Необходимо в 1с свернуть таблицу значений по колонке Номенклатура, по колонке Цена получить среднее значение, просуммировать данные в колонках Количество и Сумма.

Суть:
Есть документ с табличным полем в форме документа.
Необходимо выгрузить табличное поле в таблицу значений для дальнейшей обработки.
Табличное поле связано с табличной частью документа, но состав его строк отличается от состава строк табличной части документа в связи с:
1. Наличием вычисляемых полей
2. Установленным отбором

Колонки выгрузить могу через ТаблПоле.Колонки и обойти циклом "Для каждого". А как выгрузить строки.
Табличную часть документа тоже выгрузить могу. Но она, как написал, отличается от табличного поля составом строк и колонок.

Вычисляемые колонки вычислить.
Отобранные строки выгрузить Построителем.
(2) mikecool, ТабличнаяЧасть.Вsuhepbnm - это для табличной части (ТЧ) документа, а не для ТабличногоПоля. Табличное поле, конечно связано с ТЧ документа, но в нем (в табличном поле) присутствуют вычисляемые колонки, которых в ТЧ документа нет. В результате приходится или добавлять соответствующие реквизиты в ТЧ документа (не совсем красиво) или пересчитывать колонки (потеря производительности). На данный момент решил вопрос через добавление доп.реквизитов в ТЧ документа.
(3) 73, Решение реальное, но дополнительный пересчет - это потеря производительности. Предпочел добавить доп.реквизиты в табличную часть документа, как написал выше.
(4) НЕА123, что такое "СП"?
ОформлениеСтроки() : да, у табличного поля есть такой метод, но его синтаксис ТабличноеПоле.ОформлениеСтроки(<Строка>).
А как программно перебрать все строки табличного поля, чтоб получить этот параметр <Строка>?

(6) Если не проверял, то могу рассказать:
1. про метод "ОформлениеСтроки уже написал выше.
2. "ОформлениЕСтроки" появляется в событии "ПриВыводеСтроки", но там оформление только одной строки
3. В событии "ПриПолученииДанных" появляется "ОформлениЯСтроки" (коллекция элементов "ОформлениЕСтроки"), но эта коллекция содержит только те элементы, которые в данный момент выведены на экран.

Но все равно спасибо за ответ.

Резюме: получается вроде как выгрузка ТабличногоПоля в 1С не предусмотрена, вероятно так как обычно оно жестко связано с табличной частью документа, а рассчетные поля обычно, если они в Табл.поле и присутствуют, то все они равно одноразовые и никому повторно не нужны или расчеты простые и можно пересчитать повторно.
нет слов.
у меня уже вторая ветка сегодня.
автор получает ответ, и говорит: НЕТ НЕПРАВДА!(ничего не читая и не проверяя).
ладно, жду.
как и в ветке v8: Критерии отбора - как прочитать состав? пару часов.

(8) Почитай про ПроверитьСтроку() и МЕТОД ОформлениеСтроки(), который не имеет общего с созвучными параметрами процедур ПриВыводеСтроки/ПриПолученииДанных.
В (6) реальный алгоритм: Перебирается не поле, а ТЧ. Проверяется соответствие строки отбору и если да - запрашивается её(этой строки) - ОформлениеСтроки().

ЗЫ. Имхо, перебирать всю ТЧ может оказаться накладнее, чем метод (3).

(11)
>ЗЫ. Имхо, перебирать всю ТЧ может оказаться накладнее, чем метод (3).
не могу не согласиться.
положительно в (6) то, что отсутствуют обращения к БД, ну и не надо разбираться с алгоритмами расчета колонок.
пусть автор выбирает (3) или (6), программист вроде.
Вычисляемые колонки вычислить.
Отобранные строки выгрузить Построителем.
СПАСИБО ОГРОМНОЕ ЗА ЭТО.
ОЧЕНЬ-ОЧЕНЬ ПОМОГЛО.

Спасибо всем за ответы.

П.С.:
Я решил следующим образом:
1. В табличную часть документа добавил как реквизиты все свои расчетные поля). По здравому размышлению это оказалось даже полезным, один из моментов: так как расчетные поля идут также в печатную форму, и документ, сохраненный в базе всегда соответствует тому, который распечатан. А пересчет данных по документу организовал в виде отдельной кнопки, т.о. автоматом 1С не пересчитывает.
2. Когда необходимо обработать те строки, которые в данный момент выведены на экран, с учетом установленных отборов, то считываю данные из табличной части документа методом "НайтиСтроки", в который передаю структуру с параметрами установленного отбора.
2.1. Для формирования структуры отбора, которая передается в НайтиСтроки написал свою функцию обхода ЭлементовОтбора.

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

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