Соединение таблиц значений (Таблица Значений) по ключевым полям
Разработка - Универсальные функции
Сделал функцию, которая объединяет 2 таблицы в одну, наподобие полного соединения в запросе.
ТЗ1 - первая Таблица значений
ТЗ2 - вторая Таблица значений
KEYт_str - колонки, по которым происходит объединение, пример: "номенклатура" или "номенклатура,ЕдИзм"
функция ПОЛНОЕ_СОЕДИНЕНИЕ(ТЗ1,ТЗ2,KEYт_str)
ТЗ = новый ТаблицаЗначений;
//---------------------------------------------
// разбор ключевых колонок в масив
//---------------------------------------------
str = "" + KEYт_str; // Копирование исходной строки
KEYт_mas = новый Массив;
str = СтрЗаменить(str,",",Символы.ПС);
Для N=1 по СтрЧислоСтрок(str) Цикл
name = СтрПолучитьСтроку(str,N);
KEYт_mas.Добавить(name);
КонецЦикла;
//---------------------------------------------
//---- проверка на наличие ключевых колонок ---
Для каждого KEYт из KEYт_mas Цикл
Если (ТЗ1.Колонки.Найти(KEYт)=неопределено)
ИЛИ (ТЗ2.Колонки.Найти(KEYт)=неопределено) Тогда
Сообщить("нет ключевой колонки");
возврат неопределено;
КонецЕсли;
КонецЦикла;
//---------------------------------------------
//--- Формируем новую ТЗ из 2х таблиц ---------
Для каждого К Из ТЗ1.Колонки Цикл
// из первой ТЗ берём все колонки
ТЗ.Колонки.Добавить(К.Имя);
КонецЦикла;
Для каждого К Из ТЗ2.Колонки Цикл
// из второй все кроме ключевой
Если KEYт_mas.Найти(К.Имя) <> неопределено тогда
Продолжить;
КонецЕсли;
ТЗ.Колонки.Добавить(К.Имя);
КонецЦикла;
//---------------------------------------------
//----------------------------------------------------
// Заполняем строчки ключей которых НЕТ в ТЗ2
//----------------------------------------------------
Для каждого стр1 Из ТЗ1 Цикл
// Формируем структуру поиска
Отбор = Новый Структура;
Для каждого KEYт из KEYт_mas Цикл
Отбор.Вставить(KEYт,стр1[KEYт]);
КонецЦикла;
Если ТЗ2.НайтиСтроки(Отбор).Количество() = 0 тогда
стр = ТЗ.Добавить();
// копируем все значения из строчки ТЗ1
Для каждого К Из ТЗ1.Колонки Цикл
стр[К.Имя] = стр1[К.Имя];
КонецЦикла;
КонецЕсли;
КонецЦикла;
//----------------------------------------------------
//----------------------------------------------------
// Заполняем строчки ключи которых ЕСТЬ в ТЗ2
//----------------------------------------------------
Для каждого стр1 Из ТЗ1 Цикл
// Формируем структуру поиска
Отбор = Новый Структура;
Для каждого KEYт из KEYт_mas Цикл
Отбор.Вставить(KEYт,стр1[KEYт]);
КонецЦикла;
НайденныеСтроки = ТЗ2.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 тогда
Для каждого стр2 Из НайденныеСтроки Цикл
//заполняем все колонки
стр = ТЗ.Добавить();
// из ТЗ1
Для каждого К Из ТЗ1.Колонки Цикл
стр[К.Имя] = стр1[К.Имя];
КонецЦикла;
// из ТЗ2
Для каждого К Из ТЗ2.Колонки Цикл
стр[К.Имя] = стр2[К.Имя];
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
//----------------------------------------------------
//----------------------------------------------------
// Заполняем строчки из ТЗ2 ключей которых НЕТ в ТЗ1
//----------------------------------------------------
Для каждого стр2 Из ТЗ2 Цикл
// Формируем структуру поиска
Отбор = Новый Структура;
Для каждого KEYт из KEYт_mas Цикл
Отбор.Вставить(KEYт,стр2[KEYт]);
КонецЦикла;
Если ТЗ1.НайтиСтроки(Отбор).Количество() = 0 тогда
стр = ТЗ.Добавить();
// копируем все значения из строчки ТЗ1
Для каждого К Из ТЗ2.Колонки Цикл
стр[К.Имя] = стр2[К.Имя];
КонецЦикла;
КонецЕсли;
КонецЦикла;
//----------------------------------------------------
возврат ТЗ;
КонецФункции
Специальные предложения
См. также
Подборка решений для взаимодействия со ФГИС «Меркурий» Промо
С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.
Подборка программ для взаимодействия с ЕГАИС Промо
ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.
Преобразование XML в таблицу значений или иной объект 1С методом XSL преобразования 42
24.10.2019 4437 kraspila 27
Новый раздел на Инфостарте - Electronic Software Distribution Промо
Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.
- Низкие цены, без скрытых платежей и наценок
- Оперативная отгрузка
- Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
- Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)
Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо
Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.
7500 рублей
Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо
Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.
4500/9500 рублей
Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо
Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!
29700 руб.
Иерархия справочника Сверху Вниз. Получаем произвольное количество родителей "верхнего" уровня 7
28.03.2019 2956 obsfromekb 11
Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо
Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!
29700 руб.
Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.127.х, КА 2.4.10.х и ERP 2.4.10.х! Промо
Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.
29700 руб.
Нумерация колонок субконто при выгрузке набора записей регистра бухгалтерии в таблицу значений 6
14.01.2019 3077 The Ded 3
Онлайн-курс "Технология выполнения проектов ERP-класса – процессный подход". Третий поток. Курс проходит с 21 января по 18 марта 2020 года. Промо
Курс разработан Внедренческим центром «Раздолье». Курс предназначен для подготовки аналитиков, архитекторов и руководителей проектов автоматизации процессов управления с использованием комплексных ИТ-систем (1С:ERP, 1С:УХ, 1С:КА, 1С:УТ). В основе курса лежит методика применения процессного подхода.
9000 рублей
Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке 509
14.11.2018 39734 GeterX 94
С 2020 года сервис «Продление поддержки конфигурации 1С:УПП» подорожает вдвое Промо
Успейте продлить поддержку УПП до повышения цен! Фирма «1С» предупредила об изменении цен на сервис «Продление поддержки конфигурации "1С:Управление производственным предприятием"». С 1 января 2020 года сервис подорожает в два раза.
Добавление расшифровки в стандартные и добавленные внешние отчеты со стандартной формой отчета на СКД 73
27.09.2018 7363 bmk74 3
Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо
Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.
29700 руб.
Функция НайтиФайлы() в каталоге netshare на Linux - обход ошибки работы 6
19.09.2018 3888 drmaxart 1
Программы для исполнения 488-ФЗ: Маркировка товаров Промо
1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.
Простой способ программно открыть заполненную форму нового (незаписанного) документа в тонком клиенте 15
09.06.2018 8239 Serge R 12