Имя: Пароль:
1C
 
Соединение регистра накопления УПП 1.3 УчетЗатратРегл и регистра бухгалтерии.
0 Интересный вопрос
 
15.05.25
11:58
Добрый день, подскажите как правильно соединить регистр накопления УПП 1.3 УчетЗатратРегл (раздел учета МПЗ) с Регистром бухгалтерии, с отбором по СчетуБУ, Номенклатуре и Складу.
Нагуглил только причастность регистров сведений АналитикаВидаУчета и АналитикаУчетаЗатрат. Может есть примеры аналогичных запросов?
1 Ёпрст
 
гуру
15.05.25
12:02
ну как бэ ...РБ вообще не впёрся, все данные он берет как раз с УчетЗатрат.
Что с чем соединять то нннадо и зачем ?
2 Интересный вопрос
 
15.05.25
12:23
(1) Есть расхождения между данными в РН и РБ. нужно отследить по каким позициям.
3 Ёпрст
 
гуру
15.05.25
12:31
(2) это все делается простыми готовыми отчетами и осв, бухгалтера нема, который умеет смотреть отчеты ?
4 Ёпрст
 
гуру
15.05.25
12:36
Ежели не знаешь, где чего валяется, то на вот, занимайся
ВЫБРАТЬ
	РегистрАналитикаВидаУчета.Организация КАК Организация,
	РегистрАналитикаВидаУчета.Склад КАК Склад,
	РегистрАналитикаУчетаЗатрат.Затрата КАК Номенклатура,
	УчетЗатрат.Количество КАК Количество
ИЗ
	РегистрНакопления.УчетЗатратРегл КАК УчетЗатрат
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
		ПО УчетЗатрат.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
		ПО УчетЗатрат.АналитикаУчетаЗатрат = РегистрАналитикаУчетаЗатрат.Ссылка
5 Интересный вопрос
 
15.05.25
13:50
(4) Спасибо.
6 Мультук
 
гуру
15.05.25
14:00
(4)

Я не знаток УПП.

Но реально в РегистрСведений.АналитикаВидаУчета
Есть измерение с именем "Ссылка" ?

Мир имён в конфигурациях от 1С у меня пошатнулся
7 Интересный вопрос
 
15.05.25
17:18
(6) Ресурс.
8 Интересный вопрос
 
19.05.25
11:01
ВЫБРАТЬ
    РегистрАналитикаВидаУчета.Склад КАК Склад,
    РегистрАналитикаУчетаЗатрат.Затрата КАК Номенклатура,
    РегистрАналитикаВидаУчета.СчетУчета,
    УчетЗатратРеглОстатки.КоличествоОстаток,
    УчетЗатратРеглОстатки.СтоимостьОстаток
ИЗ
    РегистрНакопления.УчетЗатратРегл.Остатки(&ПериодРН, ) КАК УчетЗатратРеглОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
        ПО УчетЗатратРеглОстатки.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
        ПО УчетЗатратРеглОстатки.АналитикаУчетаЗатрат = РегистрАналитикаУчетаЗатрат.Ссылка
ГДЕ
    РегистрАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)
    И РегистрАналитикаВидаУчета.Склад = &ВыбСклад
    И РегистрАналитикаВидаУчета.СчетУчета = &ВыбСчетУчета

УПОРЯДОЧИТЬ ПО
    Номенклатура

По Регистру Накопления Запрос срабатывает верно, подскажите как все это хозяйство соединить с Запросом К Регистру Бухгалтерии, там по идее 3 поля Номенклатура, Количество и Сумма.
9 Интересный вопрос
 
19.05.25
13:31
(4) Я правильно понимаю, что нужно использовать временную таблицу? Туда помещать этот запрос и результат соединять с Запросом по регистру Бухгалтерии?
10 Интересный вопрос
 
20.05.25
11:22
(4) Или пакет запросов использовать в конструкторе? Может есть примеры как это реализовано?
11 shuhard
 
20.05.25
11:55
(10) начни с подзапросов
12 Интересный вопрос
 
20.05.25
14:12
(11) Первый

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

-------------------------------------------

Второй

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

Как соединяем?
13 Ёпрст
 
гуру
20.05.25
14:22
(12) так
Выбрать
  Вася, сумма(нечто) из
(Выбрать вася, нечто из табличка 1
Объеденить все выбрать вася, -нечто из табличка2) сгруппировать по вася имеющие сумма(нечто)<>0

Надеюсь, понятно?..
14 Мультук
 
гуру
20.05.25
14:48
(12)

0) Помести оба подзапроса во временные таблицы ВТ_1 и ВТ_2

а затем

а) ВТ_1 ЛЕВОЕ      СОЕДИНЕНИЕ ВТ_2
б) ВТ_1 Внутреннее СОЕДИНЕНИЕ ВТ_2
в) ВТ_1 ОБЪЕДИНИТЬ ВСЕ ВТ_2

Тебе как больше нравится ?
Всё зависит от того, что нужно получить


По каким поля соединять в пунктах "а" и "б" подсказать или сам ?
15 Интересный вопрос
 
20.05.25
14:51
(13) Было бы интуитивно понятно, не спрашивал бы, ну ничего разберусь, наверное.
16 Интересный вопрос
 
20.05.25
14:56
(14) Склад       УчетЗатрат     ПроводкиБУ        Контроль
  Номенклатура   Кол-во|Сумма  Кол-во|Сумма     Кол-во|Сумма

Получить нужно вот такое
17 Мультук
 
гуру
20.05.25
15:18
(16)

ВЫБРАТЬ
    РегистрАналитикаВидаУчета.Склад КАК Склад,
    РегистрАналитикаУчетаЗатрат.Затрата КАК Номенклатура,
    РегистрАналитикаВидаУчета.СчетУчета,
    УчетЗатратРеглОстатки.КоличествоОстаток,
    УчетЗатратРеглОстатки.СтоимостьОстаток
ПОМЕСТИТЬ ВТ_1
ИЗ
    РегистрНакопления.УчетЗатратРегл.Остатки(, ) КАК УчетЗатратРеглОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
        ПО УчетЗатратРеглОстатки.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
        ПО УчетЗатратРеглОстатки.АналитикаУчетаЗатрат = РегистрАналитикаУчетаЗатрат.Ссылка
ГДЕ
    РегистрАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)
    И РегистрАналитикаВидаУчета.Склад = &ВыбСклад
    И РегистрАналитикаВидаУчета.СчетУчета = &ВыбСчетУчета

;



ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто2 КАК Склад,
    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
    ХозрасчетныйОстатки.КоличествоОстаток,
    ХозрасчетныйОстатки.СуммаОстаток
ПОМЕСТИТЬ ВТ_2
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ПериодРН, Счет = &ВыбСчетУчета, , Субконто2 = &ВыбСклад) КАК ХозрасчетныйОстатки 

;
Выбрать
   т1.Склад,
   т1.Номенклатура,
   т1.СчетУчета,
   т1.КоличествоОстаток,
   т1.СтоимостьОстаток,
   ЕСТЬNULL(т2.КоличествоОстаток, 0) КАК КоличествоОстаток_БУХ,
   ЕСТЬNULL(т2.СуммаОстаток, 0) КАК СуммаОстаток_Бух

ИЗ ВТ_1 как т1 
   ЛЕВОЕ СОЕДИНЕНИЕ ВТ_1 как т2
   ПО т1.Склад = т2.Склад И т1.Номенклатура = т2.Номенклатура


>>Получить нужно вот такое
Очень хорошо, только непонятно
18 Ёпрст
 
гуру
20.05.25
17:33
(15) два запроса, один с плюсом, другой с минусом, объединяешь между собой и оборачиваешь в подзапрос, его сворачиваешь и суммируешь. Где сумма <> 0 - там твои расхождения по группируемым полям.
Где >0 есть в первом, нет во втором и наеборот.
19 Ёпрст
 
гуру
20.05.25
17:40
При желании, можешь оставить и исходные данные, чтоб видеть разницу

Выбрать Нечто,
Сумма(Сумма1) как СуммаИзПервойТаблички,
Сумма(Сумма2) как СуммаИзВторойТаблички
ИЗ (
выбрать 
   сумма как сумма,
   сумма как сумма1,
   0 как сумма2,
   нечто как Нечто
Из табличка1
Объединить все 
выбрать 
   -сумма,
   0,
   сумма,
   нечто
Из табличка2)
Сгруппировать по Нечто
Имеющие Сумма(Сумма)<>0