Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отчет СКД из 2 наборов данных

Отчет СКД из 2 наборов данных
Я
   ogion83
 
07.04.21 - 11:28
День добрый.
Делаю отчет в СКД. 2 набора данных по остаткам и оборотам, связываю по номенклатуре, группировка по номенклатуре и документам. Все норм, но не удается сделать так чтобы выводились корректно документы из этих двух запросов. Выводятся документы из 1 запроса, а из другого нет. Думал сгруппировать документы в настройках структуры отчета, но выдает ошибку, что нельзя.
   fisher
 
1 - 07.04.21 - 11:32
Связи наборов данных в СКД работают по принципу левого соединения. Но если ухитриться наложить отбор только на данные "правого" набора, то соединение превращается во внутреннее.
Если у тебя проблема за пределами этих особенностей - скорее всего неправильно настроены условия соединения.
ЗЫ. Мой стандартный совет - использовать наборы данных только в исключительных случаях, а не для банальной декомпозиции запроса. Просто потому, что это менее универсально.
   ogion83
 
2 - 07.04.21 - 11:35
Мне надо сравнить движения по документам из двух регистров (по одинаковым наименованиям номенклатуры) Как тогда лучше это сделать?
   ogion83
 
3 - 07.04.21 - 11:37
Думал сначала сделать в СКД: запрос по 1 регистру и вложенный запрос по 2, но не знаю как получить ресурсы из 2 запроса
   fisher
 
4 - 07.04.21 - 11:39
По одним и тем же регистраторам?
ОБЪЕДИНИТЬ ВСЕ
с последующим
СГРУППИРОВАТЬ ПО
   Регистратор, Номенклатура
   toypaul
 
5 - 07.04.21 - 11:39
здесь рассматривали подобный отчет https://learn.programstore.ru/video_kurs_skd

но если данные в одной базе 2 набора ни к чему. делать надо через объединение (в запросе)
   ogion83
 
6 - 07.04.21 - 11:41
(4) Могут быть и разные регистраторы
   ogion83
 
7 - 07.04.21 - 11:42
(5) Создавать вложенный запрос?
   fisher
 
8 - 07.04.21 - 11:43
(6) То есть, нужна группировка до номенклатуры но с возможностью детализации до регистраторов из обоих регистров? Тогда объединение без группировки. Группировка по номенклатуре будет уже в настройках СКД.
   ogion83
 
9 - 07.04.21 - 11:45
Да к примеру у Номенклатура1 по 1 регистру приход 5, по второму приход 6 и надо вывести список документов по обоим регистрам чтобы найти где не совпало.
   fisher
 
10 - 07.04.21 - 11:48
ВЫБРАТЬ Номенклатура, Регистратор, Приход КАК Приход1, 0 КАК Приход2
ИЗ
  Регистр1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Номенклатура, Регистратор, 0, Приход
ИЗ
  Регистр2
   fisher
 
11 - 07.04.21 - 11:51
В вычисляемых полях СКД можешь добавить поле разницы между Приход1 и Приход2, в условном оформлении включить красный цвет фона для ненулевой разницы по номенклатуре и наслаждаться.
   ogion83
 
12 - 07.04.21 - 11:51
Мне надо видеть, что этот приход был по 1 регистру, а этот приход по 2.
   fisher
 
13 - 07.04.21 - 11:52
(12) А у тебя для этого разные колонки для приходов по разным регистрам. Не тупи :)
   ogion83
 
14 - 07.04.21 - 11:54
ВЫБРАТЬ Номенклатура, Регистратор, Приход КАК Приход1, Расход КАК Расход1
ИЗ
  Регистр1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Номенклатура, Регистратор, Приход Как Приход2, Расход Как Расход2
ИЗ
  Регистр2
   ogion83
 
15 - 07.04.21 - 11:54
Так?
   fisher
 
16 - 07.04.21 - 11:56
(15) Нет. Колонки для объединяемых наборов общие, определяются только порядком, а названия берутся по первому набору. Смотри (10)
   ogion83
 
17 - 07.04.21 - 11:56
(14) Не так. Понял
   fisher
 
18 - 07.04.21 - 12:05
Без хорошего владения языком запросов в 1С никуда.
Мой путь был через https://www.sql-ex.ru (Правда тогда он назывался иначе и не знаю, насколько он жив сейчас).
Отличный ресурс для практического овладения. Это не 1С, но язык запросов 1С является диалектом классического sql, так что вполне.
   ogion83
 
19 - 07.04.21 - 12:05
Сделал как в (10) Стало лучше, только почему то при включении группировки по документам не показывает остатки начальные и конечные по 2 регистру
   ogion83
 
20 - 07.04.21 - 12:07
Может не хватает где нибудь ЕстьNull ?
   ogion83
 
21 - 07.04.21 - 12:08
ВЫБРАТЬ
    СырьеОстаткиИОбороты.Регистратор,
    СырьеОстаткиИОбороты.ПериодСекунда,
    СырьеОстаткиИОбороты.МПЗ,
    СырьеОстаткиИОбороты.КоличествоНачальныйОстаток КАК НОС,
    0 КАК НОШ,
    СырьеОстаткиИОбороты.КоличествоПриход КАК ПС,
    0 КАК ПШ,
    СырьеОстаткиИОбороты.КоличествоРасход КАК РС,
    0 КАК РШ,
    СырьеОстаткиИОбороты.КоличествоКонечныйОстаток КАК КОС,
    0 КАК КОШ
ИЗ
    РегистрНакопления.Сырье.ОстаткиИОбороты(, , Авто, , ) КАК СырьеОстаткиИОбороты

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

ВЫБРАТЬ
    ШихтаМастеровОстаткиИОбороты.Регистратор,
    ШихтаМастеровОстаткиИОбороты.ПериодСекунда,
    ШихтаМастеровОстаткиИОбороты.Шихта,
    0,
    ШихтаМастеровОстаткиИОбороты.КоличествоНачальныйОстаток,
    0,
    ШихтаМастеровОстаткиИОбороты.КоличествоПриход,
    0,
    ШихтаМастеровОстаткиИОбороты.КоличествоРасход,
    0,
    ШихтаМастеровОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
    РегистрНакопления.ШихтаМастеров.ОстаткиИОбороты(, , Авто, , ) КАК ШихтаМастеровОстаткиИОбороты
   ogion83
 
22 - 07.04.21 - 12:11
Как то выборочно делает при группировке по докам: Нач остатки по 2 регистру не показывает никакие, а конечные остатки по нему только итоговые выдает
   fisher
 
23 - 07.04.21 - 12:14
(19) Честно говоря, не приходилось в одном отчете одновременно детализировать остатки по двум разным регистрам. Поэтому я ни в чем не уверен :)
Первым делом я бы проверил настройку ролей полей в СКД (на ИТС есть пара статей про это, самая полезная - как корректно настраивать "собственные" остатки, а не из регистра остатков).
   fisher
 
24 - 07.04.21 - 12:16
Во всем, о чем писалось выше, я уверен на уровне оборотов. А вот расчет остатков СКД - это отдельная магия со своими особенностями.
   ogion83
 
25 - 07.04.21 - 12:50
Вот у остатков 1 регистра в Ролях указано имя "Группа", а у 2 регистра "Группа2" Может в этом дело, хотя пробовал везде указать "Группа" но выдает ошибку
   ogion83
 
26 - 07.04.21 - 12:56
Обнаружил: в Начальных остатках, если есть вес у 1 регистра, то показывает 0 у второго и наоборот.
   Cthulhu
 
27 - 07.04.21 - 13:08
связь нескольких наборов данных - это простейший случай !для убогих" и для экономии времени.
пиши дин набор - серьезный запрос.
   ogion83
 
28 - 07.04.21 - 13:29
   ogion83
 
29 - 07.04.21 - 13:29
Сделал как там и все пашет как часы.
   fisher
 
30 - 07.04.21 - 13:40
(28) Интересно. То есть все полечилось добавлением неявного обязательного измерения-разделителя?
 
 
   ogion83
 
31 - 07.04.21 - 13:42
(30) Ага. Вот как до такого догадаться?
   fisher
 
32 - 07.04.21 - 13:46
(31) Видимо "Опыт - сын ошибок трудных, и гений - парадоксов друг". Чтобы поймать СКД - нужно думать как СКД!


Список тем форума
 
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.