Имя: Пароль:
1C
1С v8
Выгрузка номенклатуры с несколькими штрих кодами
,
0 progaoff
 
13.11.16
23:49
Необходимо выгрузить запросом номенклатуру имеющую несколько ШК. Без задвоенных наименований. Как реализовать одним запросом?
1 Chameleon1980
 
13.11.16
23:54
шк то надоть? или что?

не понял
2 Chameleon1980
 
13.11.16
23:55
если без шк то какая разница сколько у позиции шк
3 progaoff
 
13.11.16
23:56
Нужно Позиция код и шк
Но в позиции несколько шк закрепленно
4 Chameleon1980
 
13.11.16
23:57
как выглядеть то должно?
5 progaoff
 
13.11.16
23:58
Номенклатура код ШК
                 ШК1
                 ШК2
6 Chameleon1980
 
14.11.16
00:01
Запросом выбираем.
кодом обрабатываем как надо.

Или я чет опять не понял.

Это конечный вид в таблице, например, ТД (Табличный документ) ?
7 progaoff
 
14.11.16
00:02
ДА
8 progaoff
 
14.11.16
00:04
Просто таблица с позициями и закрепленными ШК за ней.
9 Chameleon1980
 
14.11.16
00:13
(7) не кричи

можно так

ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
ИЗ
    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
ИТОГИ ПО
    Номенклатура,
    Штрихкод


правильно обработать обход в коде
только получится первый шк уже в новой строке вроде (засыпаю)

а так линейный обход в коде обработать правильно
где надо выводим номенклатуру. где не нужно - не выводим
10 Злопчинский
 
14.11.16
00:13
(8) да, но там не должно быть позиций без шк и с одним шк
11 Chameleon1980
 
14.11.16
00:15
(10) это вопрос?
12 progaoff
 
14.11.16
00:18
в коде как обработать?
13 progaoff
 
14.11.16
00:19
запрос то понятен, вопрос как вывод сделать?
14 Chameleon1980
 
14.11.16
00:20
(12) за почти полтора года (это только на мисте) не осилил?

сколько?
15 Злопчинский
 
14.11.16
00:20
(11) утверждение согласно 0
16 Chameleon1980
 
14.11.16
00:26
(15) пардон (упустил), но это не проблема.
так же в запросе отобрать по условию Имеющие Кол-во шк >1
17 Chameleon1980
 
14.11.16
00:48
вот с условием Имеющие

ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
ИЗ
    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры

СГРУППИРОВАТЬ ПО
    ШтрихкодыНоменклатуры.Номенклатура

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ШтрихкодыНоменклатуры.Штрихкод) > 1
18 Chameleon1980
 
14.11.16
00:59
вызови конструктор запроса с обработкой результата
там есть типа вывод в табличный документ

вставь:

ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
ИЗ
    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры

СГРУППИРОВАТЬ ПО
    ШтрихкодыНоменклатуры.Номенклатура

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ШтрихкодыНоменклатуры.Штрихкод) > 1

а далее допилишь сформированный текст как надо
19 Chameleon1980
 
14.11.16
01:05
чуток неверно, но я спать похоже
20 Chameleon1980
 
14.11.16
01:10
если по быстрому, то можно так:

ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
ПОМЕСТИТЬ НоменклатураСНесколькимиШК
ИЗ
    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры

СГРУППИРОВАТЬ ПО
    ШтрихкодыНоменклатуры.Номенклатура

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ШтрихкодыНоменклатуры.Штрихкод) > 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
    ШтрихкодыНоменклатуры.Штрихкод
ИЗ
    НоменклатураСНесколькимиШК КАК НоменклатураСНесколькимиШК,
    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
ГДЕ
    ШтрихкодыНоменклатуры.Номенклатура В (НоменклатураСНесколькимиШК.Номенклатура)

УПОРЯДОЧИТЬ ПО
    Номенклатура
АВТОУПОРЯДОЧИВАНИЕ
21 Chameleon1980
 
14.11.16
01:16
ну и итоги можешь добавить
        |ИТОГИ ПО
        |    Номенклатура

перед Автоупорядочивание

а потом обходить запрос:

    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаНоменклатура.Следующий() Цикл
        ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
        ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень());
    
        ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
2 + 2 = 3.9999999999999999999999999999999...