Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 00:14

Где формируются данные для печатной формы УПД

Автор Alex B, 12 июл 2018, 16:11

0 Пользователей и 1 гость просматривают эту тему.

Alex B

Здравствуйте.
На 1с перешли недавно, поэтому мало понимаю в ней.
Пользователи просили доработать форму УПД - надо было вывести к нашему артикулу еще артикул клиента. Конфигурацию хотим по возможности не трогать, поэтому сделал на расширении доработку:
Обработки - ПечатьОбщихФорм
&Вместо("ЗаполнитьРеквизитыСтрокиТовара") дописал запросик и добавил к нашему артикулу артикул поставщика.
Все работало, потом после какого-то обновления перестало работать. Причем это не отключилось расширение, а просто при печати УПД 1с стала формировать данные для формы где то в другом месте, и я не могу найти где. Подскажите где данные теперь формируются или как это можно найти. Дебагером шагал, все равно не нашел. Спасибо
ps. 1С:Предприятие 8.3 (8.3.12.1469) 1С:Комплексная автоматизация 2 (2.4.5.24)

wise

(0) специфика работы Расширений...
НАДО заново захватить обработку в расширение...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Alex B

Цитата: wise от 12 июл 2018, 16:38НАДО заново захватить обработку в расширение...
Ту же самую? Я точки останова делал - оно не останавливается ни в основной конфигурации ни в расширении в этой процедуре и, как я понял, формирует данные уже где-то не здесь где раньше. У меня сложилось впечатление, что просто передается весь объект документ реализация в макет и без всяких обработок поля уже сопоставлены с макетом... не знаю...


Alex26

В модуле менеджера документа, процедура печать, там смотри по названию свою

Alex B

Цитата: Alex26 от 13 июл 2018, 13:25
В модуле менеджера документа, процедура печать, там смотри по названию свою
В процедуре Печать(...) нет УПД.
Есть в процедуре ДобавитьКомандыПечати(...) такой код:
// Универсальный передаточный документ (УПД)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьОбщихФорм";
КомандаПечати.Идентификатор = "УПД";
КомандаПечати.Представление = НСтр("ru = 'Универсальный передаточный документ (УПД)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 37;

И как видите он ссылается на обработку ПечатьОбщихФорм - там я посмотрел в процедуре печать есть ссылка на УПД, но точка останова не срабатывает...
В этой же обработке есть #Область Печать_УПД я в каждой из процедур точек останова навставлял - ни где не сработало.

Alex26

Цитата: Alex B от 13 июл 2018, 15:34
Цитата: Alex26 от 13 июл 2018, 13:25
В модуле менеджера документа, процедура печать, там смотри по названию свою
В процедуре Печать(...) нет УПД.
Есть в процедуре ДобавитьКомандыПечати(...) такой код:
// Универсальный передаточный документ (УПД)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьОбщихФорм";
КомандаПечати.Идентификатор = "УПД";
КомандаПечати.Представление = НСтр("ru = 'Универсальный передаточный документ (УПД)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 37;

И как видите он ссылается на обработку ПечатьОбщихФорм - там я посмотрел в процедуре печать есть ссылка на УПД, но точка останова не срабатывает...
В этой же обработке есть #Область Печать_УПД я в каждой из процедур точек останова навставлял - ни где не сработало.
Я смотрел в бп 3.0, так как возможности КА нету посмотреть, для изменения самого макета тебе надо Обработки.ПечатьУПД есть макет ПФ_MXL_УниверсальныйПередаточныйДокумент в нем правишь, а чтобы параметр заполнить этот тебе в модуле менеджера этого объекта надо в процедуре ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов дополнить твоей переменной, в ка поищи должно быть так же, все с бсп идет

Alex B

Цитата: Alex26 от 14 июл 2018, 08:55Обработки.ПечатьУПД есть макет ПФ_MXL_УниверсальныйПередаточныйДокумент
Такой обработки нет, а макет ПФ_MXL_УниверсальныйПередаточныйДокумент находится в обработке ПечатьОбщихФорм, однако макет мне править не надо, мне надо править именно данные, что выводятся в поле Код товара работ услуг - <НоменклатураКод> - а это есть артикул товара. Мне надо добавить к нему артикул поставщика.
Цитата: Alex26 от 14 июл 2018, 08:55надо в процедуре ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов дополнить твоей переменной
такой процедуры там нет, а где я до этого правил и раньше работало - сейчас не работает.
Это раньше работало в процедуре ЗаполнитьРеквизитыСтрокиТовара я там добавил запрос и потом
СтруктураПараметров.НоменклатураКод = СтруктураПараметров.НоменклатураКод+" "+ДляЗапроса.PLU;
где ДляЗапроса.PLU это как раз артикул поставщика. Оно б и работало, однако теперь сюда при печати УПД не заходит программа. Вот я и не могу найти теперь, где это формируется.


KOI8-R



KOI8-R

Цитата: Alex B от 19 июл 2018, 12:03
Цитата: KOI8-R от 19 июл 2018, 11:37
.
И?
И надо было просто пройти в модуль менеджера обработки и увидеть, что данные на основании которых заполняется УПД берутся из менеджера печатаемого документа.
Например в реализации это:
Функция ПолучитьДанныеДляПечатнойФормыУПД(ПараметрыПечати, МассивОбъектов) Экспорт
пакет запроса - РезультатПоТабличнойЧасти

Поэтому лучше (ИМХО, не так эффективно, зато не надо прописываться во все модули менеджеров документов) втискиваться с кодами PLU уже в постобработку до вывода области.

Теги: КА упд 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск