Имя: Пароль:
1C
1С v8
Как выбрать единицы измерения, имеющие одного родителя?
0 DenYuliya
 
21.11.16
13:35
Не могу условие придумать. Понимаю, что нужно сделать, а как реализовать - не лезет в голову ничего.
Загружаю файл с данными по ед. измер (&ТЗ_Excel).
В запросе отбираю то, что есть в базе (отбор по Владельцу (номенклатура)).
В таблицу "Найдено" (ПакетЗапроса3) отбираю то, что в дальнейшем надо загрузить из Еxcel в 1С.

Мне надо отобрать те единицы измерения "шт" из ПакетЗапроса3, у которых общий Владелец (ссылка на спр. Номенклатура), но разная Единица по классификатору (по коду, например, код 123 - паллета, 124 - коробка). По-сути ту номенклатуру, у которой указана не одна ед. измерения, не только шт.
В результате вполне достаточно доп. реквизита к каждой ед. измерения "шт" с галочкой "ЕстьКоробка", "ЕстьПаллета".
Я такой вариант вижу, может и лучше есть.

Подскажите, плиз, хотя бы общий вектор мысли? Мне это в этом же пакете делать? Новый пакет делать и работать с ранее созданной ВТ "ВремНайдено"? Новую создать? Куда вообще копать))?

ВЫБРАТЬ
    ТЗ_Excel.ДлинаШт,
    ТЗ_Excel.ДлинаКор,
    ТЗ_Excel.ДлинаПал,
    ВЫРАЗИТЬ(ТЗ_Excel.Артикул КАК СТРОКА(25)) КАК АртикулТЗ
ПОМЕСТИТЬ ДанныеИзТЗ
ИЗ
    &ТЗ_Excel КАК ТЗ_Excel
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДанныеИзТЗ.АртикулТЗ,
    ЕдиницыИзмерения.Владелец.Артикул КАК АртикулЕдИзм,
    ДанныеИзТЗ.ДлинаШт,
    ДанныеИзТЗ.ДлинаКор,
    ДанныеИзТЗ.ДлинаПал,
    ЕдиницыИзмерения.ЕдиницаПоКлассификатору,
    ЕдиницыИзмерения.Длина КАК ДлинаЕдИзмер,
    ЕдиницыИзмерения.Ширина КАК ШиринаЕдИзмер,
    ЕдиницыИзмерения.Высота КАК ВысотаЕдИзмер,
    НЕ ЕдиницыИзмерения.Ссылка ЕСТЬ NULL  КАК Найдено
ПОМЕСТИТЬ врем_Найдено
ИЗ
    ДанныеИзТЗ КАК ДанныеИзТЗ
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
        ПО (ЕдиницыИзмерения.Владелец.Артикул = ДанныеИзТЗ.АртикулТЗ)
            И (НЕ ЕдиницыИзмерения.ПометкаУдаления)
ГДЕ
    НЕ ДанныеИзТЗ.АртикулТЗ ЕСТЬ NULL
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    врем_Найдено.АртикулТЗ,
    врем_Найдено.ДлинаШт,
    врем_Найдено.ДлинаЕдИзмер,
    врем_Найдено.ШиринаЕдИзмер,
    врем_Найдено.ВысотаЕдИзмер,
    врем_Найдено.ДлинаКор,
    врем_Найдено.ДлинаПал,
    врем_Найдено.ЕдиницаПоКлассификатору.Код = "123" КАК ЕстьПаллет,
    врем_Найдено.ЕдиницаПоКлассификатору.Код = "124" КАК ЕстьКоробка
ИЗ
    врем_Найдено КАК врем_Найдено
ГДЕ
    врем_Найдено.Найдено
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    врем_Найдено.АртикулТЗ,
    врем_Найдено.ДлинаШт,
    врем_Найдено.ДлинаКор,
    врем_Найдено.ДлинаПал
ИЗ
    врем_Найдено КАК врем_Найдено
ГДЕ
    НЕ врем_Найдено.Найдено
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ врем_Найдено
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ДанныеИзТЗ
1 DenYuliya
 
21.11.16
13:36
Как-то код криво вставился(((.
2 DenYuliya
 
21.11.16
13:55
Пришел в голову такой вариант:
Работать с результатом запроса (ТЗ Найдено).При помощи метода НайтиСтороки отбирать через "Если - Иначе" те, где есть строки с одинаковым владельцем, и те, где их нет. В зависимости от результата создавать либо не создавать новые элементы справочника.
3 aleks_default
 
21.11.16
15:15
как у тебя может быть
НЕ ДанныеИзТЗ.АртикулТЗ ЕСТЬ NULL
при левом соединении?
4 FIXXXL
 
21.11.16
15:15
(2) в запросе: группировка по Номенклатуре, КоличествоРазличных по ЕИ
5 aleks_default
 
21.11.16
15:16
т.е. оно всегда будет не нулл, тогда зачем это условие?
6 DenYuliya
 
21.11.16
15:51
(5)существующий запрос работает идеально так, как надо.
Эта часть отбирает те ед измер,для который не найдена "пара". И выгружается в ТЗ "не найдено".

А те, для которых пара есть, выгружается в ТЗ "найдено".

Вот из "найдено" мне и надо отобрать те, где у одной номенклатуры несколько ед. измер
7 Мимохожий Однако
 
21.11.16
15:57
Попробуй подсчитать количество единиц измерения и вывести отдельно с количеством больше 1. Эту временную таблицу соедини с таблицей Найдено.
8 DenYuliya
 
21.11.16
16:13
(7) кол-во единиц измерения по всему спр. Номенклатура? Или в вт "Найдено", полученной в данном запросе?
9 Мимохожий Однако
 
21.11.16
16:15
(8) Только в вт "Найдено". Ее же соединить со следующей вт, в которой определил количество записей больше 1.
Основная теорема систематики: Новые системы плодят новые проблемы.