1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Проблема с кодом

Тема в разделе "Базы данных и администрирование", создана пользователем MasterSG, 26 авг 2010.

  1. MasterSG

    MasterSG Гость

    Репутация:
    0
    Доброго времени суток.

    1с 7.7

    Проблема такова:

    |Свойство = Справочник.Контрагенты.ТекущийЭлемент.ОсновноеСвойство.ЗначениеСвойства;

    Взятие переменной значения свойства из справочника Контрагенты.

    |Договор = Справочник.Контрагенты.ТекущийЭлемент.ОсновнойДоговор."значение";

    Не могу найти как обратиться к справочнику. пишет:

    Договор = Справочник.Контрагенты.ТекущийЭлемент.ОсновнойДоговор. <<?>> "значение";
    Запрос[5] : Неверно заданный путь ' "значение" '

    Подскажите,пожалуйста, какой должен быть правельный индификатор? :)
     
  2. Hryv

    Hryv Гость

    Репутация:
    0
    а
    |Договор = Справочник.Контрагенты.ОсновнойДоговор;
    не пробовал?
     
  3. MasterSG

    MasterSG Гость

    Репутация:
    0
    Используются переменные: Запрос, ТекстЗапроса, Таб.

    Столбцы таблицы заполняются так: <Запрос.Свойство>.

    И столбец с договором должен заполняться <Запрос."значение">

    Если нужно - приведу текст процедуры.
     
  4. Hryv

    Hryv Гость

    Репутация:
    0
    Интересно где люди такую траву берут :)

    Ты хоть сам понял что написал?
    Тем более что логической связи между двумя сообщениями не наблюдается
     
  5. MasterSG

    MasterSG Гость

    Репутация:
    0
    Сори :)

    Смысл в том:
    Есть разработка которая формирует весь справочник контрагентов в xls файл,

    Процедура такова:

    Код:
    Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    
    |Контрагенты = Справочник.Контрагенты.ТекущийЭлемент;
    |Код = Справочник.Контрагенты.ТекущийЭлемент.Код;
    |Свойство = Справочник.Контрагенты.ТекущийЭлемент.ОсновноеСвойство.ЗначениеСвойства;
    |Договор = Справочник.Контрагенты.ТекущийЭлемент.ОсновнойДоговор."значение";
    //|Группировка Контрагенты без групп; 
    |Группировка Контрагенты все; 
    |"//}}ЗАПРОС
    
    ;
    // Если ошибка в запросе, то выход из процедуры
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    // Подготовка к заполнению выходных форм данными запроса
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    н=0;
    Пока Запрос.Группировка(1) = 1 Цикл
    // Заполнение полей Контрагенты
    н=н+1;
    //Таб.ВывестиСекцию("Контрагенты");
    
    Если Запрос.Контрагенты.ЭтоГруппа()=1 Тогда
    Таб.ВывестиСекцию("Контрагенты1");
    Иначе
    Таб.ВывестиСекцию("Контрагенты");
    КонецЕсли;
    КонецЦикла;
    // Вывод заполненной формы
    
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
    КонецПроцедуры
    Эта процедура формировала таблицу с тремя столбцами:
    код,контрагент,свойство.

    Мне нужно добавить четвертый столбец с договором, а я не могу найти переменную "значение" для строки:
    |Договор = Справочник.Контрагенты.ТекущийЭлемент.ОсновнойДоговор."значение";
     
  6. puh14

    puh14 Well-Known Member

    Репутация:
    0
    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    ОсновнойДоговор - это и есть значение, ТекущийЭлеент используется исключительно при обращении к элементу справочника напрямую, в случае обращения к ревизиту достаточно Справочник.ИмяСправочника.названиеРеквизита;

    р.с. - если не очень силен в запросах - погоняй конструктор запросов, посмотри примеры синтаксиса.
     
  7. Hryv

    Hryv Гость

    Репутация:
    0
    а кто сказал, что она есть?

    если уж тебе надо Запрос."значение", то тогда
    |"значение" = Справочник.Контрагенты.ОсновнойДоговор;
    или
    |"значение" = Справочник.Контрагенты.ОсновнойДоговор.Какойтоещереквизит;
    только имя переменной с кавычками быть не может

    А если просто надо вывести в таблицу основной договор, то зачем вообще запрос менять?
    Используй Запрос.Контрагенты.ОсновнойДоговор

    Короче, учите матчасть
    :)
     
Загрузка...

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