Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
19 Дек 2018, 12:26
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Поспособствуйте найти ошибку в цикле please  (Прочитано 2797 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн proofet

  • **
  • Сообщений: 66
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Ученик 1С
В табличный документ выводится список номенклатуры два раза...вначале (здесь все ОК) вся номенклатура подряд....И далее эта же номенклатура выводится но уже в алфавитном порядке, ...всё выполняется как мне нужно, только вот в последнем цикле  должна заполняться параметр номенклатура в макете:
  	Пока ДетальнаяВыборка.Следующий() Цикл 
АПереченьНоменклатуры.Параметры.Заполнить(ДетальнаяВыборка);

АПереченьНоменклатуры.Параметры.Номенклатура = ДетальнаяВыборка.Номенклатура;
    ТабДок.Вывести(АПереченьНоменклатуры);

КонецЦикла;
   Но этого не происходит...,ЧТО СДЕЛАЛ НЕ ТАК В НЁМ ?  :mellow:
Процедура СформироватьОтчетНажатие(Элемент)
    НачалоПериода = ЭлементыФормы.ДатаНачала;
КонецПериода = ЭлементыФормы.ДатаОкончания;
Макет1 = Отчеты.ОтчетПоКассеВМакете.ПолучитьМакет("Макет1");

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

Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода.Значение);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода.Значение);


ТабДок = ЭлементыФормы.ПереченьНоменклатуры;
                     
//Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбщееКолВо = Выборка.Количество();
ОбластьЗаголовок = Макет1.ПолучитьОбласть("Заголовок");
ОбластьПереченьНоменклатурыШапка = Макет1.ПолучитьОбласть("ПереченьНоменклатурыШапка");
ОбластьПереченьНоменклатуры = Макет1.ПолучитьОбласть("ПереченьНоменклатуры");
АПереченьНоменклатуры = Макет1.ПолучитьОбласть("АПереченьНоменклатуры");
АПереченьНоменклатурыШапка = Макет1.ПолучитьОбласть("АПереченьНоменклатурыШапка");
АВсего = Макет1.ПолучитьОбласть("АВсего");
ОбластьБуква = Макет1.ПолучитьОбласть("ОбластьБуква");
ОбластьИтог = Макет1.ПолучитьОбласть("Всего");
ТабДок.Очистить();
   
ВставлятьРазделительСтраниц = Ложь;

СуммаНачальныйОстаток = 0;
СуммаОборот = 0;
СуммаКонечныйОстаток = 0;

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);

Для Индекс = 1 По ОбщееКолВо  Цикл
Выборка.Следующий();
           
ОбластьПереченьНоменклатуры.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьПереченьНоменклатуры, Выборка.Уровень());

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




ОбластьИтог.Параметры.ВсегоНачальныйОстаток = СуммаНачальныйОстаток;
ОбластьИтог.Параметры.ВсегоОборот = СуммаОборот;
        ОбластьИтог.Параметры.ВсегоКонечныйОстаток = СуммаКонечныйОстаток;

ТабДок.Вывести(ОбластьИтог);

ВставлятьРазделительСтраниц = Истина;

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

            Пока ДетальнаяВыборка.Следующий() Цикл
АПереченьНоменклатуры.Параметры.Заполнить(ДетальнаяВыборка);

АПереченьНоменклатуры.Параметры.Номенклатура = ДетальнаяВыборка.Номенклатура;
    ТабДок.Вывести(АПереченьНоменклатуры);

КонецЦикла;

         

КонецЦикла;

   

КонецПроцедуры


Оффлайн proofet

  • **
  • Сообщений: 66
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Ученик 1С
вопрос понятен ? пояснить может быть еще какие то моменты ? или выгрузить dt

Оффлайн proofet

  • **
  • Сообщений: 66
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Ученик 1С



Я зарекся читать электронные сканы,поэтому есть в бумажном. Найти ее в электронном не проблема.http://forum-1c.ru/index.php?topic=1444.msg23894#msg23894 Стр. 135
Ты имеешь ввиду Радченко, пособие разработчика по 8.2 ?...у меня есть в бумажном оно. Не совсем понятно  что ты имеешь ввиду...я читал 135 страницу, но так и не могу понять в чем ошибка..

Оффлайн proofet

  • **
  • Сообщений: 66
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Ученик 1С
ОтчетПоКассеВМакете

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Но в запросе же нет поля Номенклатура :) Поэтому и не заполняет.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1102
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
"Этот ответ я писал совсем в другую тему. Да видимо чего-то напутал. Если хочешь выложи dt"

Я тему разделил, а ты в это время сообщение писал )
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн proofet

  • **
  • Сообщений: 66
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Ученик 1С
Но в запросе же нет поля Номенклатура :) Поэтому и не заполняет.
СпрНоменклатура.Наименование синоним Номенклатура давал....просто при копировании видимо не всё поле выделил. В общем не в этом проблема....платформа вообще не выдает ошибок ни на запрос не на код вообще.....Что то еще может быть?

Оффлайн proofet

  • **
  • Сообщений: 66
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Ученик 1С
Процедура СформироватьОтчетНажатие(Элемент)
    НачалоПериода = ЭлементыФормы.ДатаНачала;
КонецПериода = ЭлементыФормы.ДатаОкончания;
Макет1 = Отчеты.ОтчетПоКассеВМакете.ПолучитьМакет("Макет1");

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

Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода.Значение);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода.Значение);


ТабДок = ЭлементыФормы.ПереченьНоменклатуры;
                     
//Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбщееКолВо = Выборка.Количество();
ОбластьЗаголовок = Макет1.ПолучитьОбласть("Заголовок");
ОбластьПереченьНоменклатурыШапка = Макет1.ПолучитьОбласть("ПереченьНоменклатурыШапка");
ОбластьПереченьНоменклатуры = Макет1.ПолучитьОбласть("ПереченьНоменклатуры");
АПереченьНоменклатуры = Макет1.ПолучитьОбласть("АПереченьНоменклатуры");
АПереченьНоменклатурыШапка = Макет1.ПолучитьОбласть("АПереченьНоменклатурыШапка");
АВсего = Макет1.ПолучитьОбласть("АВсего");
АЗаголовок = Макет1.ПолучитьОбласть("АЗаголовок");
ОбластьБуква = Макет1.ПолучитьОбласть("ОбластьБуква");
ОбластьИтог = Макет1.ПолучитьОбласть("Всего");
ТабДок.Очистить();
   
ВставлятьРазделительСтраниц = Ложь;

СуммаНачальныйОстаток = 0;
СуммаОборот = 0;
СуммаКонечныйОстаток = 0;

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);

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




ОбластьИтог.Параметры.ВсегоНачальныйОстаток = СуммаНачальныйОстаток;
ОбластьИтог.Параметры.ВсегоОборот = СуммаОборот;
        ОбластьИтог.Параметры.ВсегоКонечныйОстаток = СуммаКонечныйОстаток;

ТабДок.Вывести(ОбластьИтог);

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

ОбластьБуква.Параметры.Буква = Выборка.Буква;
ТабДок.Вывести(ОбластьБуква);
ТабДок.Вывести(АПереченьНоменклатурыШапка);
//ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ДетальнаяВыборка = Выборка.Выбрать();
         
            Пока ДетальнаяВыборка.Следующий() Цикл


АПереченьНоменклатуры.Параметры.Номенклатура = ДетальнаяВыборка.Номенклатура;
АПереченьНоменклатуры.Параметры.НачальныйОстаток = ДетальнаяВыборка.НачальныйОстаток;
АПереченьНоменклатуры.Параметры.Оборот = ДетальнаяВыборка.Оборот;
АПереченьНоменклатуры.Параметры.КонечныйОстаток = ДетальнаяВыборка.КонечныйОстаток;
//АПерНом = ДетальнаяВыборка.Наименование;
ТабДок.Вывести(АПереченьНоменклатуры);
КонецЦикла;


КонецЦикла;



КонецПроцедуры

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Поставь точку останова на строку заполнения номенклатуры:
АПереченьНоменклатуры.Параметры.Номенклатура = ДетальнаяВыборка.Номенклатура;
И посмотри, какое принимает значение
ДетальнаяВыборка.Номенклатура
и сама ДетальнаяВыборка - какие есть колонки, какие заполнены и т.д.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
58 Сообщений
wise wise
42 Сообщений
alex0402
36 Сообщений
LexaK
32 Сообщений
alexandr_ll
31 Сообщений
AIFrame AIFrame
28 Сообщений
byte777
26 Сообщений
antoneus
25 Сообщений
happynattion
22 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
21 Сообщений

* Кто онлайн

  • Точка Гостей: 708
  • Точка Скрытых: 0
  • Точка Пользователей: 10
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal