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

преобразование значения к типу дата не может быть выполнено

Автор sali, 11 ноя 2024, 11:50

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

sali

&НаСервере
Процедура ЗаполнитьТабличныйДокумент() 

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

//Макет2 = Обработки.ПечатьИзвещенийАиУН.ПолучитьМакет("СчетНаОплатуЗаОтопление");

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

Макет3 = Обработки.ПечатьИзвещенийАиУН.ПолучитьМакет("СчетЗаОплатуОбщихПоказаний");

//ОбластьЗаголовокОбщЭлектро = Макет3.ПолучитьОбласть("Заголовок");
//ОбластьШапкаОбщЭлектро = Макет3.ПолучитьОбласть("Шапка");
//ОбластьСтрокаОбщЭлектро = Макет3.ПолучитьОбласть("Строка");
//ОбластьПодвалОбщЭлектро = Макет3.ПолучитьОбласть("Подвал");
//ОбластьОтрывОбщЭлектро = Макет3.ПолучитьОбласть("Отрыв");

Запрос = Новый Запрос();


Запрос1 = Новый Запрос;
Запрос1.Текст =  "ВЫБРАТЬ
                 | НачисленияПоПриборамУчета.ДоговорАренды.Организация.ИНН КАК ИНН,
                 | НачисленияПоПриборамУчета.ДоговорАренды.Организация.НаименованиеПолное КАК Организация,
                 | НачисленияПоПриборамУчета.Услуга КАК Услуга
                 |ИЗ
                 | РегистрНакопления.НачисленияПоПриборамУчета КАК НачисленияПоПриборамУчета
                 |ГДЕ
                 | НачисленияПоПриборамУчета.ДоговорАренды.Контрагент = &Контрагент
                 | И НачисленияПоПриборамУчета.Период >= &Период
                 | И НачисленияПоПриборамУчета.Период <= &ПериодК
                 | И НачисленияПоПриборамУчета.Услуга.Наименование ПОДОБНО ""%электроэнергию%""" ;

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

//Запрос2.УстановитьПараметр("Контрагент", Объект.Контрагент);
//Запрос2.УстановитьПараметр("Период", Объект.Период);
//Запрос2.УстановитьПараметр("Документ",Объект.Документ);
//Запрос2.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));

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

//Запрос.УстановитьПараметр("Услуга", Объект.Услуга);
Запрос1.УстановитьПараметр("Контрагент", Объект.Контрагент);
Запрос1.УстановитьПараметр("Период", Объект.Период.ДатаНачала); 
Запрос1.УстановитьПараметр("ПериодК", Объект.Период.ДатаОкончания);


// Запрос5.УстановитьПараметр("Контрагент", Объект.Контрагент);
// Запрос5.УстановитьПараметр("Период", НачалоМесяца(Объект.Период));
// Запрос5.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));

//Запрос6.УстановитьПараметр("Контрагент", Объект.Контрагент);
//Запрос6.УстановитьПараметр("Период", Объект.Период);
//Запрос6.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));

//Запрос1.УстановитьПараметр("Услуга", Объект.Услуга);

ДанныеОрганизации = Запрос1.Выполнить();
ДанныеНачисления = ЗапросНач.Выполнить();
// ДанныеНачмсления2 = Запрос6.Выполнить();
// Результат = Запрос.Выполнить();
//Результат2 = Запрос5.Выполнить();
Если НЕ ДанныеНачисления.Пустой() Тогда 
ТабличныйДокумент = Новый ТабличныйДокумент;

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

ТабличныйДокумент.НачатьАвтогруппировкуСтрок();
Организация = ДанныеОрганизации.Выбрать();
Организация.Следующий();
//Начисления = ДанныеНачисления.Выбрать();

// Начисления2 = ДанныеНачмсления2.Выбрать();
ВыборкаКонтрагент = ДанныеНачисления.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
//ВыборкаКонтрагентОБЩ = Результат2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагент.Следующий() Цикл
// ВыборкаКонтрагентОБЩ.Следующий();
ОбластьЗаголовокОбщЭлектро = Макет3.ПолучитьОбласть("Заголовок");
ОбластьЗаголовокОбщЭлектро.Параметры.Заполнить(Организация);
ОбластьЗаголовокОбщЭлектро.Параметры.Период = Формат(Объект.Период,"ДФ='MMMM.yyyy'");

ОбластьЗаголовокОбщЭлектро.Параметры.Контрагент = ВыборкаКонтрагент.Контрагент;
ТабличныйДокумент.Вывести(ОбластьЗаголовокОбщЭлектро);
ВыборкаДетальныеЗаписи = ВыборкаКонтрагент.Выбрать();

// ВыброкаДетальныеЗаписиОбщ = ВыборкаКонтрагентОБЩ.Выбрать();
ОбластьШапкаОбщЭлектро = Макет3.ПолучитьОбласть("Шапка");
ТабличныйДокумент.Вывести(ОбластьШапкаОбщЭлектро);
НомерСтроки = 0;
КонИтогоСумма = 0;
КонИтого = 0;
КонИтогоНДС = 0;
КонИтогоНСП = 0;


Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Начисления.Следующий();
НомерСтроки = НомерСтроки + 1;
ОбластьСтрокаОбщЭлектро = Макет3.ПолучитьОбласть("Строка");
ОбластьСтрокаОбщЭлектро.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
//ОбластьСтрокаОбщЭлектро.Параметры.НДС = Начисления.НДС;
//ОбластьСтрокаОбщЭлектро.Параметры.НСП = Начисления.НСП;
//ОбластьСтрокаОбщЭлектро.Параметры.ВсегоСУчетомНалогов = Начисления.ВсегоСУчетомНалогов;
ОбластьСтрокаОбщЭлектро.Параметры.НомерСтроки = НомерСтроки;
//ИтогоСумма = ИтогоСумма + ВыборкаДетальныеЗаписи.Всего;
//Итого = Итого + Начисления.ВсегоСУчетомНалогов;
//ИтогоНСП = ИтогоНСП + Начисления.НСП;
//ИтогоНДС = ИтогоНДС + Начисления.НДС;

//ОбластьСтрокаОбщЭлектро.Параметры.Заполнить(ВыброкаДетальныеЗаписиОбщ);
// ИтогоСумма = ИтогоСумма + ВыброкаДетальныеЗаписиОбщ.Всего;
КонИтогоСумма = КонИтогоСумма +  ВыборкаДетальныеЗаписи.Всего;
КонИтого =  КонИтого + ВыборкаДетальныеЗаписи.ВсегоСУчетомНалогов;
КонИтогоНДС = КонИтогоНДС + ВыборкаДетальныеЗаписи.НДС;
КонИтогоНСП = КонИтогоНСП + ВыборкаДетальныеЗаписи.НСП;

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

НомерСтроки3 = 0;
ИтогоСумма3 = 0;
Итого3 = 0;
ИтогоНСП3 = 0;
ИтогоНДС3 = 0;
НомерСтроки3 = НомерСтроки;


ОбластьПодвалОбщЭлектро = Макет3.ПолучитьОбласть("Подвал");
ОбластьПодвалОбщЭлектро.Параметры.Заполнить(Организация);
ОбластьПодвалОбщЭлектро.Параметры.ИтогоСумма = Формат(КонИтогоСумма, "ЧДЦ='2'");
ОбластьПодвалОбщЭлектро.Параметры.Итого = Формат(КонИтого, "ЧДЦ='2'");
ОбластьПодвалОбщЭлектро.Параметры.ИтогоНДС = Формат(КонИтогоНДС , "ЧДЦ='2'");
ОбластьПодвалОбщЭлектро.Параметры.ИтогоНСП = Формат(КонИтогоНСП , "ЧДЦ='2'");
ОбластьПодвалОбщЭлектро.Параметры.Директор = Директор;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.Вывести(ОбластьПодвалОбщЭлектро);

ОбластьОтрывОбщЭлектро = Макет3.ПолучитьОбласть("Отрыв");
ТабличныйДокумент.Вывести(ОбластьОтрывОбщЭлектро);
//ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();

КонецЦикла;


Иначе
Сообщить("Данных за элетроэнергию не обнаружено!");
КонецЕсли;
КонецПроцедуры



привет. новичок просит помощи, что не так с запросом что он ругается
Ошибка при вызове метода контекста (Выполнить)
{Обработка.ПечатьИзвещенийАиУН.Форма.Форма.Форма(136)}:   ДанныеНачисления = ЗапросНач.Выполнить();
{Обработка.ПечатьИзвещенийАиУН.Форма.Форма.Форма(23)}:   ЗаполнитьТабличныйДокумент();     
по причине:
{(32, 56)}: Не задано значение параметра "ДатаНачала"
И ПоказанияСчетчиковОбъектовНедвижимости.Период МЕЖДУ <<?>>&ДатаНачала И &ДатаОкончания

по причине:
{(32, 56)}: Не задано значение параметра "ДатаНачала"
И ПоказанияСчетчиковОбъектовНедвижимости.Период МЕЖДУ <<?>>&ДатаНачала И &ДатаОкончания
строка на которую ссылается ДанныеНачисления = ЗапросНач.Выполнить();Обработка ПечатьИзвещенийАиУН_ Форма - Конфигуратор - Бухгалтерия для Кыргызстана, редакция 3 11.11.2024 11_56_39.pngОбработка ПечатьИзвещенийАиУН_ Форма - Конфигуратор - Бухгалтерия для Кыргызстана, редакция 3 11.11.2024 14_20_05.pngОбработка ПечатьИзвещенийАиУН_ Форма - Конфигуратор - Бухгалтерия для Кыргызстана, редакция 3 11.11.2024 14_20_42.png   

Максим75

sali, решили новую ветку создать, да уж.

у Вас в ЗапросНач три параметра: ДатаНачала, ДатаОкончания и Регистратор.
Заполняете Регистратор и какой-то левый параметр СтандартныйПериод, которого вообще нет в тексте запроса, а вот параметр датаНачала и ДатаОкончания не заполняете.
Вам именно на это и ругается.
Блин. Вот реально, блин.

sali

Максим75, хорошо. не бейте только сильно
                       |ГДЕ
                       |    НачисленияПоКонтрагентам_Извещения.Номенклатура.Наименование ПОДОБНО ""%электроэнергию%""
                       |    И ПоказанияСчетчиковОбъектовНедвижимости.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
                       |    И НачисленияПоКонтрагентам_Извещения.Регистратор = &Регистратор";
    //ЗапросНач.УстановитьПараметр("СтандартныйПериод", Объект.Период);
    ЗапросНач.УстановитьПараметр("ДатаНачала", Объект.Период.ДатаНачала);   
    ЗапросНач.УстановитьПараметр("ДатаОкончания", Объект.Период.ДатаОкончания);
    ЗапросНач.УстановитьПараметр("Регистратор", Объект.Документ);
   
    //Запрос2.УстановитьПараметр("Контрагент", Объект.Контрагент);
    //Запрос2.УстановитьПараметр("Период", Объект.Период);
    //Запрос2.УстановитьПараметр("Документ",Объект.Документ);
    //Запрос2.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));
   
    Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
    Запрос.УстановитьПараметр("Период", Объект.Период.ДатаНачала); 
    Запрос.УстановитьПараметр("ПериодК", Объект.Период.ДатаОкончания);
   
    //Запрос.УстановитьПараметр("Услуга", Объект.Услуга);
    Запрос1.УстановитьПараметр("Контрагент", Объект.Контрагент);
    Запрос1.УстановитьПараметр("Период", Объект.Период.ДатаНачала); 
    Запрос1.УстановитьПараметр("ПериодК", Объект.Период.ДатаОкончания);

Ошибка: Преобразование значения к типу Дата не может быть выполнено
{Обработка.ПечатьИзвещенийАиУН.Форма.Форма.Форма(421)}:   ЗапросНачВод.УстановитьПараметр("Период", КонецМесяца(Объект.Период));
{Обработка.ПечатьИзвещенийАиУН.Форма.Форма.Форма(23)}:   ЗаполнитьТабличныйДокумент();     

Максим75

sali, да уж, по кругу ходим.
Вместо Объект.Период напишите Объект.Период.ДатаОкончания.

Это крайнее сообщение, больше я даже не просматриваю тему.

Afinogen

 B) Жестко

в догонку автору: почитайте синтаксис помощник: в 1с есть разные типы значений -  есть дата а есть стандартный период, если переменная с типом стандартный период то у нее в свою очередь есть  реквизит дата начала и дата очончания и они в свою очередь имеют тип дата

То есть вам при задании параметров запроса надо делать проверки на тип значения что то  типа:


Если ТипЗнч(ВашаПеременная) = Тип("Дата") тогда
   Запрос.УстановитьПараметр(ИмяПараметра,ВашаПеременная);
Иначе
  Запрос.УстановитьПараметр(ИмяПараметра,ВашаПеременная.ДатаНачала);
КонецЕсли;

:befhbt:

п.с.  ушел за предыдущим оратором) :D

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

Рейтинг@Mail.ru

Поиск