Имя: Пароль:
1C
1С v8
составной тип данных в табличной части документа
,
0 JIeoIIoJIbD
 
26.08.13
13:27
как выбрать все номенклатуру из ТЧ документа , когда в нем есть и "группа номенклатуры" и "НоменклатурныеГруппы" для дальнейшего сравнения с РегистромНакопления "ЗаказыПокупателей"
1 ДенисЧ
 
26.08.13
13:28
запросом
2 JIeoIIoJIbD
 
26.08.13
13:30
Запрос = Новый Запрос;
                                Запрос.Текст = "ВЫБРАТЬ
                                               |    УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа КАК Наименование
                                               |ИЗ
                                               |    Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы";
                                Запрос.УстановитьПараметр("Контрагент", ЭлементыФормы.ДокументСписок.ТекущиеДанные.Контрагент);
                                Запрос.УстановитьПараметр("ДатаНач", ЭлементыФормы.ДокументСписок.ТекущиеДанные.ДатаНачала);
                                Запрос.УстановитьПараметр("ДатаКон", ЭлементыФормы.ДокументСписок.ТекущиеДанные.ДатаОкончания);

                                Если НЕ Запрос.Выполнить().Пустой() Тогда
                                    РезультатВыборки = Запрос.Выполнить().Выбрать();
                                
                                    Таблица1 = Новый ТаблицаЗначений;
                                    Таблица1.Колонки.Добавить("Наименование");
                            
                                    
                                    Пока РезультатВыборки.Следующий() Цикл
                                        НоваяСтрока = Таблица1.Добавить();
                                        НоваяСтрока.Наименование = РезультатВыборки.Наименование;
                                    
                                    КонецЦикла;
                                    
                                КонецЕсли;
3 JIeoIIoJIbD
 
26.08.13
13:31
но мне не нужны группы в запросе, нужна только номенклатура, которую содержат эти группы, как вытащить, подскажите
4 JIeoIIoJIbD
 
26.08.13
16:19
подскажите в каком направлении копать
5 Allexe
 
26.08.13
16:23
(3) Может соединить со справочником номенклатуры по условию группы?
6 JIeoIIoJIbD
 
26.08.13
16:24
как это сделать ? можно поподробнее ?
7 JIeoIIoJIbD
 
26.08.13
16:28
остановился я тут , получил таблицу , и не знаю как дальше быть

                            Запрос = Новый Запрос;
                                Запрос.Текст = "ВЫБРАТЬ                                               |    УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа КАК Наименование                                               |ИЗ                                               |    Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы                                               |ГДЕ                                               |    УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон                                               |    И УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка.Контрагент = &Контрагент";                                                                Запрос.УстановитьПараметр("Контрагент", ЭлементыФормы.ДокументСписок.ТекущиеДанные.Контрагент);                            Запрос.УстановитьПараметр("ДатаНач", ЭлементыФормы.ДокументСписок.ТекущиеДанные.ДатаНачала);                            Запрос.УстановитьПараметр("ДатаКон", ЭлементыФормы.ДокументСписок.ТекущиеДанные.ДатаОкончания);
Если НЕ Запрос.Выполнить().Пустой() Тогда                                    РезультатВыборки = Запрос.Выполнить().Выбрать();                                                                    Таблица1 = Новый ТаблицаЗначений;                                    Таблица1.Колонки.Добавить("Наименование");                                                                        Пока РезультатВыборки.Следующий() Цикл                                        НоваяСтрока = Таблица1.Добавить();                                        НоваяСтрока.Наименование = РезультатВыборки.Наименование;                                    КонецЦикла;                                    
КонецЕсли;
8 JIeoIIoJIbD
 
26.08.13
16:32
ой бл*

                            Запрос = Новый Запрос;
                                Запрос.Текст = "ВЫБРАТЬ
                                               |    УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа КАК Наименование
                                               |ИЗ
                                               |    Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы
                                               |ГДЕ
                                               |    УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                                               |    И УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка.Контрагент = &Контрагент";
                                
                                Запрос.УстановитьПараметр("Контрагент", ЭлементыФормы.ДокументСписок.ТекущиеДанные.Контрагент);
                                Запрос.УстановитьПараметр("ДатаНач", ЭлементыФормы.ДокументСписок.ТекущиеДанные.ДатаНачала);
                                Запрос.УстановитьПараметр("ДатаКон", ЭлементыФормы.ДокументСписок.ТекущиеДанные.ДатаОкончания);

                                Если НЕ Запрос.Выполнить().Пустой() Тогда
                                    РезультатВыборки = Запрос.Выполнить().Выбрать();
                                
                                    Таблица1 = Новый ТаблицаЗначений;
                                    Таблица1.Колонки.Добавить("Наименование");
                                    
                                    Пока РезультатВыборки.Следующий() Цикл
                                        НоваяСтрока = Таблица1.Добавить();
                                        НоваяСтрока.Наименование = РезультатВыборки.Наименование;
                                    КонецЦикла;
                                    
                                КонецЕсли;
9 JIeoIIoJIbD
 
26.08.13
16:34
НоменклатурнаяЦеноваяГруппа этот элемент включает номенклатуру, номенклатурныеГруппы, ЦеновыеГруппы
10 Allexe
 
26.08.13
16:37
ВЫБРАТЬ
    Пользователи.Ссылка
ПОМЕСТИТЬ Группы
ИЗ
    Справочник.Пользователи КАК Пользователи
ГДЕ
    Пользователи.ЭтоГруппа
    И Пользователи.Наименование ПОДОБНО &Наименование
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Пользователи.Ссылка,
    Пользователи.Родитель
ИЗ
    Группы КАК Группы
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
        ПО Пользователи.Родитель = Группы.Ссылка
ГДЕ
    НЕ Пользователи.ЭтоГруппа
11 Allexe
 
26.08.13
16:40
В первом запросе получаешь список групп помещаешь во Временную таблицу с названием "Группы".
Во втором  запросе выбираешь всю номенклатуру с условием, что НЕ Номенклатура.ЭтоГруппа и делаешь связь с временной таблицей по условию
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        ПО Номенклатура.Родитель = Группы.Ссылка
12 Allexe
 
26.08.13
16:51
Вернее даже не связь делать а просто условие


ВЫБРАТЬ
    Пользователи.Ссылка,
    Пользователи.Родитель
ИЗ
    Группы КАК Группы,
    Справочник.Пользователи КАК Пользователи
ГДЕ
    НЕ Пользователи.ЭтоГруппа
    И Пользователи.Родитель В (Группы.Ссылка)
13 Allexe
 
26.08.13
16:51
Номенклатура.Родитель в (ВременнаяТаблица)
14 JIeoIIoJIbD
 
26.08.13
17:06
Спасибо Добрый Человек !
15 Абыр
 
26.08.13
17:11
(0) читать про ССЫЛКА в запросе
16 JIeoIIoJIbD
 
26.08.13
17:36
читаемс =)ибо не получается ((
17 Allexe
 
26.08.13
17:48
(16) Конструктором выбирай не наименование, а ссылку
18 JIeoIIoJIbD
 
27.08.13
11:27
Доброго утра всем

у меня непонимание следующего характера:
Номенклатура.Родитель в (ВременнаяТаблица)
"Временная таблица" что тут должно быть? "&Группы" ?
19 JIeoIIoJIbD
 
27.08.13
12:21
ВЫБРАТЬ
    ТабЧасть.НоменклатурнаяЦеноваяГруппа.Ссылка
ПОМЕСТИТЬ Группы
ИЗ
    Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК ТабЧасть
ГДЕ
    ТабЧасть.НоменклатурнаяЦеноваяГруппа.ЭтоГруппа
;

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



Ругается на "И (Номенклатура.Родитель В(Группы))" поле "Группы" не найдено
20 JIeoIIoJIbD
 
27.08.13
14:47
ВСЕМ СПАСИБО ЧУВАКИ !!!! ЗАРАБОТАЛО !!!!


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

                                Если НЕ Запрос.Выполнить().Пустой() Тогда
                                    РезультатВыборки = Запрос.Выполнить().Выбрать();
                                
                                    Таблица1 = Новый ТаблицаЗначений;
                                    Таблица1.Колонки.Добавить("Наименование");
                                    
                                    Пока РезультатВыборки.Следующий() Цикл
                                        НоваяСтрока = Таблица1.Добавить();
                                        НоваяСтрока.Наименование = РезультатВыборки.Ссылка.Наименование;
                                    КонецЦикла;
                                    
                                КонецЕсли;
21 JIeoIIoJIbD
 
28.08.13
12:28
Привет Всем , продолжение темы )) , как теперь полученный списо номенклатуры сравнить со списком в Заказе Покупателя и вывести совпадающие позиции ? подскажите пожалуйста =)

Делаю так, вываливается список, вроде бы правильный , но позиции повторяются по несколько раз , как быть ?


ВЫБРАТЬ
    ТабЧасть.НоменклатурнаяЦеноваяГруппа.Ссылка КАК Ссылка
ПОМЕСТИТЬ Группы
ИЗ
    Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК ТабЧасть
ГДЕ
    ТабЧасть.НоменклатурнаяЦеноваяГруппа.ЭтоГруппа
    И ТабЧасть.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
    И ТабЧасть.Ссылка.Контрагент = &Контрагент
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Номенклатура.Ссылка,
    Номенклатура.Родитель
ПОМЕСТИТЬ Номенклатура
ИЗ
    Группы КАК Группы,
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    (НЕ Номенклатура.ЭтоГруппа)
    И Номенклатура.Родитель В
            (ВЫБРАТЬ
                Т.Ссылка
            ИЗ
                Группы КАК Т)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗаказыПокупателейОстатки.ДоговорКонтрагента.Владелец,
    ЗаказыПокупателейОстатки.ЗаказПокупателя,
    ЗаказыПокупателейОстатки.ЗаказПокупателя.Дата,
    ЗаказПокупателяТовары.Номенклатура
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки,
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
    ЗаказыПокупателейОстатки.ДоговорКонтрагента.Владелец = &Контрагент
    И ЗаказыПокупателейОстатки.ЗаказПокупателя.Дата > &ДатаНач
    И ЗаказПокупателяТовары.Номенклатура В
            (ВЫБРАТЬ
                Н.Ссылка
            ИЗ
                Номенклатура КАК Н)
22 Wobland
 
28.08.13
12:30
(21) соединяй внутренне, не читал
23 Odavid
 
28.08.13
12:48
(0) поди, сертификат специалиста имеешь?
24 JIeoIIoJIbD
 
28.08.13
12:51
Решено - ВЫБРАТЬ РАЗЛИЧНЫЕ
25 JIeoIIoJIbD
 
28.08.13
12:53
(23) прозвучали нотки сарказма ? , хотелось бы , но нету
26 Odavid
 
28.08.13
12:54
(24)>>как теперь полученный списо номенклатуры сравнить со списком в Заказе Покупателя и вывести совпадающие позиции ?
>>.. но позиции повторяются по несколько раз
>>Решено - ВЫБРАТЬ РАЗЛИЧНЫЕ
- точно специалист с сертификатом.
Про СГРУППИРОВАТЬ не сказали на курсах? Или урок пропустили? ))
27 JIeoIIoJIbD
 
28.08.13
13:10
(26) я еще раз говорю я ни на одни курсы не ходил , к критике отношусь лояльно, поэтому если есть замечания , пожалуйста поподробнее
28 JIeoIIoJIbD
 
28.08.13
18:03
итак, в продолжение темы ))) последний вариант запроса не работает, когда в документе нет группы, а присутствует только номенклатура, гениальные мыслители, помогите пожалуйста, ато эта тема медленно , но верно превращается в монолог ))
29 Allexe
 
28.08.13
18:59
(28) Попробуй заменить
И ЗаказПокупателяТовары.Номенклатура В
На
И ЗаказПокупателяТовары.Номенклатура В ИЕРАРХИИ
30 JIeoIIoJIbD
 
30.08.13
10:00
"ЗаказПокупателяТовары.Номенклатура В ИЕРАРХИИ" ругается , говорит ИЕРАРХИИ<<?>>
31 Wobland
 
30.08.13
10:01
(30) интересно, почему?
32 JIeoIIoJIbD
 
30.08.13
10:08
да вот же , с чего бы это ?
33 Wobland
 
30.08.13
10:14
(32) мм.. а если попробовать понять, что оно говорит? должно помочь
34 Allexe
 
30.08.13
12:39
(30) В смысле так сделать

И ЗаказПокупателяТовары.Номенклатура В ИЕРАРХИИ
            (ВЫБРАТЬ
                Н.Ссылка
            ИЗ
                Номенклатура КАК Н)
35 JIeoIIoJIbD
 
12.09.13
09:57
Привет Всем участвующим =) подскажите как можно ускорить работу запроса ? это продолжение граблей вышеописанных )

    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Ссылка
                   |ПОМЕСТИТЬ Номенклатура
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Ссылка В ИЕРАРХИИ
                   |            (ВЫБРАТЬ
                   |                УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа
                   |            ИЗ
                   |                Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы
                   |            ГДЕ
                   |                УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка = &ДокПроверки)
                   |    И Номенклатура.ЭтоГруппа = ЛОЖЬ
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    Номенклатура.Ссылка
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.НоменклатурнаяГруппа В
                   |            (ВЫБРАТЬ
                   |                УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа
                   |            ИЗ
                   |                Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы
                   |            ГДЕ
                   |                УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка = &ДокПроверки)
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    СчетНаОплатуПокупателюТовары.Ссылка КАК СчетНаОплату,
                   |    СчетНаОплатуПокупателюТовары.Номенклатура
                   |ИЗ
                   |    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары
                   |ГДЕ
                   |    СчетНаОплатуПокупателюТовары.Номенклатура В
                   |            (ВЫБРАТЬ
                   |                РегНакНом.Ссылка
                   |            ИЗ
                   |                Номенклатура КАК РегНакНом)"
                       ;
AdBlock убивает бесплатный контент. 1Сергей