Почему не находит поле Документ??(новичок)

1. Rayrat7 06.06.12 07:40 Сейчас в теме
Почему не определяется документ? я же прописал его в запросе..
пишет:
[code1c]{Форма.Форма.Форма(53)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
по причине:
{(29, 32)}: Поле не найдено "ХозрасчетныйОстатки.Субконто3.Документ"
ХозрасчетныйОстатки.Субконто3.<<?>>Документ
[/code1c]
Код
[code1c]
Процедура КнопкаВыполнитьНажатие(Кнопка)

// Макет = ВнешниеОбработки.ВыгрузкаЗадолженности.ПолучитьМакет("Макет");

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
| ХозрасчетныйОстатки.Субконто1.КодЭлюдии КАК КодКонтрагента,
| ХозрасчетныйОстатки.Субконто2.Наименование КАК ДоговорНаименование,
| ХозрасчетныйОстатки.Субконто2 КАК ДоговорСпр,
| ХозрасчетныйОстатки.Субконто3 КАК Документ,
| ХозрасчетныйОстатки.Субконто2.Номер КАК НомерДоговора,
| ХозрасчетныйОстатки.Субконто2.Дата КАК ДатаДоговора,
| ХозрасчетныйОстатки.Субконто2.Подразделение КАК Подразделение,
| СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаДт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &ДатаКон,
| Счет В ИЕРАРХИИ (&СписокСчетов),
| ,
| Организация = &Организация
| И Субконто1 В ИЕРАРХИИ (&Контрагент)) КАК ХозрасчетныйОстатки
|
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйОстатки.Субконто1,
| ХозрасчетныйОстатки.Субконто2,
| ХозрасчетныйОстатки.Субконто1.ИНН,
| ХозрасчетныйОстатки.Субконто1.КПП,
| ХозрасчетныйОстатки.Субконто1.КодЭлюдии,
| ХозрасчетныйОстатки.Субконто2.КодЭлюдии,
| ХозрасчетныйОстатки.Субконто2.Номер,
| ХозрасчетныйОстатки.Субконто2.Дата,
| ХозрасчетныйОстатки.Субконто2.Подразделение,
| ХозрасчетныйОстатки.Субконто3.Документ
|
|УПОРЯДОЧИТЬ ПО
| Контрагент,
| Подразделение
|ИТОГИ
| СУММА(СуммаДт)
|ПО
| Контрагент,
| ДоговорСпр";

Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
Запрос.УстановитьПараметр("СписокСчетов", СписокСчетов);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Подразделение", Подразделение);

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

Макет = ПолучитьМакет("МакетВыгрузки");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ТабДокумент = Новый ТабличныйДокумент();
ТабДокумент.Вывести(ОбластьШапка);

Парам = ОбластьСтрока.Параметры;

ВыборкаКонтрагент = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаКонтрагент.Следующий() Цикл

Если не ВыборкаКонтрагент.Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда

//Парам.Заполнить(ВыборкаКонтрагент);

//Парам.Контрагент = ВыборкаКонтрагент.Контрагент.НаименованиеПолное;
//Если ВыборкаКонтрагент.СуммаВзаиморасчетов > 0 Тогда

//Парам.СуммаДт = Формат(ВыборкаКонтрагент.СуммаДт,"ЧДЦ=2; ЧГ=0");
//Парам.СуммаКт = Формат(ВыборкаКонтрагент.СуммаКт,"ЧДЦ=2; ЧГ=0");

//ИначеЕсли ВыборкаКонтрагент.СуммаВзаиморасчетов < 0 Тогда
// Парам.СуммаДт = 0;
// Парам.СуммаКт = Формат(-ВыборкаКонтрагент.СуммаВзаиморасчетов,"ЧДЦ=2; ЧГ=0");
//ИначеЕсли ВыборкаКонтрагент.СуммаВзаиморасчетов = 0 Тогда
//
// Парам.СуммаДт = 0;
// Парам.СуммаКт = 0;
//КонецЕсли;

//Сч = 0;
////////////////////////////////////////////////////////////­////////////////////////////////
Парам.Причина = "";
Документ = Запрос.УстановитьПараметр("Хозрасчетный.Субконто3");

Если Документ = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда

Если Документ.Товары.Количество() > 0 Тогда

Причина = Документ.Товары[0].Номенклатура.Наименование;
ИначеЕсли Документ.Услуги.Количество() > 0 Тогда

Причина = Документ.Услуги[0].Содержание;
КонецЕсли;

ИначеЕсли Документ = Тип("ДокументСсылка.ВводНачальныхОстатковПоВзаиморасчетам") Тогда

Причина = Документ.Комментарий;
ИначеЕсли Документ = Тип("ДокументСсылка.КорректировкаЗаписейРегистров") Тогда

Причина = Документ.Комментарий;
ИначеЕсли Документ = Тип("ДокументСсылка.ОперацияБух") Тогда

Причина = Документ.Содержание;
ИначеЕсли Документ = Тип("ДокументСсылка.ПлатежноеПоручениеВходящее") Тогда

Причина = Документ.НазначениеПлатежа;
ИначеЕсли Документ = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда

Причина = Документ.НазначениеПлатежа;
ИначеЕсли Документ = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") Тогда

Причина = Документ.Основание;
ИначеЕсли Документ = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда

Причина = Документ.Основание;
ИначеЕсли Документ = Тип("ДокументСсылка.ОперацияБух") Тогда

Причина = Документ.Содержание;
КонецЕсли;
////////////////////////////////////////////////////////////­/////////////////////////////////

Парам.УчетнаяСистема = "";

ВыборкаДоговор = ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаДоговор.Следующий() Цикл

Если не ВыборкаДоговор.ДоговорСпр = Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда

Парам.Заполнить(ВыборкаДоговор);

Парам.Контрагент = ВыборкаДоговор.Контрагент.НаименованиеПолное;
Парам.СуммаДт = Формат(ВыборкаДоговор.СуммаДт,"ЧДЦ=2; ЧГ=0");
Парам.УчетнаяСистема = "";


Парам.Дата = Формат(ДатаКон, "ДЛФ=Д");
// Если не ПустаяСтрока(ВыборкаДоговор.ДоговорНаименование) Тогда
// Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
Если (ВыборкаДоговор.НомерДоговора = Null)
и (ВыборкаДоговор.ДатаДоговора = Null) Тогда
Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
ИначеЕсли (ПустаяСтрока(ВыборкаДоговор.НомерДоговора))
и (ВыборкаДоговор.ДатаДоговора = Дата(1,1,1)) Тогда
Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
Иначе
Парам.Договор = ВыборкаДоговор.НомерДоговора+ " от " + Формат(ВыборкаДоговор.ДатаДоговора, "ДЛФ=Д");
КонецЕсли;

Парам.Дата = "";
Парам.Договор = "";

ТабДокумент.Вывести(ОбластьСтрока);
КонецЕсли;

КонецЦикла;

// ТабДокумент.Вывести(ОбластьСтрока);
КонецЕсли;
КонецЦикла;
ТабДокумент.Защита = Истина;
ТабДокумент.Показать();

ТекстДок = Новый ТекстовыйДокумент();

ИмяФ = КаталогВыгрузки;

ИмяФайла = ИмяФ+ "\debts.csv";
СимволРазделитель = " ";

КонечнаяСтрока = ТабДокумент.ВысотаТаблицы;
КонечнаяКолонка = ТабДокумент.ШиринаТаблицы;

Для строка = 1 по КонечнаяСтрока Цикл
СтрКа = "";
Для колонка = 1 по КонечнаяКолонка Цикл

ОбластьЯчейки = ТабДокумент.Область(Строка,Колонка);
ОбластьТекст = ОбластьЯчейки.Текст;
СтрКа = СтрКа+ОбластьТекст+СимволРазделитель;

КонецЦикла;
СтрКа = СтрКа + строка;
ТекстДок.ДобавитьСтроку(СтрКа)
КонецЦикла;
ТекстДок.Записать(ИмяФайла, "windows-1251");


КонецПроцедуры

Процедура КаталогВыгрузкиНачалоВыбора(Элемент, СтандартнаяОбработка)
// Вставить содержимое обработчика.

СтандартнаяОбработка = Ложь;

ДиалогВыбораКаталогВыгрузки = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогВыбораКаталогВыгрузки.Заголовок = "Открытие каталога для передачи файлов в систему Элюдия";
// ДиалогВыбораКаталогЭкспорта.ПроверятьСуществованиеФайла = Истина;
ДиалогВыбораКаталогВыгрузки.Каталог = КаталогВыгрузки;

Если Не ДиалогВыбораКаталогВыгрузки.Выбрать() Тогда
Возврат;
КонецЕсли;

КаталогВыгрузки = ДиалогВыбораКаталогВыгрузки.Каталог;

КонецПроцедуры

Процедура ПриОткрытии()
// Вставить содержимое обработчика.
Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация");
//Подразделение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");

СписокСчетов.Очистить();
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПокупателями);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным);

/// Счет.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПокупателями);
//// Счет.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным);


ДатаКон = ТекущаяДата();
КаталогВыгрузки = "";
КонецПроцедуры
[/code1c]
Подскажите направление действий пожалуйста
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maip1 06.06.12 07:59 Сейчас в теме
а там и не надо .Документ. Просто ХозрасчетныйОставки.Субконто3
3. Rayrat7 06.06.12 08:08 Сейчас в теме
сделал, теперь ругается так:

[code1c]{Форма.Форма.Форма(89)}: Обращение к процедуре объекта как к функции (УстановитьПараметр)
Документ = Запрос.УстановитьПараметр("Хозрасчетный.Субконто3");[/code1c]
4. Rayrat7 06.06.12 08:12 Сейчас в теме
5. andreyparmuzin 06.06.12 08:21 Сейчас в теме
Документ = Запрос.УстановитьПараметр("Хозрасчетный.Субконто3"); замени на

Запрос.УстановитьПараметр("Документ",Хозрасчетный.Субконто3);
6. Alexandr84 06.06.12 08:25 Сейчас в теме
Что такое Документ = Запрос.УстановитьПараметр("Хозрасчетный.Субконто3");?
Должно быть: Запрос.УстановитьПараметр("Хозрасчетный.Субконто3", ЗначениеПараметра);
И почему вдруг у тебя Хозрасчетный.Субконто3 стал параметром?
7. Alexandr84 06.06.12 08:26 Сейчас в теме
Даже не нашёл в твоём коде параметр &Документ
8. Rayrat7 06.06.12 08:29 Сейчас в теме
{Форма.Форма.Форма(91,44)}: Переменная не определена (Хозрасчетный)
Запрос.УстановитьПараметр("Документ",<<?>>Хозрасчетный.Субконто3); (Проверка: Толстый клиент (обычное приложение))
{Форма.Форма.Форма(93,12)}: Переменная не определена (Документ)
Если <<?>>Документ = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда (Проверка: Толстый клиент (обычное приложение))
9. Alexandr84 06.06.12 08:36 Сейчас в теме
Должно быть РегистрБухгалтерии.Хозрасчтеный.Субконто3. Объясни что хочешь сделать в итоге.
10. Rayrat7 06.06.12 08:48 Сейчас в теме
Отчет по Задолженностям
Нужно добавить поле "Причина" которое будет отображать комментарии, назначение платежа, основание, содержание
(в зависимости от документа)
11. Rayrat7 06.06.12 09:07 Сейчас в теме
вот щас поставил
Документ = ВыборкаКонтрагент.Документ;
ошибок нет, пролетает, но поле Причина пустое..
12. Rayrat7 06.06.12 09:12 Сейчас в теме
вот так щас
[code1c]
Процедура КнопкаВыполнитьНажатие(Кнопка)

// Макет = ВнешниеОбработки.ВыгрузкаЗадолженности.ПолучитьМакет("Макет");

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
| ХозрасчетныйОстатки.Субконто1.КодЭлюдии КАК КодКонтрагента,
| ХозрасчетныйОстатки.Субконто2.Наименование КАК ДоговорНаименование,
| ХозрасчетныйОстатки.Субконто2 КАК ДоговорСпр,
| ХозрасчетныйОстатки.Субконто3 КАК Документ,
| ХозрасчетныйОстатки.Субконто2.Номер КАК НомерДоговора,
| ХозрасчетныйОстатки.Субконто2.Дата КАК ДатаДоговора,
| ХозрасчетныйОстатки.Субконто2.Подразделение КАК Подразделение,
| СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаДт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &ДатаКон,
| Счет В ИЕРАРХИИ (&СписокСчетов),
| ,
| Организация = &Организация
| И Субконто1 В ИЕРАРХИИ (&Контрагент)) КАК ХозрасчетныйОстатки
|
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйОстатки.Субконто1,
| ХозрасчетныйОстатки.Субконто2,
| ХозрасчетныйОстатки.Субконто1.ИНН,
| ХозрасчетныйОстатки.Субконто1.КПП,
| ХозрасчетныйОстатки.Субконто1.КодЭлюдии,
| ХозрасчетныйОстатки.Субконто2.КодЭлюдии,
| ХозрасчетныйОстатки.Субконто2.Номер,
| ХозрасчетныйОстатки.Субконто2.Дата,
| ХозрасчетныйОстатки.Субконто2.Подразделение,
| ХозрасчетныйОстатки.Субконто3
|
|УПОРЯДОЧИТЬ ПО
| Контрагент,
| Подразделение
|ИТОГИ
| СУММА(СуммаДт)
|ПО
| Контрагент,
| ДоговорСпр";

Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
Запрос.УстановитьПараметр("СписокСчетов", СписокСчетов);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Подразделение", Подразделение);


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

Макет = ПолучитьМакет("МакетВыгрузки");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ТабДокумент = Новый ТабличныйДокумент();
ТабДокумент.Вывести(ОбластьШапка);

Парам = ОбластьСтрока.Параметры;

ВыборкаКонтрагент = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаКонтрагент.Следующий() Цикл

Если не ВыборкаКонтрагент.Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда

//Парам.Заполнить(ВыборкаКонтрагент);

//Парам.Контрагент = ВыборкаКонтрагент.Контрагент.НаименованиеПолное;
//Если ВыборкаКонтрагент.СуммаВзаиморасчетов > 0 Тогда

//Парам.СуммаДт = Формат(ВыборкаКонтрагент.СуммаДт,"ЧДЦ=2; ЧГ=0");
//Парам.СуммаКт = Формат(ВыборкаКонтрагент.СуммаКт,"ЧДЦ=2; ЧГ=0");

//ИначеЕсли ВыборкаКонтрагент.СуммаВзаиморасчетов < 0 Тогда
// Парам.СуммаДт = 0;
// Парам.СуммаКт = Формат(-ВыборкаКонтрагент.СуммаВзаиморасчетов,"ЧДЦ=2; ЧГ=0");
//ИначеЕсли ВыборкаКонтрагент.СуммаВзаиморасчетов = 0 Тогда
//
// Парам.СуммаДт = 0;
// Парам.СуммаКт = 0;
//КонецЕсли;

//Сч = 0;
////////////////////////////////////////////////////////////­////////////////////////////////
Парам.Причина = "";
Документ = ВыборкаКонтрагент.Документ;

Если Документ = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда

Если Документ.Товары.Количество() > 0 Тогда

Причина = Документ.Товары[0].Номенклатура.Наименование;
ИначеЕсли Документ.Услуги.Количество() > 0 Тогда

Причина = Документ.Услуги[0].Содержание;
КонецЕсли;

ИначеЕсли Документ = Тип("ДокументСсылка.ВводНачальныхОстатковПоВзаиморасчетам") Тогда

Причина = Документ.Комментарий;
ИначеЕсли Документ = Тип("ДокументСсылка.КорректировкаЗаписейРегистров") Тогда

Причина = Документ.Комментарий;
ИначеЕсли Документ = Тип("ДокументСсылка.ОперацияБух") Тогда

Причина = Документ.Содержание;
ИначеЕсли Документ = Тип("ДокументСсылка.ПлатежноеПоручениеВходящее") Тогда

Причина = Документ.НазначениеПлатежа;
ИначеЕсли Документ = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда

Причина = Документ.НазначениеПлатежа;
ИначеЕсли Документ = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") Тогда

Причина = Документ.Основание;
ИначеЕсли Документ = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда

Причина = Документ.Основание;
ИначеЕсли Документ = Тип("ДокументСсылка.ОперацияБух") Тогда

Причина = Документ.Содержание;
КонецЕсли;
////////////////////////////////////////////////////////////­/////////////////////////////////

Парам.УчетнаяСистема = "";

ВыборкаДоговор = ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаДоговор.Следующий() Цикл

Если не ВыборкаДоговор.ДоговорСпр = Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда

Парам.Заполнить(ВыборкаДоговор);

Парам.Контрагент = ВыборкаДоговор.Контрагент.НаименованиеПолное;
Парам.СуммаДт = Формат(ВыборкаДоговор.СуммаДт,"ЧДЦ=2; ЧГ=0");
Парам.УчетнаяСистема = "";


Парам.Дата = Формат(ДатаКон, "ДЛФ=Д");
// Если не ПустаяСтрока(ВыборкаДоговор.ДоговорНаименование) Тогда
// Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
Если (ВыборкаДоговор.НомерДоговора = Null)
и (ВыборкаДоговор.ДатаДоговора = Null) Тогда
Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
ИначеЕсли (ПустаяСтрока(ВыборкаДоговор.НомерДоговора))
и (ВыборкаДоговор.ДатаДоговора = Дата(1,1,1)) Тогда
Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
Иначе
Парам.Договор = ВыборкаДоговор.НомерДоговора+ " от " + Формат(ВыборкаДоговор.ДатаДоговора, "ДЛФ=Д");
КонецЕсли;

Парам.Дата = "";
Парам.Договор = "";

ТабДокумент.Вывести(ОбластьСтрока);
КонецЕсли;

КонецЦикла;

// ТабДокумент.Вывести(ОбластьСтрока);
КонецЕсли;
КонецЦикла;
ТабДокумент.Защита = Истина;
ТабДокумент.Показать();

ТекстДок = Новый ТекстовыйДокумент();

ИмяФ = КаталогВыгрузки;

ИмяФайла = ИмяФ+ "\debts.csv";
СимволРазделитель = " ";

КонечнаяСтрока = ТабДокумент.ВысотаТаблицы;
КонечнаяКолонка = ТабДокумент.ШиринаТаблицы;

Для строка = 1 по КонечнаяСтрока Цикл
СтрКа = "";
Для колонка = 1 по КонечнаяКолонка Цикл

ОбластьЯчейки = ТабДокумент.Область(Строка,Колонка);
ОбластьТекст = ОбластьЯчейки.Текст;
СтрКа = СтрКа+ОбластьТекст+СимволРазделитель;

КонецЦикла;
СтрКа = СтрКа + строка;
ТекстДок.ДобавитьСтроку(СтрКа)
КонецЦикла;
ТекстДок.Записать(ИмяФайла, "windows-1251");

[/code1c]
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот