|   |   | 
| 
 | Цикл Пока и ошибка "Значение поля свойства не может быть пустым" | ☑ | ||
|---|---|---|---|---|
| 0
    
        1СникомХочу Стать 20.02.20✎ 11:50 | 
        Здравствуйте, нужна ваша подсказка: моя обработка берет данные из справочника (спр ЕдиницыИзмерения Объем) и записывает их в регистр сведений (РегистрыСведений.ЗначенияСвойствОбъектов), но сыпется ошибка "Значение поля свойства не может быть пустым"...
 Как можно добавить исключение в Цикл Пока - если значение пустое и тогда пропустить его и перейти на следующий? Функция ЗаполнениеСвойстваОбъемМ3() ОбъемМ3 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00158"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.ЕдиницаХраненияОстатков.Владелец КАК Номенклатура, | Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Объем |ИЗ | Справочник.Номенклатура КАК Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Прочитать(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Объем; МенеджерЗаписи.Записать(); Если ОбъемМ3.Пустая() Тогда ВыборкаДетальныеЗаписи.Следующий(); // Продолжить; тоже не помогает КонецЕсли; КонецЦикла; КонецФункции | |||
| 1
    
        ДенисЧ 20.02.20✎ 11:51 | 
        Условие если перенеси в начало цикла и всё.     | |||
| 2
    
        1СникомХочу Стать 20.02.20✎ 11:56 | 
        (1) так? не получается 
 РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если НЕ ОбъемМ3.Пустая() Тогда Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Прочитать(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Объем; МенеджерЗаписи.Записать(); КонецЦикла; Иначе ВыборкаДетальныеЗаписи.Следующий(); КонецЕсли; | |||
| 3
    
        ДенисЧ 20.02.20✎ 11:58 | 
        В начало цикла, а не перед циклом...
 Вроде по-русски пишу... | |||
| 4
    
        vicof 20.02.20✎ 12:00 | 
        ОбъемМ3 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00158");
 Если ОбъемМ3.Пустая() Тогда Возврат; КонецЕсли; | |||
| 5
    
        vicof 20.02.20✎ 12:01 | 
        И из цикла все условия убрать     | |||
| 6
    
        1СникомХочу Стать 20.02.20✎ 12:13 | 
        (4)  если так, то ошибка Ожидается выражение
 Возврат<<?>>; (Проверка: Толстый клиент (обычное приложение)) Функция ЗаполнениеСвойстваОбъемМ3() ОбъемМ3 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00158"); Если ОбъемМ3.Пустая() Тогда Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.ЕдиницаХраненияОстатков.Владелец КАК Номенклатура, | Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Объем |ИЗ | Справочник.Номенклатура КАК Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Прочитать(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Объем; МенеджерЗаписи.Записать(); КонецЦикла; КонецФункции | |||
| 7
    
        1СникомХочу Стать 20.02.20✎ 12:14 | 
        (5) сорри одним сообщением всё,  если так, то ошибка "Ожидается выражение Возврат"     | |||
| 8
    
        catena 20.02.20✎ 12:24 | 
        (7)А для чего там функция, что в принципе планировалось возвращать?     | |||
| 9
    
        1СникомХочу Стать 20.02.20✎ 12:51 | 
        (8) (((( Так тоже ошибка "Значение поля свойства не может быть пустым", что не так?
 ОбъемМ3 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00158"); Если ОбъемМ3.Пустая() Тогда Возврат ЗаполнениеСвойстваОбъемМ3(); КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.ЕдиницаХраненияОстатков.Владелец КАК Номенклатура, | Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Объем |ИЗ | Справочник.Номенклатура КАК Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Прочитать(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемМ3 ; МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Объем; МенеджерЗаписи.Записать(); КонецЦикла; | |||
| 10
    
        hhhh 20.02.20✎ 12:55 | 
        (9) Возврат Неопределено;     | |||
| 11
    
        catena 20.02.20✎ 12:56 | 
        (9)За нахрена эта рекурсия? Вы думаете, если вызовете еще раз -дцать, то по коду все-таки найдется?     | |||
| 12
    
        catena 20.02.20✎ 12:57 | 
        +И зачем делать функцию, если не предполагаете ничего возвращать?     | |||
| 13
    
        Kigo_Kigo 20.02.20✎ 12:58 | 
        ОбъемМ3 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00158");
 Сообщить(ОбъемМ3); что говорит? | |||
| 14
    
        1СникомХочу Стать 20.02.20✎ 12:58 | 
        (10) такая же ошибка даже если Возврат Нопределено;     | |||
| 15
    
        D_E_S_131 20.02.20✎ 13:09 | 
        (14) Найдите уже глобальным поискам по модулям, где выдается сообщение "Значение поля свойства не может быть пустым"     | |||
| 16
    
        1СникомХочу Стать 20.02.20✎ 13:12 | 
        (13) Так говорит как надо НаименованиеСвойства
 ОбъемВкубе = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00158"); Сообщить(ОбъемВкубе); | |||
| 17
    
        1СникомХочу Стать 20.02.20✎ 13:13 | 
        (13) а если полностью то выдаёт ошибку - Запись не верна! Значение поля "Свойство" не может быть пустым!
 ОбъемВкубе = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00158"); Если ОбъемВкубе.Пустая() Тогда Возврат Неопределено; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.ЕдиницаХраненияОстатков.Владелец КАК Номенклатура, | Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Объем |ИЗ | Справочник.Номенклатура КАК Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемВкубе ; МенеджерЗаписи.Прочитать(); МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Номенклатура; МенеджерЗаписи.Свойство = ОбъемВкубе ; МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Объем; МенеджерЗаписи.Записать(); КонецЦикла; | |||
| 18
    
        vicof 20.02.20✎ 13:24 | 
        у тебя есть реквизит на форме ОбъемВКубе. Ставлю сотку.     | |||
| 19
    
        vicof 20.02.20✎ 13:24 | 
        Причем не того типа, который нужен     | |||
| 20
    
        1СникомХочу Стать 20.02.20✎ 13:29 | 
        (18) Да и он числового Типа, а свойство Строка     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |