8.х Как в один парамет печати из табличной части поместить несколько

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

  1. TopicStarter Overlay
    Ayria
    Offline

    Ayria Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    помогите, пожалуйста, написать код, который мог бы присваивать одному параметру печати несколько значений из табличной чати справочника, не зная количества этих значений, перед этим была сделан запрос на реквизиты счамого справочника и реквизиты табличной части
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Давайте свой запрос и подробнее напишите что вы хотите получить.
  3. TopicStarter Overlay
    Ayria
    Offline

    Ayria Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    да вы кажется мне и помогали с запросом, // Макет рабочей программы
    ТабДок = Новый ТабличныйДокумент;
    Макет = Справочники.КаталогИзданийДляСПО.ПолучитьМакет("НаПечать");

    // Заполнение шапки
    Область = Макет.ПолучитьОбласть("Шапка");
    ТабДок.Вывести(Область);


    //Создадим запрос
    Запрос = Новый Запрос("ВЫБРАТЬ
    | КаталогИзданийДляСПОАвторы.Ссылка.Код,
    | КаталогИзданийДляСПОАвторы.Ссылка.Наименование,
    | КаталогИзданийДляСПОАвторы.Ссылка.ВидПособия,
    | КаталогИзданийДляСПОАвторы.Ссылка.Дисциплина,
    | КаталогИзданийДляСПОАвторы.Ссылка.ГодИздания,
    | КаталогИзданийДляСПОАвторы.Ссылка.КолСтраниц,
    | КаталогИзданийДляСПОАвторы.Ссылка.Аннотация,
    | КаталогИзданийДляСПОАвторы.Ссылка.Гриф,
    | КаталогИзданийДляСПОАвторы.Ссылка.ДатаГрифа,
    | КаталогИзданийДляСПОАвторы.Ссылка.Просто,
    | КаталогИзданийДляСПОАвторы.ФИО
    | ИЗ Справочник.КаталогИзданийДляСПО.Авторы КАК КаталогИзданийДляСПОАвторы");


    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();


    // Заполнение таблицы
    ОбластьДанные = Макет.ПолучитьОбласть("Данные");


    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
    ОбластьДанные.Параметры.Номер = Прав(Выборка.Код,3);
    ОбластьДанные.Параметры.Данные = (Выборка.Наименование +" "+ Выборка.ВидПособия +" "+ Выборка.Дисциплина +" "+ Выборка.ГодИздания +" "+ Выборка.КолСтраниц);
    ОбластьДанные.Параметры.Аннотация = Выборка.Аннотация;
    ОбластьДанные.Параметры.Гриф = Лев(Выборка.ДатаГрифа, 10)+" "+"№"+ Выборка.Просто +" "+Выборка.Гриф ;
    ОбластьДанные.Параметры.Авторы = Выборка.ФИО;
    ТабДок.Вывести(ОбластьДанные);
    КонецЦикла;


    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    просто мне надо чтобы все ФИО в данном справочнике, если их несколько выводились в одну строку, а то мне создает нову строку с данными вправочника такимиже, только меняется колонка авторов
  4. TopicStarter Overlay
    Ayria
    Offline

    Ayria Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    я делала двойной цикл
    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
    ОбластьДанные.Параметры.Номер = Прав(Выборка.Код,3);
    ОбластьДанные.Параметры.Данные = (Выборка.Наименование +" "+ Выборка.ВидПособия +" "+ Выборка.Дисциплина +" "+ Выборка.ГодИздания +" "+ Выборка.КолСтраниц);
    ОбластьДанные.Параметры.Аннотация = Выборка.Аннотация;
    ОбластьДанные.Параметры.Гриф = Лев(Выборка.ДатаГрифа, 10)+" "+"№"+ Выборка.Просто +" "+Выборка.Гриф ;
    Парам = Выборка.Фио;
    КД=Выборка.Код;
    Пока Выборка.Следующий() Цикл
    Если КД=Выборка.Код тогда
    Перам = Перам+Выборка.Фио;
    КонецЕсли;
    ОбластьДанные.Параметры.Авторы = Парам;
    КонецЦикла;
    ТабДок.Вывести(ОбластьДанные);
    КонецЦикла;

    он мне соединял во едино 3 фамилии как надо, но выводил всего лишь 001 документ
  5. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Если результат надо выводить в таком виде - оставьте запрос тогда, в первоначальном виде, так как он был написан у вас в прошлой теме (до исправлений).
    Остальное все оставляете тоже самое, только в той часте где выводите фамилию пишите:

    Код:
    ФИО = "";
    ФИОДетальныеЗаписи = Выборка.Авторы.Выбрать();
    Пока ФИОДетальныеЗаписи.Следующий() Цикл
    ФИО = ФИО + Выборка.ФИО;
    КонецЦикла;
    ОбластьДанные.Параметры.Авторы = ФИО;
    
    
    Так попробуйте. И это, используйте тег code, для выделения участков кода, а то так разбирать неудобно.

    P.S. Только прогоните свой предыдущий запрос через конструктор.
  6. TopicStarter Overlay
    Ayria
    Offline

    Ayria Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    при нажатие кнопки ошибку выводит
    Справочник.КаталогИзданийДляСПО.Форма.ФормаСписка(50)}: Поле объекта не обнаружено (ФИО)
    ФИО = ФИО + Выборка.ФИО
  7. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Покажите запрос. Я же на память писал. В таблице значений Авторы, поле с фамилией-именем как называется?

    А. ну да:
    ФИО = ФИО + ", " + ФИОДетальныеЗаписи.ФИО;
  8. TopicStarter Overlay
    Ayria
    Offline

    Ayria Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    Код:
     Запрос = Новый Запрос("ВЫБРАТЬ
    | Справочник.КаталогИзданийДляСПО.Код,
    | Справочник.КаталогИзданийДляСПО.Наименование,
    | Справочник.КаталогИзданийДляСПО.ВидПособия,
    | Справочник.КаталогИзданийДляСПО.Дисциплина,
    | Справочник.КаталогИзданийДляСПО.ГодИздания,
    | Справочник.КаталогИзданийДляСПО.КолСтраниц,
    | Справочник.КаталогИзданийДляСПО.Аннотация,
    | Справочник.КаталогИзданийДляСПО.Гриф,
    | Справочник.КаталогИзданийДляСПО.ДатаГрифа,
    | Справочник.КаталогИзданийДляСПО.Просто,
    | Справочник.КаталогИзданийДляСПО.Авторы.*
    | ИЗ Справочник.КаталогИзданийДляСПО"); 
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    
    спасибо большое )))))) чтоб я без вас делала<SMILE>id=404 alt=':Смущаюсь:'</SMILE>
  9. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Ayria, а почему вы так и не прогнали запрос через конструктор? Просто откройте этот запрос в конструкторе, и нажмите ОК.
  10. TopicStarter Overlay
    Ayria
    Offline

    Ayria Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    это надо вызвать контекстное меню и Конструктор запроса?
  11. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Да.. Ставите курсор в любое место на тексте запроса, контексное меню, конструктор запроса и кнопка ОК. Также освойте конструктор запроса с обработкой результата: тоже самое что и конструктор запроса + можно сформировать макет печатной формы (в общем виде) или обход группировки. Все это здорово экономит время и уменьшает количество ошибок.
  12. TopicStarter Overlay
    Ayria
    Offline

    Ayria Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    Спасибо вам,))) я все сделаю как вы посоветовали, потому что это все мне очень пригодится в будущем

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