v8: Подстановка в печатную форму значений из таблицы док-та #317734


#0 by Markel2007
Здравствуйте не могу решить следующую задачу. Есть 1с 8.1 Управление торговлей. Нужно чтобы при выводе на печать документа Реализация Товаров во всех печатных формах (накладная, счёт-фактура и т.д.) вместо одного наименования товара выводилось наименование другого, аналогичного товара. Только на печать чтобы в учёте этот товар не отоброжался. Мои действия: 1. Создаю в основной форме док-та РеализацияТоваров колонку "Аналог", а в табличной части, в товарах реквизит ТЧ - Аналог тип данных - СправочникСсылка.Номенклатура 2. Ищу где он формирует печатную форму почему-то нашел только в документе УстановкаЦенНоменклатуры в Экспортных Процедурах - Функция ПечатьДокумента в этой функции он делает выборку: ============================================= Запрос.Текст = =============================================== я пытаюсь сделать так чтобы при формировании запроса он смотрел заполнена ли ячейка Аналог и если да то выбирал бы её вместо ячейки Номенклатура потому как именно эту выборку он потом пихает в макет и печатает. меняю УстановкаЦенНоменклатуры.Номенклатура, УстановкаЦенНоменклатуры.Номенклатура.НаименованиеПолное КАК Товар, на УстановкаЦенНоменклатуры.Аналог, УстановкаЦенНоменклатуры.Товары.Аналог.НаименованиеПолное КАК Товар, ругается что поле не найдено: УстановкаЦенНоменклатуры.Аналог, на этом я и завис   Опыта как вы наверное уже поняли - ноль   какие есть варианты пожалуйста подскажите
#1 by Дуб
А каким местом здесь УстановкаЦен?
#2 by Дуб
Чой-то автор затих. Разобрался, видать...
#3 by Markel2007
нет к сожалению не разобрался :( почемуто он делает это именно в этом документе тоесть // Функция формирует табличный документ с печатной формой. // это экспортная функция и как я понял когда я пытаюсь распечатать документ реализация товаров(накладная, счет-фактура) вызывается именно она
#4 by Дуб
Запускай Отладчик и иди по шагам. Тут даже объяснять особо нечего: сам всё увидишь. Данные для печати формируются запросом. Идя Отладчиком, уткнёшься в формирование этого запроса и результат его выполнения.
#5 by Markel2007
Всё я напутал конечно же, называется смотрим в книгу видим фигу :( Функции формирования печатной формы сидят там где и положено. Нашёл в модуле документа РеализацияТоваровУслуг 3 функции // Функция формирует табличный документ с печатной формой накладной на обычную, на Торг-12 и на М-15 они сделаны по одному принципу. Как я понял с помощью запроса делается выборка по реквизитам табличной части и подставляется в макет и запрос повторяется в цикле для каждой строчки, так? Я вижу два варианта: 1. Проверять заполнено ли поле "Аналог" Если нет то запрос не меняется если да то делаем другой запрос в котором вместо поля РеализацияТоваровУслуг.Номенклатура выбираем РеализацияТоваровУслуг.Аналог в данном варианте я запрос почти не трогаю а только добавляю конструкцию Если-Тогда-Иначе Если РеализацияТоваровУслуг.Аналог = null тогда запрос1 иначе запрос2 Но когда я так делаю он ругается что переменная не определена >_< 2. Оставить один запрос но отредактировать его так чтобы он сам смотрел заполнен ли "аналог" и выбирал его. Как правильно отредактировать запрос я не знаю...
#6 by ДобрыйДятел
в конструкторе
#7 by Dionisious
В запросе: ВЫБОР КОГДА Аналог=&пустаяНоменклатура ТОГДА Номенклатура ИНАЧЕ Аналог КОНЕЦ КАК Номенклатура
#8 by Markel2007
не получается :( вот что я вставил когда пытаюсь проверить с помощью конструктора ругается: " Поле не входит в группу "РеализачияТоваровУслуг.Аналог" <<?>> РеализацияТоваровУслуг.Аналог КОНЕЦ КАК Номенклатура," А при попытке выполнения: {Документ.РеализацияТоваровУслуг}: Ошибка при вызове метода контекста (Выполнить): {(25, 8)}: Поле не входит в группу "РеализацияТоваровУслуг.Аналог" <<?>>РеализацияТоваровУслуг.Аналог КОНЕЦ КАК Номенклатура, по причине: {(25, 8)}: Поле не входит в группу "РеализацияТоваровУслуг.Аналог" <<?>>РеализацияТоваровУслуг.Аналог КОНЕЦ КАК Номенклатура,
#9 by Markel2007
Может привести здесь весь запрос? но он достаточно большой...
#10 by ДобрыйДятел
если он формируется динамически и нет сил понять что править значит под отладкой ловишь текст сформированного запроса и потом в консоли запросов его меняешь до получения требуемого результата потом вносишь изменения в исходный ну это как вариант
#11 by Dionisious
Надо везде где встрачается Номенклатура заменить на эту конструкцию ВЫБОР.
#12 by Markel2007
>>ДобрыйДятел Боюсь что проблема как раз в том что я не знаю КАК править :( Смысл запроса мне более менее понятен но вот грамотное использование ключевых слов и оборотов... Буду в понедельник покупать книжку Описание встроенного языка, в комплекте она не шла а 1с на выходных не работает. >>Dionisious Большое спасибо за помощь, буду пытаться. Хотя пока не очень получается ^_^
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С