#0
by Beduin
Есть две большие таблицы значений. Проверку идентичности делаю по некоторым полям. Посоветуйте оптимальный алгоритм вхождения данных строки из таб1 в таб2
#2
by Эмбеддер
отсортировать по этим полям и в одном цикле проверять совпадение (количество строк одинаковое)
#8
by Эмбеддер
счетчик1=1, счетчик2=1. цикл, если счетчик1>малаятаблица.Количество, прерываем цикл (таблицы идентичны) в цикле, если совпадение ключевых полей малой таблицы (индекс счетчик1) и большой (индекс счетчик2), увеличиваем оба счетчика. если же не совпадают, то увеличиваем только счетчик2. если счетчик2 достиг конца большой таблицы, таблицы различны
#9
by МимохожийОднако
+1 то, что таблицы всегда разные, это и так понятно. Вот только в чём цель сравнения ТС не озвучил
#10
by Beduin
Регистр бухгалтерии. Движения документа. Необходимо понимать, что проводки документа из базы1 входят в такой же документ из базы2. Сложность в том, что документ с таким же ИД может делать в разных базах отличные движения. Но все это надо слить в одну базу. Примерно так. Немного путанно получилось.
#11
by Фокусник
Разные базы: здесь еще есть сложность в определении "одинаковости" справочников, которые сидят в субконто проводок...
#13
by МимохожийОднако
Обычно документы переносят без движений, определив параметры синхронизации документов. Это логичнее, т.к. при повторном проведении документ может дать другие проводки. Опять же надо заранее знать по каким параметрам определить приоритет загружаемых документов перед существующими.
#14
by МимохожийОднако
Проще перенести по максимуму с соответствующим признаком. А дальше оператор смотрит и помечает на удалении лишнее. ИМХО, проще чем пытаться угадать, если ты сам в базе не работаешь постоянно.
#15
by Beduin
Кратко. Мне нужно из 15 баз, сделать одну общую. Конфигурации у всех баз идентичны. Нюанс, что в зависимости от базы документ может делать разные движения, а в итоговой общей, они должны аккумулироваться.
#16
by МимохожийОднако
Это общая задача. Ну так и переноси с каждой базы со своим префиксом. ИМХО, сабж не соответствует задаче
#17
by Фокусник
В этих сводных проводках нужны только: "коды счетов, период и код организации с суммой."? Если в базе 1 есть Проводка1, в базе2 есть Проводка1 (т.е. проводки в этих базах идентичны), то в сводной базе должна быть только одна Проводка1. или их должно быть ДВЕ?
#19
by Beduin
У меня проверка доков по ИД идет. Перенос должен быть онлайн. Постоянно. Задача в том, чтобы понять, что движения документа из базы1 есть в базе2.
#20
by Фокусник
"сабж не соответствует задаче" + действительно, не понятно зачем в задаче по сливанию баз нужно СРАВНИВАТЬ? слил все данные без сравнения и всё :)
#21
by МимохожийОднако
Попытаюсь угадать. Нужен сводный отчет. Вместо того, чтобы заглянуть в каждую базу и положить свой кирпичик в отчет, пытаются слить в одну кучу и использовать типовые отчеты.
#22
by Beduin
У каждой базы свои организации. Поэтому в сводной базе должны быть несколько видов проводок на один документ, когда в исходных может быть по одной. Документ должен быть тот же. Их не должно быть несколько.
#23
by Beduin
У нас от таких сводных отчетов уже в глазах рябит. Это немного другая задача. Нужна общая оборотка для бухгалтеров. Со всеми анализами и т.п.
#24
by Фокусник
"Задача в том, чтобы понять, что движения документа из базы1 есть в базе2." При загрузке движений из базы1 (источник) в базу2 (приемник) нужно: - найти существует ли уже документ, если НЕ существует создаем новый - если существует: УДАЛЯЕМ в нем проводки по организации1 (из базы1). - создаем НОВЫЕ проводки по организации1.
#26
by Beduin
Есть еще база2, база3 ... И по некоторым видам документов эти проводки должны в сводной базе добавиться к уже существующим, а не замениться на свои.
#27
by Фокусник
Нужен признак изменения документа. Был изменен документ (после предыдущей загрузки) - грузим его, не было изменений - не грузим.
#30
by Beduin
Угу. И другие организации и другие движения. А документ физически тот же самый. Они по обмену в них попали.
#31
by МимохожийОднако
По сути нужны отчеты, а вместо этого сливаются в общую базу документы. Онлайн и перенос документов трудно совместимы.ИМХО, тупиковый путь, хотя и прост для понимания пользователями. Если рябит в глазах от сводных отчетов, то сделай другой интерфейс для выбора отчетом. На ИТС есть пример фабрики отчетов или даже конфигурация для сбора информации с разных углов.
#32
by Фокусник
можно план обмена сделать новый в каждой базе. Если нет такой возможности, то анализировать в документах реквизит ВерсияДанных: хранить его (в РС например) в сводной базе. Изменился реквизит ВерсияДанных в базе-источнике, значит грузим все движения этого документа в сводную базу.
#33
by Фокусник
Наверное, хотят чтобы сводный отчет формировался БЫСТРО, если тянуть данные из 15 разных баз при КАЖДОМ формировании отчета - будут очевидные тормоза :) ИМХО, если сводные отчеты нужны часто и быстро, то сводная база вполне оправданна.
#34
by Фокусник
Например так: В каждой базе план обмена с фиксацией изменений у всех документов. Сводная база по регламенту подключается к каждой базе-источнику, читает изменения в плане обмена, грузит проводки в сводный документ (перед загрузкой чистка существующих проводок в базе источнике по документ + организация) PS для этих целей есть готовые конфигурации, можно воспользоваться, чтобы не изобретать велосипед :)
#35
by МимохожийОднако
Это гадание на кофейной гуще. ИМХО, быстрее сформировать отчет, чем сначала перенести документы и сформировать отчет. Перенос однозначно дольше. Слово ОНЛАЙН ни о чем не говорит? Или это просто так озвучено?
#36
by Beduin
Фиксация изменений это тоже проверка, что изменились данные важным полям. Эта проверка будет в момент проведения документа, что не очень хорошо.
#38
by Фокусник
"Фиксация изменений" в плане обмена - это механизм платформы. Перепровели документ - есть изменения :) Правильно ли я понимаю, хочется избежать ситуации перезагрузки документов в сводную базу, если было массовое перепроведение документов без изменения проводок?
#40
by Beduin
Угу. Все правильно. В плане обмена у меня настроен регистр бухгалтерии. При изменении табличек все фиксируется.
#42
by Beduin
Есть большие документы. Например отражение зп в рег учете. Там 8000 проводок. Понять надо его грузить или нет, вот и вся задача.
#43
by Beduin
Допустимо запаздывание поступающих данных день-два. Никто не требует, чтобы измененный документ тут же отразился в общей базе. Для бухгалтерских данных это уже онлайн)
#44
by Фокусник
>8000 проводок При условии сворачивания проводок по кодам счетов и организациям их будет на порядки меньше ;)
#46
by МимохожийОднако
Зря ты вносишь путаницу в понятия. Вариант наиболее оптимальный. В правилах переноса сделай группировку проводок в нужных разрезах.
#51
by Фокусник
Для всех: первым этапом настройки идет чтение структуры внешних баз-источников (в том числе на разных платформах: 77, 8 и т.д.), эта структура хранится в сводной базе (в справочниках).
#52
by Beduin
Изначально попадают в одну главную базу. Потом по обмену распространяются в остальные. Это только часть, документов. Не все. Поэтому главную базу использовать как сводную нельзя.
#57
by Фокусник
+ но вот сходу не скажу, решается ли там задача "одинаковых ИД" документов. По идее они будут жить разными сущностями в сводной базе...
#58
by Фокусник
Опять же: при условии чтения проводок только по Счет/Организация/Сумма какая разница есть ли другие измерения или нет? :)
#59
by Beduin
Это я проверяю по этим полям, но измерения другие есть. Я пытаюсь выяснить подойдет ли эта конфигурация для любого случая вот и все.
#60
by Beduin
Вы никогда не сталкивались, чтобы документы с одним ид делали разные движения в разных базах?
#61
by Фокусник
Там есть понятие: "Источник данных", его можно сделать конструктором или ручным запросом. Запрос в источнике данных может обращаться во внешнюю базу. Т.е. фактически источником данных для загрузки в сводную базу может быть любая таблица/набор таблиц из базы-источника. К типовым конфигурациям привязки нет. Вот только решения по сливанию В ОДИН документ в приемнике разных документов из источника (у документов равны ИД) там точно нет. Т.к. реквизит "Информационная база" - это реквизит шапки документа. А для данной задачи нужно чтобы это был реквизит в регистре бухгалтерии.
#63
by МимохожийОднако
Это нормально. Поэтому обычно и переносят в документы без движений. Синхронизацию не надо делать по ИД в данном случае.Достаточно по номеру и дате переносить с соответствующим префиксом. Скажи название конфигурации. Пусть посмотрит на сайте 1С.
#65
by Beduin
Документ рождает движения в зависимости от имени базы. В сводной базе придется реализовывать алгоритм этот.
#66
by Beduin
Сделал этот алгоритм. На документе 8000 проводок проверку сделал где-то за минуту. Таких документов немного поэтому пойдет
#70
by vde69
у тебя в алгоритме ошибка - он НЕ рабочий!!! Для Каждого СтрокаНаборДвиженийХозрасчетный ИЗ НаборДвиженийХозрасчетный Цикл НаборДвиженийХозрасчетный.Удалить(СтрокаНаборДвиженийХозрасчетный);
#72
by Beduin
Можно, но и так быстро работает) За конфу спасибо. Я все задавался вопросом про универсальную систему для сбора данных, теперь буду ковырять.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Алгоритм проверки валидности номеров ГТД ...
- Алгоритм проверки пересечения двух периодов
- v7: Алгоритм проверки валидности ИИН/БИН Казахстан (и ИНН в РФ)
- Как поместить результат объединения двух таблиц во временную таблицу?
- Алгоритм сравнения двух ТЗ в типовых есть?
- СКД. Вывести отдельной таблицей разницу итогов двух таблиц
В этой группе 1С
- Режим копирования объектов (не сохраняются внутренние идентификаторы объектов)
- Управляемый интерфейс.Как из серверной процедуры открыть форму объекта базы?
- УПП План производства по сменам
- Отбор в журнале документов по реквизиту табличной части.
- Условие по текущему документы в запросе 1С 7.7
- Управляемые формы - как растянуть окно формы в конфигураторе на большом экране?
- Как убить фоновые задания на 8.3 в клиент - серверном варианте работы
- СКД Внешний источник данных
- Вывод в отчет СКД системных полей
- БСП: управление доступом.
- Вэб-клиент wsap22.dll
- Как отловить динамическое изменение html страницы?
- Не выводит табличный документ
- rdp через ssh
- Нормальный ли ноутбук для работы с 1с?
- Ошибка SDBL: Планы обмена режим совместимости 8.2.16 -> без режима совместимости
- БСП 2.1.9.2 Управление доступом.
- Разделять хранение журнала по периодам
- Настройка сканера ШК в УТ 11
- v7: ошибка доступа к таблице 1susers