Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Список Значений Как Элемент Диалога  (Прочитано 20780 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
lsnbox
Новенький

ru
Offline Offline
Пол: Мужской

« : 13-05-2013 14:49 » 

Народ, помогите чайнику! Скоро пар пущу...
Есть форма, в ней элемент диалога - список значений с пометками.
Формирую список, выбираю значение для дальнейшей обработки, а результат пустой.
Вот текст:

Код: (1C v8)
Процедура ВыборРаб();
СпрРаб = СоздатьОбъект("Справочник.ФизЛица");
Режим = 1;
СпрРаб.ВыбратьЭлементы(Режим);
Пока СпрРаб.ПолучитьЭлемент()=1 Цикл
Если СпрРаб.ЭтоГруппа()=0 Тогда
СписРаб.ДобавитьЗначение(СпрРаб);
Сообщить(СпрРаб);
Иначе Продолжить;
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Процедура Сформировать()
Для Сч = 1 По СписРаб.РазмерСписка() Цикл
Если СписРаб.Пометка(Сч) = 0 Тогда
Продолжить;
КонецЕсли;
ВыбрРаб = СписРаб.ПолучитьЗначение(Сч);
Если ПустоеЗначение(ВыбрРаб)=1 Тогда
Сообщить("строка № "+Сч+" пустая");
Продолжить;
КонецЕсли;
Сообщить(Сч+", "+ВыбрРаб);
КонецЦикла;
КонецПроцедуры

Вот итог:
строка № 1 пустая

На период внимания не обращайте.
Понимаю, что я тупила, но где конкретно???
Скрин на всякий.

* СписЗнач.gif (107.7 Кб - загружено 972 раз.)
« Последнее редактирование: 13-05-2013 15:32 от Kivals » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 13-05-2013 15:36 » 

lsnbox,
Я зол! для читабельности текста программы используй [code=e1cv8][/code] (хотя бы [code][/code]) и отступы!!!

Ошибка у тебя скорее всего здесь:
Код: (1C v8)
СписРаб.ДобавитьЗначение(СпрРаб);
Попробуй так:
Код: (1C v8)
СписРаб.ДобавитьЗначение(СпрРаб.ТекущийЭлемент());
Записан
lsnbox
Новенький

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 13-05-2013 15:58 » 

Kivals,
к сожалению, результата никакого....., вернее, тот же результат Жаль.
Сам список, как я понимаю, формируется, я его вижу в диалоге (см. скрин),
а вот выбрать из него ничего не могу (даже если в тексте закомментировать
проверку пометок).
На всякий случай: 1С 7.7 ТиС 9.2
С уважением.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 14-05-2013 01:24 » 

lsnbox, пока других проблем не вижу. Попробуй проверить тип значения:
перед
Код: (1C v8)
Если ПустоеЗначение(ВыбрРаб)=1 Тогда
выведи
Код: (1C v8)
Сообщить(ТипЗначенияСтр(ВыбрРаб));

Если не поймешь в чем проблема - прикрепи обработку. ИМХО (если предыдущий совет не помог) - проблема в другом месте, а не в опубликованном коде
Записан
lsnbox
Новенький

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 14-05-2013 06:55 » 

Kivals,
проверил по твоему совету тип выбираемого значения. Был "Справочник", что, как понимаю, криво в этом случае.
Поправил (см обработку), теперь тип "Строка".
Однако, результата не добился Жаль.
Причем, сообщения о том, что выбираемое значение "пустое", тоже нет Не понял, оно просто "невидимка" какая-то.
Все ногти згрыз Я зол!
Прилагаю обработку.
Заранее спасибо за науку.

* Отчет по премиям.ert (33.5 Кб - загружено 940 раз.)
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 14-05-2013 09:50 » 

Для начала предлагаю определиться с полом
Понимаю, что я тупила, но где конкретно???
...
Однако, результата не добился Жаль.
...
Все ногти згрыз Я зол!

А по вопросу - у меня все (см. скриншот).


Так что решение проблемы вне рамок программирования - код верный.
Кроме "Сообщить(Сч+", "+ВыбрРаб)" - значение приводится к числу, т.к. первый аргумент - число. Должно быть:
Код: (1C v8)
Сообщить(""+Сч+", "+ВыбрРаб);
Попробуй переиндексировать базу...
Версия платформы 1С какая? Должна быть 7.70.027 (последняя)...
dbf/sql?

* sc-20130514124225.png (26.5 Кб - загружено 2600 раз.)
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 14-05-2013 09:52 » new

Кстати: а что отладчик показывает в строке "Если ПустоеЗначение(ВыбрРаб)=1 Тогда"? ВыбрРаб чему равно?
Попробуй еще (только для ссылочного типа: справочник/документ/счет/...) проверять как "ВыбрРаб.Выбран() = 0"
Записан
lsnbox
Новенький

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 14-05-2013 11:13 » 

Kivals,
Спасибо Класс!
Цитата:
"Кроме "Сообщить(Сч+", "+ВыбрРаб)" - значение приводится к числу, т.к. первый аргумент - число. Должно быть:
Код: (1C v8)
Сообщить(""+Сч+", "+ВыбрРаб);
"

Как все просто! Но сам бы вовек не сообразил, из-за недостатка опыта.
ИМХО. "Тупила" - существо неопределенного пола, такое, как балда, бестолочь и т. д.
Поэтому запутаться немудрено.
С уважением и благодарностями, СЕРГЕЙ.
Тему можно закрывать.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 14-05-2013 14:02 » 

Для начала предлагаю определиться с полом
Понимаю, что я тупила, но где конкретно???
...
Однако, результата не добился Жаль.
...
Все ногти згрыз Я зол!


 Отлично Велик и могуч...

Понимаю, что я тупила, но где конкретно???

Ярослав, в данном случае тупила не глагол, а существительное, типа: водила, чудила, etc.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 14-05-2013 15:14 » 

Джон, да после разъяснений lsnbox я понял Улыбаюсь, но сразу прочитал фразу с другим смыслом...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines