Помогите с печатной формой (макетом)

1. Nigelist 17.10.17 08:24 Сейчас в теме
Имеется внешняя печатная форма для документа перемещения товара. В номенклатуре добавили новое свойство: Температурный режим. Подскажите, как правильно сформировать запрос? Точнее как указать, что нужно отбирать только свойство ТемпературныйРежим? Вот пример запроса:
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
	Запрос.УстановитьПараметр("ТемпературныйРежим", );
	Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);

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

Во вложении сама внешняя печатная форма, пока без изменений.
Прикрепленные файлы:
НапечататьПеремещениеШКСортировкаПоМестуХраненияЭлком_U.epf
По теме из базы знаний
Найденные решения
6. BackinSoda 17.10.17 08:52 Сейчас в теме
(4) простой вариант:
ТоСамоеСвойство= ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Температурный режим");
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 17.10.17 08:40 Сейчас в теме
(1)
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Свойство", ТоСамоеСвойство);

    Запрос.Текст = 
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    ПеремещениеТоваровТовары.НомерСтроки,
|    ПеремещениеТоваровТовары.Номенклатура,
|    ПеремещениеТоваровТовары.Номенклатура.Наименование КАК Наименование,
|    ВЫРАЗИТЬ(ПеремещениеТоваровТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(250)) КАК Товар,
|    ВЫРАЗИТЬ("""" КАК СТРОКА(250)) КАК Штрихкод,
|    ПеремещениеТоваровТовары.Номенклатура.Код КАК Код,
|    ПеремещениеТоваровТовары.Номенклатура.Артикул КАК Артикул,
|    ПеремещениеТоваровТовары.Количество,
|    ПеремещениеТоваровТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
|    ПеремещениеТоваровТовары.Цена,
|    ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры КАК Характеристика,
|    ПеремещениеТоваровТовары.СерияНоменклатуры КАК Серия,
|    """" КАК МестоХранения,
|    ЗначенияСвойствОбъектов.Значение КАК ТемпературныйРежим
|ИЗ
|    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|        ПО ПеремещениеТоваровТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект
|        И ЗначенияСвойствОбъектов.Свойство = &Свойство
|ГДЕ
|    ПеремещениеТоваровТовары.Ссылка = &ТекущийДокумент"
Показать
4. Nigelist 17.10.17 08:49 Сейчас в теме
(2) А как указать "ТоСамоеСвойство"? Это ведь не предопределенный объект.
6. BackinSoda 17.10.17 08:52 Сейчас в теме
(4) простой вариант:
ТоСамоеСвойство= ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Температурный режим");
3. comptr 31 17.10.17 08:41 Сейчас в теме
Перенести условие на свойство из ГДЕ в связь соединения. И на поля ЕСТЬNULL наложить.
5. Nigelist 17.10.17 08:50 Сейчас в теме
7. Nigelist 17.10.17 09:33 Сейчас в теме
Вроде получилось, но теперь проблема с макетом. Посмотрите, кто может. Обработка во вложении.
Прикрепленные файлы:
НапечататьПеремещениеШКСортировкаПоМестуХранения_U.epf
8. BackinSoda 17.10.17 09:50 Сейчас в теме
(7) для начала, если склад не розничный, то п.ф. отвалится с ошибкой (в область строка тоже добавить ТемпературныйРежимЗначение).
В другой области ("СтрокаСЦеной") параметр не выводится потому, что он начинается на пересечении области "НомерСтроки", а для вывода он обозначен в "Данные" т.е. там где начинается параметр "Товар" (прям над ним должно быть)
Еще по мелочи: в месте где поиск свойства там пробел какой-то после ("
9. Nigelist 17.10.17 11:06 Сейчас в теме
(8)
Еще по мелочи: в месте где поиск свойства там пробел какой-то после ("
Там всё нормально, это само название с пробелом в начале, чтобы указанный пункт отображался в начале списка свойств.

(8)
для начала, если склад не розничный, то п.ф. отвалится с ошибкой (в область строка тоже добавить ТемпературныйРежимЗначение).
Спасибо, исправлю.

(8)
В другой области ("СтрокаСЦеной") параметр не выводится потому, что он начинается на пересечении области "НомерСтроки", а для вывода он обозначен в "Данные" т.е. там где начинается параметр "Товар" (прям над ним должно быть)
Исправил, вроде бы работает, но не группирует по температурному режиму. Как сделать, чтобы группировал?
10. BackinSoda 17.10.17 11:28 Сейчас в теме
(9) А он и не рассчитан сейчас на группировку. Тогда надо повозиться. Сперва поставить в запросе Сортировку по температуре, МестоХранения, Товар, потом Итоги по температуре (да и лишние поля типа .Объект, .Свойство можно убрать из выборки. Дальше идёт запрос. выгрузить() , надо переделать на выбрать(). Строку с сортировкой таблицы удалить. Обходы таблицы в цикле переделать на цикл Пока Выборка.Следующий(ОбходРезультатаЗапроса.ПоГруппировкам) Цикл
Внутри которого сделать еще одну выборку : ВыборкаДетали = Выборка.Выбрать(); ну и Цикл по ней : Пока ВыборкаДетали.Следующий() Цикл ... внутри которого практически всё что сейчас в цикле по "Для каждого ВыборкаСтрокТовары Из ТаблицаТоваров Цикл" (который надо переделать) . Делать всё под отладчиком и смотреть в какой выборке что приходит, и где назначать параметры в строки. Плюс надо разбить область "СтрокаСЦенами", чтоб темп.режим был отдельной областью, её надо в верхнем цикле выводить, а во внутреммен - саму строкуСценами. (Скопируй всю область, вставь куда-то, а потом уже удаляй ненужные строки, так вертикальные строки не запорятся). Как-то так.
11. Nigelist 17.10.17 13:19 Сейчас в теме
(10) Я так понял лучше вообще с начала сделать?
12. BackinSoda 17.10.17 14:19 Сейчас в теме
(11) Расписал как делать, может и не совсем понятно. Минут на 20 работы если переделывать, и знать что делать и как. Если бы не всякие штрихкоды, было бы легче )
13. Nigelist 18.10.17 12:47 Сейчас в теме
(12) ок, спасибо. Буду разбираться.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот