Как добавить ячейку в 1с

Обновлено: 08.07.2024

На практике часто случается, что нужно решить какую-либо задачу, иногда довольно тривиальную с точки зрения пользователя Excel (к примеру изменить фон ячейки в Excel, добавить левую границу и т.д.), а решение в сети/документации искать не хочется или не получается, тогда можно попробовать начать запись макроса, выполнить нужную последовательность действий (изменить фон, добавить границу) , после чего записать макрос и открыть код VBA для анализа кода, названий свойств и методов. Такой способ довольно часто помогает быстро решить проблему.

1. Подключение к Excel

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

2. Запись значения в ячейку

Количество листов книги

3. Шрифт и размер шрифта

4. Ширина колонки

Чтобы скрыть колонку, нужно установить ширину в значение 0.

Получение последней ячейки в используемом диапазоне

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

4. Установка фильтра

5. Горизонтальное выравнивание ячейки

Режим выравнивания

Константа в Excel

Значение в ISBL

По центру выделения

По правому краю

6. Вертикальное выравнивание ячейки

Режим выравнивания

Константа в Excel

Значение в ISBL

По нижнему краю

По верхнему краю


7. Установка свойства ячейки "переносить по словам"

8. Отключение/включение режима показа предупреждений

9. Формулы

Для формул с русскими названиями нужно использовать не Formula, а FormulaLocal. Таким образом правильными вариантами написания формул будут:

10. Таблица цветов с индексами


11. Установка границы ячейки и тип линии границы

Значения константы XlBordersIndex

Значение в Excel

Значение в ISBL

В виде тире и точек

В виде тире и двойных точек

В виде двойной линии

В виде наклонной пунктирной

Свойство LineStyle (тип линии) может принимать следующие значения

Расположение линии

Значение в Excel

Значение в ISBL

Линия по диагонали сверху – вниз

Линия по диагонали снизу – вверх

Линия, обрамляющая диапазон слева

Линия, обрамляющая диапазон сверху

Линия, обрамляющая диапазон снизу

Линия, обрамляющая диапазон справа

Все вертикальные линии внутри диапазона

Все горизонтальные линии внутри диапазона

Значения константы XlBordersIndex

Расположение линии Значение в Excel Константа в ISBL
Линия по диагонали сверху вниз xlDiagonalDown 5
Линия по диагонали снизу – вверх xlDiagonalUp 6
Линия, обрамляющая диапазон слева xlEdgeLeft 7
Линия, обрамляющая диапазон сверху xlEdgeTop 8
Линия, обрамляющая диапазон снизу xlEdgeBottom 9
Линия, обрамляющая диапазон справа xlEdgeRight 10
Все вертикальные линии внутри диапазона xlInsideVertical 11
Все горизонтальные линии внутри диапазона xlInsideHorizontal 12

Свойство LineStyle (тип линии) может принимать следующие значения:

Тип линии Значение в Excel Константа в ISBL
Нет линии xlLineStyleNone 0
Непрерывная xlContinuous 1
В виде тире и точек xlDashDot 4
В виде тире и двойных точек xlDashDotDot 5
В виде точек xlDot 8
В виде двойной линии xlDouble 9
В виде наклонной пунктирной xlSlantDashDot 13

Получение порядкового номера колонки Excel по буквенному обозначению имени

Однажды столкнулся с тем, что нужно было получить буквенное обозначение колонки Excel по её порядковому номеру. Например, для колонки номер 3 буквенное обозначение равно "C". Так вот ниже приведены две замечательные функции, которые вполне справляются с решением данной проблемы.

Наоборот, получение буквенного обозначения имени колонки по номеру колонки

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

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

Обработка и форма обработки

Создадим обработчик команды в клиентском контексте, и функцию тоже в клиентском контексте, в которой создадим табличный документ, и этот табличный документ функция вернет. А в обработчике команды покажем возвращаемый функцией табличный документ.

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

Макет табличного документа 1С

Макет табличного документа 1С

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

Имя ячейки табличного документа 1С

Зная имя ячейки или области ячеек, мы можем получить эту область из уже созданного документа при помощи метода Область().

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

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

Табличный документ 1С

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

Ячейки первой колонки.

Ячейки табличного документа 1С

Получим область для этих ячеек, объединим ячейки этой области, напишем какой-нибудь текст и обведем эту область, используя метод Обвести табличного документа.

Точно также получим область для соседней колонки.

Первым делом узнаем имя ячеек. Ячейки второй колонки.

Ячейки табличного документа 1С

А потом получим область, и выполним над ней те же самые манипуляции, что и над соседней областью.

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

На этом мы закончим изменять табличный документ. Полная версия кода в функции ВозвратТабличногоДокумента будет следующей:

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

Табличный документ 1С

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

Другие статьи про табличные документы в 1С:

Это изображение имеет пустой атрибут alt; его имя файла - 1C-в-желтом-цвете-3D-221x300.jpg

Это изображение имеет пустой атрибут alt; его имя файла - 1_в-желтом-цвете-3D-маленькая-221x300.jpg

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Использование элементов управления в табличном документе

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

Поле ввода для изменения текста ячейки

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

Для входа в режим редактирования ячейки достаточно нажать клавишу "Enter", или нажать клавишу "F2", или произвести двойной щелчок левой клавишей мыши над ячейкой, или непосредственно начать ввод. Для завершения редактирования содержимого ячейки необходимо нажать клавишу "Enter", либо произвести щелчок мышью за пределами поля ввода. Для отмены редактирования следует воспользоваться клавишей "Esc".

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

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

При необходимости изменения режима поведения клавиш курсора, при редактировании ячейки, следует нажать клавишу "F2". При этом режимы будут циклически переключаться

Элемент управления для редактирования значения ячейки

Каждая ячейка табличного документа имеет свойство СодержитЗначение , в котором находится признак того, что в данной ячейке будет храниться не просто текст, а значение определенного типа ( Число , Строка , Дата и т.д.).

Если редактируемая ячейка содержит значение, то возможно указание элемента управления, который будет использован для редактирования значения ячейки, а также, настройка параметров выбранного элемента управления. Тип элемента управления указывается в свойстве ячейки ЭлементУправления . Выбор элемента управления зависит от типа значения, которое содержится в ячейке. Например, для числа можно установить в качестве элемента управления поле ввода и флажок, для строки - только поле ввода.

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

Редактирование содержимого ячейки, содержащей значение, происходит так же, как и редактирование обычной ячейки.

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

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

Возможны два режима работы элемента управления формы, расположенного на поле табличного документа:

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

ВАЖНО!
При встраивании элемента в ячейку поля табличного документа, у элемента управления автоматически сбрасывается свойство Видимость . При сброшенном свойстве Видимость , элемент управления, встроенный в ячейку будет показываться пользователю только при входе в режим редактирования ячейки. Если не войти в режим редактирования ячейки, ячейка будет отображать значение, которое связано с данным элементом управления. Если же свойство Видимость установлено, элемент управления будет виден пользователю всегда.

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

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

Клиент-Серверный вариант в управляемых формах.

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

2-ой способ - это передать файл Excel на сервер через хранилище данных и далее работать с ним уже на сервере.

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

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

На выходе получаем двумерный массив, который содержит все данные указанного листа Excel

Полезные функции при работе с Excel:

Устанавливает видимость Excel при работе
Добавление новой книги в файл Excel
Сохранение книги Excel
Добавление нового листа к книге
Переименование листа
Изменение маштаба листа
Изменение ориентации листа
Отступы листа
Обращение к ячейки
чтение/запись
Обращение к области ячеек
Очень часто при чтении или записи значений в Excel ставятся лишние пробелы в числе, например, вместо 1502 он читает как 1 502 и в дальнейшем это значение не приводится к числу. Эту проблему можно решить заменой.
Объединение ячеек
Работа с именованными ячейками в Excel
Удаление ячейки
Удаление области ячеек
Обращение к строке
Изменение ширины колонки
Обращение к колонке
Удаление Строки
Фон ячейки / области / Строки /
Функция переводит цвет из формата RGB в формат Excel
Управление шрифтом в ячейки/строке/области
Р азрешает переносить по словам в ячейке
Управление рамкой ячейки
Устанавливаем формат ячейки
Формула в ячейки
Формула в ячейки
Формула в ячейки
Формула в ячейки
Функция для получения ширины колонки Excel
Спасибо пользователю goodwill
Разрешить перенос слов в ячейке
Спасибо пользователю roofless
Группировки данных на листе
Спасибо пользователю dr-wit, ignor

При работе с Excel мы оперируем столбцами как числом (Например, 1 столбец), а у Excel адресация столбцов производится с помощью символов. И когда нам нужно отредактировать формулу, то нам нужно номер столбца преобразовать в символ. В таких случаях вам пригодится эта функция.

2. Работа с Excel через ТабличныйДокумент 1С

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

Итак, приступим: загрузка из Excel:

1. Загружаем файл Excel в табличный документ

2. Производим манипуляции уже с ТабличнымДокументом

Давайте теперь разберем сохранение в Excel с помощью данного метода:

Тут все очень просто сначала мы формируем обычный Табличный документ и затем записываем его в Excel

2. Работа с Excel ADODB

Выражаю особую благодарность коллеги Fragster за хороший комментарий

Данный метод позволяет работать с Excel через ODBC и имеет ряд преимуществ:

  1. Не требует установки самой Excel, необходима лишь установить ODBC. Но как правило он уже установлен. Это особенность позволяет работать на стороне сервера без дополнительных установок Excel.
  2. Позволяет работать с таблицой Excel как с БД и строить к ней запросы на T-SQL. Таким образом мы можем делать отборы еще на этапе чтения данных и другие преимущества что дает Т-SQL. Что на мой взгляд огромный плюс.

Подключение к ADO

Отключение от ADO


Выполнение запроса

Пример запроса:

Запись в Excel тоже производится в виде запроса:

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


ADODB предоставляет ряд объектов, с которыми мы работаем

ADODB.Recordset

В файле продемонстрированны оба варианта работы с запросами.

На этом пока все. По возможности буду дополнять статью :)

В архиве находится обработка, которая демонстрирует все описанные и другие возможности при работе с Excel.

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