Решение некоторых задач с помощью "Отладчика запросов"

29.11.21

Разработка - Инструментарий разработчика

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

Перед тем как начать - небольшое лирическое отступление:

 
 Про совместимость ссылок между базами

 

1. Сверка данных между базами

Задача:
Есть две базы, между которыми происходит автоматический обмен по правилам. Из базы А в базу Б выгружаются все Реализации. Важно: база А первична, в базе Б никакие новые реализации вручную не создаются. Обратно ничего не выгружается. 

Главный бухгалтер сверяя отчеты замечает, что суммы за месяц разные и просит проверить что всё корректно перенесено из базы А в базу Б, а также если что-то перенесено некорректно - срочно исправить это. Возможно, в базе Б подчиненными гл.бухгалтера "по неосторожности" изменены какие-либо данные. Вопросы организации прав тут опустим.
Задача обычно возникает накануне проверки или сдачи отчетности, соответственно "срок: ВЧЕРА".

Решение:
В базе Б формируется запрос документов (Ссылка, Номер, Дата, Организация, Контрагент, Сумма), результат сохраняется в файл. В базе А формируется аналогичный запрос, данные из базы Б загружаются во временную таблицу запроса и производится сверка таблиц в запросе. Полученные расхождения ставятся на регистрацию в обмен. После обмена - повторяем сверку, убеждаемся, что расхождений нет и сообщаем главному бухгалтеру, что проблема была устранена, просьба проверить. Он сверяет отчеты и подтверждает, что всё ок.

 
 Запрос в базе Б
 
 Запрос в базе А
 
 Запрос в базе А, когда между базами совместимы ссылки

Для "поиска виновных", когда на это есть время (в моем случае - предварительно сделаны бэкапы баз А и Б и после на копиях выполнялся детальный анализ) - выполняется то-же сравнение, и далее расхождения разделяются на 3 группы: Есть в базе А, но нет в базе Б, есть в базе Б, но нет в базе А, есть в А и Б но изменены. Далее, добавляем к данным информацию из журнала регистрации и получаем, кто что делал с данными.

 
 Примечания


2. Перенос данных между базами 

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

Решение:
В старой базе создается запрос, который выводит все группы, запрос упорядочивается по ссылке иерархически, но выгружается в таблицу значений (Тип выгрузки: Прямой). Далее, в таблице обрабатываются ссылки, заменяются на уникальные идентификаторы и результат выгружается в файл. В новой базе данные загружаются во временную таблицу, и производится обработка результата запроса. Вся работа заняла около 30 минут.

 
 Запрос в базе-источнике
 
 Запрос в базе-приемнике

 

Заключение

Запросы и код их обработки из данной статьи подходят для выполнения как в отладчике на обычных формах, так и на управляемых.
В управляемых формах код выполняется на сервере, т.е. файлы тоже сохраняются на сервере (если клиент и сервер запущены на разных машинах - это важно).

Скачать "Отладчик запросов" - можно тут:

 

Отладчик запросов Обработка данных Сверка Перенос

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    187563    1043    403    

978

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    26516    174    88    

168

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    14130    60    33    

79

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 руб.

06.10.2023    21054    55    19    

86

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

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

9360 руб.

17.05.2024    31214    107    48    

149

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    19346    8    32    

43

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    105228    247    100    

312
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MonteCriZto 114 29.11.21 01:46 Сейчас в теме
Пользуюсь только первой частью задачи №1 ) .. Выгружаю в Exel' два результата запроса и там получаю разницу ) ..
2. aleksey2 89 29.11.21 09:52 Сейчас в теме
"УдалиМеня.dat")

Можно делать *.ТХТ ?
3. DrAku1a 1759 29.11.21 09:56 Сейчас в теме
(2) Можно, но диалог выбора файла для загрузки в отладчике по-умолчанию использует расширение *.dat, но вручную можно указывать и *.TXT
4. METAL 302 02.12.21 21:39 Сейчас в теме
Здравствуйте!
В этой разработке можно через веб-сервис из одной базы в другую подключиться и сверить данные, возможно в некоторых случаях будет удобней
https://infostart.ru/public/1478041/
5. DrAku1a 1759 04.12.21 06:22 Сейчас в теме
(4) Если зарегистрирован COM, то в отладчике запросов тоже можно запрашивать данные напрямую.
Примерно так:
Прикрепленные файлы:
6. RustIG 1881 14.04.22 09:53 Сейчас в теме
(0) выглядит интересно...
Оставьте свое сообщение