Имя: Пароль:
1C
 
УТ 11.1 и весы с печатью этикеток
,
0 pers200590
 
20.11.14
08:36
Здравствуйте, уважаемые форумчане
Имеется конфигурация УТ 11.1.2.20, подключены весы с печатью этикеток Штрих-М. Продажи обмен с подключаемым оборудованием Offline/весы с печатью этикеток/Посмотреть список товаров/Печать/Кодов товаров, выходит ошибка Метод объекта не обнаружен (Метаданные). Ошибка появилась после обновления на 11.1.2.20 и повторяется на релизе 11.1.6.
1 pers200590
 
20.11.14
08:44
{ОбщийМодуль.УправлениеПечатью.Модуль(344)}: Метод объекта не обнаружен (Метаданные)
        ИсточникВнешнихПечатныхФорм = МассивОбъектов[0].Метаданные().ПолноеИмя();
2 pers200590
 
20.11.14
09:08
ап
3 pers200590
 
24.11.14
08:25
ау
4 ilyavorobyev
 
24.11.14
08:31
(0) Посмотри отладчиком, что там в МассивОбъектов
5 pers200590
 
24.11.14
08:34
(4) там много все структура
6 ilyavorobyev
 
24.11.14
09:23
(5) дак посмотри что там в первом элементе МассивОбъектов[0], видимо там Неопределенно раз он имя объекта метаданных получить не может
7 pers200590
 
24.11.14
09:30
8 pers200590
 
24.11.14
09:32
Процедура СформироватьПечатныеФормы(ИмяМенеджераПечати, Знач ИменаМакетов, МассивОбъектов, ПараметрыПечати,
    КоллекцияПечатныхФорм, ОбъектыПечати = Неопределено, ПараметрыВывода) Экспорт
    
    ПараметрыВывода = ПодготовитьСтруктуруПараметровВывода();
    
    Если ОбъектыПечати = Неопределено Тогда
        ОбъектыПечати = Новый СписокЗначений;
    КонецЕсли;
    
    КоллекцияПечатныхФорм = ПодготовитьКоллекциюПечатныхФорм(Новый Массив);
    
    Если ТипЗнч(ИменаМакетов) = Тип("Строка") Тогда
        ИменаМакетов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИменаМакетов);
    Иначе // Тип("Массив")
        ИменаМакетов = ОбщегоНазначенияКлиентСервер.СкопироватьМассив(ИменаМакетов);
    КонецЕсли;
    
    ПрефиксВнешнихПечатныхФорм  = "ВнешняяПечатнаяФорма.";
    ИсточникВнешнихПечатныхФорм = ИмяМенеджераПечати;
    Если МассивОбъектов.Количество() > 0 Тогда
        ИсточникВнешнихПечатныхФорм = МассивОбъектов[0].Метаданные().ПолноеИмя();
    КонецЕсли;
    ВнешниеПечатныеФормы = СписокПечатныхФормИзВнешнихИсточников(ИсточникВнешнихПечатныхФорм);
    
    // добавление внешних печатных форм в комплект
    ДобавленныеВнешниеПечатныеФормы = Новый Массив;
    Если ТипЗнч(ПараметрыПечати) = Тип("Структура")
        И ПараметрыПечати.Свойство("ДополнитьКомплектВнешнимиПечатнымиФормами")
        И ПараметрыПечати.ДополнитьКомплектВнешнимиПечатнымиФормами Тогда
        
        ИдентификаторыВнешнихПечатныхФорм = ВнешниеПечатныеФормы.ВыгрузитьЗначения();
        Для Каждого Идентификатор Из ИдентификаторыВнешнихПечатныхФорм Цикл
            Если ИменаМакетов.Найти(ПрефиксВнешнихПечатныхФорм + Идентификатор) = Неопределено Тогда
                ИменаМакетов.Добавить(ПрефиксВнешнихПечатныхФорм + Идентификатор);
                ДобавленныеВнешниеПечатныеФормы.Добавить(ПрефиксВнешнихПечатныхФорм + Идентификатор);
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    Для Каждого ИмяМакета Из ИменаМакетов Цикл
        // проверка наличия уже напечатанной формы
        НайденнаяПечатнаяФорма = КоллекцияПечатныхФорм.Найти(ИмяМакета, "ИмяМакета");
        Если НайденнаяПечатнаяФорма <> Неопределено Тогда
            ПоследняяДобавленнаяПечатнаяФорма = КоллекцияПечатныхФорм[КоллекцияПечатныхФорм.Количество()-1];
            Если ПоследняяДобавленнаяПечатнаяФорма.ИмяМакета = НайденнаяПечатнаяФорма.ИмяМакета Тогда
                ПоследняяДобавленнаяПечатнаяФорма.Экземпляров = ПоследняяДобавленнаяПечатнаяФорма.Экземпляров + 1;
            Иначе
                КопияПечатнойФормы = КоллекцияПечатныхФорм.Добавить();
                ЗаполнитьЗначенияСвойств(КопияПечатнойФормы, НайденнаяПечатнаяФорма);
                КопияПечатнойФормы.Экземпляров = 1;
            КонецЕсли;
            Продолжить;
        КонецЕсли;
        
        // поиск указания дополнительного менеджера печати в имени печатной формы
        ИмяДополнительногоМенеджераПечати = "";
        Идентификатор = ИмяМакета;
        ВнешняяПечатнаяФорма = Неопределено;
        Если Найти(Идентификатор, ПрефиксВнешнихПечатныхФорм) > 0 Тогда // это внешняя печатная форма
            Идентификатор = Сред(Идентификатор, СтрДлина(ПрефиксВнешнихПечатныхФорм) + 1);
            ВнешняяПечатнаяФорма = ВнешниеПечатныеФормы.НайтиПоЗначению(Идентификатор);
        ИначеЕсли Найти(Идентификатор, ".") > 0 Тогда // указан дополнительный менеджер печати
            Позиция = СтроковыеФункцииКлиентСервер.НайтиСимволСКонца(Идентификатор, ".");
            ИмяДополнительногоМенеджераПечати = Лев(Идентификатор, Позиция - 1);
            Идентификатор = Сред(Идентификатор, Позиция + 1);
        КонецЕсли;
            
        ВременнаяКоллекцияДляОднойПечатнойФормы = ПодготовитьКоллекциюПечатныхФорм(Идентификатор);
        
        Если ВнешняяПечатнаяФорма <> Неопределено Тогда
            // печать внешней печатной формы
            УправлениеПечатьюПереопределяемый.ПечатьПоВнешнемуИсточнику(
                ВнешняяПечатнаяФорма(ВнешняяПечатнаяФорма.Значение, ИсточникВнешнихПечатныхФорм),
                Новый Структура("ИдентификаторКоманды, ОбъектыНазначения", ВнешняяПечатнаяФорма.Значение, МассивОбъектов),
                ВременнаяКоллекцияДляОднойПечатнойФормы,
                ОбъектыПечати,
                ПараметрыВывода);
        Иначе
            // выбор менеджера печати
            ИспользуемыйМенеджерПечати = ИмяДополнительногоМенеджераПечати;
            Если ПустаяСтрока(ИспользуемыйМенеджерПечати) Тогда
                ИспользуемыйМенеджерПечати = ИмяМенеджераПечати;
            КонецЕсли;
            МенеджерПечати = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИспользуемыйМенеджерПечати);

            // печать внутренней печатной формы
            МенеджерПечати.Печать(МассивОбъектов, ПараметрыПечати, ВременнаяКоллекцияДляОднойПечатнойФормы, ОбъектыПечати, ПараметрыВывода);
        КонецЕсли;
        
        // обновление коллекции
        Отказ = ВременнаяКоллекцияДляОднойПечатнойФормы.Количество() = 0;
        // предполагается одна печатная форма, но для обратной совместимости принимается вся коллекция.
        Для Каждого ВременнаяПечатнаяФорма Из ВременнаяКоллекцияДляОднойПечатнойФормы Цикл
            Если ВременнаяПечатнаяФорма.ТабличныйДокумент <> Неопределено Тогда
                ПечатнаяФорма = КоллекцияПечатныхФорм.Добавить();
                ЗаполнитьЗначенияСвойств(ПечатнаяФорма, ВременнаяПечатнаяФорма);
                Если ВременнаяКоллекцияДляОднойПечатнойФормы.Количество() = 1 Тогда
                    ПечатнаяФорма.ИмяМакета = ИмяМакета;
                    ПечатнаяФорма.ИмяВРЕГ = ВРег(ИмяМакета);
                КонецЕсли;
            Иначе
                // возникла ошибка при формировании печатной формы
                Отказ = Истина;
            КонецЕсли;
        КонецЦикла;
        
        // вызов исключения при возникновении ошибки
        Если Отказ Тогда
            ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'При формировании печатной формы ""%1"" возникла ошибка. Обратитесь к администратору.'"), ИмяМакета);
            ВызватьИсключение(ТекстСообщенияОбОшибке);
        КонецЕсли;
        
    КонецЦикла;
    
    // установка количества экземпляров табличным документам
    Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
        Если ДобавленныеВнешниеПечатныеФормы.Найти(ПечатнаяФорма.ИмяМакета) <> Неопределено Тогда
            ПечатнаяФорма.Экземпляров = 0; // для автоматически добавленных форм
        КонецЕсли;
        Если ПечатнаяФорма.ТабличныйДокумент <> Неопределено Тогда
            ПечатнаяФорма.ТабличныйДокумент.КоличествоЭкземпляров = ПечатнаяФорма.Экземпляров;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
9 ilyavorobyev
 
24.11.14
09:36
(8) а где еще используется ВнешниеПечатныеФормы? ей присваивается значение а дальше вызова снова я не вижу, попробуй закомментировать.
10 pers200590
 
24.11.14
14:32
(9)Пробовал вылетает еще куча ошибок
11 pers200590
 
25.11.14
11:49
форумчане, помогите с решением проблемы
12 makaorel
 
25.11.14
11:52
из правила тоже ошибка?
13 pers200590
 
25.11.14
12:05
(12) не понял
14 makaorel
 
25.11.14
12:40
(23) если открыть правило обмена, то там тоже есть возможность печати кодов
15 pers200590
 
25.11.14
14:10
(14) да тоже самое происходит
16 pers200590
 
27.11.14
08:20
прошу помощи
17 Мимохожий Однако
 
27.11.14
08:26
Какая платформа? Возьми копию обновись до последней конфигурации.
18 pers200590
 
27.11.14
08:30
Платформа 8.3 . Обновление на последний релиз конфигурации не предлагать так как не актуально пока
19 Мимохожий Однако
 
27.11.14
08:32
Попробуй на 8.2. Удивишься. Если хочешь разобраться, то мог бы на копии и последний релиз попробовать.
20 pers200590
 
27.11.14
08:33
(19) стоп я ошибся платформа 8.2
21 Мимохожий Однако
 
27.11.14
08:34
Путаник ))
22 pers200590
 
27.11.14
08:34
(19) на платформе 8.3 в релизе 11.1.6 тоже самое не работает
23 pers200590
 
27.11.14
09:52
ау
24 makaorel
 
27.11.14
11:07
(23) выгрузи на весы
25 pers200590
 
28.11.14
15:19
и кстати в релизе 11.1.6 из правил обмена с весами печать кодов возможна, а в других местах нет. Обьясните почему
26 pers200590
 
29.11.14
13:15
ап