Имя: Пароль:
1C
 
Подключение Com для сравнение двух обороток после переноса данных
0 alekosansey
 
12.06.18
11:35
Добрый день подскажите пожалуйста как лучше сделать запрос чтобы выявить неточности в проводках. Идея была получить остатки и обороты в двух базах. Затем движения с источника суммы сделать минусами и объединить с движениями приемника, а потом все это сгруппировать, затем выбрать то что не равно 0.

ВЫБРАТЬ
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Счет) КАК Счет,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Регистратор) КАК Регистратор,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Субконто1) КАК Субконто1,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Субконто2) КАК Субконто2,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Организация) КАК Организация,
    ТиповойОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ТиповойОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
    ТиповойОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
    ТиповойОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ИЗ
    РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, , Счет В ИЕРАРХИИ (&Счет), , ) КАК ТиповойОстаткиИОбороты
ИТОГИ ПО
    Счет ТОЛЬКО ИЕРАРХИЯ



ВЫБРАТЬ
    ОСВБухгалтерии81.Счет КАК Счет,
    ОСВБухгалтерии81.Регистратор КАК Регистратор,
    ОСВБухгалтерии81.Субконто1 КАК Субконто1,
    ОСВБухгалтерии81.Субконто2 КАК Субконто2,
    ОСВБухгалтерии81.Организация КАК Организация,
    ОСВБухгалтерии81.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ОСВБухгалтерии81.СуммаОборотДт КАК СуммаОборотДт,
    ОСВБухгалтерии81.СуммаОборотКт КАК СуммаОборотКт,
    ОСВБухгалтерии81.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ПОМЕСТИТЬ ВтВнешниеДанные
ИЗ
    &ВнешнийЗапрос КАК ОСВБухгалтерии81
ГДЕ
    (ОСВБухгалтерии81.СуммаНачальныйОстаток <> 0
            ИЛИ ОСВБухгалтерии81.СуммаОборотДт <> 0
            ИЛИ ОСВБухгалтерии81.СуммаОборотКт <> 0
            ИЛИ ОСВБухгалтерии81.СуммаКонечныйОстаток <> 0)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОСВБухгалтерии83.Счет КАК Счет,
    ОСВБухгалтерии83.Регистратор КАК Регистратор,
    ОСВБухгалтерии83.Субконто1 КАК Субконто1,
    ОСВБухгалтерии83.Субконто2 КАК Субконто2,
    ОСВБухгалтерии83.Организация КАК Организация,
    ОСВБухгалтерии83.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ОСВБухгалтерии83.СуммаОборотДт КАК СуммаОборотДт,
    ОСВБухгалтерии83.СуммаОборотКт КАК СуммаОборотКт,
    ОСВБухгалтерии83.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ПОМЕСТИТЬ ВтВнутрениеДанные
ИЗ
    &ВнутренийЗапрос КАК ОСВБухгалтерии83
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВтВнешниеДанные.Счет КАК Счет,
    ВтВнешниеДанные.Регистратор КАК Регистратор,
    ВтВнешниеДанные.Субконто1 КАК Субконто1,
    ВтВнешниеДанные.Субконто2 КАК Субконто2,
    ВтВнешниеДанные.Организация КАК Организация,
    -ВтВнешниеДанные.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    -ВтВнешниеДанные.СуммаОборотДт КАК СуммаОборотДт,
    -ВтВнешниеДанные.СуммаОборотКт КАК СуммаОборотКт,
    -ВтВнешниеДанные.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ПОМЕСТИТЬ ВтОбороткиОбъединенные
ИЗ
    ВтВнешниеДанные КАК ВтВнешниеДанные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВтВнутрениеДанные.Счет,
    ВтВнутрениеДанные.Регистратор,
    ВтВнутрениеДанные.Субконто1,
    ВтВнутрениеДанные.Субконто2,
    ВтВнутрениеДанные.Организация,
    ВтВнутрениеДанные.СуммаНачальныйОстаток,
    ВтВнутрениеДанные.СуммаОборотДт,
    ВтВнутрениеДанные.СуммаОборотКт,
    ВтВнутрениеДанные.СуммаКонечныйОстаток
ИЗ
    ВтВнутрениеДанные КАК ВтВнутрениеДанные
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Счет КАК СТРОКА(500)) КАК Счет,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Регистратор КАК СТРОКА(500)) КАК Регистратор,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто1 КАК СТРОКА(500)) КАК Субконто1,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто2 КАК СТРОКА(500)) КАК Субконто2,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Организация КАК СТРОКА(500)) КАК Организация,
    СУММА(ВтОбороткиОбъединенные.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
    СУММА(ВтОбороткиОбъединенные.СуммаОборотДт) КАК СуммаОборотДт,
    СУММА(ВтОбороткиОбъединенные.СуммаОборотКт) КАК СуммаОборотКт,
    СУММА(ВтОбороткиОбъединенные.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток
ИЗ
    ВтОбороткиОбъединенные КАК ВтОбороткиОбъединенные
ГДЕ
    (ВтОбороткиОбъединенные.СуммаНачальныйОстаток <> 0
            ИЛИ ВтОбороткиОбъединенные.СуммаОборотДт <> 0
            ИЛИ ВтОбороткиОбъединенные.СуммаОборотКт <> 0
            ИЛИ ВтОбороткиОбъединенные.СуммаКонечныйОстаток <> 0)

СГРУППИРОВАТЬ ПО
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Счет КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Регистратор КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто1 КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто2 КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Организация КАК СТРОКА(500))

Подскажите как лучше это сделать. Этот запрос не работает а идеи и мысли закончились. Всем неравнодушным заранее огромное спасибо за советы.
1 alekosansey
 
12.06.18
11:37
После конвертации данных обороты приемника не сходятся с базой приемника
2 DrShad
 
12.06.18
11:40
никто твою простыню читать не будет, тем более что там нет запроса к другой БД
3 alekosansey
 
12.06.18
11:41
ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Счет) КАК Счет,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Регистратор) КАК Регистратор,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Субконто1) КАК Субконто1,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Субконто2) КАК Субконто2,
    ПРЕДСТАВЛЕНИЕ(ТиповойОстаткиИОбороты.Организация) КАК Организация,
    ТиповойОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ТиповойОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
    ТиповойОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
    ТиповойОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ИЗ
    РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, , Счет В ИЕРАРХИИ (&Счет), , ) КАК ТиповойОстаткиИОбороты
ИТОГИ ПО
    Счет ТОЛЬКО ИЕРАРХИЯ
4 alekosansey
 
12.06.18
11:42
Они идентичны запросы что к внешней что к  текущей базе
5 alekosansey
 
12.06.18
11:43
ВЫБРАТЬ
    ОСВБухгалтерии81.Счет КАК Счет,
    ОСВБухгалтерии81.Регистратор КАК Регистратор,
    ОСВБухгалтерии81.Субконто1 КАК Субконто1,
    ОСВБухгалтерии81.Субконто2 КАК Субконто2,
    ОСВБухгалтерии81.Организация КАК Организация,
    ОСВБухгалтерии81.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ОСВБухгалтерии81.СуммаОборотДт КАК СуммаОборотДт,
    ОСВБухгалтерии81.СуммаОборотКт КАК СуммаОборотКт,
    ОСВБухгалтерии81.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ПОМЕСТИТЬ ВтВнешниеДанные
ИЗ
    &ВнешнийЗапрос КАК ОСВБухгалтерии81
ГДЕ
    (ОСВБухгалтерии81.СуммаНачальныйОстаток <> 0
            ИЛИ ОСВБухгалтерии81.СуммаОборотДт <> 0
            ИЛИ ОСВБухгалтерии81.СуммаОборотКт <> 0
            ИЛИ ОСВБухгалтерии81.СуммаКонечныйОстаток <> 0)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ОСВБухгалтерии83.Счет КАК Счет,
    ОСВБухгалтерии83.Регистратор КАК Регистратор,
    ОСВБухгалтерии83.Субконто1 КАК Субконто1,
    ОСВБухгалтерии83.Субконто2 КАК Субконто2,
    ОСВБухгалтерии83.Организация КАК Организация,
    ОСВБухгалтерии83.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ОСВБухгалтерии83.СуммаОборотДт КАК СуммаОборотДт,
    ОСВБухгалтерии83.СуммаОборотКт КАК СуммаОборотКт,
    ОСВБухгалтерии83.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ПОМЕСТИТЬ ВтВнутрениеДанные
ИЗ
    &ВнутренийЗапрос КАК ОСВБухгалтерии83
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВтВнешниеДанные.Счет КАК Счет,
    ВтВнешниеДанные.Регистратор КАК Регистратор,
    ВтВнешниеДанные.Субконто1 КАК Субконто1,
    ВтВнешниеДанные.Субконто2 КАК Субконто2,
    ВтВнешниеДанные.Организация КАК Организация,
    -ВтВнешниеДанные.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    -ВтВнешниеДанные.СуммаОборотДт КАК СуммаОборотДт,
    -ВтВнешниеДанные.СуммаОборотКт КАК СуммаОборотКт,
    -ВтВнешниеДанные.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ПОМЕСТИТЬ ВтОбороткиОбъединенные
ИЗ
    ВтВнешниеДанные КАК ВтВнешниеДанные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВтВнутрениеДанные.Счет,
    ВтВнутрениеДанные.Регистратор,
    ВтВнутрениеДанные.Субконто1,
    ВтВнутрениеДанные.Субконто2,
    ВтВнутрениеДанные.Организация,
    ВтВнутрениеДанные.СуммаНачальныйОстаток,
    ВтВнутрениеДанные.СуммаОборотДт,
    ВтВнутрениеДанные.СуммаОборотКт,
    ВтВнутрениеДанные.СуммаКонечныйОстаток
+ Code
ИЗ
    ВтВнутрениеДанные КАК ВтВнутрениеДанные
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Счет КАК СТРОКА(500)) КАК Счет,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Регистратор КАК СТРОКА(500)) КАК Регистратор,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто1 КАК СТРОКА(500)) КАК Субконто1,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто2 КАК СТРОКА(500)) КАК Субконто2,
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Организация КАК СТРОКА(500)) КАК Организация,
    СУММА(ВтОбороткиОбъединенные.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
    СУММА(ВтОбороткиОбъединенные.СуммаОборотДт) КАК СуммаОборотДт,
    СУММА(ВтОбороткиОбъединенные.СуммаОборотКт) КАК СуммаОборотКт,
    СУММА(ВтОбороткиОбъединенные.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток
ИЗ
    ВтОбороткиОбъединенные КАК ВтОбороткиОбъединенные
ГДЕ
    (ВтОбороткиОбъединенные.СуммаНачальныйОстаток <> 0
            ИЛИ ВтОбороткиОбъединенные.СуммаОборотДт <> 0
            ИЛИ ВтОбороткиОбъединенные.СуммаОборотКт <> 0
            ИЛИ ВтОбороткиОбъединенные.СуммаКонечныйОстаток <> 0)

СГРУППИРОВАТЬ ПО
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Счет КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Регистратор КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто1 КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Субконто2 КАК СТРОКА(500)),
    ВЫРАЗИТЬ(ВтОбороткиОбъединенные.Организация КАК СТРОКА(500))
6 alekosansey
 
12.06.18
11:43
а это запрос по расхождению
7 DrShad
 
12.06.18
11:45
какой ужас
8 xraf
 
12.06.18
11:46
Проверять наверное лучше в разрезе субконто,
и придётся обращаться по guid объекта,
Думаю можно такое написать, но можно просто и в экселе
такое вычитание сделать и найти.
Я такое делал по 01.1, было более 5000 позиций ОС, сохранил обе оборотки и вычел. Нашёл отклонения в части ВР.
9 alekosansey
 
12.06.18
11:49
а подскажи как guid вытащить из внешки
10 Галахад
 
гуру
12.06.18
11:53
Самое простое, сохранить оборотки в mxl и сравнить полученные файлы с помощью "Файл\Сравнить файлы".
11 alekosansey
 
12.06.18
12:06
спасибо попробую
12 alekosansey
 
18.06.18
12:29
Up
13 alekosansey
 
18.06.18
12:29
Сравнение двух файлов не получается. Вылазиет недостаточно оперативной памяти
14 alekosansey
 
18.06.18
12:30
Еще вопрос есть ли у кого текст запроса карточка счета хочу сравнивать операции и выводить только несостыковки
15 TormozIT
 
гуру
18.06.18
15:13
Для сравнения таблиц данных рекомендую попробовать "Сравнитель таблиц (ИР)" http://imagizer.imageshack.com/img924/2756/zLryx7.png
1. Создаем запрос в консоли запросов и сохраняем в файл.
2. Выполняем его в базе 1 и выгружаем таблицу значений (не табличный документ) в файл.
3. Выполняем его в базе 2 и выгружаем таблицу значений (не табличный документ) в файл.
4. Сравниваем таблицы из файлов в этом сравнителе, указав ключевые поля (измерения).

В разнице он покажет в частности разницу числовых сравниваемых колонок.
Это намного удобнее табличных документов.
16 TormozIT
 
гуру
18.06.18
15:14
(15) + Будет быстрее и памяти съест меньше табличного документа. Но все же 64-разрядное клиентское приложение потребуется для сравнения очень больших таблиц.
17 TormozIT
 
гуру
18.06.18
15:15
(15) + Результат будет в виде таблицы значений и можно будет сохранить его в файл и в консоли кода например.