|   |   | 
| 
 | печатная форма, некорректно вывожу номенклатуру | ☑ | ||
|---|---|---|---|---|
| 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) спасибо огромное     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |