Табличный процессор

19.08.24

Разработка - Инструментарий разработчика

«Табличный процессор» - это гибкий инструмент обработки таблиц в 1С. Программа предназначена для создания, изменения, импорта, экспорта и обработки таблиц. Есть 2 варианта запуска: на обычных и управляемых формах. Поставляется как часть программного продукта «Обработка Командер 1С», описанного в статье автора https://infostart.ru/public/682078/.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?]
Видео Командер 1С: Табличный процессор
.mp4 110,32Mb
13
13 Скачать бесплатно
Видео Командер 1С: Работа с таблицами регистров
.mp4 29,82Mb
2
2 Скачать бесплатно

Таблицы в 1С

В системе 1С почти все состоит из таблиц: табличные части, списки документов, справочники, регистры, отчеты и т.д. Отдельный вопрос – как их обрабатывать? Платформа предоставляет базовые функции для работы с таблицами, например, вывод списка объектов (документы/справочники) в табличный документ, загрузка/выгрузка в excel-файл. Также во многих конфигурациях есть дополнительные функции работы с таблицами, которые предусмотрели разработчики, например, в готовом отчете можно просуммировать выделенные ячейки, внешние обработки табличных частей. В основном этих инструментов хватает только для самой простой обработки информации в таблицах, либо эти инструменты очень специфичны под конкретную задачу. Бухгалтера постоянно выгружают таблицы в Excel, чтобы сводить итоги, крыжить строки, сравнивать суммы по определенным отборам… Программисты тоже часто пишут много похожего кода для обработки таблиц при поиске ошибок и отладки запросов.

 

Табличный процессор

Была цель расширить функционал работы с таблицами, дополнить гибкими универсальными функциями возможности платформы и конфигурации. В результате получился программный продукт «Табличный процессор». Реализован в виде внешней обработки, которую можно вставить в любую конфигурацию на платформе 1С:Предприятие 8.3.

В обработке используются функции анализа строковых выражений из предыдущих разработок (часть описана здесь //infostart.ru/1c/articles/1343680/). Это позволяет накладывать отборы и применять формулы любой сложности на интуитивно понятном языке. Например, можно выбрать или заменить остатки только по определенным контрагентам, удовлетворяющих условию. Допускается использование стандартных операторов «И», «Или», «Не»; арифметических операторов, скобок; полей и подполей объектов; чисел; дат; строк и выражений из них. Еще один шаг к универсальности.

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

Основные функции, претендующие на новизну (ноу хау):

- Распознание и загрузка всех таблиц из Excel-файла (шапка и строки таблиц распознаются по рамкам)

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

- Создание колонок таблицы по формуле (в формуле можно использовать текущие колонки таблицы и номер строки)

- Работа с несколькими таблицами

- Создание таблицы по формуле из других таблиц (допускается сложение/вычитание таблиц, умножение/деление на число)

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

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

- Работа в толстом и тонком клиентах, на обычных и управляемых формах (функционал единый, интерфейс немного отличается ввиду особенностей управляемых форм)

- Сравнение таблиц (Сравнение авторским алгоритмом «по ячейкам» и встроенным алгоритмом сравнения текстов)

 

Действия над таблицей

Действия с таблицей выполняются в разделе "Таблица", в подразделе «Действия». Слева редактируется текущая таблица. В поле действие выбирается нужная функция, в момент выбора заполняются дополнительные параметры для запуска данной функции ниже кнопки Выполнить. После настройки параметров нажимаем «Выполнить».

 

 

Далее будут описаны функции (действия) раздела.

Изменить ячейки

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

ИмяКолонки1=<Выражение1>; ИмяКолонки2=<Выражение2>; …

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

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

Входные поля: Формула (Строка), Номер Строки (Строка), Отбор (Строка).

Таблица в Текст

Вывести строки таблицы в текст по шаблону. При выборе данного действия автоматически заполнится параметр «Шаблон» из текущих колонок таблицы. В шаблоне колонки обрамляются квадратными скобками, остальные символы переносятся «как есть».

Входные поля: Шаблон (Строка).

Таблица в Макет

Открыть текущую таблицу в редакторе макета на закладке «Макет». В редакторе можно получать сумму и среднее чисел из выделенных ячеек. Ячейки выделяются с помощью клавиш Shift и Ctrl.

Выгрузить

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

Входные поля: Файл, Формат файла (Авто, Текст, Excel, Word, MXL, CSV, PDF, HTML, OpenOffice), Шапка (Булево), Строки (Булево), Подвал (Булево).

Загрузить

Загрузить таблицу из файла. Если выбрать формат файла Авто (по умолчанию), система определит формат файла по расширению файла. При загрузке из Excel система будет искать первую таблицу, обведенную рамкой. Из первой строки будут импортированы имена колонок (Если имя пустое или повторяется, будет сгенерировано новое и уникальное).

Входные поля: Файл, Формат файла (Авто, Текст, Excel, MXL, CSV).

Разделить на группы

Таблица разделяется на группы по ключу (по одной или нескольким колонкам). В каждой группе будут строки с одинаковым набором значений ключа. При данной операции открывается подраздел «Группы».

Если присутствует колонка «Ссылка» и определен реквизит вид, то в группах можно выбрать фаворита. В правой части также будут доступны кнопки «Найти фаворитов» (в группах по максимальному количеству ссылок на объекты определятся фавориты) и «Объединить» (заменить все объекты в группе на фаворита). Это доработанный функционал обработки «Удаление дублей».

Добавить колонку

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

Входные поля: Формула (Строка), Номер Строки (Строка).

Свернуть

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

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

Входные поля: Удалить нулевые строки (Булево).

Операция

Применить операцию к ячейкам ключа. Описание операций:

ЗаменитьПС – заменить все пробельные символы (табуляции, перевод строки, возврат каретки, непереносимый пробел) на простые пробелы,

БезДублейПС – удалить задублированные пробелы,

Наименование – применить операции ЗаменитьПС и БезДублейПС,

СокрЛ, СокрП, СокрЛП – убрать пробельные символы слева, справа, слева и справа,

Строка – преобразовать в строку,

НРег, ВРег – преобразовать регистр в нижний, верхний,

ЗРег – преобразовать регистр в верхний только для 1 символа каждого слова остальные не трогать,

ЗРег1 – как «Зрег», только для первого слова,

ТРег - преобразовать регистр в верхний только для 1 символа каждого слова, остальные в нижний,

ВРег1 – преобразовать регистр в верхний только для 1 символа остальные нижние,

Номер – получить номер без префикса и постфикса,

Номер* - получить все номера через пробел,

Форматировать – отделить цифры от слов,

Обезличить – скрыть информацию из текста,

Число – преобразовать в число,

Модуль – убрать знак у чисел,

ПоменятьЗнак – значение умножается на (-1),

КодEAN – получить добавочный 2-х символьный хэш-код для штрих-кода,

Дата – получить дату из строки с автораспознаванием формата.

Входные поля: Операция.

Удалить пустые строки

Удалить пустые строки таблицы. Строка удаляется, если функция "ЗначениеЗаполнено" вернет Ложь для всех значений колонок, не входящих в ключ.

Входные поля: <Нет>.

Таблица из записей регистра

Заполнить таблицу из записей регистра (все, кроме регистров расчета) за интервал дат с Дата1 по Дата2. Если Дата1 не задана, то записи выбираются с начала движений. Аналогично, если Дата2 не задана, то записи выбираются до самой последней.

Допустимо использовать произвольный отбор.

Также есть обратная операция (см. функцию «Таблица в записи регистра»). Можно загрузить записи по регистру (все или по отбору), внести корректировки и записать измененные данные обратно в регистр.

Входные поля: Регистр сведений/накоплений/бухгалтерии, Отбор (Строка), Дата1, Дата2.

Таблица из остатков регистра

Заполнить таблицу из остатков регистра накопления (вид регистра=Остатки) или регистра бухгалтерии на определенную дату (либо итоговые остатки, если дата не заполнена). Регистры накопления делятся на 2 вида: остатки и обороты. Остатки можно получить только по остаточному регистру накопления либо по регистру бухгалтерии по выбранному счету.

При получении таблицы заполняется ключ из измерений регистра накоплений и субконто регистра бухгалтерии.

Допустимо использовать произвольный отбор.

Также есть обратная операция (см. функцию «Таблица в остатки регистра»). Можно загрузить остатки по регистру (все или по отбору), внести корректировки и записать измененные данные обратно в регистр.

Входные поля: Регистр остатков, Отбор (Строка), Дата (Дата).

Таблица из оборотов регистра

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

Также есть обратная операция (см. функцию «Таблица в обороты регистра»). Можно загрузить остатки по регистру (все или по отбору), внести корректировки и записать измененные данные обратно в регистр.

Входные поля: Регистр остатков/оборотов, Отбор (Строка), Дата1 (Дата), Дата2 (Дата), Развернуто (Булево).

Таблица из среза регистра

Заполнить таблицу из среза периодического регистра сведений на дату (либо итоговый срез, если дата не заполнена). Можно получить срез первых с помощью соответствующего параметра, но обычно это не популярная функция. Если установить флаг «С Периодом», то в таблицу добавится колонка Период.

Допустимо использовать произвольный отбор.

Также есть обратная операция (см. функцию «Таблица в срез регистра»). Можно загрузить срез по регистру (все или по отбору), внести корректировки и записать измененные данные обратно в регистр.

Входные поля: Регистр сведений, Отбор (Строка), Дата (Дата), С Периодом (Булево), Срез первых (Булево).

Таблица в записи регистра

Записать таблицу в записи регистра сведений/накоплений или регистра бухгалтерии.

Записи всех регистров, кроме независимых регистров сведений, должны принадлежать документу (регистратору). У каждого вида документов в конфигурации определен свой набор регистров, по которым документы этого вида могут иметь движения (записи регистров). Также в конфигурациях обычно присутствует специальный документ Корректировки регистров, с помощью которого хирургически исправляются движения регистров. В зависимости от конфигурации название этого документа может быть разным: КорректировкаЗаписейРегистров (старые версии), КорректировкаРегистров (УТ11), ОперацияБух (БП3), Корректировка (Альфа-Авто) и др.

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

Входные поля: Регистр, Документ (Документ), Дата.

Таблица в остатки регистра

Записать таблицу в остатки регистра накопления (вид регистра=остатки) или регистра бухгалтерии на дату.

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

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

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

Предварительно таблицу с остатками можно получить с помощью функции «Таблица из остатков регистра».

Входные поля: Регистр остатков, Дата, Документ (Документ), Замена (Булево), Отбор (Строка).

Таблица в обороты регистра

Записать таблицу в обороты регистра накопления или регистра бухгалтерии. Аналогично функции «Таблица в остатки регистра».

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

Предварительно таблицу с оборотами можно получить с помощью функции «Таблица из оборотов регистра».

Входные поля: Регистр остатков/оборотов, Дата, Документ (Документ), Развернуто (Булево), Замена (Булево), Отбор (Строка), Дата1 (Дата), Дата2 (Дата).

Таблица в срез регистра

Записать таблицу в срез регистра сведений. Если регистр сведений подчинен регистратору, то действие аналогично функции «Таблица в остатки регистра».

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

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

Предварительно таблицу среза можно получить с помощью функции «Таблица из среза регистра».

Входные поля: Регистр сведений, Дата, Документ (Документ), Замена (Булево), Отбор (Строка).

 

Действия над группой таблиц

Сохранить

Сохранить все таблицы в файл. Если файл не задан, то таблицы сохраняются в кэше.

Надежнее сохранять в файл, но для промежуточных вычислений вполне подойдет.

Входные поля: Файл.

Восстановить

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

Входные поля: Файл.

Сравнить

Сравнить 2 выбранные таблицы. Сравнение встроенным алгоритмом сравнения текстов или авторским алгоритмом «по ячейкам» в зависимости от параметра Способ.

 

 

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

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

Входные поля: Способ (Сравнение текста 1С, Внутренний алгоритм).

Добавить Таблицу по формуле

Добавить таблицу по формуле из выбранных таблиц. Допускается использовать операции +, - и * / на коэффициент. Таблицы задаются идентификаторами.

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

Пример формулы: Т1*2-T2

Входные поля: Формула (Строка).

Загрузить

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

В Excel таблицах данные в ячейках имеют тип (Строка, число, дата). При загрузке Процессор по умолчанию определяет тип значений для каждой колонки. Колонки могут быть сложного типа, например «Строка,Число» (значит в колонке присутствуют строки и числа).

Входные поля: Файл, Определить типы значений (булево).

 

Дополнительно

Описание встроенного языка формул

Описано в статье //infostart.ru/1c/articles/1343680/.

Описание видов

Примитивные виды:

ч Число

с Строка

д Дата

б Логический (Истина/Ложь)

н Неопределено

N Null

Ссылочные виды:

С{Вид} Справочник

Д{Вид} Документ

п{Вид} Перечисление

П{Вид} Счет из плана счетов

В{Вид} План видов характеристик

З{Вид} Задача

Б{Вид} Бизнес-процесс

Регистры

s{Вид} Регистр сведений

n{Вид} Регистр накопления

b{Вид} Регистр бухгалтерии

r{Вид} Регистр расчета

Примитивные виды задаются одной буквой, для остальных видов 1ая буква задает тип (С - Справочник, Д - документ),

последующие буквы задают имя объекта, как оно задано в конфигураторе. Например: СКонтрагенты, ДРеализацияТоваровУслуг.

Сложные виды задаются списком простых видов, разделенных запятой без пробелов, например: с,ч,СКонтрагенты.

Продукт

Разработка «Табличный процессор» поставляется как часть программного продукта «Обработка Командер 1С», описанного в статье автора //infostart.ru/public/682078/, в разделе «Таблицы». В указанной статье представлена последняя версия обработки, которая включает в себя последнюю версию «Табличного процессора».

Таблица Таблицы Работа с таблицами Табличный процессор Командер

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    151390    833    397    

841

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    20305    58    42    

106

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

OneRPA - платформа роботизации рутинных операций, в основе которой лежит платформа 1С:Предприятие. Данная платформа позволяет использовать современные технологии роботизации, не теряя при этом наработки, которые были созданы в ходе автоматизации. При этом платформа роботизации сохраняет все преимущества платформы 1С: гибкость, кроссплатформенность, мобильный и Web доступ, простоту расширения. Ну и конечно же роботы создаются и сопровождаются простыми специалистами 1С, при этом не обязательно программистами. Self hosted версия

300000 руб.

03.03.2021    14166    12    27    

36

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

6900 руб.

20.08.2024    3804    22    6    

36

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    13965    35    7    

69

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    9049    32    10    

56

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3840 руб.

14.01.2013    185288    1126    0    

899

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    16728    6    29    

42
Оставьте свое сообщение