Имя: Пароль:
1C
 
Сравнить материалы в "Производство без заказа" с материалами в спецификации
0 Андрей_Андрей
 
21.02.25
16:08
Здравствуйте, дамы и господа!

Есть задача создать отчет.
Необходимо сравнить материалы и работы указанные в документе - "Производство без заказа"
с материалами и работами указанными в соответствующей спецификации.

Создал отчет. Он не совсем правильный.

Если номенклатуры материалов совпадают или в производстве без заказа использовали какой-то другой
материал, то все выводится в отчет. Например, на картинке можно увидеть, что в производстве без заказа использовали Порошок, которого не было в спецификации.
А если, например, в спецификации был указан материал которого не было в производстве без заказа,
то он в отчет не выводится. Например, в колонке - Материал в спецификации
должен быть еще один материал. Например, вода. Но он не вывелся.

Подскажите, пожалуйста, что нужно исправить?
Текст запроса (из ОсновнаяСхемаКомпоновкиДанных) прилагаю ниже.

Я только начинающий программист 1С и прошу не закидывать помидорами.

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПроизводствоБезЗаказаВыходныеИзделия.Ссылка.Организация КАК Организация,
    ПроизводствоБезЗаказаМатериалыИРаботы.Ссылка.Ссылка КАК СсылкаНаДокумент,
    ПроизводствоБезЗаказаВыходныеИзделия.Номенклатура КАК НоменклатураВыхИзделие,
    ПроизводствоБезЗаказаМатериалыИРаботы.Номенклатура КАК НоменклатураМатериал,
    ПроизводствоБезЗаказаМатериалыИРаботы.Количество КАК КоличествоНоменклатураМатериал,
    ПроизводствоБезЗаказаВыходныеИзделия.Количество КАК КоличествоВыхИзделие,
    ПроизводствоБезЗаказаВыходныеИзделия.Спецификация КАК Спецификация,
    ПроизводствоБезЗаказаВыходныеИзделия.Ссылка.Дата КАК Дата,
    ПроизводствоБезЗаказаМатериалыИРаботы.Ссылка.Номер КАК Номер
ПОМЕСТИТЬ ВТПроизводствоБезЗаказа
ИЗ
    Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ПроизводствоБезЗаказаВыходныеИзделия
        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ПроизводствоБезЗаказаМатериалыИРаботы
        ПО ПроизводствоБезЗаказаВыходныеИзделия.Ссылка.Ссылка = ПроизводствоБезЗаказаМатериалыИРаботы.Ссылка.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТПроизводствоБезЗаказа.Организация КАК Организация,
    ВТПроизводствоБезЗаказа.НоменклатураВыхИзделие КАК Продукция,
    ВТПроизводствоБезЗаказа.СсылкаНаДокумент КАК Документ,
    РесурсныеСпецификацииМатериалыИУслуги.Номенклатура КАК МатериалВСпецификации,
    ВТПроизводствоБезЗаказа.НоменклатураМатериал КАК МатериалВПроизводствеБезЗаказа,
    РесурсныеСпецификацииМатериалыИУслуги.Ссылка КАК СсылкаНаСпецификацию,
    РесурсныеСпецификацииМатериалыИУслуги.Ссылка.ОсновноеИзделиеКоличествоУпаковок КАК КоличествоИзделияВСпецификации,
    РесурсныеСпецификацииМатериалыИУслуги.КоличествоУпаковок КАК КоличествоМатВСпецификацииОригинал,
    ВТПроизводствоБезЗаказа.КоличествоВыхИзделие КАК КоличествоВыхИзделияВПроизводствеБезЗаказа,
    ВТПроизводствоБезЗаказа.Дата КАК Дата,
    ВТПроизводствоБезЗаказа.Номер КАК Номер
ИЗ
    ВТПроизводствоБезЗаказа КАК ВТПроизводствоБезЗаказа
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК РесурсныеСпецификацииМатериалыИУслуги
        ПО ВТПроизводствоБезЗаказа.Спецификация = РесурсныеСпецификацииМатериалыИУслуги.Ссылка.Ссылка
            И ВТПроизводствоБезЗаказа.НоменклатураМатериал = РесурсныеСпецификацииМатериалыИУслуги.Номенклатура
ГДЕ
    ВТПроизводствоБезЗаказа.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
1 Андрей_Андрей
 
21.02.25
16:16
В дополнение.
Если (в конце запроса) ЛЕВОЕ СОЕДИНЕНИЕ поменять на другое, то лучше не станет.
2 Доминошник
 
21.02.25
16:22
Как вариант - сначала выбрать все различные материалы (как из производства, так и из спецификации) во временную таблицу, а уже потом сравнивать данные их этой таблицы со спецификациями, производством.
3 lubitelxml
 
21.02.25
16:24
Я бы вместо Полное Соединение использовал Объединить
4 lubitelxml
 
21.02.25
16:26
Условие на дату в ГДЕ - лучше вынести верхнюю таблицу
5 Андрей_Андрей
 
23.02.25
14:26
Всем большое спасибо. Сделал.
Запрос прилагаю. Может кому пригодится.

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

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

СГРУППИРОВАТЬ ПО
    ПроизводствоБезЗаказаМатериалыИРаботы.Номенклатура,
    ПроизводствоБезЗаказаВыходныеИзделия.Ссылка.Организация,
    ПроизводствоБезЗаказаМатериалыИРаботы.Ссылка.Ссылка,
    ПроизводствоБезЗаказаВыходныеИзделия.Номенклатура,
    ПроизводствоБезЗаказаВыходныеИзделия.Количество,
    ПроизводствоБезЗаказаВыходныеИзделия.Спецификация,
    ПроизводствоБезЗаказаВыходныеИзделия.Ссылка.Дата,
    ПроизводствоБезЗаказаМатериалыИРаботы.Ссылка.Номер,
    ПроизводствоБезЗаказаМатериалыИРаботы.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТДляОбъединения.Организация КАК Организация,
    ВТДляОбъединения.СсылкаДокПроизводствоБезЗаказа КАК СсылкаДокПроизводствоБезЗаказа,
    ВТДляОбъединения.ИзделиеНаВыходе КАК ИзделиеНаВыходе,
    РесурсныеСпецификацииМатериалыИУслуги.Номенклатура КАК НазваниеМатериалаИзСпецификации,
    РесурсныеСпецификацииМатериалыИУслуги.КоличествоУпаковок КАК КоличествоМатериалаИзСпецификации,
    РесурсныеСпецификацииМатериалыИУслуги.Ссылка.ОсновноеИзделиеКоличествоУпаковок КАК КоличествоИзделияНаВыходеИзСпецификации,
    РесурсныеСпецификацииМатериалыИУслуги.Ссылка КАК СсылкаНаСпецификацию,
    ВТДляОбъединения.ДатаДокПроизводствоБезЗаказа КАК ДатаДокПроизводствоБезЗаказа,
    ВТДляОбъединения.НомерДокПроизводствоБезЗаказа КАК НомерДокПроизводствоБезЗаказа
ПОМЕСТИТЬ ВТСпецификация
ИЗ
    ВТДляОбъединения КАК ВТДляОбъединения
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК РесурсныеСпецификацииМатериалыИУслуги
        ПО ВТДляОбъединения.ИзделиеНаВыходе = РесурсныеСпецификацииМатериалыИУслуги.Ссылка.ОсновноеИзделиеНоменклатура
            И ВТДляОбъединения.СсылкаНаСпецификацию = РесурсныеСпецификацииМатериалыИУслуги.Ссылка.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЕСТЬNULL(ВТПроизводствоБезЗаказа.Организация, ВТСпецификация.Организация) КАК Организация,
    ЕСТЬNULL(ВТПроизводствоБезЗаказа.ИзделиеНаВыходе, ВТСпецификация.ИзделиеНаВыходе) КАК Продукция,
    ЕСТЬNULL(ВТПроизводствоБезЗаказа.СсылкаДокПроизводствоБезЗаказа, ВТСпецификация.СсылкаДокПроизводствоБезЗаказа) КАК Документ,
    ВТПроизводствоБезЗаказа.НоменклатураМатериал КАК МатериалВПроизводствеБезЗаказа,
    ВТСпецификация.НазваниеМатериалаИзСпецификации КАК МатериалВСпецификации
ИЗ
    ВТПроизводствоБезЗаказа КАК ВТПроизводствоБезЗаказа
        ПОЛНОЕ СОЕДИНЕНИЕ ВТСпецификация КАК ВТСпецификация
        ПО ВТПроизводствоБезЗаказа.СсылкаДокПроизводствоБезЗаказа = ВТСпецификация.СсылкаДокПроизводствоБезЗаказа
            И ВТПроизводствоБезЗаказа.ИзделиеНаВыходе = ВТСпецификация.ИзделиеНаВыходе
            И ВТПроизводствоБезЗаказа.НоменклатураМатериал = ВТСпецификация.НазваниеМатериалаИзСпецификации
            И ВТПроизводствоБезЗаказа.СсылкаНаСпецификацию = ВТСпецификация.СсылкаНаСпецификацию
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn