Функции работы с Таблицей значений(объединить, сравнить, соединить)

04.07.08

Разработка - Математика и алгоритмы

Часто встречаются задачи по работе с двумя ТЗ.
В файлике приведены 3 функции для:  Объединения, соединения и сравнения двух ТЗ по ключевому полю..  
м.б. кому-нибудь пригодится

Скачать файл

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

Наименование По подписке [?] Купить один файл
-
.1215136295 6,84Kb
1060
1060 Скачать (1 SM) Купить за 1 850 руб.

См. также

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

21.05.2024    20490    dimanich70    81    

145

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    14890    YA_418728146    7    

168

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3621    57    progmaster    8    

4

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

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    18530    171    sapervodichka    112    

135

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    8396    quazare    8    

111

СКД Универсальные функции Программист Стажер Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

28.05.2022    10458    milkers    11    

98

Универсальные функции БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

25.04.2022    19304    quazare    11    

139
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kitt 323 04.07.08 09:19 Сейчас в теме
Конечно пригодиться, спс
2. JohnyDeath 302 04.07.08 09:26 Сейчас в теме
Посмотрите и погоняйте ИндексированнуюТаблицу. http://www.1cpp.ru/docum/icpp/html/IndexedTable.html
Теперь там есть даже:
ВнутреннееСоединение / InnerJoin
ЛевоеСоединение / LeftJoin
ПравоеСоединение / RightJoin
ПолноеСоединение / FullJoin
;)
Vitek; n; vip; +3 Ответить
4. Sergey K 65 04.07.08 12:20 Сейчас в теме
(2)
а "ИндексированнаяТаблица" не для 1с7.7?
как создать "ИндексированнаяТаблица"? - по Вашей ссылке только описание ее возможностей..
5. JohnyDeath 302 04.07.08 13:58 Сейчас в теме
(4) Да, извиняюсь, это только для 7.7
6. Abadonna 3968 04.07.08 14:01 Сейчас в теме
(2) Жень, да забудь ты про эту семерку со всеми к ней доделками: один фиг - это тюнигованные Жигули.
Как Жигули ни тюнингуй, все равно получишь... 7.7
7. vip 04.07.08 14:12 Сейчас в теме
(6) Давай, давай забывай.
А меня 7.7 поит, кормит, с девками ложит.
И до-о-о-лго еще будет.
И тебя тоже, любитель прогресса ;))
3. German 413 04.07.08 09:37 Сейчас в теме
а временные таблицы?.. конечно не очень производительно ...но все же
8. Abadonna 3968 04.07.08 14:39 Сейчас в теме
Меня, Андрей, кормит работодатель, и мне что ... подтаскивать, что.... оттаскивать... мне ваще 1С противна.... но раз платят.
Збянтэжаны Саўка; +1 Ответить
9. Abadonna 3968 04.07.08 14:42 Сейчас в теме
Есть, конечно, и в бухгалтерии ничего себе так термины:
про водку, акт с Веркой ;)
Збянтэжаны Саўка; German; Romanius; +3 Ответить
10. newreactive 09.07.08 09:39 Сейчас в теме
11. Збянтэжаны Саўка 245 17.04.09 17:41 Сейчас в теме
Спасибо, я пока учусь на Ваших примерах профи
Сорри, за маленькие замечания новичка если они не в тему:
(мои дополнения отмечены комментами: //aga)

В ф-ии СоединениеДвухТЗПоПолю:

Функция СоединениеДвухТЗПоПолю(ТЗПриемник, ТЗИсточник,
СтрПоляПриемника,
СтрПоляИсточника,
стрПолеСоединенияП,
стрПолеСоединенияИ = Неопределено) Экспорт

Если стрПолеСоединенияИ=Неопределено Тогда
стрПолеСоединенияИ = стрПолеСоединенияП;
КонецЕсли;

//Удаляем колонки, с типом NULL, т.к. в запросе с ВТ нельзя использовать такие поля
МассивПустыхКолонок = Новый Массив;
//aga+ здесь я бы хотел иметь возможность передавать свою строку полей приемника, и проверку включить, только если не передан список полей
Если НЕ ЗначениеЗаполнено(стрПоляПриемника) Тогда //aga+
ОписаниеТиповNULL = Новый ОписаниеТипов("NULL");
Для каждого Колонка Из ТЗПриемник.Колонки Цикл
Если Колонка.ТипЗначения = ОписаниеТиповNULL Тогда
МассивПустыхКолонок.Добавить(Колонка.Имя);
Иначе
Если Не стрПоляПриемника = "" Тогда
стрПоляПриемника = стрПоляПриемника + ",";
КонецЕсли;
стрПоляПриемника = стрПоляПриемника + Колонка.Имя;
КонецЕсли;
КонецЦикла;
КонецЕсли; //aga+

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| вТабПриемник." + стрПоляПриемника + "
|ПОМЕСТИТЬ вТабПриемник
|ИЗ &ТЗПриемник КАК вТабПриемник
|;
|//__________________________________________________________­___________


// таблица-источник
|ВЫБРАТЬ
| вТабИсточник." + стрПолеСоединенияИ + ",
| " + СтрПоляИсточника + "
|ПОМЕСТИТЬ вТабИсточник
|ИЗ &ТЗИсточник КАК вТабИсточник
|;
|//__________________________________________________________­___________

// объединяем две таблицы
|ВЫБРАТЬ
| вТабПриемник.*,
| " + СтрПоляИсточника + "
|ИЗ
| вТабПриемник КАК вТабПриемник
| ЛЕВОЕ СОЕДИНЕНИЕ вТабИсточник КАК вТабИсточник
| ПО вТабПриемник." + стрПолеСоединенияП + " = вТабИсточник." + стрПолеСоединенияИ + "
|УПОРЯДОЧИТЬ ПО
//|" + СтрПолеИсточника; //aga- ошибочка надо стрполЯисточника
|вТабПриемник." + стрПоляПриемника; // aga+. Имхо приемник главнее, так что по нему важнее сортировать, но в общем случае все же это излишне, т.к. в полученном ТЗ потом можно отсортировать выборочно и как угодно, без лишних полей из этого списка в запросе.

Запрос.УстановитьПараметр("ТЗПриемник", ТЗПриемник);
Запрос.УстановитьПараметр("ТЗИсточник", ТЗИсточник);
ТЗРез = Запрос.Выполнить().Выгрузить();

Для каждого ПустаяКолонка Из МассивПустыхКолонок Цикл
ТЗРез.Колонки.Добавить(ПустаяКолонка);
ТЗРез.ЗаполнитьЗначения(NULL,ПустаяКолонка);
КонецЦикла;

Возврат ТЗРез;
КонецФункции //СоединениеДвухТЗПоПолю

Кстати, интересная ситуация, попробовал было эту ф-ию применить два раза к одной исходной ТЗ, ибо одним запросом все поля заполнить невозможно, но увы что-то не так как ожидается работает, глюк пока не знаю где искать у меня в коде или в платформе, будет время посижу, а счас его нет к сож., потому решил свою задачу простым перебором в лоб сравнивая две ТЗ в цикле построчно без использования этой ф-ии (т.е. без запросов). Но проблема заинтересовала своей странностью на ровном месте.
12. Збянтэжаны Саўка 245 17.04.09 17:45 Сейчас в теме
пардон а как укоротить свой пост?
13. spryn 13.10.11 23:28 Сейчас в теме
Отлично, пригодилось
14. GrafB 10 22.10.11 19:54 Сейчас в теме
aga aga помести свой код в (CODE][/CODE) //вместо круглых квадратные скобки
Оставьте свое сообщение