4 способа быстро и легко сравнить большие таблицы

Таблица значений в 1С. Строка таблицы значений. Колонки таблицы значений. Поиск в таблице значений. Копирование таблицы значений. Индексы таблицы значений.

Создание таблицы значений

Для создания таблицы значений используются конструктор:

//создание таблицы без колонок

ТаблицаДокументов= Новый ТаблицаЗначений;

В данной таблице не будет ни одной колонки и добавление в нее строк бессмысленно. Для добавления колонок нужно использовать свойство Колонки таблицы значений:

//добавление двух колонок

ТаблицаДокументов.Колонки.Добавить(“Товар”);

ТаблицаДокументов.Колонки.Добавить(“Цена”);

Теперь в таблицу можно добавить несколько строк. Добавление строк выполняется методом Добавить. Данный метод вернет строку таблицу значений. К именам колонок таблицы значений можно обращаться как к свойствам строки:

//строки добавляются методом Добавить

СтрочкаТабл= ТаблицаДокументов.Добавить();

//к колонкам можно обращаться через ее имя

СтрочкаТабл.Товар= “Диван”;

СтрочкаТабл.Цена= 1000;

СтрочкаТабл.Товар= “Кресло”;

СтрочкаТабл.Цена= 500;

Способ № 1: сравнить в базе 1С

На любой платформе 1С есть типовая обработка «Сравнить файлы». Находится в верхнем левом углу: «Главное меню — Файл — Сравнить файлы».

4 способа быстро и легко сравнить большие таблицы

Она позволяет сравнить содержимое файлов формата .txt и .mxl. Другие форматы не принимает и выдает сообщения: «Ошибка при выполнении файловой операции» и «Бинарные файлы различны».

4 способа быстро и легко сравнить большие таблицы

Чтобы начать работать, добавьте сопоставляемые файлы в окошки «Сравнить» и «С». Укажите «Как» сравнить: табличный документ, текстовый документ или двоичное сравнение. Нажмите клавишу «ОК».

4 способа быстро и легко сравнить большие таблицы

Открылось окно с обеими таблицами, в которых цветом выделены отличающиеся значения.

4 способа быстро и легко сравнить большие таблицы

На верхней панели инструментов доступны следующие команды →4 способа быстро и легко сравнить большие таблицы

4 способа быстро и легко сравнить большие таблицыпозволяют переходить по различиям от текущего значения к следующему и обратно, в это время в основном окне будет выделена ячейка с отличием;

4 способа быстро и легко сравнить большие таблицыменяет порядок сравнения: если ее нажать, то правый лист окажется слева,
а левый — справа;

4 способа быстро и легко сравнить большие таблицы— настройка ячеек по цветам.

4 способа быстро и легко сравнить большие таблицы

В нижней части окна отображается подсказка, что означает каждый цвет.

Плюсы:

  • не требует дополнительного программного обеспечения;
  • моментально показывает все изменения без предварительных настроек;
  • удобный интерфейс: когда на любой части окна прокручиваешь первый файл вверх/вниз или вправо/влево, в то же время параллельно ему прокручивается второй.

Минусы:

  • ограниченное количество форматов — работает только с .txt и .mxl. Нельзя вставить Excel-файлы;
  • невозможно сохранить результат сравнения во внешний файл. Даже если скопировать данные и вставить в тот же Excel, цветное выделение различий не перенесется;
  • нет дополнительных формул, например, чтобы вывести сумму по колонке.

Источник: http://career.i-neti.ru/4-sposoba-sravnit-tablitsy/

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

Задача банальная — сравнить одним действием две табличные части или таблицы значений и вывести различающиеся по количеству позиции. В моем случае я сравниваю заказ поставщику и документ поступления.

Производится это нетрудное действие с помощью простого запроса, в который передается два параметра: две ссылки на сравниваемые документы.

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

ВЫБРАТЬ
Заказы.Номенклатура,
СУММА(Заказы.Количество) КАК Количество
ПОМЕСТИТЬ Заказы
ИЗ
Документ.ЗаказПоставщику.Товары КАК Заказы
ГДЕ
Заказы.Ссылка = &Заказ

СГРУППИРОВАТЬ ПО
Заказы.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Поступления.Номенклатура,
СУММА(Поступления.Количество) КАК Количество
ПОМЕСТИТЬ Поступления
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК Поступления
ГДЕ
Поступления.Ссылка = &Поступление

СГРУППИРОВАТЬ ПО
Поступления.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Заказ.Номенклатура КАК Номенклатура,
ЕСТЬNULL(Заказ.Количество, 0) КАК КоличествоЗаказано,
ЕСТЬNULL(Накладная.Количество, 0) КАК КоличествоПоступило
ПОМЕСТИТЬ Итоговая
ИЗ
Заказы КАК Заказ
ЛЕВОЕ СОЕДИНЕНИЕ Поступления КАК Накладная
ПО Заказ.Номенклатура = Накладная.Номенклатура

ВЫБРАТЬ
Накладная.Номенклатура,
ЕСТЬNULL(Заказ.Количество, 0),
ЕСТЬNULL(Накладная.Количество, 0)
ИЗ
Поступления КАК Накладная
ЛЕВОЕ СОЕДИНЕНИЕ Заказы КАК Заказ
ПО (Заказ.Номенклатура = Накладная.Номенклатура)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Итоговая.Номенклатура,
Итоговая.КоличествоЗаказано,
Итоговая.КоличествоПоступило,
Итоговая.КоличествоЗаказано — Итоговая.КоличествоПоступило КАК КоличествоРазница
ИЗ
Итоговая КАК Итоговая
ГДЕ
Итоговая.КоличествоЗаказано — Итоговая.КоличествоПоступило 0

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

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

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Источник: http://politoff.ru/1s-sravnit-dva-tablitsy-znacheniy/

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

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

//через цикл Для Каждого

Для Каждого СтрочкаТаблИз ТаблицаДокументовЦикл

Сообщить(СтрочкаТабл.Товар);

//можно менять значения колонок

СтрочкаТабл.Цена= СтрочкаТабл.Цена*1.1;

КонецЦикла;

//через цикл Для

//метод Количество() вернет количество строк таблицы

Для ё= 0ПоТаблицаДокументов.Количество()1Цикл

Сообщить(ТаблицаДокументов[0].Товар);

//можно менять значения колонок

ТаблицаДокументов[0].Цена= ТаблицаДокументов[0].Цена*1.1;

КонецЦикла;

Ускоряем медленный/долгий и тормозной стандартный поиск по динамическому списку, настраиваем его под себя

Пользователи привыкли искать на форме списка, но, вбивая в поиск некорректные данные, могут завесить всю систему, а если еще искать нужно по НЕ полям списка, то решение только в своём поиске — все это решим в публикации с открытым кодом.

14.12.2020 8391 SizovE 2

Источник: http://politoff.ru/1s-sravnit-dva-tablitsy-znacheniy/

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

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

//по возрастанию цены

ТаблицаДокументов.Сортировать(“Цена”);

//по убыванию цены

ТаблицаДокументов.Сортировать(“Цена Убыв”);

//сначала по возрастанию цены, потом по возрастанию наименованию товара

ТаблицаДокументов.Сортировать(“Цена, Товар”);

Использование классов .Net в 1С для новичков Промо

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016 78739 Serginio 113

Источник: http://politoff.ru/1s-sravnit-dva-tablitsy-znacheniy/

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

Редактор HTML платформы 1С простой и очень удобный для небольших задач, однако ПолучитьHTML возвращает отдельно картинки и отдельно целиком HTML страницу со ссылкой на имена этих картинок, что неудобно для отправки в базу данных сайта/интернет-магазина/веб-приложения/B2B. Разберем на открытом коде, как решить эту проблему, напишем универсальную функцию получения значения любого тега HTML на регулярных выражениях. Бонусом — возможность редактировать теги HTML в текстовом режиме.

Источник

Источник: http://politoff.ru/1s-sravnit-dva-tablitsy-znacheniy/

Индексы таблицы значений

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

//добавление индексов

ТаблицаДокументов.Индексы.Добавить(“Товар”);

ТаблицаДокументов.Индексы.Добавить(“Сумма”);

//будут созданы 2 индекса

//при поиске по колонке Товар или по колонке Сумма

//будет использоваться индекс

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

//методом НайтиСтроки, то индекс не будет использоваться

//Для этого нужен составной индекс

ТаблицаДокументов.Индексы.Добавить(“Товар, Сумма”);

Подписывайтесь на группу

ВКонтакте

, где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...