Преобразование значения к типу Число не может быть выполнено (ЗУП 2/5)
По теме из базы знаний
- Выгрузка-загрузка любых данных (и измененных) между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке
- Устранение ошибки работы отчета "Штатное расписание (Т-3)" (ЗУП 3.1.27.129 / 3.1.28.35)
- Исправление ошибки отчета "Штатное расписание (Т-3)"
- Несколько альтернативных универсальных способов подбора ссылок при переносах данных
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Логично же, что Лев(ПоследнееИмя, Найти(ПоследнееИмя, "z")-1) возвращает строку, которую нельзя преобразовать в число.
Попробуйте сделать Сообщить(Лев(ПоследнееИмя, Найти(ПоследнееИмя, "z")-1)) и сразу будет понятно в чем проблема
Попробуйте сделать Сообщить(Лев(ПоследнееИмя, Найти(ПоследнееИмя, "z")-1)) и сразу будет понятно в чем проблема
(8)Ну значит проблема изначально появляется не в данной строке, а раньше. там, где не правильно формируется ПоследнееИмя. Возможно, изменилось правило формирования имени и весь алгоритм нужно пересматривать. Или в ТЗ попадает что-то не то (или что-то лишнее)
(9)
Убрать может быть поиск буквы z?
Убрать может быть поиск буквы z?
Если Длг.Выбрать() Тогда
НайденныеФайлы = НайтиФайлы(Длг.Каталог, "*.xml");
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Имя");
Для Каждого с Из НайденныеФайлы Цикл
н = ТЗ.Добавить();
н.Имя = с.ИмяБезРасширения;
КонецЦикла;
ТЗ.Сортировать("Имя Убыв");
Если ТЗ.Количество()>0 Тогда
ПоследнееИмя = ТЗ[0].Имя;
НовоеИмя = Число(Лев(ПоследнееИмя, Найти(ПоследнееИмя, "z")-1));
//Индекс = Число(Прав(ПоследнееИмя, СтрДлина(ПоследнееИмя)-Найти(ПоследнееИмя, "z")));
ИмяФайла = Длг.Каталог+"\" + Строка(Формат(НовоеИмя+1,"ЧГ="))+"z"+".xml";
Иначе
ИмяФайла = Длг.Каталог+"\" + "8606269z.xml";
КонецЕсли;
Иначе
Возврат Неопределено;
КонецЕсли;
Показать
(10)Судя по коду, вы пытаетесь найти старое имя и увеличить его на 1, потом добавить "z" в конце. Но в данном случае, старое имя файла попадает не то. Возможно, в папке, где вы ищите, есть лишние файлы, либо алгоритм поиска предыдущего файла неправильный. Я не знаю, что у вас хранится в вашей папке, могут ли там быть лишние файлы, могут ли удаляться старые, есть ли возможность найти последний файл другим способом...
Почему вы думаете, что ТЗ.Сортировать("Имя Убыв"); выведет первым именно последний файл по номеру? сортировка ведь по строке - первым может быть что угодно.
Проблема не в преобразовании к числу, а в поиске последнего файла. Попробуйте искать файлы по маске "???????z.xml"
Почему вы думаете, что ТЗ.Сортировать("Имя Убыв"); выведет первым именно последний файл по номеру? сортировка ведь по строке - первым может быть что угодно.
Проблема не в преобразовании к числу, а в поиске последнего файла. Попробуйте искать файлы по маске "???????z.xml"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот