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

Хранилище

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

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



> цикл в печатной форме , цикл всегда ЛОЖЬ. конф Общепит 3.0.43.101 версия платформы 8.3.9.1850          
dadka Подменю пользователя
сообщение 21.03.17, 7:57
Сообщение #1

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

доброго времени суток. имеется конфигурация Общепит
пишу внешнюю печ.форму для документа Выпуск продукции ОП6
и тут затык - не могу понять, что сделал не так в цикле,

Код
Ном = 0;
    
    Шапка = ВыборкаПеремещение.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока Шапка.Следующий() Цикл
                                                
        Ном = Ном + 1;                                                    
        ОбластьСтрока.Параметры.Ном = Ном;
        ОбластьСтрока.Параметры.Номенклатура = ВыборкаДетальныеЗаписи.Товар;
        ОбластьСтрока.Параметры.Код = ТоварКод;
        ОбластьСтрока.Параметры.Единица = ТоварЕдИзм;
        ОбластьСтрока.Параметры.КодЕдиницы = ТоварЕдИзмКод;
        ОбластьСтрока.Параметры.ИтогоОтпущено = Количество;
        ОбластьСтрока.Параметры.ЦенаУчетная = Цена;
        ОбластьСтрока.Параметры.СуммаУчетная = Сумма;
        ТабличныйДокумент.Вывести(ОбластьСтрока);
    КонецЦикла;


где Шапка.Следующий() всегда = ЛОЖЬ

подскажите, что делаю не так?

Вот весь код
ВалютаПечати = Константы.ВалютаРегламентированногоУчета.Получить();
    
    
    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ОП6");
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб            = Истина;
    ТабличныйДокумент.ПолеСверху            = 0;
    ТабличныйДокумент.ПолеСлева                = 0;
    ТабличныйДокумент.ПолеСнизу                = 0;
    ТабличныйДокумент.ПолеСправа            = 0;
    ТабличныйДокумент.ОриентацияСтраницы    = ОриентацияСтраницы.Ландшафт;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОП6";                            
    
    СисИнфо = Новый СистемнаяИнформация;
    Если ПустаяСтрока(СисИнфо.ИнформацияПрограммыПросмотра) Тогда
        ТабличныйДокумент.ПолеСлева          = 0;
    Иначе
        ТабличныйДокумент.ПолеСлева          = 10;
    КонецЕсли;

          
//    Запрос.УстановитьПараметр("МассивОбъектов", СсылкаНаОбъект);
//    Запрос.УстановитьПараметр("ДатаДок", СсылкаНаОбъект.Дата);
//    Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов", Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить());
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ОбщепитВыпускПродукции.Ссылка КАК ВыпускПродукции,
        |    ПеремещениеТоваров.Ссылка КАК Перемещение,
        |    ПеремещениеТоваров.СкладОтправитель,
        |    ПеремещениеТоваров.СкладПолучатель
        |ПОМЕСТИТЬ втДокументы
        |ИЗ
        |    Документ.ОбщепитВыпускПродукции КАК ОбщепитВыпускПродукции
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
        |        ПО ОбщепитВыпускПродукции.Ссылка = ПеремещениеТоваров.ДокументОснование
        |ГДЕ
        |    ОбщепитВыпускПродукции.Ссылка В(&МассивОбъектов)
        |    И ОбщепитВыпускПродукции.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ОбщепитВидыОперацийВыпускПродукции.ВыпускПродукции)
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    ОбщепитВыпускПродукции.Ссылка,
        |    ОбщепитВыпускПродукции.Ссылка,
        |    ОбщепитВыпускПродукции.Склад,
        |    ОбщепитВыпускПродукции.СкладПолучатель
        |ИЗ
        |    Документ.ОбщепитВыпускПродукции КАК ОбщепитВыпускПродукции
        |ГДЕ
        |    ОбщепитВыпускПродукции.Ссылка В(&МассивОбъектов)
        |    И ОбщепитВыпускПродукции.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ОбщепитВидыОперацийВыпускПродукции.ВыпускПродукцииСперемещением)
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    втДокументы.ВыпускПродукции,
        |    втДокументы.Перемещение,
        |    втДокументы.СкладПолучатель,
        |    втДокументы.СкладОтправитель,
        |    ХозрасчетныйОбороты.Субконто1.Код КАК ТоварКод,
        |    ХозрасчетныйОбороты.Субконто1 КАК Товар,
        |    ХозрасчетныйОбороты.Субконто1.ЕдиницаИзмерения КАК ТоварЕдИзм,
        |    ХозрасчетныйОбороты.Субконто1.ЕдиницаИзмерения.Код КАК ТоварЕдИзмКод,
        |    ХозрасчетныйОбороты.СуммаОборотДт КАК Сумма,
        |    ХозрасчетныйОбороты.КоличествоОборотДт КАК Количество
        |ПОМЕСТИТЬ втРезультат
        |ИЗ
        |    втДокументы КАК втДокументы
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(
        |                &ДатаДок,
        |                ,
        |                Запись,
        |                Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ГотоваяПродукция))
        |                    ИЛИ Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары)),
        |                ,
        |                ,
        |                ,
        |                ) КАК ХозрасчетныйОбороты
        |        ПО втДокументы.СкладПолучатель = ХозрасчетныйОбороты.Субконто2
        |            И втДокументы.Перемещение = ХозрасчетныйОбороты.Регистратор
        |ГДЕ
        |    ХозрасчетныйОбороты.Регистратор В
        |            (ВЫБРАТЬ
        |                втДокументы.Перемещение
        |            ИЗ
        |                втДокументы КАК втДокументы)
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    втРезультат.Перемещение КАК Перемещение,
        |    втРезультат.СкладПолучатель,
        |    втРезультат.СкладОтправитель,
        |    втРезультат.ТоварЕдИзм,
        |    втРезультат.Товар,
        |    втРезультат.ТоварЕдИзмКод,
        |    втРезультат.ТоварКод,
        |    втРезультат.Сумма,
        |    втРезультат.Количество,
        |    втРезультат.Сумма / втРезультат.Количество КАК Цена
        |ИЗ
        |    втРезультат КАК втРезультат
        |ИТОГИ ПО
        |    Перемещение";
    
        
    Запрос.УстановитьПараметр("МассивОбъектов", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("ДатаДок", СсылкаНаОбъект.Дата);
        
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаПеремещение = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаПеремещение.Следующий() Цикл
        
        Перемещение = ВыборкаПеремещение.Перемещение;
    
        ВыборкаДетальныеЗаписи = ВыборкаПеремещение.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            
            СкладПолучатель = ВыборкаДетальныеЗаписи.СкладПолучатель;
            СкладОтправитель = ВыборкаДетальныеЗаписи.СкладОтправитель;
            ТоварЕдИзм = ВыборкаДетальныеЗаписи.ТоварЕдИзм;
            Товар = ВыборкаДетальныеЗаписи.Товар;
            ТоварЕдИзмКод = ВыборкаДетальныеЗаписи.ТоварЕдИзмКод;
            ТоварКод = ВыборкаДетальныеЗаписи.ТоварКод;
            Сумма = ВыборкаДетальныеЗаписи.Сумма;
            Количество = ВыборкаДетальныеЗаписи.Количество;
            Цена = ВыборкаДетальныеЗаписи.Цена;
            
        КонецЦикла;
    КонецЦикла;
    
        
    
    ОбластьЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
    СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СсылкаНаОбъект.Организация, СсылкаНаОбъект.Дата);
    ОбластьЗаголовокТаблицы.Параметры.ПредставлениеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации);
    ОбластьЗаголовокТаблицы.Параметры.СкладОтправитель = СкладОтправитель;
    ОбластьЗаголовокТаблицы.Параметры.СкладПолучатель = СкладПолучатель;
    ОбластьЗаголовокТаблицы.Параметры.КодПоОКПО = СведенияОбОрганизации.КодПоОКПО;
    ОбластьЗаголовокТаблицы.Параметры.НомерДок = СсылкаНаОбъект.Номер;
    ОбластьЗаголовокТаблицы.Параметры.ДатаДок = Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yyyy");
    ОбластьЗаголовокТаблицы.Параметры.Должность = "Руководитель службы питания";
    ОбластьЗаголовокТаблицы.Параметры.Руководитель = "Мостовой Ю.А.";
    ОбластьЗаголовокТаблицы.Параметры.Бухгалтер = "Шайда Л.А.";
    ТабличныйДокумент.Вывести(ОбластьЗаголовокТаблицы);
    
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
    
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    
    Ном = 0;
    
    Шапка = ВыборкаПеремещение.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока Шапка.Следующий() Цикл
                                                
        Ном = Ном + 1;                                                    
        ОбластьСтрока.Параметры.Ном = Ном;
        ОбластьСтрока.Параметры.Номенклатура = ВыборкаДетальныеЗаписи.Товар;
        ОбластьСтрока.Параметры.Код = ТоварКод;
        ОбластьСтрока.Параметры.Единица = ТоварЕдИзм;
        ОбластьСтрока.Параметры.КодЕдиницы = ТоварЕдИзмКод;
        ОбластьСтрока.Параметры.ИтогоОтпущено = Количество;
        ОбластьСтрока.Параметры.ЦенаУчетная = Цена;
        ОбластьСтрока.Параметры.СуммаУчетная = Сумма;
        ТабличныйДокумент.Вывести(ОбластьСтрока);
    КонецЦикла;
    
    Возврат ТабличныйДокумент;



 ! 

Правила: №9. Есть специальный тег для публикации кода.
 


Сообщение отредактировал Vofka - 21.03.17, 10:26

Bernet Подменю пользователя
сообщение 21.03.17, 9:28
Сообщение #2

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

1. Пожалуйста, редактируйте ваши сообщения, листинг кода можно было выделить специальным тегом...
2. Раз вы получаете в этой строке
Цитата
Шапка.Следующий()=Ложь
всегда, это говорит о том, что либо неправильно составлен запрос, либо нет подходящих под условия данных. В данном случае думаю дело в параметре "МассивОбъектов", в запросе ожидается массив, а вы передаете ссылку, запихните её в массив и попробуйте ещё раз.
МассивСсылок = Новый Массив;
МассивСсылок.Добавить(СсылкаНаОбъект);
Запрос.УстановитьПараметр("МассивОбъектов", СсылкаНаОбъект);

и ещё не увидел где у вас вообще определяется переменная "СсылкаНаОбъект", проверьте в переменной значение есть или нет. По приведенному коду вижу что нет, разве что это реквизит объекта и он где-то на форме заполнен.


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

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

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

У вас 2 раза в коде встречается ВыборкаПеремещение.Выбрать():

ВыборкаДетальныеЗаписи = ВыборкаПеремещение.Выбрать();


и

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


В первый раз выборка обошлась, поэтому во второй раз уже обходить нечего. Нафига у вас это 2 раза делается?

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


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

 

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