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

Значение не является значением объектного типа (Пустая)

Автор Абылайхан, 10 фев 2016, 15:12

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

Абылайхан

Выходит вот такая ошибка, не могу понять в чем причина. Помогите плз

Функция ПечатьРеализацияТоваровУслуг()

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекДокумент", СсылкаНаОбъект);
Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);

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

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

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

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

ВыборкаСтрокТовары = ВыборкаСтрокТоварыИтоги.Выбрать();

//СтруктурнаяЕдиницаОрганизация = ОбщегоНазначения.ПолучитьСтруктурнуюЕдиницу(Шапка.Организация, Шапка.СтруктурноеПодразделение);


Макет = ПолучитьМакет("З2");

ТабДокумент = Новый ТабличныйДокумент;

// Зададим параметры макета
ТабДокумент.ПолеСверху         = 0;
ТабДокумент.ПолеСлева          = 10;
ТабДокумент.ПолеСнизу          = 0;
ТабДокумент.ПолеСправа         = 0;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПередачаТоваров_З2";

// Выводим общие реквизиты шапки
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

//СведенияОбОрганизации = ОбщегоНазначения.СведенияОЮрФизЛице(СтруктурнаяЕдиницаОрганизация, Шапка.ДатаДокумента);

ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеОрганизации = СокрЛП(Шапка.Организация);
ОбластьМакета.Параметры.ПредставлениеОтправителя = СокрЛП(Шапка.Организация);
ОбластьМакета.Параметры.ОрганизацияРНН_БИН       = СокрЛП(Шапка.ИИН);
ОбластьМакета.Параметры.НомерДокумента           = ПолучитьНомерНаПечать(СсылкаНаОбъект, глСписокПрефиксовУзлов);


ОтветственныйДляПечати  = "";
ДолжностьОтветственного = "";

Если ТипЗнч(Шапка.Ответственный) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
ДанныеОтветственного = ДанныеФизЛица(Шапка.Организация, Шапка.Ответственный, СсылкаНаОбъект.Дата);
ОтветственныйДляПечати = ДанныеОтветственного.Представление;
ДолжностьОтветственного = ДанныеОтветственного.Должность;
Иначе
ОтветственныйДляПечати = Шапка.Ответственный;
КонецЕсли;

ОбластьМакета.Параметры.ОтветственныйЗаПоставку = ОтветственныйДляПечати;

ПредставлениеПолучателя = ОписаниеОрганизации(СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.ДатаДокумента), "ПолноеНаименование,");
ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;

ТабДокумент.Вывести(ОбластьМакета);

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

КоличествоСтрок = ВыборкаСтрокТовары.Количество();

// Выводим многострочную часть документа
ОбластьМакета = Макет.ПолучитьОбласть("СтрокаТаблицы");

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

Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;
       
Если Не ПроверитьВыводДляТабличногоДокумента(ТабДокумент, ОбластьМакета) Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ТабДокумент.Вывести(ЗаголовокТаблицы);
КонецЕсли;

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

КонецЦикла;

// Выводим итоги по документу
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
ОбластьМакета.Параметры.Валюта = Шапка.ВалютаПредставление;

ОбластьМакета.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
ОбластьМакета.Параметры.СуммаПрописью = СформироватьСуммуПрописью(?(ЗначениеЗаполнено(ВыборкаСтрокТоварыИтоги.СуммаСНДС),ВыборкаСтрокТоварыИтоги.СуммаСНДС,0), Шапка.ВалютаДокумента);

ТабДокумент.Вывести(ОбластьМакета);

// вывод подписей
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
ОбластьМакета.Параметры.Заполнить(Шапка);
             
Руководители = ОтветственныеЛицаОрганизаций(Шапка.Организация, Шапка.ДатаДокумента,);
Бухгалтер    = ?(НЕ ЗначениеЗаполнено(Руководители.ГлавныйБухгалтер), "Не предусмотрен", Руководители.ГлавныйБухгалтер);
ОбластьМакета.Параметры.ГлБухгалтер = Бухгалтер;

ОбластьМакета.Параметры.ОтпускРазрешил = ОтветственныйДляПечати;
ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ДолжностьОтветственного;

//ОбластьМакета.Параметры.Доверенность = СокрЛП(Шапка.Доверенность);
//ОбластьМакета.Параметры.ЧерезКого    = СокрЛП(Шапка.ЧерезКого);

// заполняем МОЛ
Если ЗначениеЗаполнено(Шапка.Склад) Тогда
ДанныеМОЛ = ДанныеФизЛица(Шапка.Организация, Шапка.МОЛ, Шапка.ДатаДокумента);
ОбластьМакета.Параметры.МОЛОтпустил = ДанныеМОЛ.Представление;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);

Возврат ТабДокумент;

КонецФункции // Печать()


pavl_vs


LexaK

у вас СсылкаНаОбъект не заполнена, поэтому такая ошибка,
уберите эту строку из программы,
сообщения об ошибке не будет, но и результата тоже :dfbbdrfb:
проверьте в отладчике вашу переменную - СсылкаНаОбъект!

     Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);


проверьте в отладчике(или сообщением)  вашу переменную - СсылкаНаОбъект!

     //Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);
    Сообщиить("Документ: " + СсылкаНаОбъект);




если помогло нажмите: Спасибо!

cska-fanat-kz

пока проблема единственная...

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

Абылайхан

Цитата: cska-fanat-kz от 10 фев 2016, 18:47
пока проблема единственная...

это код из внешней печатной формы?
тогда функция должна называться просто Печать() и должна быть экспортная.

да из внешней печатной формы, функция Печать() экспортная есть, оттуда я вызываю данную фунцкию
Добавлено: 11 фев 2016, 07:49


Цитата: pavl_vs от 10 фев 2016, 15:16
Абылайхан, ошибка в чем?

Описано в названии темы
Добавлено: 11 фев 2016, 07:51


Цитата: LexaK от 10 фев 2016, 15:35
у вас СсылкаНаОбъект не заполнена, поэтому такая ошибка,
уберите эту строку из программы,
сообщения об ошибке не будет, но и результата тоже :dfbbdrfb:
проверьте в отладчике вашу переменную - СсылкаНаОбъект!

     Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);


проверьте в отладчике(или сообщением)  вашу переменную - СсылкаНаОбъект!

     //Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);
    Сообщиить("Документ: " + СсылкаНаОбъект);


Ну как же, это реквизит внешн печатной формы, которая обращается к данному обьекту, а как я должен обратиться к данному документу тогда?

cska-fanat-kz

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

Абылайхан

Цитата: cska-fanat-kz от 11 фев 2016, 11:01
Значит
    в какую-то из общих функций проваливается и там косячит.
Для этого
    локализуем проблему с помощью "Сообщить()". расставляем по коду и смотрим какие вывелись, какие нет.

Спасибо, так и оказалось.

Теги:

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

Рейтинг@Mail.ru

Поиск