8.х Данные ТЗ в макет печатного документа

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

  1. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    На форме есть ТЗ, к которой содержаться данные, получаемые из запроса к внешней ис. Если так же макет печатной формы, уже нарисован. Как данные из этой ТЗ передать в макет печати?
    пробовала как обычно через параметр, но он ругается.... Формы обычные
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Код показывайте. Вы макет уже вывели и хотите туда "подгрузить" еще данные ?
  3. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    да.
    Заполняю данными из внешней базы. Засовывыю из в ТЗ СтоимостьУслуг
    Код:
    Процедура ЗаполнитьИзИРСНажатие(Элемент)
        //
        //Traffic2ConnStr = TCWEBUtils.Connection;
        //SqlConnectiontoTraffik2 = new SqlConnection (Traffic2ConnStr);
        //SqlCommandcdm = new SqlCommand();
        //cmd.Connection=toTrafic2;
    
        ТекстSQL = "
        |declare @IRSNumber varchar (10)
        |set @IRSNumber = '9093765'
        |select * from ( 
        |select * from ( select
        |(select ReferenceAccount from vReference where ReferenceId=WorkTypeId) ServiceName,
        |(select  ReferenceAccount from vReference where ReferenceId=WorkTypeId) ServiceCode,
        |ExecSum/isnull(isnull(KontQnt, DocQnt),1) SrcExecRate
        |from vExecTransport
        |where
        |DetailTransId=(select top 1 DetailTransId from vDetailTransport
        |where ReferenceID in (selectReferenceIdfrom vReference where ReferenceTitl @IrsNumber)))t
        |where ServiceCode like '2.10.%') tab2
        |where (not ServiceCode like '2.10.05.2%') or (not ServiceCode like '2.10.05.5%')
        |or (notServiceCode like '2.10.05.02%') or (not ServiceCode like '2.10.05.05%')";
        ДатаСет = ВнешниеСоединения.ЗапросSQL(ТекстSQL);
       
        СтоимостьУслуг.Загрузить(ДатаСет);
       
        //ЭлементыФормы.СтоимостьУслуг.Значение = ДатаСет.Выгрузить();
        //ЭлементыФормы.СтоимостьУслуг.СоздатьКолонки();
       
    КонецПроцедуры
    
    В модуле объекта в функции где формируется печатная форма добавляю
    Код:
     Обл.Параметры.СтоимостьУслуг=СтоимостьУслуг;
    
    на макете в нужную ячейку добавляю параметр "СтоимостьУслуг"
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ругается на что?
    Обл.Параметры.СтоимостьУслуг=СтоимостьУслуг; - это что такое

    по коду СтоимостьУслуг.Загрузить(ДатаСет); я так понял это таблица значений или еще чт то типа этого

    Вы в параметр пристваивает таблицу значений?
  5. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    Да СтоимостьУслуг это таблица значений, да я пыталась в параметр ее присвоить..
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну и что Вы в макете хотите то увидеть, он же вам в печатной форме в одном парамтере ТЗ не отобразит
  7. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    ну в результате из запроса у меня будет одна строчка, вот бы хотелось ее увидеть на макете.....
    А как тогда? ТЗ циклом обходить? или как?
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Да циклом обходите ТЗ и делает чтото вроде

    Для каждого стр из ТЗ Цикл

    Обл.Параметры.Заполнить(стр);
    ТабДок.Вывести(Обл);

    КонецЦикла;
  9. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    пустота.... Так как мне нужно в конкретное место выгрузить данные из ТЗ, сделала еще одну область на макете.. но ничего не выводиться((((
    Код:
      Форма = ЭтотОбъект.ПолучитьФорму("ФормаДокумента");
            мСтоимостьУслуг = Форма.ЭлементыФормы.СтоимостьУслуг.Значение;
    Усл   = Макет.ПолучитьОбласть("Усл");
    
    
    Для каждого стр из мСтоимостьУслуг Цикл
    
    Усл.Параметры.Заполнить(стр);
    ТабДокумент.Вывести(Усл);
    
    КонецЦикла; 

    Вложения:

    • макет.jpg
      макет.jpg
      Размер файла:
      832,7 КБ
      Просмотров:
      3
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Чет Вы меня все больше и больше удивляете. начинали с ТЗ а теперь оказывается что у Вас праметрСтоимость услуг - обыный "одинарный параметрт"
    давайте по порядку
    1. Зачем данные получать с формы,у Вас что объект с данными еще не записан?
    2. ладно пусть с формы Форма.ЭлементыФормы.СтоимостьУслуг. - это что за поле?
    отладчиком пользоватся умеете?
  11. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    Умею) Это я обратилась к ТЗ на форме, без этого он выдает ошибку что переменная неопределена. А отладчиком проходила он все выводит, видно данные, но в макете ничего нет((
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    ОК те. в отладкие у Вас мСтоимостьУслуг - это ТЗ так?
    Я смортю у Вас ваша область она же в другой области находится т.е Вам надо получить сначало область Оборотная
    а потом уже свою область
    Вроде что то этого

    Оборот = Макет.ПолучитьОбласть("Оборотная");
    усл = Оборот.ПолучитьОбласть("Усл");
  13. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    о спасибо! сейчас хоть что то вышло))
    Вышло СтрокаТаблицыЗначений, а как само значение вытащить?
    Последнее редактирование: 9 июн 2015
  14. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    ну или в типовых примеры посмотрите как к ней обращаются
  15. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    я уже совсем запуталась....... убрала область УСЛ
    пробую так
    Код:
     Форма = ЭтотОбъект.ПолучитьФорму("ФормаДокумента");
            СтоимостьУслуг = Форма.ЭлементыФормы.СтоимостьУслуг.Значение;
    Обл   = Макет.ПолучитьОбласть("Оборотная");
    
    
    
    Для каждого стр из СтоимостьУслуг Цикл
    
    обл.Параметры.СтоимостьУслуг=стр;
    ТабДокумент.Вывести(обл);
    
    КонецЦикла;
    
    на макете выводиться СтрокаТаблицыЗначений .... посмотрела примеры все так же, а результата нет.
    а вариант
    Код:
    обл.Параметры.Заполнить(стр);
    вообще ничего не выводит(((
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Вы читали что я вам выше написал, когда област в области - то она получается не из макета а из области т.е двумя строками
    Оборот = Макет.ПолучитьОбласть("Оборотная");
    усл = Оборот.ПолучитьОбласть("Усл");
    т.е получили область, а уже из этой области получили область вложенную в нее
  17. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    вот так на макете вообще ничего нет...
    Код:
     Форма = ЭтотОбъект.ПолучитьФорму("ФормаДокумента");
            СтоимостьУслуг = Форма.ЭлементыФормы.СтоимостьУслуг.Значение;
            
            Оборот = Макет.ПолучитьОбласть("Оборотная");
            Усл   = Оборот.ПолучитьОбласть("Усл");
    
    
    Для каждого стр из СтоимостьУслуг Цикл
    
    усл.Параметры.Заполнить(стр);
    ТабДокумент.Вывести(усл);
    
    КонецЦикла;
    
    
  18. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну сначало то оборотк вывести надо
    --- Объединение сообщений, 10 июн 2015 ---
    Вот так что нить выводит

    Код:
    Форма = ЭтотОбъект.ПолучитьФорму("ФормаДокумента");
    СтоимостьУслуг = Форма.ЭлементыФормы.СтоимостьУслуг.Значение;
    
    Оборот = Макет.ПолучитьОбласть("Оборотная");
    Усл = Оборот.ПолучитьОбласть("Усл");
    
    ТабДокумент.Вывести(Оборот);
    Для каждого стр из СтоимостьУслуг Цикл
    
    усл.Параметры.Заполнить(стр);
    ТабДокумент.Вывести(усл);
    
    КонецЦикла;
  19. TopicStarter Overlay
    Светлана5291
    Offline

    Светлана5291 Опытный в 1С

    Регистрация:
    6 фев 2013
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    26
    нет..... пустота...
  20. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    ну освобожусь чуть попозже попробую

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