Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Перебор Запросом Документов и табличной части в нем          
progr33 Подменю пользователя
сообщение 18.04.14, 12:51
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!Подскажите как организовать в запросе с перебором документов обход табличной части этого документа
Это просто перебор документов :

#Область Запрос

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

    Запрос.УстановитьПараметр("Организация", Организация);

    РезультатЗапроса = Запрос.Выполнить();
    
    #КонецОбласти


Подскажите пожалуйста, что необходимо для перебора табличной части ЗаказДистрибьютора?.Заранее спасибо!!!

Vofka Подменю пользователя
сообщение 18.04.14, 13:10
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Надо сделать запрос к табличной части:
|ВЫБРАТЬ
|     *
|ИЗ
|     Документ.ЗаказПоставщику.ЗаказДистрибьютора КАК ТабличнаяЧасть
|ГДЕ
|     ТабличнаяЧасть.Ссылка.Организация = &Организация
|     И ТабличнаяЧасть.Ссылка.Проведен = ИСТИНА

Спасибо сказали: inuser, progr33,

Petre Подменю пользователя
сообщение 18.04.14, 13:47
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

"Перебор" - это берем коллекцию и обходим элементы. Что значит "организовать в запросе с перебором документов обход табличной части этого документа"?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

progr33 Подменю пользователя
сообщение 18.04.14, 13:47
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 0 раз
Рейтинг: 0

Сделал так

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

    Запрос.УстановитьПараметр("Организация", Объект.Дистрибьютор);



Теперь выгружаю в помещенную на форму табличную часть
Объект.Документы.Загрузить(РезультатЗапроса.Выгрузить());


Заполняет к сожалению только колонку ссылка , а до этого выгружало все


    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
          
Сообщить(ВыборкаДетальныеЗаписи..Контрагент);  -  ошибка не находит контрагента

    КонецЦикла;



Petre Подменю пользователя
сообщение 18.04.14, 13:51
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Цитата(progr33 @ 18.04.14, 14:47) *
Заполняет к сожалению только колонку ссылка , а до этого выгружало все

Имена свойств должны совпадать. Типы одноименных свойств не должны конфликтовать.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

progr33 Подменю пользователя
сообщение 18.04.14, 14:10
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Petre @ 18.04.14, 13:51) *
Имена свойств должны совпадать. Типы одноименных свойств не должны конфликтовать.

Имена совпадают

Оказывается нужно было в запросе еще раз указать поля

|   ЗаказПоставщикуЗаказДистрибьютора.Ссылка.Номер,
|   ЗаказПоставщикуЗаказДистрибьютора.Ссылка.Дата,
|   ЗаказПоставщикуЗаказДистрибьютора.Ссылка.Контрагент,
|   ЗаказПоставщикуЗаказДистрибьютора.Ссылка.Организация,
|   ЗаказПоставщикуЗаказДистрибьютора.Ссылка.СуммаДокумента,

Petre Подменю пользователя
сообщение 18.04.14, 15:15
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Почему еще раз. Они ведь вообще были не указаны.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

progr33 Подменю пользователя
сообщение 18.04.14, 15:50
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Petre @ 18.04.14, 15:15) *
Почему еще раз. Они ведь вообще были не указаны.

Думал вот от сюда берутся

        "ВЫБРАТЬ
        |    ЗаказПоставщику.Ссылка,
        |    ЗаказПоставщику.Номер КАК Номер,
        |    ЗаказПоставщику.Дата,
        |    ЗаказПоставщику.Проведен,
        |    ЗаказПоставщику.Контрагент КАК Контрагент,
        |    ЗаказПоставщику.Организация,
        |    ЗаказПоставщику.СуммаДокумента


сейчас в целом запрос выглядит таким образом :

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

    Запрос.УстановитьПараметр("Организация", Объект.Дистрибьютор);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Пока ВыборкаНоменклатура.Следующий() Цикл
        Сообщить("1");
        ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Сообщить("2");
        КонецЦикла;
    КонецЦикла;



В окне выводит
1
2
1
2
1
2
1
2
1
2
1

Хотя в документах не по одной строке.Как сделать, что бы была такая картина

док 1
ТМЦ1
ТМЦ2

док2
ТМЦ1
ТМЦ2
ТМЦ3

док3
ТМЦ1






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

    Запрос.УстановитьПараметр("Организация", Объект.Дистрибьютор);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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


Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 21:34
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!