Преобразование значения к типу Число не может быть выполнено(ЗУП 2.5)

1. english 22.01.18 16:25 Сейчас в теме
Доброго времени суток!
Помогите разобраться с отчетом. Отчет формирует доп. соглашение на увеличение оклада.
При формировании ругается на ошибку:
{ВнешнийОтчет.ДопСоглашение.Форма.ФормаОтчета.Форма(138)}: Преобразование значения к типу Число не может быть выполнено
    ДанныеОтчета.Вставить("Паспорт",ДанныеРаботника.ДокументСерия+" "+ДанныеРаботника.ДокументНомер);


Ниже вся процедура

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

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

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

    Приказ=Регистратор;    
    
    ДанныеОтчета=Новый Структура;
    ДанныеОтчета.Вставить("Работник",ДанныеРаботника.ФИО);
    ДанныеОтчета.Вставить("РаботникР",ОбщегоНазначенияЗК.ПредставлениеРаботника(ДанныеРаботника.Физлицо,2));
    ДанныеОтчета.Вставить("ДатаРождения",Формат(ДанныеРаботника.ДатаРождения,"ДФ=dd.MM.yyyy"));
    ДанныеОтчета.Вставить("Паспорт",ДанныеРаботника.ДокументСерия+" "+ДанныеРаботника.ДокументНомер); 
    ДанныеОтчета.Вставить("КемВыдан",СокрЛП(ДанныеРаботника.ДокументКемВыдан));
    ДанныеОтчета.Вставить("КодПодр",ДанныеРаботника.КодПодр); 
    ДанныеОтчета.Вставить("ДатаВыдачи",Формат(ДанныеРаботника.ДокументДатаВыдачи,"ДФ=dd.MM.yyyy"));
    ДанныеОтчета.Вставить("АдресРаботника",ДанныеРаботника.АдресРаботника);
    ДанныеОтчета.Вставить("МестоР",РегламентированнаяОтчетность.ПредставлениеМестаРождения(ДанныеРаботника.МестоР));  
    ДанныеОтчета.Вставить("ИННР",ДанныеРаботника.ИННР); 
    ДанныеОтчета.Вставить("СПС",ДанныеРаботника.СПС); 
    ДанныеОтчета.Вставить("ТабНомер",Формат(ПорНомер,"ЧЦ")+"-"+Год(Приказ.Дата)+"-"+СокрЛП(ДанныеРаботника.НомДоговора)+"/");    
    ДанныеОтчета.Вставить("НомДоговора",СокрЛП(ДанныеРаботника.НомДоговора));
    ДанныеОтчета.Вставить("ДатаДоговора",Формат(ДанныеРаботника.ДатаДоговора,"ДФ=dd.MM.yyyy"));
    ДанныеОтчета.Вставить("ПунктДоговора",?(ПустаяСтрока(ДанныеРаботника.ПунктДоговора) ,"6.1", СокрЛП(ДанныеРаботника.ПунктДоговора)));    
    ДанныеОтчета.Вставить("НомерПриказа",Приказ.Номер);
    ДанныеОтчета.Вставить("ДатаПриказа",Формат(Приказ.Дата,"ДФ=dd.MM.yyyy"));
    ДанныеОтчета.Вставить("ДатаИзменения",СтрЗаменить(Формат(НачалоМесяца(Приказ.Дата),"ДЛФ=DD"),"г.",""));
    ДанныеОтчета.Вставить("Размер",Размер);
    ДанныеОтчета.Вставить("ИНН",СокрЛП(ОсновнаяОрганизация.ИНН));
    ДанныеОтчета.Вставить("КПП",СокрЛП(ОсновнаяОрганизация.КПП));
    ДанныеОтчета.Вставить("ОГРН",СокрЛП(ОсновнаяОрганизация.ОГРН));  
    ДанныеОтчета.Вставить("НазваниеОрганизацииКр",СокрЛП(ОсновнаяОрганизация.Наименование)); 
    ДанныеОтчета.Вставить("НазваниеОрганизации",СокрЛП(ОсновнаяОрганизация.НаименованиеПолное));  
    ДанныеОтчета.Вставить("АдресОрганизацииСтроки",АдресаОрганизации.Представление);
    ДанныеОтчета.Вставить("ДолжностьРуководитель",ОтветственныеЛица.Должность);
    ДанныеОтчета.Вставить("Руководитель",ОтветственныеЛица.НаименованиеФизЛица);
    ДанныеОтчета.Вставить("РуководительР",ОбщегоНазначенияЗК.ПредставлениеРаботника(ОтветственныеЛица.ФизическоеЛицо,2));
    ДанныеОтчета.Вставить("РуководительФИО",ОбщегоНазначенияЗК.ПредставлениеРаботника(ОтветственныеЛица.ФизическоеЛицо,1));
    ДанныеОтчета.Вставить("РаботникФИО",ОбщегоНазначенияЗК.ПредставлениеРаботника(ДанныеРаботника.Физлицо,1));
    ДанныеОтчета.Вставить("ДокументОснование",СокрЛП(ОтветственныеЛица.ДокументОснование));
    
    
    РезультатСклоненияДолжности=Падеж(ОтветственныеЛица.Должность,2,1); //Должность всегда склоняем в мужском роде
    МассивСтрок = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(РезультатСклоненияДолжности, " "); ДолжностьР=МассивСтрок[0]+" ";
    Для н=1 по МассивСтрок.ВГраница() Цикл
        ДолжностьР=ДолжностьР+НРег(МассивСтрок[н])+" ";
    КонецЦикла;
    ДанныеОтчета.Вставить("ДолжностьРуководительР",ДолжностьР);
    
    Макет = ОтчетОбъект.ПолучитьМакет("Отчет");
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Шапка");
    ЗаполнитьЗначенияСвойств(ОбластьЗаголовок.Параметры, ДанныеОтчета);
    ТекстСоглашения = Макет.ПолучитьОбласть("ТекстСоглашения");
    ЗаполнитьЗначенияСвойств(ТекстСоглашения.Параметры, ДанныеОтчета);
    Подвал = Макет.ПолучитьОбласть("Подвал");
    ЗаполнитьЗначенияСвойств(Подвал.Параметры, ДанныеОтчета);
    Подписи = Макет.ПолучитьОбласть("Подписи");
    ЗаполнитьЗначенияСвойств(Подписи.Параметры, ДанныеОтчета);
    
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ТекстСоглашения);
    ТабДок.Вывести(Подвал);
    ТабДок.Вывести(Подписи);
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); 
    
КонецПроцедуры
Показать


Конфигурация: ЗУП 2.5.126.1 //В предыдущих релизах пол года назад с ним проблем не было.Все формировалось
Платформа: 8.3.10.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 22.01.18 16:28 Сейчас в теме
(1) первое, что бросается в глаза:
ДанныеОтчета.Вставить("Паспорт",ДанныеРаботника.ДокументСерия+" "+ДанныеРаботника.ДокументНомер);

заменить на:
ДанныеОтчета.Вставить("Паспорт", "" + ДанныеРаботника.ДокументСерия+" "+ДанныеРаботника.ДокументНомер);
3. english 22.01.18 16:30 Сейчас в теме
(2)Пробовал так делать. Отчет формируется без ошибки, но данные по сотруднику не подхватываются
4. spacecraft 22.01.18 16:41 Сейчас в теме
(3) Это уже другая ошибка. Смотреть запрос.
Как минимум объединить все запросы в один пакет.
Фильтр Где на правую таблицу в левом соединение в итоге подобен внутреннему соединению. Если нет данных в правой, то и в итоговой выборке их не будет.
6. YanTsys 12 22.01.18 20:46 Сейчас в теме
(2) я в таких ситуациях пишу:
ДанныеОтчета.Вставить("Паспорт", Строка(ДанныеРаботника.ДокументСерия)+" "+Строка(ДанныеРаботника.ДокументНомер));
7. protexprotex 140 23.01.18 00:48 Сейчас в теме
(1) Я бы посмотрел отладчиком с точкой останова (можно в копии поставить Попытка Исключение КонецПопытки) для какого сотрудника такая ошибка вываливается. Скорее всего, или в ДокументСерия или в ДокументНомер введены некорректные данные - например, перевод строки - и и возникает такая исключительная ситуация. Можно, конечно, через Строка() преобразовать, но это изменение конфы. Я бы лучше разобрался почему так выходит. То что раньше было все норм - это не показатель. Возможно поправили что - то в данных сотрудника, или некоррекно внесли данные по новому сотруднику (например, Ctrl-C - Ctrl-V из excel - тогда тянется перевод строки (код 13)).
8. english 23.01.18 08:18 Сейчас в теме
(7)Такая ситуация по всем сотрудникам.Сделал преобразование через функцию Строка(), ошибка ушла, но и данные по сотрудникам не тянутся. Наверно как писали в (3) надо разбираться с запросом.
5. user_2010 988 22.01.18 17:09 Сейчас в теме
есть еще функция Строка()
Оставьте свое сообщение

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