Объединить два списка значений 1с

Обновлено: 04.07.2024

Объекты типа массив в 1С 8.3 представляют собой совокупность упорядоченных значений любого типа, в том числе и типа «массив», что в свою очередь позволяет организовывать многомерные массивы. Идентификация значений осуществляется по индексам, нумерация которых начинается с «0».

Создание массива

Синтаксис:

Примеры:

Добавление элементов в массив

Примеры:


Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>



Получение значения элемента по индексу

Поиск в массиве 1С

Присвоение значений элементам массива

Примеры:

Как узнать количество элементов массива (размер массива)

Перебор массива 1С

Примеры:

Перебор всех элементов двумерного массива

Примеры:

Удаление элементов из массива

Примеры:

Как разложить строку в массив


Пример преобразования массива в список значений


Пример преобразования массива в таблицу значений


Сортировка массива 1С разными способами

Примеры:

Как свернуть массив в 1С

Пример:


Поддержите нас, расскажите друзьям!

СПРОСИТЕ в комментариях!

Услуги 1С

Наш канал на Youtube


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

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

Пишем простенькие функции отбора (столько, сколько вариантов отбора мы хотим):


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

Использовать можно следующим образом (упрощенно):

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

Автор: Сергей Попов, Усинск, Коми

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

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

Автор: Сергей Попов, Усинск, Коми

Код
Показать полностью

Чем хороша такая конструкция?

Код
Показать полностью

Почему не используется такая?

Код
Показать полностью

(2) Чем хороша такая конструкция?

А чем плоха? Чем они вообще отличаются?:-)

Это все-равно, что спорить, что плохо, что индексы ТаблицЗначений или СписковЗначений начинаются с 1, а не с 0.
Я так с нуля люблю, но это дело привычки.

1С язык мне не родной, я его вспоминаю, когда в 1С'не наваять что нуно:-)

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

Хотя во многих случаях это хороший вариант, более быстрый.

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

(5) не понял.
1) Ты хочешь устанавливать фильтры на основе реквизитов, которые имеют неопределённую длину?
2) Что значит "в прямых запросах нельзя по части поля сравнивать"? (желательно пример)

1) Я не то, чтобы хочу, но если будет такая необходимость организовать фильтрацию или поиск, то какие проблемы:-)

2) Например, поле номер рамы: LAPP12345ERT569835789. Пользователям удобно искать или фильтровать не полный номер рамы, а только по последним символам, допустим по 5789.

И вообще, злые вы. -)

Хоть бы плюсик поставили:-)

По сути, ценно тут то, что можно получить объединение и пересечение двух множеств.

А для каких задач это использовать (фильтры это так, пример), это уже второй вопрос.

Тут пришла мысль:-)

Объединение можно получить еще одним способом.

Слить два списка вместе, а потом удалить двойников из результирующего.

Хоть это тоже самое, только в профиль:-)

Что-то типа такого:

Код
Показать полностью

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

Код
Показать полностью

С этими ВК (1sqlite и 1С++) - да согласен, задача фильтров лучше решается.

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

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

Во-вторых, использовать чужие ВК - это зависимость, а если там баг или глюк, а если надо что-то особенное.
Поэтому я склонен идти по пути "придумывания велосипеда", чтоб когда надо будет "придумывать космический корабль", уже быть готовым к этому:-)

Вот собираюсь основательно взяться за изучение Delphi вообще, и в приложении к 1С (ВК и ВП) в частности.
Правда времени как всегда мало на это все:-)

Но в любом случае спасибо, я всегда рад советам.

(15) Разработчики 1с++ всегда рады помочь: есть форум, багзилла. К тому же исходники 1с++ ты всегда можешь скачать и сам у себя собрать свою собственную 1с++.

А в каких, например, случаях могут понадобится такие объединения списков? (просто интересно)

Лучше возьмись за изучение С++, оно к 1С ближе ;)
Удачи!

(16) >А в каких, например, случаях могут понадобится такие объединения списков?

Надо подумать:-) У кого-то есть идеи?:-) Самому интересно:-)

(16) >Лучше возьмись за изучение С++, оно к 1С ближе ;)

C++ года четыре назад в универе учил, в основном под консоль правда, но обновить знания и пойти дальше не помешает и в С++, конечно.
Но и Delphi не помешает;-)

Кстати, сам язык 1С 7.7 больше Бейсик напоминает. У кого какие ассоциации?
Понятно, что 1С на С++ писался, поэтому и ближе. Верно?

В любом случае, я рад, что есть кому подсказать, так что Вам все-равно пасибки:-)

т.е. повторящиеся строки по наименованию объединить, а их значение времени через запятую перечислить.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

1C 8.3 Перенос строки из первой таблице значений в другую таблицу значений
Добрый день! Нужно написать обработчик, который переносил бы строку таблицы значений в другую.

1C 8.3 Удаление строк в таблице значений в которых нет значений
Добрый день! Нужно написать обработчик, которые удаляет все строки в которых нет значений из.

Отбор в таблице значений по условию четных и нечетных значений
Здравствуйте, учусь работать с таблицами значений, дали задачу, написать форму и что бы в одной тч.


Объединить несколько значений из формы
Есть форма с несколькими полями, например: <input type="text" name="stroka" .

Denzo, а с типом поля Время что сейчас и что будет? Строкой будете делать? Да строчный элемент будет. Потом это просто напечать пойдет. Denzo, это как надо реализовать?, просто преобразовать, или есть условия чем можно пользоваться? Phil, У табличной части(ТаблицаЗначений) таких методов нет! Поэтому нужно делать ручками. Jackshi, так можно таблицу считать, сгруппировать, отсортировать как нужно, а потом перезаполнить.

В данном случае приблизительно вот так:

Решение

Спасибо. То что нужно.

Добавлено через 4 минуты
Единственное! Как расшифровать эту строку

Denzo, если СтрокаТЧ2.Время - пустая, то просто записываем Стр.Время, если не пустая - добавляем перед значением запятую.

SQL. Вывод значений из таблицы и подсчет количества этих значений в другой таблице
Задание звучит так: Для таблиц user и phones, где соответствие записей определяется равенством.

Вывод в список значений поля, одновременно допускающем несколько значений
Есть таблицы, 6 штук. Как через запрос вывести в список информацию о СМУ? например, выбираю объект.

Сопоставление значений в таблице со значениями в другой таблице
Добрый день! Помогите, пожалуйста, решить следующий пример: Существуют две таблицы: в первой.


Объединить одинаковые ИД с суммированием значений
Добрый день! Имеется у меня такая таблица: 1 столбик ИД; 2,3,4 столбики числовые. Но вот проблема.

Объединить строки с отбором значений ячеек
Добрый день. Есть таблица №, тариф, ФИО, адрес, НачПоказ, КонПоказ причем в таком варианте .


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


&НаСервере
Процедура ОбъединениеДвухТаблицВОдну ()

// Объединение "Контрагенты" и "Классификатор Сроков Полезного Использования"
Запрос = Новый Запрос ( "ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Контрагенты
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.КлассификаторСроковПИ" );

РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
Пока Записи . Следующий () Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;

&НаСервере
Процедура ОбъединениеБолееДвухТаблицВОдну ()

// Объединение трех таблиц Контрагенты, Материалы и Страны
Запрос = Новый Запрос ( "ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Контрагенты
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Материалы
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Страны" );

РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
Пока Записи . Следующий () Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;

Сохранение дубликатов в результате объединения таблиц в 1С 8.3:

&НаСервере
Процедура СохранениеДубликатовВРезультатеОбъединенияТаблиц ()

// Объединение таблицы "Классификатор Сроков Полезного Использования" саму с собой так,
// чтобы дубликаты, которые получились сами по себе - остались в выборке (задвоились)
Запрос = Новый Запрос ( "ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.КлассификаторСроковПИ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.КлассификаторСроковПИ" );

РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
Пока Записи . Следующий () Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;

Объединение таблиц с разным количеством полей в 1С 8.3:

&НаСервере
Процедура ОбъединениеТаблицСРазнымКоличествомПолей ()

// Создание дополнительных (недостающих) полей и заполнение их значениями
Запрос = Новый Запрос ( "ВЫБРАТЬ
| Наименование,
| Вес
|ИЗ
| Справочник.Материалы
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Наименование,
| 0
|ИЗ
| Справочник.Контрагенты" );

РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
Пока Записи . Следующий () Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;

&НаСервере
Процедура УпорядочиваниеПриОбъединенииТаблиц ()

// Упорядочивание таблиц Материалы и КлассификаторСроковПИ по наименованию (алфавиту)
Запрос = Новый Запрос ( "ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Материалы
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.КлассификаторСроковПИ
|
|УПОРЯДОЧИТЬ ПО
| Наименование УБЫВ" );

РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
Пока Записи . Следующий () Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;

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