[РЕШЕНО] Ошибка "Значение не является значением объектного типа (Размер)"

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

  1. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. Ошибка появляется, если в одной строке размеры ячеек не одинаковые. В конкретном случае - ячейка с параметром <Цена> имеет размер 30, а <ЕдиницаНаименование> - 14.
    Когда размеры были одинаковые. Помимо всего прочего, некоторые размеры не работают в принципе. Т.е. даже если <Цена>и<ЕдиницаНаименование> оба с размером 14 - та же самая ошибка, как и при размере 16, 17,18 и т.д. Работали только размеры 30, 32, 25.. В чём может быть причина? Вот функция, которая выводит на печать, под спойлерами скриншоты.

    Код:
    Функция ПечатьЦенника() Экспорт
       
        Если НЕ ЗначениеЗаполнено(Организация) Тогда
            Предупреждение("Не выбрана организация!");
            Возврат Неопределено;
        КонецЕсли;
    
        ТабДокумент                     = Новый ТабличныйДокумент;
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ценник";
        Макет                           = ПолучитьМакет("Ценник");
        ОбластьЦенника                  = Макет.ПолучитьОбласть("Строка|Столбец");
       
        ПечШирина = Мин(Макс(ПечШирина, 20), 277);
        ПечВысота = Мин(Макс(ПечВысота, 20), 277);
        ПечКолонок= Мин(Макс(ПечКолонок, 1),  14);
        ПечСтрок  = Мин(Макс(ПечСтрок,   1),  14);
       
        ОбластьЦенника.Области.Орг.ШиринаКолонки = ПечШирина * 0.542 / 2;
        Для Каждого Область из ОбластьЦенника.Области Цикл
            Область.ВысотаСтроки = Область.Шрифт.Размер * 1.345 / 100 * ПечВысота * ?(Область.Имя = "Наим", 3.39, 1);
            Область.Шрифт = Новый Шрифт(Область.Шрифт, , Область.Шрифт.Размер / 100 * (ПечШирина+ПечВысота) / 2 +
                            ?(Область.Имя = "Наим", ДопНаим, 0) +
                            ?(Область.Имя = "Цена", ДопЦена, 0));
        КонецЦикла;
               
            ДатаПечати = РабочаяДата;
    
        ТекСтолбец = 0;
        ТекСтрока  = 0;
    
        Для Каждого СтрокаТаблицы Из Товары Цикл
            Если СтрокаТаблицы.Печать Тогда
                Для Тмп = 1 По СтрокаТаблицы.Количество Цикл
                    ОбластьЦенника.Параметры.Организация                = Организация;
                    ОбластьЦенника.Параметры.ОрганизацияНаименование    = Организация;
                    ОбластьЦенника.Параметры.Код                        = СтрокаТаблицы.Номенклатура.Код;
                    ОбластьЦенника.Параметры.Артикул                    = СтрокаТаблицы.Номенклатура.Артикул;
                    ОбластьЦенника.Параметры.НоменклатураНаименование   = СтрокаТаблицы.Номенклатура.НаименованиеПолное;
                    ОбластьЦенника.Параметры.ХарактеристикаНаименование = СтрокаТаблицы.ХарактеристикаНоменклатуры;
                    ОбластьЦенника.Параметры.Цена                       = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Цена, Валюта, "00");
                    ОбластьЦенника.Параметры.ДатаПечати                 = ДатаПечати;
                    ОбластьЦенника.Параметры.ЕдиницаНаименование        = СтрокаТаблицы.ЕдиницаИзмерения;
    
                    Если ТекСтолбец = 0 Тогда
                        ТабДокумент.Вывести(ОбластьЦенника);
                    Иначе
                        ТабДокумент.Присоединить(ОбластьЦенника);
                    КонецЕсли;
                   
                    ТекСтолбец = ТекСтолбец + 1;
    
                    Если ТекСтолбец = ПечКолонок Тогда
                        ТекСтрока  = ТекСтрока + 1;
                        ТекСтолбец = 0;
                    КонецЕсли;
    
                    Если ТекСтрока = ПечСтрок Тогда
                        ТекСтрока = 0;
                        ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                    КонецЕсли;
                КонецЦикла;
            КонецЕсли;
        КонецЦикла;
    
        ТабДокумент.ТолькоПросмотр = Истина;
    
        Возврат ТабДокумент;
    
    КонецФункции // ПечатьЦенника()

    [​IMG]

    [​IMG]

    [​IMG]

    Вложения:

  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    У шрифта нет свойства "размер".
    Katakiarika нравится это.
  3. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Спасибо. А как быть?
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Определится, размер чего должен быть изменен в коде, и переделать.
  5. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Понятно.. А с чем связано то, что при указании размера, например 30 или 25 - всё работает?
  6. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Каким образом и размер чего вы задавали вручную 30(25)?
  7. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    [​IMG]

    Ячейка <Цена> и рядом с ней, также в 5 строке - <ЕдиницаНаименование>. И это относится, по-сути, ко всему табличному документу. В каждой строке какие-то свои "рабочие" размеры.

    Вложения:

    • 23.png
      23.png
      Размер файла:
      47,2 КБ
      Просмотров:
      14
  8. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Это размеры шрифта в ячейке. В режиме отладки проверьте какое значение у Область.Шрифт.Размер при установленном вручную размере 30 и какое - при меньшем.

    Вы чего сделать-то хотите? Такое ощущение, что вы вообще не понимаете, что делаете.
  9. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    У меня тоже такое ощущение, честно говоря. Спасибо за помощь. Буду разбираться.
  10. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Начните с того, что верните все, как было и определитесь с тем, какой результат нужно получить в результате всех ваших действий.
  11. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    [​IMG]

    [​IMG]
    --- Объединение сообщений, 22 сен 2016 ---
    Получается, что размеры нужно программно изменять как-то?

    Вложения:

  12. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Не понятно, в чем принципиальное различие между тем, что есть и тем, что должно быть.
    Размеры чего вы хотите менять и самое главное - для чего?
  13. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Я сам не понимаю, в чём принципиальное различие. Я думаю, что его тут нет.
    Я не знаю уже, как объяснить. Не понимаю, чего хочет человек. Я так понял надо привести вид ценника при выводе на печать точь-в-точь к такому же виду, как и на фотографии, которую он мне прислал. Ну я и решил размер шрифта в ячейке изменить, а мне эта ошибка вылетела. Ладно, я прошу прощения за тупость. Уже конкретно запутался. Надо разговаривать с человеком и чётко выяснить, чё ему надо-то. Спасибо Вам за помощь. Будем считать вопрос закрытым.
  14. TopicStarter Overlay
    Katakiarika
    Offline

    Katakiarika

    Регистрация:
    9 сен 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Решил проблему следующим образом.
    Код:
    Для Каждого Область из ОбластьЦенника.Области Цикл
    //В начале данного цикла написал следующий код:
    Если Область.Шрифт = Неопределено Тогда
                       Продолжить;
    КонецЕсли;
    
    //Далее идёт остальной цикл

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