8.х Создал внешнюю обработку, а добавить не могу...

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Фархад, 4 июл 2016.

  1. TopicStarter Overlay
    Фархад
    Offline

    Фархад

    Регистрация:
    30 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Всем привет! Сделал внешнюю обработку к УправлениюТорговлей 11.2, через Файл-Открыть все работает, попытался вставить ее через функционал "Дополнительные обработки", программа выдала ошибку "Невозможно подключить дополнительную обработку из файла. Возможно, она не подходит для этой версии программы. Метод объекта не обнаружен (СведенияОВнешнейОбработке)". Погуглил тему, нашел кусок кода который нужно вставить в обработку. Вставил, загружаю - ошибка та же самая... Что не так делаю?
    Код к моей обработке:
    Код:
    Функция СведенияОВнешнейОбработке() Экспорт
    
        ПараметрыРегистрации = Новый Структура;
        МассивНазначений = Новый Массив;
        МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
    
        ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
        ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
        ПараметрыРегистрации.Вставить("Наименование", "Возврат с комиссии для продажи");
        ПараметрыРегистрации.Вставить("Версия", "1.14");
        ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
        ПараметрыРегистрации.Вставить("Информация",
            "Заполнение ТЧ документа РеализацияТоваровУслуг из товара, отданного на комиссию этому контрагенту." + Символы.ПС
            + "Автоматическое открытие формы документа ВозвратТовараОтКлиента и его заполнение." + Символы.ПС
             + "Версия 1.1  -- возможность работать с общими упаковками." + Символы.ПС
             + "Версия 1.11 -- группировка товара по ном. и хар. в дин. списке." + Символы.ПС
             + "Версия 1.12 -- Документ ""Возврат товара"" не сохраняется, но открывается и заполняется его форма" + Символы.ПС
            + "(workaround для ошибки установки привилегированного режима при записи документа). " + Символы.ПС
             + "Версия 1.13 -- Упаковку ищем теперь по единице измерения ""упак""" + Символы.ПС
            +"Версия 1.14 - Дата у документа ""Возврат товара"" устанавливается на одну секунду меньше даты документа реализации"+Символы.ПС
        );
       
        ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
        ДобавитьКоманду(ТаблицаКоманд,
            "Возврат товара с комиссии",
            "0",
            "ОткрытиеФормы",
            Истина
        );
    
        ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
        Возврат ПараметрыРегистрации;
    КонецФункции
    
    Функция ПолучитьТаблицуКоманд()
      Команды = Новый ТаблицаЗначений;
      Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
      Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
      Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
      Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
      Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
      Возврат Команды;
    КонецФункции
    
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
      НоваяКоманда = ТаблицаКоманд.Добавить();
      НоваяКоманда.Представление = Представление;
      НоваяКоманда.Идентификатор = Идентификатор;
      НоваяКоманда.Использование = Использование;
      НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
      НоваяКоманда.Модификатор = Модификатор;
    КонецПроцедуры
    
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Вы куда имеено вставили этот код?
  3. TopicStarter Overlay
    Фархад
    Offline

    Фархад

    Регистрация:
    30 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Зашел в раздел форм, выбрал свою форму и снизу выбрал закладку Модуль...:rolleyes:
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Код необходимо вставлять в модуль обработки.
    Последнее редактирование: 4 июл 2016
  5. TopicStarter Overlay
    Фархад
    Offline

    Фархад

    Регистрация:
    30 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Хехе)) Получилось )))) Вот теперь появился еще вопрос - как передать в обработку выбранный документ пользователя? Читал что надо создать глобальную переменную СсылкаНаОбъект - это ж в каком месте ее создать? (я создал в формах в правой части реквизит с таким наименованием) и как система с ней работать будет? сама запишет в нее ссылку на документ а потом запустит обработку? или что-то другое ожидать? ))
  6. TopicStarter Overlay
    Фархад
    Offline

    Фархад

    Регистрация:
    30 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Нашел материал, изучил - получилось построить все как надо. Переписал обработку заново, не создавал в ней ни форм, ни реквизитов. Но! СсылкаНаОбъект - реально работает )))) Я думаю что в этой функции это как-то сработало
    Код:
    Функция ПечатьФормы(СсылкаНаОбъект,ОбъектыПечати)
    ТабДок = новый ТабличныйДокумент;
      Макет = ПолучитьМакет("МойМакетище");
      ОбластьЗаголовок  = Макет.ПолучитьОбласть("Заголовок");
      ОбластьПоставщик = Макет.ПолучитьОбласть("Поставщик");
    ....
       ОбластьЗаголовок.Параметры.ТекстЗаголовка = "Товарный чек №"+СсылкаНаОбъект.Номер+" от "+СсылкаНаОбъект.Дата;
       ТабДок.Вывести(ОбластьЗаголовок);
    ....
    Для Каждого ТекущаяСтрока из СсылкаНаОбъект.Товары Цикл
      ОбластьТовар.Параметры.НомерСтроки = ТекущаяСтрока.НомерСтроки;
      ....
     ТабДок.Вывести(ОбластьТовар);
    
    КонецЦикла;
    ....
       ТабДок.АвтоМасштаб=истина; // уместить на одну страницу
       ТабДок.ТолькоПросмотр=истина;
       ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
       ТабДок.ОтображатьСетку=Ложь;
    
    возврат ТабДок;
    КонецФункции

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