8.х Как в 1С 8.1 в печатной форме обратится к регистру сведений?

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

  1. TopicStarter Overlay
    meverikxp
    Offline

    meverikxp Опытный в 1С

    Регистрация:
    9 мар 2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Код:
    ТабДок = Новый ТабличныйДокумент;
    
    Макет = Документы.СервисныйЦентр.ПолучитьМакет("Друк");
    // Заголовок
    Область = Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(Область);
    // Шапка
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ЭтотОбъект);
    
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    |	КонтактнаяИнформация.Объект,
    |	КонтактнаяИнформация.Тип,
    |	КонтактнаяИнформация.Вид,
    |	КонтактнаяИнформация.Представление
    |ИЗ
    |	РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |	КонтактнаяИнформация.Объект = &Объект
    |	И КонтактнаяИнформация.Тип = &Тип
    |	И КонтактнаяИнформация.Вид = &Вид";
    
    Запрос.УстановитьПараметр("Объект",Заказчик);
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);	// если отбор не нужен, то уберите условие
    Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
    ВыборкаКонтактов = Запрос.Выполнить().Выбрать();
    Пока ВыборкаКонтактов.Следующий() Цикл
    
    Сообщить(""+ВыборкаКонтактов.Объект + "" + ВыборкаКонтактов.Представление);
    
    КонецЦикла; 
    Шапка.Параметры.Адрес = ВыборкаКонтактов.Представление;
    
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Телефон);
    Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
    ВыборкаКонтактов = Запрос.Выполнить().Выбрать();
    Пока ВыборкаКонтактов.Следующий() Цикл
    
    Сообщить(""+ВыборкаКонтактов.Объект + "" + ВыборкаКонтактов.Представление);
    
    КонецЦикла; 
    Шапка.Параметры.Телефон = ВыборкаКонтактов.Представление;
    
    ТабДок.Вывести(Шапка);
    
    
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    И что выдает вот так

    Фамилия ИмяГород
    Фамилия ИмяТелефон
    Фамилия ИмяГород
    Фамилия ИмяТелефон


    А как надо?

    Вы видно весь этот текст кодаа в цикл поместили какой то?
    что у вас он 2 раза исполнятеся
  3. TopicStarter Overlay
    meverikxp
    Offline

    meverikxp Опытный в 1С

    Регистрация:
    9 мар 2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    нет сообщение выскакивает 1 раз
    Фамилия ИмяАдрес
    Фамилия ИмяТелефон

    а второй раз а прошлого осталось, смысл в том, что разве вообще нужно что б выскакивало это сообщение?
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Нет -это для проверки было. закоментируйте строчки

    Код:
    Сообщить(""+ВыборкаКонтактов.Объект + "" + ВыборкаКонтактов.Представление);
    
    И они не будут выскакивать
  5. TopicStarter Overlay
    meverikxp
    Offline

    meverikxp Опытный в 1С

    Регистрация:
    9 мар 2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    И действительно нет, осталось еще совсем немножко, как сделать что б при изменении заказчика в поле адрес вставлялся адрес и телефон контрагента? Очень прошу помогите еще с этим.
  6. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    В какое поле адрес ? где оно распологается? Хотите что бы в дной строке выводилось или как? если в одной строке то
    Вот кусок нижней части кода будет так
    сточку
    Код:
    Шапка.Параметры.Адрес = ВыборкаКонтактов.Представление;
    
    меняйте на

    АдресКонтр = ВыборкаКонтактов.Представление;

    а внизу самом вместо

    Код:
    Шапка.Параметры.Телефон = ВыборкаКонтактов.Представление;
    
    пишите

    Код:
    Шапка.Параметры.Адрес= "Адрес контрагента: "+АдресКонтр +" телефон "+ВыборкаКонтактов.Представление
    
    Вот в один параметр адрес мы записали и телефон и адрес, можно конечно через шаблон но дольше объяснять. или все таки вам не это нужно
  7. TopicStarter Overlay
    meverikxp
    Offline

    meverikxp Опытный в 1С

    Регистрация:
    9 мар 2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Это тоже меня интересовало, но сейчас немножко о другом, у меня есть поле в Диалоге документа - Адрес, и хотелось бы когда выбираешь заказчика в поле адрес вводилась инфа о Заказчике, что б кто принимает товар сразу видел вся ли инфа есть для данного контрагента, а то если смотреть уже на сформированую печатную форму немножко неудобно.
  8. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    переносите весь этот запрос в процедуру При измении В элементе заказчик

    и в этом коде меняете

    Ваш
    Шапка.Параметры.Адрес

    На имя реквизита формы Папример он у вас называется АдресКонтрагента, я так понимю он у вас ти строковый. вот и все
  9. TopicStarter Overlay
    meverikxp
    Offline

    meverikxp Опытный в 1С

    Регистрация:
    9 мар 2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    спасибо, сейчас попробую, но мне кажется если перенести запрос, то тогда, первый запрос станет не нужным, лучше будет вставить в печ. форму Текстовый реквизит и все.
  10. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну да если вы туда перенесете то в печатную форму то параметр шапки можно заполнить данным реквизитом
  11. TopicStarter Overlay
    meverikxp
    Offline

    meverikxp Опытный в 1С

    Регистрация:
    9 мар 2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Огромное спасибо все получилось, запрос оставил там и там, что б нельзя было дописывать, если нужно что-то изменить пускай в конт.инф. меняют, тему можно закрывать
  12. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну в таком случае запрос этот можновынести в отдельную функцию, с возвращаемыми параметрами и т.д но это уже совсем другая история

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