![]() |
|
печатная форма, некорректно вывожу номенклатуру | ☑ | ||
---|---|---|---|---|
0
dvrk
06.10.22
✎
08:41
|
Привет, если в документе есть 'Номенклатура контрагента', то выводится некорректно, подскажите, что не так сделал?
Для каждого ПР из СсылкаНаОбъект.Товары Цикл если ЗначениеЗаполнено(ПР.НаименованиеНоменклатурыКонтрагента) тогда ОбластьДанных.Параметры.Товар = ПР.НаименованиеНоменклатурыКонтрагента Иначе ОбластьДанных.Параметры.Товар = СокрП(ВыборкаСтрокТовары.Товар) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары); ОбластьДанных.Параметры.Цена = Окр(ВыборкаСтрокТовары.Сумма/ВыборкаСтрокТовары.Количество,2,1); КонецЕсли; КонецЦикла; |
|||
1
dvrk
06.10.22
✎
08:42
|
у меня кол-во строк верное выводится, но в наименовании косяк
|
|||
2
Мультук
гуру
06.10.22
✎
08:49
|
(0)
Цикл бежит по Для каждого ПР из СсылкаНаОбъект.Товары Цикл а в теле цикла внезапно возникает СокрП(ВыборкаСтрокТовары.Товар) Это нормально? |
|||
3
dvrk
06.10.22
✎
08:55
|
(2) ну у меня и то и то есть, нельзя так?
|
|||
4
Гипервизор
06.10.22
✎
09:08
|
(3) Двойной цикл?
|
|||
5
dvrk
06.10.22
✎
09:12
|
(4) да
|
|||
6
dvrk
06.10.22
✎
09:14
|
проблема такая: если есть "НоменклатураКонтрагента", то все строки с номенклатурой - 1ый попавшийся НоменклатураКонтрагента
|
|||
7
Гипервизор
06.10.22
✎
09:22
|
(5) А зачем?
|
|||
8
dvrk
06.10.22
✎
10:02
|
(7) не пойму просто как получить в уже готовом запросе НаименованиеНоменклатурыКонтрагента
|
|||
9
Мультук
гуру
06.10.22
✎
10:07
|
(8)
Не показывай никому уже готовый запрос - вдруг подскажут |
|||
10
dvrk
06.10.22
✎
10:11
|
(9)
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДоговорКонтрагента, | Организация, | Контрагент КАК Получатель, | Организация КАК Руководители, | Организация КАК Поставщик, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю | |ГДЕ | СчетНаОплатуПокупателю.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ"; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.УстановитьПараметр("ВыводитьСкидки",Ложь); Запрос.УстановитьПараметр("УчитыватьЦенуЛоготипа", (СсылкаНаОбъект.ВидОперации=Перечисления.ВидыОперацийСчетаЗаказыПокупателей.ТоварыСЛоготипами И НЕ СсылкаНаОбъект.ВыделениеЛоготиповОтдельнойУслугой)); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар, | ВложенныйЗапрос.Номенклатура.Код КАК Код, | ВложенныйЗапрос.Номенклатура.КодОракл КАК Артикул, | ВложенныйЗапрос.Количество КАК Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ПроцентСкидкиНаценки + ВложенныйЗапрос.ПроцентАвтоматическихСкидок КАК Скидка, | ВЫБОР | КОГДА &ВыводитьСкидки | ТОГДА ВЫБОР | КОГДА &УчитыватьЦенуЛоготипа | ТОГДА ВложенныйЗапрос.Цена + ВложенныйЗапрос.ЦенаЛоготипа | ИНАЧЕ ВложенныйЗапрос.Цена | КОНЕЦ | ИНАЧЕ ВложенныйЗапрос.Сумма / ВложенныйЗапрос.Количество | КОНЕЦ КАК Цена, | ВложенныйЗапрос.Сумма КАК Сумма, | ВложенныйЗапрос.СуммаНДС КАК СуммаНДС, | ВложенныйЗапрос.Характеристика КАК Характеристика, | NULL КАК Серия, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка, | ВложенныйЗапрос.Номенклатура.Артикул КАК АртикулНоменклатуры |ИЗ | (ВЫБРАТЬ | ЗаказПокупателя.Номенклатура КАК Номенклатура, | ЗаказПокупателя.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ЗаказПокупателя.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | ЗаказПокупателя.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | ЗаказПокупателя.Цена КАК Цена, | ЗаказПокупателя.ЦенаЛоготипа КАК ЦенаЛоготипа, | СУММА(ЗаказПокупателя.Количество) КАК Количество, | СУММА(ЗаказПокупателя.Сумма) КАК Сумма, | СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС, | ЗаказПокупателя.ХарактеристикаНоменклатуры КАК Характеристика, | ЗаказПокупателя.НомерСтроки КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя | ГДЕ | ЗаказПокупателя.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | ЗаказПокупателя.НомерСтроки, | ЗаказПокупателя.Номенклатура, | ЗаказПокупателя.ЕдиницаИзмерения, | ЗаказПокупателя.ПроцентСкидкиНаценки, | ЗаказПокупателя.ПроцентАвтоматическихСкидок, | ЗаказПокупателя.Цена, | ЗаказПокупателя.ЦенаЛоготипа, | ЗаказПокупателя.ХарактеристикаНоменклатуры) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ЗаказПокупателя.Номенклатура, | ВЫБОР | КОГДА ЗаказПокупателя.Содержание ЕСТЬ NULL | ИЛИ ЗаказПокупателя.Содержание = """" | ТОГДА ВЫРАЗИТЬ(ЗаказПокупателя.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) | ИНАЧЕ ЗаказПокупателя.Содержание | КОНЕЦ, | ЗаказПокупателя.Номенклатура.Код, | ЗаказПокупателя.Номенклатура.КодОракл, | ЗаказПокупателя.Количество, | ЗаказПокупателя.Номенклатура.ЕдиницаХраненияОстатков, | ЗаказПокупателя.ПроцентСкидкиНаценки, | ВЫБОР | КОГДА &ВыводитьСкидки | ТОГДА ЗаказПокупателя.Цена | ИНАЧЕ ЗаказПокупателя.Сумма / ЗаказПокупателя.Количество | КОНЕЦ, | ЗаказПокупателя.Сумма, | ЗаказПокупателя.СуммаНДС, | NULL, | NULL, | ЗаказПокупателя.НомерСтроки, | 1, | NULL |ИЗ | Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.Ссылка = &ТекущийДокумент | |УПОРЯДОЧИТЬ ПО | Метка, | НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); |
|||
11
Мультук
гуру
06.10.22
✎
10:24
|
(10)
Сейчас гуру расчехлят хрустальный шар и догадаются: 1) Что это за конфигурация и типовая ли она (УТ 10.3 ?) 2) Где именно в каком документе и таб.части лежит нужное поле "НоменклатураКонтрагента" |
|||
12
dvrk
06.10.22
✎
10:25
|
(11) да ут 10.3, счет на оплату покупателю реквизит документа
|
|||
13
dvrk
06.10.22
✎
10:25
|
(11) ой, в табличной части товары
|
|||
14
dvrk
06.10.22
✎
10:28
|
(11) я хочу сделать чтобы если номенклатура контрагента в ТЧ заполнена, то параметр Товар заполняелся бы номенклатурой контрагента, если нет, то номенклатура просто
|
|||
15
Гипервизор
06.10.22
✎
11:01
|
(12) Вот только в типовой УТ 10.3 в ТЧ Товары документа Счет на оплату покупателю нет реквизита НоменклатураКонтрагента.
|
|||
16
dvrk
06.10.22
✎
11:27
|
(15) ну я не написал просто что нетиповая
|
|||
17
Гипервизор
06.10.22
✎
11:33
|
(16) Тогда какого типа реквизит? Почему нельзя модифицировать текст запроса и выбирать ещё и этот реквизит? А при заполнении параметров области проверять заполнение. Или сразу в запросе подготовить нужный вариант.
|
|||
18
dvrk
06.10.22
✎
11:37
|
(17) я ж и говорю я не могу в запросе этот реквизит выбрать, его там нет
строка |
|||
19
Мультук
гуру
06.10.22
✎
11:51
|
(18)
А здесь он откуда взялся ? Для каждого ПР из СсылкаНаОбъект.Товары Цикл если ЗначениеЗаполнено(ПР.НаименованиеНоменклатурыКонтрагента) тогда СсылкаНаОбъект -- это кто вообще ? |
|||
20
dvrk
06.10.22
✎
11:53
|
(19) я же говорю обращаюсь к объекту - он там есть, в запросе просто в доуступных полях его нет
|
|||
21
dvrk
06.10.22
✎
11:53
|
(19) это документ который печатается
|
|||
22
Гипервизор
06.10.22
✎
12:29
|
(20) Хотелось бы уточнить, а то вдруг я что-то не понял.
В вашей УТ 10.3 в документе Счет на оплату покупателю добавлен реквизит табличной части Товары - НаименованиеНоменклатурыКонтрагента. Строкового типа. Который виден при объектном доступе и не виден при табличном? |
|||
23
Мультук
гуру
06.10.22
✎
12:31
|
(21)
Открой консоль запросов Создай новый запрос из Документ.СчетНаОплатуПокупателю.Товары Реквизит НаименованиеНоменклатурыКонтрагента есть ? |
|||
24
FIXXXL
06.10.22
✎
12:42
|
(22) скорее просто на форму вытащили
потому и нет в запросе |
|||
25
dvrk
06.10.22
✎
12:42
|
(23) есть конечно, я говорю про запрос в (10), там не понимаю как добавить этот реквизит
|
|||
26
Гипервизор
06.10.22
✎
12:51
|
(25) У вас ответы в (20) и в (25) как-то не стыкуются.
В итоге выясняется, что вы просто не знаете как модифицировать существующий запрос? |
|||
27
dvrk
06.10.22
✎
12:53
|
(26) ну да, я запрос в конструкторе открываю и там в доступных нет нужного мне поля
|
|||
28
Гипервизор
06.10.22
✎
13:04
|
(27) Думаю, до меня дошло, что вы пытались сказать. В конструкторе вы видите поля вложенного запроса. А вам надо на уровень ниже. Откройте вложенный запрос по F2 и добавьте реквизит в оба запроса по товарам и услугам.
|
|||
29
dvrk
06.10.22
✎
13:08
|
(28) да! спасибо большое, но, пишет недопустимое поле для группировки
|
|||
30
Гипервизор
06.10.22
✎
13:12
|
(29) Хотя у вас вообще как-то странно: запрос по двум ТЧ так-то должен быть во вложенном запросе, а у вас запрос по ТЧ Товары во вложенном, а потом это объединяется с запросом по ТЧ Услуги.
Если "недопустимое поле для группировки" - у реквизита НаименованиеНоменклатурыКонтрагента тип Строка(0)? Сделайте по аналогии с: ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар. |
|||
31
dvrk
06.10.22
✎
13:13
|
(30) сделал, всё равно ошибку выдаёт
|
|||
32
dvrk
06.10.22
✎
13:16
|
(30) при этом номенклатура ВЫРАЗИТЬ в запросе делается, а во вложенном без ВЫРАЗИТЬ добавлена, а номенклатуру контрагента не могу добавить во вложенном без ВЫРАЗИТЬ и с ВЫРАЗИТЬ тоже не могу
|
|||
33
Гипервизор
06.10.22
✎
13:25
|
(32) Где группируете по этому полю, там и выражайте.
|
|||
34
dvrk
06.10.22
✎
13:26
|
(33) так я выражаю во вложенном, не даёт добавить
|
|||
35
dvrk
06.10.22
✎
13:28
|
(33) странно, если добавляю, а потом ВЫРАЗИТЬ делаю - ошибка, а если добавляю сначала пустое поле, а в нём пишу руками - ошибки нет
спасибо! |
|||
36
kostyan29
06.10.22
✎
13:39
|
У Вас нет смысла во вложенных запросах в том виде, в каком они сейчас. Вложенный запрос используется, видимо, для того, чтобы сгруппировать по возможным дублям номенклатуры, а в группировках при этом указывается НомерСтроки. В таком случае ничего точно не будет сгруппировано. Нужно убрать НомерСтроки вообще, т.к. он и не нужен Вам скорее всего.
Да и вообще тут вложенные запросы не нужны, как мне кажется. 2 отдельных запроса, каждый будет отдельно сгруппирован. Объединенных через ОБЪЕДИНИТЬ ВСЕ. Ведь в товарах не может быть услуг, а в услугах товаров? Вот и упростите себе запрос. |
|||
37
dvrk
06.10.22
✎
14:05
|
(28) спасибо огромное
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |