Вход | Регистрация

1С:Предприятие ::

Метки:

Таблицы значений

Я
   sov
 
25.02.04 - 10:13
Прошу помочь начинающему!!!
В примере Банкина М.А. "Простая бухгалтерская система" $2.37 Документ наряд на сборку в процедуре Заявка() есть кусок кода где создаётся таблица значений а потом выводится на печать стандартным способом. Но почему то, нет ни где намёка, что надо создать шаблон печати. Без шаблона выдаётся ошибка что не найдена секция Шапка и т.д. Вопрос: нужен ли при выводе на печать таблицы значений шаблон. Если нет, то как её вывести на печать.
 
  Рекламное место пустует
   bsa
1 - 25.02.04 - 10:40
По-умолчанию подставляется первая таблица шаблона из определенных в документе. Если у тебя нет ни одной таблицы шаблона либо нужная тебе таблица НЕ Первая, то 1С выдает сообщение об ошибке.  Во всяком случае на 19-ом релизе работает именно так. По любому лучше придерживаться "правил хорошего тона" при написании программных модулей и всегда определять таблицу-шаблон.
   Рупор абсурда
 
2 - 25.02.04 - 11:07
На фиг не нужен шаблон таблицы ...

Процедура ПечатьТЗ(ТЗ)  
    Перем Тип,Длина,Точность,Заголовок,Ширина,Фрмт,Положение;
  Если ТипЗначенияСтр(ТЗ)<>"ТаблицаЗначений" Тогда Возврат КонецЕсли;
  Таблица=СоздатьОбъект("Таблица");  
    Область=Таблица.Область(1,1);
    Область.Текст="НомерСтроки";
    Область.ШиринаСтолбца(10);
    Область.Контроль(4);
  Область.Полужирный(1);               
    Область.ВертикальноеПоложение(2);
  Область.РамкаОбвести(3,3,3,3);
  Для Х=1 По ТЗ.КоличествоКолонок() Цикл 
        Область=Таблица.Область(1,Х+1);
        ИД=ТЗ.ПолучитьПараметрыКолонки(Х,Тип,Длина,Точность,Заголовок,Ширина,Фрмт,Положение);
    Область.Текст=ИД+"
           |тип: "+Тип+"
             |длина: "+Длина+"
             |точность: "+Точность+"
             |заголовок: "+Заголовок+"
             |ширина: "+Ширина+"
             |формат: "+Фрмт+"
             |положение: "+Положение;
        Область.ШиринаСтолбца(?(Ширина>20,Ширина,20));
        Область.Контроль(2);
    Область.Полужирный(1);  
        Область.ВертикальноеПоложение(2);
    Область.РамкаОбвести(3,3,3,3);
  КонецЦикла;
  Кол=ТЗ.КоличествоСтрок();
  Для Х=1 По Кол Цикл
        Таблица.Область(Х+1,1).Текст=Х;
    Для У=1 По ТЗ.КоличествоКолонок() Цикл
            Таблица.Область(Х+1,У+1).Текст=ТЗ.ПолучитьЗначение(Х,У);
            Если ТипЗначения(ТЗ.ПолучитьЗначение(Х,У))>=10 Тогда
                Таблица.Область(Х+1,У+1).Расшифровка(ТЗ.ПолучитьЗначение(Х,У)); 
            КонецЕсли;
    КонецЦикла;
    Состояние("В таблицу выведено "+Х+" строк из "+Кол);
  КонецЦикла;
  Таблица.Показать();
КонецПроцедуры
   sov
 
3 - 25.02.04 - 11:18
Дополнение к вопросу о выводе на печать Таблицы значений.

Процедура Заявка()
// Печать спецификации

  ТабЗн=СоздатьОбъект("ТаблицаЗначений");
  ТабЗн.НоваяКолонка("Ком","Справочник.Комплектующие");
  ТабЗн.НоваяКолонка("Кол","Число",12,0);
  СпрКом=СоздатьОбъект("Справочник.Комплектация");
// Подчиненный справочнику Изделия справочник Комплектация

  ВыбратьСтроки();
// Обходим строки документа

  Пока ПолучитьСтроку()=1 Цикл
    СпрКом.ИспользоватьВладельца(Изделие);
// Выбираем комплектующие по изделию

    СпрКом.ВыбратьЭлементы();
// Обходим справочник с составом комплектов

    Пока СпрКом.ПолучитьЭлемент()=1 Цикл
      ТабЗн.НоваяСтрока();
      ТабЗн.Ком=СпрКом.ТекущийЭлемент().Комплектующее;
// Это мы определили, что входит в комплект

      ТабЗн.Кол=Кол;
// И сколько

    КонецЦикла;
    СпрКом.ИспользоватьВладельца("");
  КонецЦикла;
  СпрКом="";
  Таб=СоздатьОбъект("Таблица");
//Почему тут нет имени таблицы?

  Таб.ИсходнаяТаблица(""); 
  Таб.ВывестиСекцию("Шапка");//Тут возникает ошибка.

  ТабЗн.Свернуть("1","2");
// Суммируем строки с одинаковыми комплектующими

  ТабЗн.Сортировать("1");
  ТабЗн.ВыбратьСтроки();
  Стр=1;
  Пока ТабЗн.ПолучитьСтроку()=1 Цикл
    Комп=ТабЗн.Ком;
    НазвРодителя=СокрЛП(Комп.Родитель.Наименование);
    Поз1=Найти(НазвРодителя,"(");
    Поз2=Найти(НазвРодителя,")");
    ГОСТ=Сред(НазвРодителя,Поз1+1,Поз2-Поз1-1);
    Ком=СокрЛП(Комп.Наименование)+" "+ГОСТ;
    Колич=ТабЗн.Кол;
    Таб.ВывестиСекцию("Строка");
    Стр=Стр+1;
  КонецЦикла;
  Таб.ТолькоПросмотр(1);
  Таб.ПараметрыСтраницы(1,100,1);
  Таб.Показать("");
КонецПроцедуры
   OzzY
 
4 - 25.02.04 - 12:00
Не указали - вот и нету, хотя конечно было бы нужно.


Список тем форума
Рекламное место пустует   Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует