8.х ВПФ проблема с добавлением внешнего обработчика

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Jarikus, 19 май 2009.

  1. TopicStarter Overlay
    Jarikus
    Offline

    Jarikus

    Регистрация:
    19 май 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Система: 1С 8.1 Управление торговлей для Украины (2.3.3.4)

    Решил немного поредактировать стандартный обработчик печати этикеток номенклатуры. Скопировал обработчик (ПечатьЭтикеток.epf) немного отредактировал вывод наименования номенклатуры. В общем при непосредственном открытии (Файл - отрыть) внешнего обработчика все работает отлично.

    Добавил этот обработчик в внешние печатные формы и зарегистрировал ее для Справочник "Номенклатура". Теперь когда открываю товар с низу появилась кнопка “ПечатьЭтикетокMy”. При нажатии которой сперва была ошибка мол не обнаружена СсылкаНаОбъект, прочитав всю ветку я добавил реквизит СсылкаНаОбъект с типом “СправочникСсылка.Номенклатура” ошибка исчезла но появилась новая:

    Не удалось сформировать внешнюю печатную форму!
    Метод объекта не обнаружен (Печать)

    Сразу скажу что Экспорт у меня стоял с самого начала для процедуры:
    “Процедура Печать(ТаблицаТоваров) Экспорт”

    Может функцию Печать надо тоже в реквизитах объявить как-то хитро? Обработка прикреплена....

    админ сори что не там создал тему но как переместить таки не понял...

    Вложения:

  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    ХМ, а параметр-то заполняете?
  3. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    И процедура расположена в модуле или в форме обработки?
  4. TopicStarter Overlay
    Jarikus
    Offline

    Jarikus

    Регистрация:
    19 май 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1

    Процедура “Печать” находится в форме -> вкладка модуль смотри рисунок, я понял объявление этой процедуры можно перенести в форму?

    Вложения:

  5. TopicStarter Overlay
    Jarikus
    Offline

    Jarikus

    Регистрация:
    19 май 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1

    Если речь идет о параметре для процедуры Печать(ТаблицаТоваров) то его заполняет процедура Заполнить().

    Код:
    Процедура Заполнить()
    
    
    Процедура Печать(ТаблицаТоваров) Экспорт
    
    
    таким хоботом в процедуре Процедура ПриОткрытии()

    Код:
    ИначеЕсли ЗначениеЗаполнено(мВнешнийЭлементНоменклатуры) Тогда
    ЭлементыФормы.Номенклатура.Значение = мВнешнийЭлементНоменклатуры;
    Заполнить();
    КонецЕсли;
    
    
    Если речь идет о реквизите “СсылкаНаОбъект” то где его заполнять не представляю ибо это мой первый обработчик 1C :unsure: . Этот реквизит я создал в внешних реквизитах обработчика см. рисунок. Может его как-то связать с ВнешнийЭлементНоменклатуры?

    Вложения:

  6. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Если ты делаешь печатную форму как внешнюю:
    СсылкаНаОбъект - твоя ссылка на номенклатуру
    Функция Печать() Экспорт должна располагаться в модуле обработки.

    Попробуй так, а потом разберешься что еще туда написать
    Код:
    Функция Печать()  Экспорт
    // тут можно заполнить реквизиты обработки для примера
    // получаем форму обработки печати и открываем ее
    ЭтотОбъект.ПолучитьФорму().Открыть();
    КонеЦФункции
    
  7. TopicStarter Overlay
    Jarikus
    Offline

    Jarikus

    Регистрация:
    19 май 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Да таки нашел куда пихать код для модуля обработки ( Действие -> Открыть модуль обьекта )

    запихнул туда
    Код:
    Функция Печать()  Экспорт
    // тут можно заполнить реквизиты обработки для примера
    // получаем форму обработки печати и открываем ее
    ЭтотОбъект.ПолучитьФорму().Открыть();
    КонеЦФункции
    
    
    А в форме в процедуру ПриОткрытии() добавил строчку:
    Код:
    мВнешнийЭлементНоменклатуры = СсылкаНаОбъект;
    
    
    Заработало :unsure:

    большой тенкс за помощь

Поделиться этой страницей