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

Как в качестве параметрра передать ТЗ сравнить табличную часть дока с тз

Как в качестве параметрра передать ТЗ сравнить табличную часть дока с тз
Я
   1сЮлия
 
05.06.19 - 10:33
Доброе утро! Я получила уникальные табличные части выгрузила в тз в цикле каждый раз новая табличная часть,теперь мне нужно сравнить табличную часть дока сертификация номенклатуры с этой ТЗ и вывести все серии номенклатуры,которые находятся в шапке дока,вот добавила но почему то пустую таблицу выдает параметры все получает на входе
ВЫБРАТЬ
    Анализы.НомерСтроки,
    Анализы.ПоказательАнализа,
    Анализы.ЗначениеПоказателя,
    Анализы.МаксЗначениеПоказателя,
    Анализы.СоответствуетНормативу
ПОМЕСТИТЬ ВнутренняяТаблицаАнализы
ИЗ
    &ТЧ КАК Анализы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СертификацияНоменклатурыАнализы.Ссылка.СерияНоменклатуры
ИЗ
    ВнутренняяТаблицаАнализы КАК ВнутренняяТаблицаАнализы
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СертификацияНоменклатуры.Анализы КАК СертификацияНоменклатурыАнализы
        ПО ВнутренняяТаблицаАнализы.НомерСтроки = СертификацияНоменклатурыАнализы.НомерСтроки
            И ВнутренняяТаблицаАнализы.ПоказательАнализа = СертификацияНоменклатурыАнализы.ПоказательАнализа
            И ВнутренняяТаблицаАнализы.ЗначениеПоказателя = СертификацияНоменклатурыАнализы.ЗначениеПоказателя
            И ВнутренняяТаблицаАнализы.МаксЗначениеПоказателя = СертификацияНоменклатурыАнализы.МаксЗначениеПоказателя
            И ВнутренняяТаблицаАнализы.СоответствуетНормативу = СертификацияНоменклатурыАнализы.СоответствуетНормативу
ГДЕ
    СертификацияНоменклатурыАнализы.Ссылка.Номенклатура = &Номенклатура
    И СертификацияНоменклатурыАнализы.Ссылка.Подразделение = &Подразделение
    И ДЕНЬ(СертификацияНоменклатурыАнализы.Ссылка.Дата) = &Дата
    И СертификацияНоменклатурыАнализы.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
 
 
   catena
 
1 - 05.06.19 - 10:39
Условия на левую таблицу превращают левое соединение во внутреннее.
Ну и параметры надо проверить. Меня терзают смутные сомнения, что вы ожидаете странного от функции ДЕНЬ()
   1сЮлия
 
2 - 05.06.19 - 10:44
У меня документы формируются по дню несколько документов старых схлопываются по итогам по номенклатуре,подразделению ,по дню. За в несколько раз меньшее количество доков,чем было ранее в базе
   1сЮлия
 
3 - 05.06.19 - 10:45
Параметры передаются все правильно.
   1сЮлия
 
4 - 05.06.19 - 10:45
Запрос не правильно написан я так думаю
   1сЮлия
 
5 - 05.06.19 - 10:47
Пустая выборка.
   hhhh
 
6 - 05.06.19 - 10:49
(5) вот тут хрень какая-то
И ДЕНЬ(СертификацияНоменклатурыАнализы.Ссылка.Дата) = &Дата 


ДЕНЬ это число, оно не равно &Дата
   один я дАртаньян
 
7 - 05.06.19 - 10:52
Почему отбор через соединение, а не через условие?

ГДЕ
    СертификацияНоменклатурыАнализы.Ссылка.Номенклатура = &Номенклатура 
    И СертификацияНоменклатурыАнализы.Ссылка.Подразделение = &Подразделение 
    И ДЕНЬ(СертификацияНоменклатурыАнализы.Ссылка.Дата) = &Дата 
    И СертификацияНоменклатурыАнализы.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
и

(СертификацияНоменклатурыАнализы.НомерСтроки,
СертификацияНоменклатурыАнализы.ПоказательАнализа,
СертификацияНоменклатурыАнализы.ЗначениеПоказателя ,
СертификацияНоменклатурыАнализы.МаксЗначениеПоказателя ,
СертификацияНоменклатурыАнализы.СоответствуетНормативу )
В
(Выбрать
ВнутренняяТаблицаАнализы.НомерСтроки,
ВнутренняяТаблицаАнализы.ПоказательАнализа,
ВнутренняяТаблицаАнализы.ЗначениеПоказателя,
ВнутренняяТаблицаАнализы.МаксЗначениеПоказателя.
ВнутренняяТаблицаАнализы.СоответствуетНормативу
из
ВнутренняяТаблицаАнализы)
   один я дАртаньян
 
8 - 05.06.19 - 10:53
Анализы.НомерСтроки - номер сроки в ТЗ сомневаюсь, что он совпадет с НомерСтроки в документе.
   Вафель
 
9 - 05.06.19 - 11:19
сравнение 2х тз запросом - хорошая задачка для собеседования
   1сЮлия
 
10 - 05.06.19 - 11:36
Вот так имеется в виду 
ВЫБРАТЬ
    Анализы.НомерСтроки,
    Анализы.ПоказательАнализа,
    Анализы.ЗначениеПоказателя,
    Анализы.МаксЗначениеПоказателя,
    Анализы.СоответствуетНормативу
ПОМЕСТИТЬ ВнутренняяТаблицаАнализы
ИЗ
    &ТЧ КАК Анализы
;

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

ВЫБРАТЬ
    СертификацияНоменклатурыАнализы.Ссылка.СерияНоменклатуры,
    СертификацияНоменклатурыАнализы.Ссылка.Номенклатура
ИЗ
    Документ.СертификацияНоменклатуры.Анализы КАК СертификацияНоменклатурыАнализы
ГДЕ
    СертификацияНоменклатурыАнализы.Ссылка.Номенклатура = &Номенклатура
    И СертификацияНоменклатурыАнализы.Ссылка.Подразделение = &Подразделение
    И ДЕНЬ(СертификацияНоменклатурыАнализы.Ссылка.Дата) = ДЕНЬ(&Дата)
    И СертификацияНоменклатурыАнализы.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    И (СертификацияНоменклатурыАнализы.НомерСтроки, СертификацияНоменклатурыАнализы.ПоказательАнализа, СертификацияНоменклатурыАнализы.ЗначениеПоказателя, СертификацияНоменклатурыАнализы.МаксЗначениеПоказателя, СертификацияНоменклатурыАнализы.СоответствуетНормативу) В
            (ВЫБРАТЬ
                ВнутренняяТаблицаАнализы.НомерСтроки,
                ВнутренняяТаблицаАнализы.ПоказательАнализа,
                ВнутренняяТаблицаАнализы.ЗначениеПоказателя,
                ВнутренняяТаблицаАнализы.МаксЗначениеПоказателя,
                ВнутренняяТаблицаАнализы.СоответствуетНормативу
            ИЗ
                ВнутренняяТаблицаАнализы)
   1сЮлия
 
11 - 05.06.19 - 13:58
Тянет попадаю серии других наборов
Функция ОтобратьСерииПоАнализам(ТабЗнСерии,Подразделение,Номенклатура,Дата)
    
    СерииОперКВЛ = Новый ТаблицаЗначений;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    
    "ВЫБРАТЬ
    |    Анализы.НомерСтроки,
    |    Анализы.ПоказательАнализа,
    |    Анализы.ЗначениеПоказателя,
    |    Анализы.МаксЗначениеПоказателя,
    |    Анализы.СоответствуетНормативу
    |ПОМЕСТИТЬ ВнутренняяТаблицаАнализы
    |ИЗ
    |    &ТЧ КАК Анализы
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

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


    Выборка = Запрос.Выполнить();
    Если Не (Выборка.Пустой()) тогда
        
    СерииОперКВЛ = Выборка.Выгрузить();
        Возврат СерииОперКВЛ;
    КонецЕсли;    
    
Конецфункции

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