#0
by Гений 1С
Короче, нужно отследить изменения в регистре сведений. Итак, есть в одной таблице значений колонки: Изм1, Изм2,...ИзмН Рес1, ...РесМ Это начальное состояние регистра сведений. В другой таблице значений такие же колонки: Изм1, Изм2,...ИзмН Рес1, ...РесМ Это конечное состояние регистра сведений. Нужно получить результирующую таблицу: Изм1, Изм2,...ИзмН Рес1, ...РесМ Статус Где Статус: 0 - запись не изменилась 1 - запись изменилась -1 - запись удалилась 2 - были изменены ресурсы (желательно еще и список этих ресурсов) Кто такое делал, как подступить?
#11
by Гений 1С
Запрос не катит, вторая ТЗ формируется не из регистра... а лишь по сути имитирует регистр.
#12
by jcage
Тебе похоже просто надо сравнить две ТЗ. Сортируй по периодам и валютам, далее обходи первую ТЗ и построчно сравнивай.
#14
by Johnbay
если все статично (формирующаяся ТЗ_2) то можно и нарисовать этот регистр, сгружать туда данные, строить запрос, удалять.
#15
by jcage
Я как-то пробовал использовать регистр сведений как буфер - фигня получилась. Запись в регистр - очень долгая операция по сравнению с работой с ТЗ. Так там написать универсальную процедуру легко. Просто получаешь первую строку из первой ТЗ, получаешь первую строку из второй ТЗ и сравниваешь. Тут важно замечательное свойство регистра сведений - уникальность записи по комбинации измерений (и периоду). Т.е. если ты осортируешь ТЗ по периоду и всем измерениям - то можешь со 100 % сравнить. Правда сортировка может времени дофига занять. Но зато обход будет только один.
#16
by Johnbay
Смотря как писать. По одной записи - да, долго. Оптом - быстрее напорядок :) Ну в общем хозяин - барин.
#17
by asady
попробуй в транзакции попытку записи в РС если будет ошибка - уникальный набор измерений уже есть - найти его легко. если ошибки нет - такого набора нет - искать нечего.
#18
by Neco
Как вариант выгрузить ТЗ1 и ТЗ2 в ТЗ. Далее свернуть ТЗ по измерениям и.. ресурсам. Потом, с помощью НайтиСтроки(..) найти все строки с Изм1, Изм2,...ИзмН и проверить, если строк > 1, то ресурсы менялись. Далее можно пройтись по ресурсам и по сравнивать их и выявить какой ресурс менялся.
#19
by Гений 1С
Я придумал другой способ. Вот примерный код, пока еще не проверял, но думаю понятен ход мысли (нужно еще дебуггить):
#24
by simol
А если это использовать перед записью движений регистра, то вроде как если при отсутсвии изменений можно не записывать: 1. Поидее выиграш в скорости 2. Не изменяются последовательности. Как такая идея?
#25
by Гений 1С
У меня данные не большие, но в основном здесь работает метод свернуть, а как его ускорить, мы знаем. да, я такой метод знаю и его рассматривал, но по-моему СВЕРТКА быстрее, чем СОРТИРОВКА, да еще и построение индекса, нафиг... ;-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Непонятки при получениии сведений из регистра сведений
- Надо сравнить ТЧ с ТЗ
- Есть ключ записи регистра сведений. Как получить имя этого регистра?
- как сравнить тип значения в COM соединение
- Как сравнить две Тз?
- Удаление записи регистра сведений в форме списка регистра
- Сравнить, объединить с конфигурацией из файла
- Как связать период Регистра накопления и Регистра сведений во внутреннем запросе
- Отбор регистра на форме списка регистра сведений
- Записи регистра сведений стали неуникальными версии объектов
В этой группе 1С
- Как настроить права доступа к папке Extforms с файлами отчетности в SQL - в
- Отключить контроль уникальности
- Как по ОЛЕ преобразовать уникальный идентификатор в строку.
- Конвертация данных
- странное предупреждение при оперативном проведении документа
- v7: v7.7 премещение элемента справочника
- Запрет редактирования документа задним числом на RLS
- Как запретить пометку на удаление если есть ссылки на этот объект?
- Винда 40 гб > копируем на 80 гб
- Кто как реализовывал в ТЗ поиск по нескольким колонкам
- Работа с планом видов характеристик
- ПУБ : ОС Списать на затраты производства
- Кадровик утверждает, что понятие "вилки окладов" отсутствует в законодательстве
- SQL - ошибка - "Тип переменной не поддерживается"
- Как отменить модифицированность формы
- Вылетает 1С SQL при групповом перепроведении/восстановлении границы
- число полных месяцев (с 1го по последее число) между датами
- УТ Объясните про характеристики товаров, свойства и значения
- v7: Как распечатать документ из журнала операций введенных вручную?
- автоматический обмен данными