Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Не видит область на макете          
burza Подменю пользователя
сообщение 07.06.23, 11:14
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

нужно зделать штрихование документов в УНФ. вот что есть. в обработчик не попадает область макета где штрихкод,немогу понять что не так.

Модуль ШтрихкодированиеПечатныхФорм
    Если Макет.Области.Найти("ОбластьШтрихкода") <> Неопределено Тогда
            
            // Проверить картинку штрихкода в области "Штрихкод"
            ОбластьМакетаШтрихкод = Макет.ПолучитьОбласть("ОбластьШтрихкода");
            Если ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакетаШтрихкод) Тогда
                ОбластьМакета = ОбластьМакетаШтрихкод;
                ВыводитьШтрихкодВОтдельнуюОбласть = Истина;
            Иначе
                Возврат;
            КонецЕсли;
        Иначе
            Возврат;
        КонецЕсли;


Ну и модульменеджера из обработки где макет: модульменеджера из обработки
Функция СформироватьПФ(ОписаниеПечатнойФормы, ДанныеОбъектовПечати, ОбъектыПечати) Экспорт
    Перем ПервыйДокумент, НомерСтрокиНачало, Ошибки;
    
    Макет                = УправлениеПечатью.МакетПечатнойФормы(ОписаниеПечатнойФормы.ПолныйПутьКМакету);
    
    КодЯзыкаПечать       = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();    
    Макет.КодЯзыкаМакета = КодЯзыкаПечать;
    ТабличныйДокумент    = ОписаниеПечатнойФормы.ТабличныйДокумент;
    ДанныеПечати        = Новый Структура;
    ЕстьТЧЗапасы        = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаЗапасы") <> Неопределено);
    ЕстьТЧМатериалы        = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаМатериалы") <> Неопределено);
    ЕстьПоложениеСклада    = (ДанныеОбъектовПечати.Колонки.Найти("ПоложениеСклада") <> Неопределено);
    
    Для каждого ДанныеОбъекта Из ДанныеОбъектовПечати Цикл
        
        СкладВШапке = (НЕ ЕстьПоложениеСклада ИЛИ ДанныеОбъекта.ПоложениеСклада<>Перечисления.ПоложениеРеквизитаНаФорме.ВТабличнойЧасти);
        ПечатьДокументовУНФ.ПередНачаломФормированияДокумента(ТабличныйДокумент, ПервыйДокумент, НомерСтрокиНачало, ДанныеПечати);
        
        МассивОбластейМакета = Новый Массив;
        МассивОбластейМакета.Добавить("Заголовок");
        //{[+](фрагмент ДОБАВЛЕН), АСВ 08.09.2020 19:16:01
        Попытка
            СведенияОбКонтрагенте = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(ДанныеОбъекта.Контрагент, ДанныеОбъекта.ДатаДокумента, , , КодЯзыкаПечать);
            ДолгКлиента = ПолучитьСуммуДолга(ДанныеОбъекта.Контрагент,ДанныеОбъекта.ДатаДокумента,0,КодЯзыкаПечать);
            
            печНакладные = ПолучитьНакладныеТекущегоДня(ДанныеОбъекта.Контрагент,ДанныеОбъекта.ДатаДокумента,ДанныеОбъекта.Склад,ДанныеОбъекта.Ссылка);
            
            МассивОбластейМакета.Добавить("Покупатель");
            МассивОбластейМакета.Добавить("НакладныеТекущегоДня");
        Исключение
        КонецПопытки;
        
        МассивОбластейМакета.Добавить("Комментарий");
        //}АСВ 08.09.2020 19:16:01
        Если СкладВШапке Тогда
            МассивОбластейМакета.Добавить("Склад");
        КонецЕсли;
        МассивОбластейМакета.Добавить("ВремяПечати");
        
        НомерДокумента = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(ДанныеОбъекта.ДатаДокумента, ДанныеОбъекта.Номер, ДанныеОбъекта.Префикс);
        ТекстЗаголовка = ДанныеОбъекта.ПредставлениеРегистратора + "  № " + НомерДокумента + НСтр("ru=' от ';uk=' від '", КодЯзыкаПечать) + Формат(ДанныеОбъекта.ДатаДокумента, "Л="+КодЯзыкаПечать+"; ДЛФ=DD");
        ДанныеПечати.Вставить("ТекстЗаголовка", ТекстЗаголовка);
        ДанныеПечати.Вставить("ПредставлениеСклада", ДанныеОбъекта.ПредставлениеСклада);
        
        //{[+](фрагмент ДОБАВЛЕН), АСВ 08.09.2020 19:17:47

        Попытка
            ДанныеПечати.Вставить("печКонтрагент",ДанныеОбъекта.Контрагент.Наименование);
            ДанныеПечати.Вставить("печТелефоны",СведенияОбКонтрагенте.Телефоны);
            ДанныеПечати.Вставить("печФизАдресКонтрагент",СведенияОбКонтрагенте.ФактическийАдрес);
            ДанныеПечати.Вставить("ДолгКлиента",ДолгКлиента);
        Исключение
            
        КонецПопытки;
    
        
        ДанныеПечати.Вставить("тКомментарий",ДанныеОбъекта.Ссылка.Комментарий);

        Если печНакладные <> "" Тогда
            ДанныеПечати.Вставить("печНакладные",печНакладные);
            ДанныеПечати.Вставить("текДень",Формат(ДанныеОбъекта.ДатаДокумента, "ДЛФ=D"));
        Иначе
            МассивОбластейМакета.Удалить(МассивОбластейМакета.Найти("НакладныеТекущегоДня"));
        КонецЕсли;
        //}АСВ 08.09.2020 19:17:47
        
        Если СкладВШапке И ПолучитьФункциональнуюОпцию("УчетПоЯчейкам") Тогда
            МассивОбластейМакета.Вставить(2, "Ячейка");
            ДанныеПечати.Вставить("ПредставлениеЯчейки", ДанныеОбъекта.ПредставлениеЯчейки);
        КонецЕсли;
        
        ВремяПечати = НСтр("ru='Дата и время печати: ';uk='Дата і час друку: '", КодЯзыкаПечать) + ТекущаяДатаСеанса() + НСтр("ru='. Пользователь: ';uk='. Користувач: '", КодЯзыкаПечать) + Пользователи.АвторизованныйПользователь();
        ДанныеПечати.Вставить("ВремяПечати", ВремяПечати);
        
        Для каждого ИмяОбласти Из МассивОбластейМакета Цикл
            
            ОбластьМакета = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, ИмяОбласти, "", Ошибки);
            Если ОбластьМакета <> Неопределено Тогда
                 ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеОбъекта.Ссылка);
                ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
                ТабличныйДокумент.Вывести(ОбластьМакета);
                
            КонецЕсли;
            
        КонецЦикла;
        
        ОбластьМакета = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Строка", "", Ошибки);
        ОбластьМакетаШапка = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ШапкаТаблицы", "", Ошибки);
        Если ОбластьМакета <> Неопределено
            И ОбластьМакетаШапка <> Неопределено Тогда
            
            ОбластьМакетаИтого = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Итого", "", Ошибки);
            ТаблицаСерийныеНомера = ДанныеОбъекта.ТаблицаСерийныеНомера;
            ПараметрыНоменклатуры = Новый Структура;
            
            Если ЕстьТЧЗапасы Тогда
                
                ДанныеПечати.Вставить("ТипНоменклатурыТаблицы", Нстр("ru='Запасы';uk='Запаси'", КодЯзыкаПечать));
                ОбластьМакетаШапка.Параметры.Заполнить(ДанныеПечати);
                ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
                
                Для каждого СтрокаТаблицыЗапасы Из ДанныеОбъекта.ТаблицаЗапасы Цикл
                    
                    Если НЕ СтрокаТаблицыЗапасы.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас Тогда
                        
                        Продолжить;
                        
                    КонецЕсли;
                    
                    Если СтрокаТаблицыЗапасы.Количество = 0 Тогда
                        Продолжить;
                    КонецЕсли;
                    
                    ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаТаблицыЗапасы, ДанныеПечати, ПараметрыНоменклатуры, ТаблицаСерийныеНомера);
                    
                    ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
                    ОбластьМакета.Параметры.ТоварнаяГруппа = СокрЛП(СтрокаТаблицыЗапасы.РодительГруппы)+"; "+СокрЛП(СтрокаТаблицыЗапасы.Группа);
                    ТабличныйДокумент.Вывести(ОбластьМакета);
                    
                КонецЦикла;
                
                Если ОбластьМакетаИтого <> Неопределено Тогда
                    
                    ТабличныйДокумент.Вывести(ОбластьМакетаИтого);
                    
                КонецЕсли;
                
            КонецЕсли;
            
            Если ЕстьТЧМатериалы Тогда
                
                ДанныеПечати.Вставить("ТипНоменклатурыТаблицы", Нстр("ru='Материалы';uk='Матеріали'", КодЯзыкаПечать));
                ОбластьМакетаШапка.Параметры.Заполнить(ДанныеПечати);
                ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
                
                Для каждого СтрокаТаблицыМатериалов Из ДанныеОбъекта.ТаблицаМатериалы Цикл
                    
                    Если НЕ СтрокаТаблицыМатериалов.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас Тогда
                        
                        Продолжить;
                        
                    КонецЕсли;
                    
                    ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаТаблицыМатериалов, ДанныеПечати, ПараметрыНоменклатуры, ТаблицаСерийныеНомера);
                    
                    ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
                    ТабличныйДокумент.Вывести(ОбластьМакета);
                    
                КонецЦикла;
                
                Если ОбластьМакетаИтого <> Неопределено Тогда
                    
                    ТабличныйДокумент.Вывести(ОбластьМакетаИтого);
                    
                КонецЕсли;
                
            КонецЕсли;
            
        КонецЕсли;
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеОбъекта.Ссылка);
        
    КонецЦикла;
    
    //{[+](фрагмент ДОБАВЛЕН), АСВ 03.02.2021 22:05:47
    ТабличныйДокумент.ТолькоПросмотр = Истина;
    ТабличныйДокумент.Защита = Истина;
    //}АСВ 03.02.2021 22:05:47
    
    Возврат ТабличныйДокумент;




Сообщение отредактировал Vofka - 07.06.23, 11:12

alex-l1904 Подменю пользователя
сообщение 07.06.23, 11:26
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 11 раз
Рейтинг: 11

burza @ Сегодня, 12:14 * ,

можна ще код цього ПечатьДокументовУНФ.ПолучитьОбластьБезопасно( ?

burza @ Сегодня, 12:14 * ,

треба додати ОбластьШтрихкода в МассивОбластейМакета

burza Подменю пользователя
сообщение 07.06.23, 11:36
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

alex-l1904 @ Сегодня, 12:26 * ,

Функция ПолучитьОбластьБезопасно(Макет, ИмяОбласти, ПредставлениеОбласти, Ошибки) Экспорт
    Перем ОбластьМакета;
    
    Если Макет.Области.Найти(ИмяОбласти) = Неопределено Тогда
        
        ТекстСообщения = НСтр("ru='ВНИМАНИЕ! Не обнаружена область макета %1. Возможно используется пользовательский макет.';uk='УВАГА! Не виявлено ділянку макета %1. Можливо використовується користувацький макет.'");
        ТекстСообщения = СтрШаблон(ТекстСообщения, ?(ПустаяСтрока(ПредставлениеОбласти), ИмяОбласти, ПредставлениеОбласти));
        
        ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(Ошибки, , ТекстСообщения, Неопределено);
        
    Иначе
        
        ОбластьМакета = Макет.ПолучитьОбласть(ИмяОбласти);
        
    КонецЕсли;
    
    Возврат ОбластьМакета;
    
КонецФункции



Добавлял рядом с Заголовком , ничего. Или я не то делаю
МассивОбластейМакета = Новый Массив;
        МассивОбластейМакета.Добавить("Заголовок");
        МассивОбластейМакета.Добавить("ОбластьШтрихкода");


уже голову сломал, вроде долно работать а нет(

burza @ Сегодня, 12:29 * ,
Если ставить точкуОстановки то в макете просто области нету. вот найти и не может. а почему ее нету

Макет = УправлениеПечатью.МакетПечатнойФормы(ОписаниеПечатнойФормы.ПолныйПутьКМакету);

* КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();

alex-l1904 Подменю пользователя
сообщение 07.06.23, 12:38
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 11 раз
Рейтинг: 11

burza @ Сегодня, 12:36 * ,
перевіряйте який саме макет в
Макет = УправлениеПечатью.МакетПечатнойФормы(ОписаниеПечатнойФормы.ПолныйПутьКМакету)

(схоже що там інший макет...)

burza Подменю пользователя
сообщение 07.06.23, 13:12
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

alex-l1904 @ Сегодня, 13:38 * ,
макет той
вот и я не могу понять что не так. это капец


burza @ Сегодня, 13:40 * ,
куда смотреть уже не знаю(((

Сообщение отредактировал Vofka - 07.06.23, 16:23

denis84 Подменю пользователя
сообщение 07.06.23, 14:21
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 432
Из: Украина
Спасибо сказали: 138 раз
Рейтинг: 139.5

burza,
а сама картинка штрихкода не выходит за границы областиштрихкода? когда-то встречал такой прикол с подписями и печатью в документе

Сообщение отредактировал denis84 - 07.06.23, 14:21

burza Подменю пользователя
сообщение 07.06.23, 15:13
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

denis84 @ Сегодня, 15:21 * ,
нет, ругается что нету области штрихкода


Никто ничего не подскажет идеи кончились. Странно оно всё, должно работать а фиг))

denis84 Подменю пользователя
сообщение 07.06.23, 15:15
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 432
Из: Украина
Спасибо сказали: 138 раз
Рейтинг: 139.5

burza @ Сегодня, 15:53 * ,
уточните это Управление небольшой фирмой для Украины, редакция 1.6 или выше. чтоб я мог у себя глянуть.

Ну вот по тексту модуля не вижу где вы получаете область штрихкода?

Сообщение отредактировал denis84 - 07.06.23, 15:34

alex-l1904 Подменю пользователя
сообщение 07.06.23, 15:37
Сообщение #9

Говорящий
***
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 11 раз
Рейтинг: 11

Цитата(burza @ 07.06.23, 12:36) *
НСтр("ru='ВНИМАНИЕ! Не обнаружена область макета %1. Возможно используется пользовательский макет.';uk='УВАГА! Не виявлено ділянку макета %1. Можливо використовується користувацький макет.'");

оце у вас ? так ?

burza Подменю пользователя
сообщение 07.06.23, 15:37
Сообщение #10

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

denis84 @ Сегодня, 16:15 * ,
да это Управление небольшой фирмой для Украины, редакция 1.6 но модуль штрихование документов взял в 1.6.24.152

alex-l1904 Подменю пользователя
сообщение 07.06.23, 15:47
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 11 раз
Рейтинг: 11

alex-l1904 @ Сегодня, 16:37 * ,
в отладчику пошагово перевірте
УправлениеПечатью.МакетПечатнойФормы(

можливо макет из конфігурації заміняється користувацьким

burza Подменю пользователя
сообщение 08.06.23, 9:17
Сообщение #12

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

alex-l1904 @ Вчера, 16:37 * ,
нет.

по причине:
Область не найдена: ОбластьШтрихкода

alex-l1904 @ Вчера, 16:47 * ,
нет ссылка идет правильно на макет. више кидал фото


Оно вроде должно но нет, мистика блин

burza @ Сегодня, 9:55 * ,

При начале захвата макета в области должна попадать областьштрихкода(это донор там все ок) а в моем случае что не делаю обасть не попадает поэтому и найти не может

fly Подменю пользователя
сообщение 08.06.23, 9:22
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 237
Спасибо сказали: 51 раз
Рейтинг: 48

Администрирование -> Макеты печатных форм -> если есть, удаляете

или Регистр сведений
ПользовательскиеМакетыПечати

ищите название макета - удаляете или ставите использование = ЛОжь



УправлениеПечатью
Функция МакетПечатнойФормы(ПолныйПутьКМакету)

сначало ищет пользовательские макеты, потом идет уже к объектам конфигурации...

Сообщение отредактировал fly - 08.06.23, 9:23

Спасибо сказали: burza,

burza Подменю пользователя
сообщение 08.06.23, 9:37
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

fly @ Сегодня, 10:22 * ,
да я вот только что хотел писать, да нашел, всётаки были пользовательский макет) его редактировали

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 18:14
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!