Имя: Пароль:
1C
1С v8
Расчеты, зачем нужно соединять основную таблицу и данные графика?
0 Sdn
 
15.04.22
08:24
1. Оба варианта выдадут одинаковый результат 0% (0)
2. Результаты запросов разные 0% (0)
3. Так надо (зачем то) 0% (0)
Всего мнений: 0

Зачем делается так:

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

УПОРЯДОЧИТЬ ПО
    НомерСтроки

Когда можно сделать сразу так:

ВЫБРАТЬ
    ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия, 0) КАК План,
    ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК Отработано,
    ОсновныеНачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки1,
    ОсновныеНачисленияДанныеГрафика.ВидРасчета.СпособРасчета
ИЗ
    РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
            Регистратор = &Регистратор
                И ВидРасчета.КатегорияРасчета = &КатегорияРасчета) КАК ОсновныеНачисленияДанныеГрафика

Насколько я понимаю. Номера строк в основной таблице теже самые, что и во всех виртуальных, то есть это просто значение поля, задаваемое при формировании физической таблицы ОсновныеНачисления.
К чему эти соединения по номерам строк?
1 s-n-a-y
 
15.04.22
08:31
Могу ошибаться, но во втором случае может быть ситуация, что данные в расчетном периоде (в месяце) не вносились, и второй запрос в этом случае ничего не вернет
2 Sdn
 
15.04.22
08:35
Данные хранятся в ОсновнаяТаблица (она физическая), поэтому если данных нет, их не будет ни в первом ни во втором случае (второй случай - виртуальная таблица, она данные не хранит, а получает их из физической).
3 dreizehn
 
15.04.22
08:48
Потому что это разные запросы.
Первый вернет все строки основной таблицы, второй - только строки по регистратору и категории.
4 Sdn
 
15.04.22
08:55
И если в первый добавить

ГДЕ
ОсновныеНачисления.Регистратор = &Регистратор
И ОсновныеНачисления.ВидРасчета.КатегорияРасчета = &КатегорияРасчета

то будут одинаковые результаты?
5 dreizehn
 
15.04.22
09:06
(4) Нет. В таблице графика отсутствуют записи основной таблицы не связанные с графиком.
Я эту зарплатную кухню смутно помню, но там все еще завязано на измерение - дату и наличие данных в дополнительном регистре сведений, указанном в качестве графика для регистра расчета

Так что (1) прав.
6 dreizehn
 
15.04.22
09:08
Теперь-то тебя возьмут на работу?
7 Sdn
 
15.04.22
09:15
В настройках регистра связь с графиком задается сразу, поэтому пока не понимаю как могут появиться такие записи. Но за разъяснение спасибо.
"теперь-то тебя возьмут на работу?"
Ты меня с кем то, видимо, перепутал, я не искал работу в 1С, пока изучаю.
8 dreizehn
 
15.04.22
09:37
(7) >  не понимаю как могут
Ну, например, за счет простого отсутствия данных в регистре сведений графика.

> я не искал работу в 1С
Ну, дело Ваше.
9 Sdn
 
15.04.22
09:52
> за счет простого отсутствия данных в регистре сведений графика.
вернет записи с пустыми полями, которые рассчитываются с данными графика, там же другие данные есть, с чего бы записи не возвращать.

> Ну, дело Ваше.
(с) добавить