Сравнение данных из разных источников (1С 8, SQL, CSV/TXT/DBF/XLS/XML, табличный документ)

Обработки - Универсальные обработки

сравнение данных 1С 8 SQL SQL Server PostgreSQL сопоставление разные конфигурации CSV TXT DBF XLS XML разные базы сравнение баз сравнение документов сравнение справочников сравнение объектов сравнение регистров

43
Обработка предназначена для сравнения данных, полученных из разных источников данных: информационных баз 1С 8, баз данных SQL, файлов формата CSV/TXT/DBF/XLS/XML, вручную заполненного табличного документа. Минимально необходимая версия платформы: 8.3.5.823 (т.к. там уже реализован тип Конструктор запроса).

Сравнение можно производить между данными любых источников: текущей базой 1С 8, внешними базами 1С 8, внешними базами данных SQL, файлами форматов CSV/TXT/DBF/XLS/XML, данными вручную заполненного табличного документа. Данные сравниваются между собой по ключу, который определяется как первая колонка  (или первые колонки в случае составного ключа) запроса для 1С/SQL или в соответствии с настройками для файлов и табличного документа.  В верхней части формы находятся кнопки с изображениям кругов Эйлера, предназначенные для указания обработке, какую операцию реляционной алгебры применять для объединения результатов запросов. После соединения выборок можно дополнительно наложить условия отбора в секциях Код для вывода строк и Код для запрета вывода строк. Реализована возможность использования составных ключей, программной обработки данных в процессе чтения с помощью произвольного кода, сворачивания данных.

 

Актуальная инструкция всегда доступна во встроенной справке обработки по клавише F1.

 

Буду благодарен, если будете уведомлять о багах на sertakov [а] list.ru или в комментариях.

43

Скачать файлы

Наименование Файл Версия Размер
Консоль сравнения данных из разных источников (1С 8, SQL, CSV/TXT/DBF/XLS/XML, табличный документ)
.epf 128,96Kb
11.12.18
68
.epf 11.3.32 128,96Kb 68 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. alexzhegzdrin 15.02.17 16:28 Сейчас в теме
Неплохо бы увидеть возможность выбора драйвера, отличного от MS SQL
2. sertak 60 15.02.17 16:58 Сейчас в теме
(1) Версия 4.4.12: драйвер можно указать вручную, можно выбрать из списка (SQL Server, PostgreSQL).
3. sertak 60 16.02.17 23:11 Сейчас в теме
Версия 5.0.13:
добавлена возможность сравнения с файлами CSV/TXT/DBF/XLS.

Теперь можно сравнивать данные из любых двух источников:
- текущая база 1С 8;
- внешняя база 1С 8;
- база данных SQL Server;
- база данных PostgreSQL;
- другая база SQL через вручную указанный драйвер;
- файл формата CSV/TXT/DBF/XLS.
4. sertak 60 20.02.17 12:24 Сейчас в теме
Версия 6.1.15:
добавлена возможность использования составного ключа из двух колонок;
исправлена ошибка, из-за которой невозможно было извлечь УИД из ссылки из внешней базы 1С 8.
5. sertak 60 20.02.17 15:47 Сейчас в теме
Версия 6.1.16:
исправлена ошибка.
6. sertak 60 04.03.17 00:15 Сейчас в теме
Версия 7.0.17:
реализована возможность загрузки данных из табличного документа.

Версия 7.0.18:
исправлена ошибка.
7. sertak 60 12.03.17 19:27 Сейчас в теме
Версия 7.1.19:
увеличена длина и точность типа Число реквизитов.
8. zerdov 46 24.05.17 17:00 Сейчас в теме
Как внести значения параметра Период в запросе к ВТ регистра сведенийЦеныНоменклатурыСрезПоследних ?
Такое впечатление, что запрос работает с обычной таблицей ЦеныНоменклатуры. Выводит даты документов- регистраторов.
9. sertak 60 25.05.17 12:26 Сейчас в теме
10. sertak 60 25.05.17 12:32 Сейчас в теме
(8)
1)
 ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(ДАТАВРЕМЯ(2017, 1, 1), ) КАК ЦеныНоменклатурыСрезПоследних


2)
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаНачала, ) КАК ЦеныНоменклатурыСрезПоследних


а на вкладке консоли Общие настроки -> Основные нужно в левую границу периода внести нужную дату среза цен
11. zerdov 46 25.05.17 16:14 Сейчас в теме
(10)
ДАТАВРЕМЯ(2017, 05, 25)

Спасибо! Я по второму варианту строил запрос. Мое "впечатление" было ошибочным, периоды и должны были быть разными, главное что бы были последними ).
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура.Код КАК НоменклатураКод,
	ЦеныНоменклатурыСрезПоследних.Период КАК Период,
	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОкончания, ) КАК ЦеныНоменклатурыСрезПоследних
12. sertak 60 16.11.17 15:55 Сейчас в теме
Версия 7.1.20:
исправлена ошибка, из-за которой в некоторых случаях сравнение по составному ключу производилось некорректно.
13. sertak 60 17.11.17 22:24 Сейчас в теме
Версия 7.2.21:
реализована возможность использования параметров запроса при подключении к текущей базе 1С 8 (параметры ДатаНачала и ДатаОкончания берутся только с вкладки Общие настройки -> Основные даже в том случае, если одноименные есть на вкладке Параметры запроса);
исправлена ошибка, из-за которой в настройках не сохранялся номер первой строки файла.
14. sertak 60 20.02.18 11:56 Сейчас в теме
Версия 8.0.22:
реализована возможность загрузки данных из файлов формата XML;
исправлена ошибка, из-за которой в некоторых режимах некорректно определялся список обязательных к заполнению полей;
доработан вывод сообщений об ошибках заполнения реквизитов.
15. Erne100 233 26.03.18 11:23 Сейчас в теме
А параметров запроса Б нет? Хотя бы примитивный типов... для начала
17. sertak 60 26.03.18 14:52 Сейчас в теме
Вы имеете в виду ситуацию, когда Б - внешняя база 1С, видимо. Не реализовывал пока.
18. Erne100 233 26.03.18 15:59 Сейчас в теме
(17) Да именно это. А пока делаю так:
ГДЕ
	РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
	И РеализацияТоваровУслуг.Организация.ИНН = "32177162"
30. sertak 60 29.06.18 13:08 Сейчас в теме
(15) реализовано в версии 11.1.30.
19. m-rv 641 04.05.18 14:49 Сейчас в теме
Оч.крутая штука!
Как мысль для дальнейшего развития: нужен какой-то а-ля пользовательский режим, в котором не видны настройки подключений, запросы, но есть возможность редактировать режим "таблица". т.е. программист все настроил, сохранил настройки, потом пользователь просто открывает настройки, сравнивает и смотрит на результат.
20. sertak 60 04.05.18 15:51 Сейчас в теме
Спасибо, сам к ней неравнодушен ).
Сохранение/открытие настроек есть, пользователю достаточно сделать 2 действия: выбрать настройку и нажать кнопку сформировать, даже период будет сам пересчитываться, т.к. его можно задать в единицах времени относительно текущей даты. Напишите подробнее мысль, заинтересовали.
24. sertak 60 14.05.18 09:04 Сейчас в теме
21. sertak 60 05.05.18 07:25 Сейчас в теме
Версия 8.0.23:
исправлена ошибка, из-за которой при наличии пробелов в ключе могли не заполняться реквизиты.
22. sertak 60 08.05.18 11:47 Сейчас в теме
Версия 8.0.24:
исправен запрет на имя колонки выборки запроса: теперь колонку можно называть Количество.
23. sertak 60 14.05.18 09:04 Сейчас в теме
Версия 8.1.25:
добавлена возможность открытия формы в пользовательском режиме, где пользователь может только выбирать сохраненные настройки и производить сравнение, для включения режима достаточно установить флаг Пользовательский режим в программно созданную обработку либо передать этот флаг как параметр при открытии формы (ОткрытьФорму("Обработка.ВС_КонсольСравненияДанныхИзРазныхИсточников.Форма", Новый Структура("ПользовательскийРежим", Истина), ПараметрыВыполненияКоманды.Источник, Новый УникальныйИдентификатор)).
П.С. Спасибо Маркову Роману за идею.
25. sertak 60 23.05.18 11:40 Сейчас в теме
Версия 8.2.26:
добавлена возможность программного заполнения реквизитов с помощью произвольного кода при чтении данных из файлов (обращение к значениям реквизитов осуществлется по именам Р1...Р5, обращение к текущему - по имени РТек, например, для реквизита 3 может быть задан такой произвольный код: РТек = Р1 * Р2 * 1.2).
26. sertak 60 12.06.18 10:40 Сейчас в теме
Версия 9.0.27:
реализована возможность использования составного ключа из трех столбцов (используются первые три колонки каждой выборки для баз 1С и SQL и явно указанные номера колонок для файлов).
27. sertak 60 25.06.18 11:11 Сейчас в теме
Версия 10.0.28:
реализована возможность программного изменения столбцов ключа с помощью произвольного кода при чтении данных (обращение к исходным значениям столбцов ключа осуществляется по именам Ключ1, Ключ2, Ключ3, например, может быть задан такой произвольный код: КлючТек = Число(Лев(СокрЛП(КлючТек ), 5));
добавлены кнопки открытия в реквизитах с ключами и произвольным кодом;
исправлена ошибка, из-за которой при чтении XML-файла не заполнялся третий столбец составного ключа.
28. sertak 60 27.06.18 13:06 Сейчас в теме
Версия 11.0.29:
реализована возможность сворачивания данных, полученных из файлов или табличного документа, по ключу (для реквизитов применяется агрегатная функция Сумма).
29. sertak 60 29.06.18 13:08 Сейчас в теме
Версия 11.1.30:
реализована возможность установки параметров запроса примитивных типов данных для внешней базы 1С 8.
31. sertak 60 06.07.18 17:06 Сейчас в теме
Версия 11.2.31:
добавлены колонки Тип столбца 1-3 ключа.
32. sertak 60 10.07.18 11:58 Сейчас в теме
Версия 11.3.32:
реализована возможность выгрузки результата сравнения в файл формата CSV (на сервере).
Оставьте свое сообщение