gifts2017

Сравнение двух баз запросом.

Опубликовал Rushan Sadretdinov (Rulllan) в раздел Программирование - Инструментарий

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

  Механизм очень простой,открываем изменённую обработку в одной из баз, настраиваем подключение к второй базе через COM-объект.Пишем запрос к текущей базе, с небольшим дополнением и на второй странице запрос к подключаемой базе. При выполнении запроса получаем данные из двух баз.

Механизм работы обработки:

  1. Через COM-соединение посылаем запрос к базе приёмника и получаем таблицу значений. Пример запроса в закладке "Запрос к подключаемой базе":

	 ВЫБРАТЬ первые 10
Номенклатура.Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
  1. Загружаем таблицу значений в параметр запроса и выбрав в запросе все поля таблицы значении мы получим данные из подключаемой базы. Пример запроса в закладке "Запрос"

	 ВЫБРАТЬ
*
ПОМЕСТИТЬ вт
ИЗ
&Результат КАК Результат
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
*
ИЗ
вт КАК вт
 

  1. Добавляем соединение к текущей базе и сверяем данные. Пример запроса 

	 ВЫБРАТЬ
Результат.Наименование
ПОМЕСТИТЬ вт
ИЗ
&Результат КАК Результат
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
вт.Наименование,
Номенклатура.Наименование КАК НаименованиеВтекущейБазе
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ вт КАК вт
ПО Номенклатура.Наименование = вт.Наименование

Основная проблема в том что сверять можно только данные примитивного типа (коды, даты и наименования).


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

Наименование Файл Версия Размер Кол. Скачив.
КонсольЗапросов -к базе.epf
.epf 49,08Kb
16.09.14
16
.epf 49,08Kb 16 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей Галюк (dj_serega) 16.09.14 15:29
А есть возможность обработать результаты запроса после чего поместить в запрос сравнения?
2. Rushan Sadretdinov (Rulllan) 16.09.14 13:26
Возможности обработать результата запроса нет, надо сразу в запросе получать нужные данные.
3. Призрак (davdykin) 16.09.14 13:29
А как происходит сравнение, как текстовые поля?
4. Rushan Sadretdinov (Rulllan) 17.09.14 05:11
В запросе к базе ссылки мы получаем как comобъекты, поэтому не сможем их сравнивать, сравнивать можно только реквизиты примитивного типа (строки, даты, числа и булево).
5. Артём Алтухов (Fannasankh) 17.09.14 11:32
А для запроса ко второй базе конструктор доступен?
6. Rushan Sadretdinov (Rulllan) 17.09.14 13:15
Конструктор доступен, но только на текущую базу. Запрос к базе лучше писать вручную.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа