Методика разработки СКД-отчетов по сверке между базами с COM-запросом в другую базу

15.10.16

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
СверкаТовародвиженияМеждуБазамиУТ10_2_и_ERP_ПоРегистраторам
.erf 10,37Kb
52 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

В последнее время несколько раз решал задачу по сверке больших массивов данных между базами. Когда все на вид идентично, а итоги расходятся – приходится локализовывать проблему и разбираться с расхождениями уже на конкретной сущности или регистраторе.

К примеру, необходимо найти «проблемный» регистратор при переносе движений по складу по документам в УТ 10.2 в ERP2.1.

В результате, проблема должна быстро находиться в массиве данных:

Теперь собственно методика разработки отчета:

  1. В СКД добавляем набор данных – объект. Собственно объектом является таблица значений, в которую выгружаем результат запроса (см. рисунок ниже) в процессе выполнения процедуры ПриКомпоновкеРезультата(…).
  2. Формируем запрос к данным другой базы. В моем случае я использовал COM-соединение, т.к. базы лежали в одной сети и ограничений в доступе к данным у меня не было. Особенности регистрации такого отчета по технологии «внешнего» для работы в безопасном режиме - написал отдельно (//infostart.ru/public/552950/)
  3. Показатели одной базы формируем со знаком «плюс», движения второй базы с «минусом». Если движения по всем измерениям (кроме измерения «база») совпадают – тогда в отчете отображается результат – 0. Если присутствует разница, то будет некое число, которое необходимо быстро и удобно найти.
  4. Поскольку была возможность сопоставить регистраторы в обеих база по ГУИД – сопоставляем программно, после чего таблица значений передается в СКД во внешние данные
  5. Настраиваем группировки отчета, чтобы быстро найти проблему – в данном случае, по виду регистратора, а затем по регистратору (см рисунок)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	ПараметрПериод = Новый ПараметрКомпоновкиДанных("Период");
	
	СтруктураПараметров = Новый Соответствие;
	
	Для каждого ЭлементКоллекции Из Настройки.ПараметрыДанных.Элементы Цикл
		Если ЭлементКоллекции.Параметр = ПараметрПериод Тогда
			СтруктураПараметров.Вставить("ДатаНачала", ЭлементКоллекции.Значение.ДатаНачала);
			СтруктураПараметров.Вставить("ДатаОкончания", ЭлементКоллекции.Значение.ДатаОкончания);
		КонецЕсли; 
	КонецЦикла;
	
	ТаблицаВнешниеДанные = ПолучитьТаблицу(СтруктураПараметров.Получить("ДатаНачала"), СтруктураПараметров.Получить("ДатаОкончания"));
	
	ВнешниеНаборыДанных = Новый Структура("ТаблицаВнешниеДанные", ТаблицаВнешниеДанные);
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;      
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);      
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);  
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных,);
	
КонецПроцедуры

Если данные идентичны – можно развернуть и посмотреть детальные записи.

Если различаются – открываем раздел, затем регистратор

А можем и провалиться непосредственно в форму документа

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

Вступайте в нашу телеграмм-группу Инфостарт

СКД сверка COM COM-соединение методика сверки

См. также

Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)

Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.

50000 руб.

10.09.2026    14408    124    0    

89

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

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

24900 руб.

20.08.2024    83936    433    171    

364

Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)

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

16500 руб.

02.09.2020    286490    1611    423    

1220

Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    44500    123    54    

135

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

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    77690    147    41    

154

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

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

17000 руб.

10.11.2023    28899    104    46    

107
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tindir 18.10.16 07:19 Сейчас в теме
Была подобная задача на собеседовании. Решал через хттп-сервисы на демо 8.3.9. Как у вас происходит сериализация объектов для обменов?
chek.e.l@mail.ru; +1 – Ответить
2. papche 682 18.10.16 10:25 Сейчас в теме
Обмен - это отдельная тема. Написал некий простой формат для выгрузки в XML-файл: некие разделы с атрибутами, внутри сами объекты (ЗаписатьXML(ЗаписьXML, Объект)). На стороне загрузки - разбор XML, там уже логика по полной задействована.
3. DitriX 2118 20.10.16 22:23 Сейчас в теме
это через внешние источники данных в скд сделано
или вы просто получили таблицу и подставили в запрос?
4. papche 682 20.10.16 22:39 Сейчас в теме
Объект метаданных - "Внешние источники данных" не использовал.
Набор данных в СКД - типа объект - получил в виде таблицы значений, которую заполнил объединением данных как к собственной ИБ, так и внешних данных через COM-соединение.
georgebgk; kozusenok; +2 – Ответить
5. starik-2005 3309 21.10.16 18:12 Сейчас в теме
Можно все и проще делать, и сложнее. Я, помнится, делал по GUID, т.е. отдельно выгружал колонку GUID, отдельно колонку наименований - с одной стороны меньше времени на приведение типов, с другой - больше времени на заполнение таблицы. Но т.к. две базы по 1кк операциям сравнивались небыстро, то переписали на прямой SQL запрос, который возвращал только разницу. И вот этот результат запроса использовали как внешний источник (для СКД, а не то, что некоторые подумали).

В принципе тут простор для творчества никак не ограничен.
Для отправки сообщения требуется регистрация/авторизация