Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 20:07

Недостаточно фактических параметров

Автор aida103, 12 апр 2011, 02:42

0 Пользователей и 1 гость просматривают эту тему.

aida103

Здраствуйте. Я начинающий программист в среде 1С:Предприятие 8.1. Пытаюсь сделать маленькую конфигурацию по учету доменов. Создала справочник контрагенты, в котором информация о фирме (Наименование, ИНН,КПП, ОГРН, ЮридическийАдрес) - реквизиты, а информация о соответствующих доменах в табличной части (Домен,ДатаРегистрации,СрокРегистрации,Цена,Оплачено). Имя табличной части Домены. Пытаюсь создать отчет по реквизитам и соответствующим доменам вручную. Пыталась сделать с помощью мастеров, там та же проблема. Не могу разобраться с тем, как получить доступ к табличной части и вывести данные поля Домен табличной части  в отчет. Вроде все верно, но отладчик выдает ошибку {Справочник.Контрагенты.Форма.ФормаСписка(51)}: Недостаточно фактических параметров
       ТекСтрока = Контрагенты.Домены.Получить();
в следующем коде:
         //Формируем таблицу для значений
    Контрагенты=Справочники.Контрагенты.Выбрать();
    Н=0;
    Пока Контрагенты.Следующий()Цикл
       Н=Н+1;
       ТекСтрока = Контрагенты.Код;
       ТабДок.Область(3+Н,1).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.Наименование;
       ТабДок.Область(3+Н,2).Текст=Формат(ТекСтрока);
                 ТекСтрока = Контрагенты.ИНН;
       ТабДок.Область(3+Н,3).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.КПП;
       ТабДок.Область(3+Н,4).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.ОГРН;
       ТабДок.Область(3+Н,5).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.ЮридическийАдрес;
       ТабДок.Область(3+Н,6).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.Домен.Получить();
       ТекПоле=ТекСтрока.Домен;
            ТабДок.Область(3+Н,7).Текст=Формат(ТекПоле);
    КонецЦикла;
Не пойму, о каких параметрах здесь идет речь...

cska-fanat-kz

Строки ТЧ обходятся с помощью цикла Для каждого ... из ... цикл

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для каждого ТекСтрокаТЧ из Контрагенты.Домены Цикл
      ОбластьСтрока.Параметры.Заполнить(ТекСтрокаТЧ);
КонецЦикла;

соответственно надо в макете завести именованную область "Строка"
и в ней в свойствах ячеек установить свойство Заполнение - Параметр
и имя дать как называются колонки вашей ТЧ.
Проще всего посмотреть как это сделано в других отчетах...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

aida103

cska-fanat-kz: Спасибо. А то я уже замучилась с табличной частью)

aida103

Но вообще-то я формирую отчет без использования макета :nhsrm:
[spoiler="Поэтому полный код выглядит так:"]
Процедура ОсновныеДействияФормыПечать(Кнопка)
   // Получаем ссылку на необходимые шрифты
    ШрифтTimes12Жирный = Новый Шрифт("Times New Roman", 10, Истина);
    ШрифтTimes12 = Новый Шрифт("Times New Roman", 10, Ложь);
    //Получаем ссылку на тип линии
    ЛинияСплошная = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
    //Основной алгоритм
    ТабДок = Новый ТабличныйДокумент();
    //Устанавливаем ширину всех колонок
     ТабДок.Область( ,1, ,1).ШиринаКолонки = 12;
     ТабДок.Область( ,2, ,2).ШиринаКолонки = 35;
     ТабДок.Область( ,3, ,3).ШиринаКолонки = 13;
     ТабДок.Область( ,4, ,4).ШиринаКолонки = 12;
     ТабДок.Область( ,5, ,5).ШиринаКолонки = 17;
     ТабДок.Область( ,6, ,6).ШиринаКолонки = 32;
     ТабДок.Область( ,7, ,7).ШиринаКолонки = 30;
     //Формируем область шапки
       ТабДок.Область(3,1).Текст = "Код";
    ТабДок.Область(3,2).Текст = "Наименование организации";
    ТабДок.Область(3,3).Текст = "ИНН";
    ТабДок.Область(3,4).Текст = "КПП";
    ТабДок.Область(3,5).Текст = "ОГРН";
    ТабДок.Область(3,6).Текст = "Юридический адрес";
    ТабДок.Область(3,7).Текст = "Домен";
    Область = ТабДок.Область(3,1,3,7);
    Область.Шрифт = ШрифтTimes12Жирный;
    Область.ВертикальноеПоложение=ВертикальноеПоложение.Центр;
    Область.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Центр;
    Область.ГраницаСверху = ЛинияСплошная;
    Область.ГраницаСнизу = ЛинияСплошная;
    Область.ГраницаСлева = ЛинияСплошная;
    Область.ГраницаСправа = ЛинияСплошная;
    //Формируем таблицу для значений
    Контрагенты=Справочники.Контрагенты.Выбрать();
    Н=0;
    Пока Контрагенты.Следующий()Цикл
       Н=Н+1;
       ТекСтрока = Контрагенты.Код;
       ТабДок.Область(3+Н,1).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.Наименование;
       ТабДок.Область(3+Н,2).Текст=Формат(ТекСтрока);
         ТекСтрока = Контрагенты.ИНН;
       ТабДок.Область(3+Н,3).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.КПП;
       ТабДок.Область(3+Н,4).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.ОГРН;
       ТабДок.Область(3+Н,5).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.ЮридическийАдрес;
       ТабДок.Область(3+Н,6).Текст=Формат(ТекСтрока);
       ТекСтрока = Контрагенты.Домены.Получить();
       ТекПоле=ТекСтрока.Домен;
        ТабДок.Область(3+Н,7).Текст=Формат(ТекПоле);
    КонецЦикла;
   //Установка свойств табличного документа в целом перед его отображением
    ТабДок.ИмяПараметровПечати = "ПараметрыОтчетаПоКонтрагентам";
    ТабДок.ИмяСохраненияПоложенияОкна = "ОкноОтчетПоКонтрагентам";
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.СохранятьСвойстваОтображения = Истина;
    ТабДок.ФиксацияСверху = 3;
    ТабДок.Показать("Отчет по контрагентам");
КонецПроцедуры
[/spoiler] :nhsrm:

cska-fanat-kz

А чем вам не нравится использование макета?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

aida103

А каким образом в макете можно сделать так, чтобы и реквизиты справочника и реквизиты табличной части были в одну строку, причем на одну фирму выводились все домены, занесенные в табличную часть справочника?

cska-fanat-kz

Ничего страшного нет...

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для каждого ТекСтрокаТЧ из Контрагенты.Домены Цикл
      //здесь заполнить параметры, берущиеся из шапки документа
      ОбластьСтрока.Параметры.Заполнить(ТекСтрокаТЧ);
КонецЦикла;
ТабДок.Вывести(ОбластьСтрока);
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск