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

29.11.21

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

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

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

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

 

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

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

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

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

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

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

 
 Примечания


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

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

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

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

 

Заключение

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

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

 

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

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 руб.

02.09.2020    101923    564    385    

610

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

Инструментарий разработчика DevOps и автоматизация разработки DevOps для 1С Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11549    25    2    

142

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 руб.

14.01.2013    173057    1045    0    

817

Infostart PrintWizard

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

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

18000 руб.

06.10.2023    3585    3    0    

17

Управление данными и формами (УДиФ)

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

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

10000 руб.

10.11.2023    1396    3    1    

20

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

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

5000 руб.

07.02.2018    97602    237    97    

287

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

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

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    22393    14    15    

27

Автоматизация труда программиста. Библиотека прикладных функций

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

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    13857    5    9    

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

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