Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:20

Объединения таблиц не по всем нужным реквизитам, из-за чего идет дублирование данных.

Автор marycz, 06 дек 2022, 18:03

0 Пользователей и 1 гость просматривают эту тему.

marycz

Здравствуйте подскажите с вопросом пожалуйста в отчете Скд , в котором можно увидеть по определенному виду обучения тот перечень профессий, по которому на данный момент он не назначен.
Например, необходимо чтобы вводный инструктаж был назначен абсолютно для всех профессий штатного расписания. Если в данный момент назначены на все профессии, то при добавлении новой профессии в штатное расписание не видно, что этот вид не назначен. нужно указать реквизиты, я указал но не пойму каких еще не хватает. Или их не тут нужно указывать?

cast

Посмотри в консоли запросов, там хорошо видно.
Пример: Номенклатура = Номенклатура,
        Склад = склад,
        Товар = Пусто
        Услуга = пусто
Это задвоится, потомучто один товар, а другой услуга. Машина их по этому полю не свяжет и задублирует


marycz


cast

с сайта 1с в итс, но там для поздних версий. В нете поищи найдёшь, как правило под толстым клиентом работает

marycz

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

Максим75

marycz,
ГДЕ
    НормыОбученийНаПредприятииСрезПоследних.Период = &Период

может это условие не имеет Периода в регистре сведений.
и так получается срез последних, по сам период может не быть равным параметру запроса.

marycz

Максим75, если убираю эту строку то ошибка

Максим75

marycz, так убрать через конструктор запроса.
если убрать в тексте запроса, то да, будет ошибка, т.к. Где начинается с И, а такого быть не должно.

ГДЕ
 НормыОбученийНаПредприятииСрезПоследних.ВидОбучения = &ВидОбучения

так должно остаться.

Хотя мне пока не понятно, почему вообще ничего не выводит. Даже если в правой таблице ничего не будет, то должно вывестись из левой таблицы.

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

Максим75

Максим75, да, из-за условия не выводится ничего.
ведь условие накладывается уже на готовый набор данных, если бы через вложенный запрос по таблице
РегистрСведений.НормыОбученийНаПредприятии.СрезПоследних(&Период, ), то попали бы только записи левой таблицы.
а так вначале создается набор, потом уже на общий набор накладывается условие по периоду, скорее всего не выполняется, поэтому ничего не выводится.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск