Делаю отчет,Надо вывести у каждого вариантаИсполнения свой штрихкод,вот вывожу.
ВариантИсполнения и едизм находит,а шк-неопределено. В чем проблема? Что не так?
Помогите пожалуйста...
ВариантИсполнения и едизм находит,а шк-неопределено. В чем проблема? Что не так?
Помогите пожалуйста...
Пока Выборка_ТипВИКатегории.Следующий() Цикл
Выборка_ВариантИсполнения_Категория = Выборка_ТипВИКатегории.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ВариантИсполнения_Категория");
Пока Выборка_ВариантИсполнения_Категория.Следующий() Цикл
_Дополнительно = Новый Структура;
_Дополнительно.Вставить("ВариантИсполнения",Выборка_ВариантИсполнения_Категория.ВариантИсполнения_Категория);
_Дополнительно.Вставить("ЕдИзм",Выборка_ВариантИсполнения_Категория.Номенклатура.БазоваяЕдИзм);
шк = глСформироватьВнутреннийШтрихкод(Выборка_ВариантИсполнения_Категория,_Дополнительно);
_Дополнительно.Вставить("шк",шк);
ОбластьВариантИсполнения_КатегорияТело.Параметры.Заполнить(_Дополнительно);
ТабличныйДокумент.Вывести(ОбластьВариантИсполнения_КатегорияТело);
// ОбластьСтрока.Параметры.ВариантИсполнения = "";
// ОбластьСтрока.Параметры._ШК = "" ;
Выборка_ЕдИзм = Выборка_ВариантИсполнения_Категория.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ЕдИзм");
Пока Выборка_ЕдИзм.Следующий() Цикл
Область_Детали_Тело.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_ЕдИзм.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Присоединить(Область_Детали_ЕдИзм);
Выборка_ТипыЦен = Выборка_ЕдИзм.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТипЦен", "Все");
Пока Выборка_ТипыЦен.Следующий() Цикл
Если глПустоеЗначение(Выборка_ТипыЦен.ТипЦен) Тогда
Продолжить;
КонецЕсли;
Область_Детали_ТипЦен.Параметры.Заполнить(Выборка_ТипыЦен);
ТабличныйДокумент.Присоединить(Область_Детали_ТипЦен);
КонецЦикла;
КонецЦикла;
ТабличныйДокумент.Присоединить(Область_Детали_Итого);
КонецЦикла;
КонецЦикла;
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
блин,нашла ошибку,но теперь вот такая ерунда
Группировки сбились и задваивает вариант исполнения
Группировки сбились и задваивает вариант исполнения
Выборка_ТипВИКатегории = Выборка_Номенклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТипВИКатегории");
Пока Выборка_ТипВИКатегории.Следующий() Цикл
Выборка_ВариантИсполнения_Категория = Выборка_ТипВИКатегории.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ВариантИсполнения_Категория");
Пока Выборка_ВариантИсполнения_Категория.Следующий() Цикл
_Дополнительно = Новый Структура;
_Дополнительно.Вставить("ВариантИсполнения",Выборка_ВариантИсполнения_Категория.ВариантИсполнения_Категория);
_Дополнительно.Вставить("ЕдИзм",Выборка_ВариантИсполнения_Категория.Номенклатура.БазоваяЕдИзм);
шк = глСформироватьВнутреннийШтрихкод(Выборка_ВариантИсполнения_Категория.Номенклатура,_Дополнительно);
_Дополнительно.Вставить("шк",шк);
ОбластьВариантИсполнения_КатегорияТело.Параметры.Заполнить(_Дополнительно);
ТабличныйДокумент.Вывести(ОбластьВариантИсполнения_КатегорияТело);
ОбластьВариантИсполнения_КатегорияТело.Параметры.ВариантИсполнения_Категория = "";
ОбластьВариантИсполнения_КатегорияТело.Параметры.шк = "" ;
Выборка_ЕдИзм = Выборка_ВариантИсполнения_Категория.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ЕдИзм");
Пока Выборка_ЕдИзм.Следующий() Цикл
Область_Детали_Тело.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_ЕдИзм.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Присоединить(Область_Детали_ЕдИзм);
Выборка_ТипыЦен = Выборка_ЕдИзм.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТипЦен", "Все");
Пока Выборка_ТипыЦен.Следующий() Цикл
Если глПустоеЗначение(Выборка_ТипыЦен.ТипЦен) Тогда
Продолжить;
КонецЕсли;
Область_Детали_ТипЦен.Параметры.Заполнить(Выборка_ТипыЦен);
ТабличныйДокумент.Присоединить(Область_Детали_ТипЦен);
КонецЦикла;
КонецЦикла;
ТабличныйДокумент.Присоединить(Область_Детали_Итого);
КонецЦикла;
КонецЦикла;
ПоказатьПрикрепленные файлы:
(3)
это убрать и все норм
_Дополнительно = Новый Структура;
_Дополнительно.Вставить("ВариантИсполнения",Выборка_ВариантИсполнения_Категория.ВариантИсполнения_Категория);
_Дополнительно.Вставить("ЕдИзм",Выборка_ВариантИсполнения_Категория.Номенклатура.БазоваяЕдИзм);
шк = глСформироватьВнутреннийШтрихкод(Выборка_ВариантИсполнения_Категория.Номенклатура,_Дополнительно);
_Дополнительно.Вставить("шк",шк);
ОбластьВариантИсполнения_КатегорияТело.Параметры.Заполнить(_Дополнительно);
ТабличныйДокумент.Вывести(ОбластьВариантИсполнения_КатегорияТело);
ОбластьВариантИсполнения_КатегорияТело.Параметры.ВариантИсполнения_Категория = "";
ОбластьВариантИсполнения_КатегорияТело.Параметры.шк = "" ;
Показатьэто убрать и все норм
(4) Не поняла по последнему сообщению, вопрос решен?
Если нет - то вывод идет в двух местах:
ТабличныйДокумент.Вывести(ОбластьВариантИсполнения_КатегорияТело);
ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Во всех остальных местах только присоединение. Место положения вывода вроде нормальное, т.е. визуально внутри нужных циклов. Как по мне, если что-то задваивает - копать группировки в запросе.
Если нет - то вывод идет в двух местах:
ТабличныйДокумент.Вывести(ОбластьВариантИсполнения_КатегорияТело);
ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Во всех остальных местах только присоединение. Место положения вывода вроде нормальное, т.е. визуально внутри нужных циклов. Как по мне, если что-то задваивает - копать группировки в запросе.
(5)да я тоже заметила вывод в двух местах,убрала в одном месте
вот что получилось,весь ШК выводит правильно,но вот поля какие то вылезли
Пока Выборка_ТипВИКатегории.Следующий() Цикл
Выборка_ВариантИсполнения_Категория = Выборка_ТипВИКатегории.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ВариантИсполнения_Категория");
Пока Выборка_ВариантИсполнения_Категория.Следующий() Цикл
Выборка_ЕдИзм = Выборка_ВариантИсполнения_Категория.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ЕдИзм");
Пока Выборка_ЕдИзм.Следующий() Цикл
Область_Детали_Тело.Параметры.Заполнить(Выборка_ЕдИзм);
//ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_ЕдИзм.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Присоединить(Область_Детали_ЕдИзм);
Если НЕ глПустоеЗначение(Выборка_ВариантИсполнения_Категория.ВариантИсполнения_Категория) Тогда
_Дополнительно = Новый Структура;
_Дополнительно.Вставить("ВариантИсполнения",Выборка_ЕдИзм.ВариантИсполнения_Категория);
_Дополнительно.Вставить("ЕдИзм",Выборка_ЕдИзм.Номенклатура.БазоваяЕдИзм);
шк = глСформироватьВнутреннийШтрихкод(Выборка_ЕдИзм.Номенклатура,_Дополнительно);
_Дополнительно.Вставить("шк",шк);
Область_Детали_Тело.Параметры.Заполнить(_Дополнительно);
ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_Тело.Параметры.ВариантИсполнения_Категория = "";
Область_Детали_Тело.Параметры.шк = "" ;
КонецЕсли;
Показатьвот что получилось,весь ШК выводит правильно,но вот поля какие то вылезли
Прикрепленные файлы:
(12)
Вот все кроме вывода шапки
Может что заметите
ТабличныйДокумент.НачатьАвтогруппировкуСтрок();
Выборка_Номенклатура = Выборка_Итого.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
Пока Выборка_Номенклатура.Следующий() Цикл
_Уровень = ?(ВыводитьИерархию, Выборка_Номенклатура.Уровень() - 1, 0);
ОбластьНоменклатураГруппаТело.Область(1,1,1,1).Отступ = _Уровень;
ОбластьНоменклатураТело.Область(1,1,1,1).Отступ = _Уровень;
ОбластьВариантИсполнения_КатегорияТело.Область(1,1,1,1).Отступ = _Уровень + 1;
Область_Пустая_ВариантИсполнения_КатегорияТело.Область(1,1,1,1).Отступ = _Уровень;
//Вывод строки номенклатуры
Если Выборка_Номенклатура.Номенклатура.ЭтоГруппа Тогда
//Группу номенклатуры выводим только если она является итогом по группировке (при иерархическом выводе)
//ИЛИ выводится номенклатура, невключаемая в прайс
Если Выборка_Номенклатура.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии
ИЛИ (НЕ ЭлементОтбора_НеВключатьВПрайс = Неопределено
И ЭлементОтбора_НеВключатьВПрайс.Использование
И ЭлементОтбора_НеВключатьВПрайс.Значение = ИСТИНА) Тогда
ОбластьНоменклатураГруппаТело.Параметры.Заполнить(Выборка_Номенклатура);
ТабличныйДокумент.Вывести(ОбластьНоменклатураГруппаТело, _Уровень,,Истина);
ОбластьНоменклатураГруппаЕдИзм.Параметры.Заполнить(Выборка_Номенклатура);
ТабличныйДокумент.Присоединить(ОбластьНоменклатураГруппаЕдИзм);
ВыборкаИтого_ТипыЦен.Сбросить();
Пока ВыборкаИтого_ТипыЦен.Следующий() Цикл
Если глПустоеЗначение(ВыборкаИтого_ТипыЦен.ТипЦен) Тогда
Продолжить;
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьНоменклатураГруппаТипЦен);
КонецЦикла;
ТабличныйДокумент.Присоединить(ОбластьНоменклатураГруппаИтого);
КонецЕсли;
Продолжить;
Иначе
// Строку номенклатуры (при обходе номенклатуры) выводим только
// если по ней указаны цены для категорий или вариантов исполнения
// Иначе тут строку не выводим, а для детальных записей текущей номенклатуры
// указываем область, в которой вместо пустых категорий/вариантов исполнений выводится сама номенклатура
Если Выборка_Номенклатура.ЕстьНепустой_ВариантИсполненияКатегория Тогда
ОбластьНоменклатураТело.Параметры.Заполнить(Выборка_Номенклатура);
ТабличныйДокумент.Вывести(ОбластьНоменклатураТело, _Уровень,,Истина);
ОбластьНоменклатураЕдИзм.Параметры.Заполнить(Выборка_Номенклатура);
ТабличныйДокумент.Присоединить(ОбластьНоменклатураЕдИзм);
ВыборкаИтого_ТипыЦен.Сбросить();
Пока ВыборкаИтого_ТипыЦен.Следующий() Цикл
Если глПустоеЗначение(ВыборкаИтого_ТипыЦен.ТипЦен) Тогда
Продолжить;
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьНоменклатураТипЦен);
КонецЦикла;
ТабличныйДокумент.Присоединить(ОбластьНоменклатураИтого);
Область_Детали_Тело = ОбластьВариантИсполнения_КатегорияТело;
Область_Детали_ЕдИзм = ОбластьВариантИсполнения_КатегорияЕдИзм;
Область_Детали_ТипЦен = ОбластьВариантИсполнения_КатегорияТипЦен;
Область_Детали_Итого = ОбластьВариантИсполнения_КатегорияИтого;
Детали_Уровень = _Уровень;
Иначе
Область_Детали_Тело = Область_Пустая_ВариантИсполнения_КатегорияТело;
Область_Детали_ЕдИзм = Область_Пустая_ВариантИсполнения_КатегорияЕдИзм;
Область_Детали_ТипЦен = Область_Пустая_ВариантИсполнения_КатегорияТипЦен;
Область_Детали_Итого = Область_Пустая_ВариантИсполнения_КатегорияИтого;
Детали_Уровень = _Уровень -1;
КонецЕсли;
КонецЕсли;
//Вывод ВариантаИсполнения/Категории
Выборка_ТипВИКатегории = Выборка_Номенклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТипВИКатегории");
Пока Выборка_ТипВИКатегории.Следующий() Цикл
Выборка_ВариантИсполнения_Категория = Выборка_ТипВИКатегории.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ВариантИсполнения_Категория");
Пока Выборка_ВариантИсполнения_Категория.Следующий() Цикл
Выборка_ЕдИзм = Выборка_ВариантИсполнения_Категория.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ЕдИзм");
Пока Выборка_ЕдИзм.Следующий() Цикл
Область_Детали_Тело.Параметры.Заполнить(Выборка_ЕдИзм);
//ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_ЕдИзм.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Присоединить(Область_Детали_ЕдИзм);
Если НЕ глПустоеЗначение(Выборка_ВариантИсполнения_Категория.ВариантИсполнения_Категория) Тогда
_Дополнительно = Новый Структура;
_Дополнительно.Вставить("ВариантИсполнения",Выборка_ЕдИзм.ВариантИсполнения_Категория);
_Дополнительно.Вставить("ЕдИзм",Выборка_ЕдИзм.Номенклатура.БазоваяЕдИзм);
шк = глСформироватьВнутреннийШтрихкод(Выборка_ЕдИзм.Номенклатура,_Дополнительно);
_Дополнительно.Вставить("шк",шк);
Область_Детали_Тело.Параметры.Заполнить(_Дополнительно);
ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_Тело.Параметры.ВариантИсполнения_Категория = "";
Область_Детали_Тело.Параметры.шк = "" ;
КонецЕсли;
Выборка_ТипыЦен = Выборка_ЕдИзм.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТипЦен", "Все");
Пока Выборка_ТипыЦен.Следующий() Цикл
Если глПустоеЗначение(Выборка_ТипыЦен.ТипЦен) Тогда
Продолжить;
КонецЕсли;
Область_Детали_ТипЦен.Параметры.Заполнить(Выборка_ТипыЦен);
ТабличныйДокумент.Присоединить(Область_Детали_ТипЦен);
КонецЦикла;
ТабличныйДокумент.Присоединить(Область_Детали_Итого);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок ();
ПоказатьВот все кроме вывода шапки
Может что заметите
Прикрепленные файлы:
Область_Детали_Тело.Параметры.Заполнить(Выборка_ЕдИзм);
//ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_ЕдИзм.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Присоединить(Область_Детали_ЕдИзм);
Если правильно, что вторая строка закомментарена, то присоединение идет после
ТабличныйДокумент.Присоединить(ОбластьНоменклатураИтого);
А должна но идее выводится новая строка.
То есть я вижу логику следующую. По итогу по иерархии идет вывод номенклатуры, к нему присоединяются единицы измерения, потом все типы цен с пустыми данными (нет заполнения), потом присоединяется пустая область но группе номенклатуры. Не вижу определения областей:
Область_Детали_ЕдИзм = Область_Пустая_ВариантИсполнения_КатегорияЕдИзм;
Область_Детали_ТипЦен = Область_Пустая_ВариантИсполнения_КатегорияТипЦен;
Область_Детали_Итого = Область_Пустая_ВариантИсполнения_КатегорияИтого;
Потом открывается цикл по Выборка_ВариантИсполнения_Категория, и тут же открывается выборка по едИзм. Причем ничего не выводится, идет присоединение, и только потом заполняется ШК. Внутри цикла по единицам открывается цикл по получению типов цен, они начинают присоединяться сразу после ШК. И внутри цикла по едИзм присоединяется пустая область ДеталиИтого.
//ТабличныйДокумент.Вывести(Область_Детали_Тело, Детали_Уровень + 1);
Область_Детали_ЕдИзм.Параметры.Заполнить(Выборка_ЕдИзм);
ТабличныйДокумент.Присоединить(Область_Детали_ЕдИзм);
Если правильно, что вторая строка закомментарена, то присоединение идет после
ТабличныйДокумент.Присоединить(ОбластьНоменклатураИтого);
А должна но идее выводится новая строка.
То есть я вижу логику следующую. По итогу по иерархии идет вывод номенклатуры, к нему присоединяются единицы измерения, потом все типы цен с пустыми данными (нет заполнения), потом присоединяется пустая область но группе номенклатуры. Не вижу определения областей:
Область_Детали_ЕдИзм = Область_Пустая_ВариантИсполнения_КатегорияЕдИзм;
Область_Детали_ТипЦен = Область_Пустая_ВариантИсполнения_КатегорияТипЦен;
Область_Детали_Итого = Область_Пустая_ВариантИсполнения_КатегорияИтого;
Потом открывается цикл по Выборка_ВариантИсполнения_Категория, и тут же открывается выборка по едИзм. Причем ничего не выводится, идет присоединение, и только потом заполняется ШК. Внутри цикла по единицам открывается цикл по получению типов цен, они начинают присоединяться сразу после ШК. И внутри цикла по едИзм присоединяется пустая область ДеталиИтого.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот