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

  • Автор темы MasterSG
  • Дата начала
M

MasterSG

Доброго времени суток.

1с 7.7

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

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

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

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

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

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

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

Hryv

а
|Договор = Справочник.Контрагенты.ОсновнойДоговор;
не пробовал?
 
M

MasterSG

а
|Договор = Справочник.Контрагенты.ОсновнойДоговор;
не пробовал?

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

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

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

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

Hryv

Интересно где люди такую траву берут :)

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

MasterSG

Интересно где люди такую траву берут ;)

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

Сори :)

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

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

Код:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = 
"//{{ЗАПРОС(Сформировать)

|Контрагенты = Справочник.Контрагенты.ТекущийЭлемент;
|Код = Справочник.Контрагенты.ТекущийЭлемент.Код;
|Свойство = Справочник.Контрагенты.ТекущийЭлемент.ОсновноеСвойство.ЗначениеСвойства;
|Договор = Справочник.Контрагенты.ТекущийЭлемент.ОсновнойДоговор."значение";
//|Группировка Контрагенты без групп; 
|Группировка Контрагенты все; 
|"//}}ЗАПРОС

;
// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"

Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
н=0;
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Контрагенты
н=н+1;
//Таб.ВывестиСекцию("Контрагенты");

Если Запрос.Контрагенты.ЭтоГруппа()=1 Тогда
Таб.ВывестиСекцию("Контрагенты1");
Иначе
Таб.ВывестиСекцию("Контрагенты");
КонецЕсли;
КонецЦикла;
// Вывод заполненной формы

Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

Эта процедура формировала таблицу с тремя столбцами:
код,контрагент,свойство.

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

puh14

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

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

Hryv

а я не могу найти переменную "значение" для строки
а кто сказал, что она есть?

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

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

Короче, учите матчасть
:)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!