![]() |
![]() |
|
Перенос данных | ☑ | ||
---|---|---|---|---|
0
Масянька
16.07.12
✎
11:13
|
День добрый!
Почему при программном заполнении справочника выдает ошибку: "Значение не является значением объектного типа "Наименование"." Наименование собирается из нескольких значений. Что меня сбивает с толку - до возникновения ошибки уже обработаны около 20 записей. И тут выдает ошибку.... Почему? Спасибо. |
|||
1
Amra
16.07.12
✎
11:14
|
Телепаты в отпуске
|
|||
2
Aleksey
16.07.12
✎
11:14
|
пожалуйста
|
|||
3
Масянька
16.07.12
✎
11:15
|
(1) Все сразу?
|
|||
4
echo77
16.07.12
✎
11:16
|
код в студию и готовьте 300 рублей
|
|||
5
Любопытная
16.07.12
✎
11:16
|
Отладчик? В строку видимо не строка пытается записаться. Скорее всего ничего не собралось и переменная, значение которой пишется в Наименование имеет значение Неопределено
|
|||
6
Klesk
16.07.12
✎
11:16
|
спецсимволы? )
|
|||
7
zippygrill
16.07.12
✎
11:18
|
(0) послушай Любопытная, она правду говорит
|
|||
8
Масянька
16.07.12
✎
11:19
|
Процедура ЗаполнениеСправочникаКонтейнеры()
Выборка = Открыта.Справочники.Контейнеры.Выбрать(); Пока Выборка.Следующий() Цикл Если СтрДлина(СокрЛП(Выборка.Наименование)) > 0 Тогда // проверяем правильность номера контейнера Если ПроверкаНомераКонтейнера(Выборка.Наименование) = 0 Тогда // преобразуем номер контейнера ПозицияПробела = Найти(СокрЛП(Выборка.Наименование), " "); ПерваяЧастьНомера = СокрЛП(Сред(Выборка.Наименование, 1, ПозицияПробела)); ВтораяЧастьНомера = СокрЛП(Сред(Выборка.Наименование, ПозицияПробела)); НомерКонтейнера = ПерваяЧастьНомера + ВтораяЧастьНомера; // ищем контейнер в справочнике - по номеру Если Справочники.элКонтейнеры.НайтиПоКоду(НомерКонтейнера) = Справочники.элКонтейнеры.ПустаяСсылка() Тогда BIC = Справочники.элКонтейнеровладельцы.НайтиПоКоду(ПерваяЧастьНомера); // установим соответствие типов контейнеров СтарыйТип = СокрЛП(Выборка.ТипКонтейнера.Наименование); НовыйТип = УстановкаСоответствияТиповКонтейнеров(СтарыйТип); НовыйЭлемент = Справочники.элКонтейнеры.СоздатьЭлемент(); НовыйЭлемент.Код = НомерКонтейнера; НовыйЭлемент.Наименование = СокрЛП(BIC.Код) + " " + СокрЛП(ВтораяЧастьНомера) + " " + СокрЛП(НовыйТип.Наименование); НовыйЭлемент.BIC = BIC; НовыйЭлемент.СерийныйНомер = ВтораяЧастьНомера; НовыйЭлемент.ВидКонтейнера = НовыйТип; Попытка НовыйЭлемент.Записать(); Сообщить("Добавлен в справочник контейнер номер - " + Выборка.Наименование + " ."); Исключение Сообщить("Не удалось записать элемент справочника ""Контейнеры"" - " + Выборка.Наименование + ", с кодом - " + Выборка.Код); КонецПопытки; Иначе Сообщить("Не добавлен в справочник контейнер номер - " + Выборка.Наименование + " - контейнер с таким номером уже есть в справочнике."); КонецЕсли; Иначе Сообщить("Не добавлен в справочник контейнер номер - " + Выборка.Наименование + " - не правильный номер."); КонецЕсли; КонецЕсли; КонецЦикла; Контейнеры = 1; КонецПроцедуры |
|||
9
andrewks
16.07.12
✎
11:20
|
видимо, проблема здесь:
НовыйТип = УстановкаСоответствияТиповКонтейнеров(СтарыйТип); |
|||
10
Любопытная
16.07.12
✎
11:20
|
И в каком месте на наименование-то ругается? Оно ж тут в каждой строке практически)
|
|||
11
Klesk
16.07.12
✎
11:21
|
отладчик
|
|||
12
Масянька
16.07.12
✎
11:22
|
НовыйЭлемент.Наименование
|
|||
13
andrewks
16.07.12
✎
11:22
|
(10) строк много, а кандидатом только одна может быть
|
|||
14
andrewks
16.07.12
✎
11:31
|
хотелось бы услышать комментарий автора про название ветки
|
|||
15
Жан Пердежон
16.07.12
✎
11:32
|
(12) в отладчике: Отладка - Остановка по ошибке...
и смотришь значения всех выражений в строке |
|||
16
hhhh
16.07.12
✎
11:39
|
(12) похоже в переменной НовыйТип у вас бредовое значение.
|
|||
17
Масянька
16.07.12
✎
11:40
|
(14) Из одной БД переносятся данные в другую БД.
|
|||
18
wade25
16.07.12
✎
11:45
|
Смотри свойства полей "Наименование" в 2ух базах.
|
|||
19
Масянька
16.07.12
✎
11:50
|
А как выйти теперь из отладки? :(((((
|
|||
20
andrewks
16.07.12
✎
11:51
|
[debug mode off]
|
|||
21
Сияющий Асинхраль
16.07.12
✎
11:54
|
Я бы для начала проверил вот эту строчку:
СтарыйТип = СокрЛП(Выборка.ТипКонтейнера.Наименование); т.е. надо проверить на заполненность значение Выборка.ТипКонтейнера, потому что если он пуст, то и старый тип и новый не определен, а наименование от неопределенного ТипКонтейнера будет выдавать ошибку |
|||
22
Сияющий Асинхраль
16.07.12
✎
11:57
|
+(21) Кстати в этом случае СокрЛП(НовыйТип.Наименование) как раз скорее всего будет выдавать ошибку...
|
|||
23
Масянька
16.07.12
✎
11:57
|
Спасибо всем.
Копаю....... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |