Сделал обработку - каталог картинок с ценами по остаткам товаров, запрос по регистрам цен номенклатуры и остатков, когда формирую по группе в которой есть подгруппы и т.д., необходимо что формировалось все согласно номенклатуры, пробовал сортировку разными способами в запросе конструктором, вообще не получается у меня сортировать весь товар так как он находиться в номенклатуре, вот запрос, если надо , могу и саму обработку выложить
ПостроительОтчетаПрайс.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование КАК Наименование,
| ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка КАК НомСсылка,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ОсновноеИзображение.Хранилище КАК Кар
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ТипЦен = &ТипЦен {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатурыСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, Склад В (&Склады) {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстатки
| ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура ИЕРАРХИЯ";
//ПостроительОтчетаПрайс.Параметры("НулевойОстаток", 0);
ПостроительОтчетаПрайс.ЗаполнитьНастройки();
ПостроительОтчетаПрайс.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
ПостроительОтчетаПрайс.ТекстЗаголовка = "Прайс";
ПолеОтбора = ПостроительОтчетаПрайс.Отбор.Добавить("Номенклатура");
ПолеОтбора.ВидСравнения = ВидСравнения.ВИерархии;
ПолеОтбора = ПостроительОтчетаПрайс.Отбор.Добавить("КоличествоОстаток");
ПолеОтбора.ВидСравнения = ВидСравнения.Больше;
ПолеОтбора.Значение = 0;
ПолеОтбора.Использование = Истина
Сделал вот так, но теперь цену не видит в выборке (((, помогите плз
ПостроительОтчетаПрайс.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
| ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование КАК Наименование,
| ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка КАК НомСсылка,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ОсновноеИзображение.Хранилище КАК Кар
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ТипЦен = &ТипЦен {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатурыСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, Склад В (&Склады) {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстатки
| ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
|ИТОГИ ПО
| Номенклатура ИЕРАРХИЯ
|АВТОУПОРЯДОЧИВАНИЕ";
//ПостроительОтчетаПрайс.Параметры("НулевойОстаток", 0);
ПостроительОтчетаПрайс.ЗаполнитьНастройки();
//ПостроительОтчетаПрайс.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
ПостроительОтчетаПрайс.ТекстЗаголовка = "Прайс";
ПолеОтбора = ПостроительОтчетаПрайс.Отбор.Добавить("Номенклатура");
ПолеОтбора.ВидСравнения = ВидСравнения.ВИерархии;
ПолеОтбора = ПостроительОтчетаПрайс.Отбор.Добавить("КоличествоОстаток");
ПолеОтбора.ВидСравнения = ВидСравнения.Больше;
ПолеОтбора.Значение = 0;
ПолеОтбора.Использование = Истина
.........
Выборка = ПостроительОтчетаПрайс.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() Цикл
....
Рисунок.Текст =Выборка.Цена;
Во-первых, Вы уверены, что в запросе должно быть именно левое соединение?
Во-вторых, раз уж не видит цену, в регистре цен есть незаполненная (нулевая) цена?
Во-первых, если Вам нужны только те товары, по которым есть остатки, тогда нужно правое соединение.
Во-вторых, непонятно, какая именно сортировка Вам нужна.
Что то никак у меня не получается получить цену в выборке (обход по группировкам сделал что б в моем каталоге все шло по порядку согласно иерархии
номенклатуры), помогите плз, как мне сохранить и порядок размещения картинок в каталоге согласно иерархии и получить цену в выборке,вот вест код
Процедура ПрайсИнициализация()
ПостроительОтчетаПрайс.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
| ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование КАК Наименование,
| ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка КАК НомСсылка,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ОсновноеИзображение.Хранилище КАК Кар
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ТипЦен = &ТипЦен {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатурыСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, Склад В (&Склады) {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстатки
| ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
|ИТОГИ ПО
| Номенклатура ИЕРАРХИЯ
|АВТОУПОРЯДОЧИВАНИЕ";
ПостроительОтчетаПрайс.ЗаполнитьНастройки();
//ПостроительОтчетаПрайс.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
ПостроительОтчетаПрайс.ТекстЗаголовка = "Прайс";
ПолеОтбора = ПостроительОтчетаПрайс.Отбор.Добавить("Номенклатура");
ПолеОтбора.ВидСравнения = ВидСравнения.ВИерархии;
ПолеОтбора = ПостроительОтчетаПрайс.Отбор.Добавить("КоличествоОстаток");
ПолеОтбора.ВидСравнения = ВидСравнения.Больше;
ПолеОтбора.Значение = 0;
ПолеОтбора.Использование = Истина
КонецПроцедуры
Процедура ПрайсВывести(ПечататьЦенники = Ложь)
Если НаДату = '00010101' Тогда
Предупреждение("Не указана дата !!!");
Возврат;
КонецЕсли;
Если ТипЦен.Пустая() Тогда
Предупреждение("Не указан тип цен");
Возврат;
КонецЕсли;
Если ВключатьТолькоОстатки И Склады.Количество() = 0 Тогда
Предупреждение("Не указаны склады для поиска остатков");
Возврат;
КонецЕсли;
ПостроительОтчетаПрайс.Параметры.Вставить("НаДату", КонецДня(НаДату));
ПостроительОтчетаПрайс.Параметры.Вставить("ТипЦен", ТипЦен);
ПостроительОтчетаПрайс.Параметры.Вставить("Склады", Склады.Выгрузить().ВыгрузитьКолонку("Склад"));
ИмяПоляОстаток = "КоличествоОстаток";
ПолеОтбораОстаток = ПостроительОтчетаПрайс.Отбор.Найти(ИмяПоляОстаток);
Если ВключатьТолькоОстатки Тогда
Если ПолеОтбораОстаток = Неопределено Тогда
ПолеОтбораОстаток = ПостроительОтчетаПрайс.Отбор.Добавить(ИмяПоляОстаток);
Конецесли;
ПолеОтбораОстаток.ВидСравнения = ВидСравнения.Больше;
ПолеОтбораОстаток.Использование = Истина;
Иначе
Если ПолеОтбораОстаток <> Неопределено Тогда
ОтборКоличество = ПостроительОтчетаПрайс.Отбор.Количество();
Для Н = 1 По ОтборКоличество Цикл
Если ПостроительОтчетаПрайс.Отбор[ОтборКоличество - Н].Имя = ИмяПоляОстаток Тогда
ПостроительОтчетаПрайс.Отбор.Удалить(ОтборКоличество - Н);
КонецЕсли
КонецЦикла;
КонецЕсли;
КонецЕсли;
ПостроительОтчетаПрайс.Выполнить();
Макет = ПолучитьМакет("Прайс");
ЭлементыФормы.ПолеТабличногоДокумента.Очистить();
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
ТабДок1 = Новый ТабличныйДокумент;
ТабДок2 = Новый ТабличныйДокумент;
Выборка = ПостроительОтчетаПрайс.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
КоличествоСтраниц = 0;
Номер = 0;
НомерЗаписи = 0;
ЛевыйСтолбец = Истина;
КоличествоСтрокНаСтранице = 4;
Пока Выборка.Следующий() Цикл
Если НомерЗаписи = КоличествоСтрокНаСтранице Тогда
Если ЛевыйСтолбец Тогда
ЛевыйСтолбец = Ложь;
Иначе
КоличествоСтраниц = КоличествоСтраниц + 1;
ТабДок.Присоединить(ТабДок1);
ТабДок.Присоединить(ТабДок2);
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТабДок.Вывести(Макет.ПолучитьОбласть("МеждуСтрочье"));
ЛевыйСтолбец = Истина;
ТабДок1 = Новый ТабличныйДокумент;
ТабДок2 = Новый ТабличныйДокумент;
КонецЕсли;
НомерЗаписи = 0;
КонецЕсли;
ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура");
ЕСЛИ Выборка.Номенклатура.ЭтоГруппа = Истина Тогда
Изображение = Неопределено;
Иначе
Изображение = Выборка.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
КонецЕсли;
// Изображение = Неопределено;
Если НЕ Изображение = Неопределено Тогда
////////////////////////////////////////////////////////////////////////////////
Рисунок = ОбластьНоменклатура.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Текст);
Рисунок.Верх = 6;
Рисунок.Лево = 1;
Рисунок.Ширина = 17;
Рисунок.Высота = 79;
Рисунок.ОриентацияТекста = -0;
Рисунок.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
Рисунок.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
Рисунок.Шрифт = Новый Шрифт("Verdana", 13.5,Истина);
Рисунок.ЦветТекста = Новый Цвет(0,0,0);
Рисунок.Текст = Выборка.Номенклатура.Артикул;
//////////////////////////////////////////////////////////////////////////
Рисунок = ОбластьНоменклатура.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Верх = 6;
Рисунок.Высота =79;
Рисунок.Ширина = 90;
Рисунок.Лево = 18;
Рисунок.РазмерКартинки = РазмерКартинки.Растянуть;
Рисунок.Картинка = Изображение;
///////////////////////////////////////
/////////////////////////////////////////////////////
Рисунок = ОбластьНоменклатура.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Текст);
Рисунок.Верх = 6;
Рисунок.Лево = 108;
Рисунок.Ширина = 17;
Рисунок.Высота = 79;
Рисунок.ОриентацияТекста = -0;
Рисунок.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
Рисунок.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
Рисунок.Шрифт = Новый Шрифт("Verdana", 10,Истина);
Рисунок.ЦветТекста = Новый Цвет(0,0,0);
Рисунок.Текст =Выборка.Цена;
/////////////////////////////////////////////////////
Рисунок = ОбластьНоменклатура.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Текст);
Рисунок.Верх = 85;//76;
Рисунок.Лево = 1;
Рисунок.Ширина = 124;
Рисунок.Высота = 9;
Рисунок.ОриентацияТекста = -0;
Рисунок.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
Рисунок.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
Рисунок.Шрифт = Новый Шрифт (,,Истина);
Рисунок.ЦветТекста = Новый Цвет(0,0,0);
Рисунок.Текст = Выборка.Наименование;
Если ЛевыйСтолбец Тогда
ТабДок1.Вывести(ОбластьНоменклатура);
Иначе
ТабДок2.Вывести(ОбластьНоменклатура);
КонецЕсли;
НомерЗаписи = НомерЗаписи + 1;
КонецЕсли;
КонецЦикла;
ТабДок.Присоединить(ТабДок1);
ТабДок.Присоединить(ТабДок2);
ТабДок.ПолеСлева = 0;
ТабДок.ПолеСправа = 0;
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
КонецПроцедуры
HELP , помогите Цену получить в выборке
и все-таки: Вы говорите:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
ТоварыНаСкладахОстатки.КоличествоОстаток,
ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК цена,
ТоварыНаСкладахОстатки.Номенклатура.ОсновноеИзображение.Хранилище
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, Склад <> &Склад) КАК ТоварыНаСкладахОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ТипЦен = &ТЦ) КАК ЦеныНоменклатурыСрезПоследних
ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
ИТОГИ ПО
Номенклатура ИЕРАРХИЯ
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
ТоварыНаСкладахОстатки.КоличествоОстаток,
ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК цена,
ТоварыНаСкладахОстатки.Номенклатура.ОсновноеИзображение.Хранилище
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, Склад <> &Склад) КАК ТоварыНаСкладахОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ТипЦен = &ТЦ) КАК ЦеныНоменклатурыСрезПоследних
ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
ИТОГИ ПО
Номенклатура ИЕРАРХИЯ
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua