Непонятно почему

1. Just 3 16.01.08 13:05 Сейчас в теме
Здравствуйте, давно программирую на 77, сегодня столкнулся с такой темой

Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()=1 Цикл

Если ПустоеЗначение(Док)=0 Тогда

КонецЕсли;

КонецЦикла;

Вроде все просто, но ПустоеЗначение(Док) возвращает =1, Как так?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. АЛьФ 16.01.08 13:53 Сейчас в теме
В данном случае надо использовать не функцию ПустоеЗначение(), а метод Выбран().
Ну, или на крайняк, писать так:

Если ПустоеЗначение(Док.ТекущийДокумент())=0 Тогда
3. Abadonna 3971 16.01.08 16:31 Сейчас в теме
Просто Док - это объект, который ты создал. С каких щей он будет не пустым?
А вот как написал АЛьФ - действительно может
4. maloi_a 17.01.08 06:26 Сейчас в теме
1. Если мы внутри цикла, то Док обязательно содержит значение и проверять его совершенно не нужно.
2. Но вот что мы находим в описаннии функции
"ПустоеЗначение(<Значение>)"

- значения следующих типов: ''справочник'', ''перечисление'', ''документ'', ''счет'', ''вид субконто'', ''план счетов'', ''календарь'' проверяются как в методах Выбран для соответствующего типа объекта.;

Тут бы, конечно, уточнить бы, что значение метода Выбран наоборот.

3. А на самом деле внутри цикла:
Док = Счет-фактура ХХХХХХ (01.05.07)
Док.Выбран() = 1
ПустоеЗначение(Док) = 1
ПустоеЗначение(Док.ТекущийДокумент()) = 0
ТипЗначения(Док) = 12
ТипЗначения(Док.ТекущийДокумент()) = 12
ТипЗначенияСтр(Док) = "Документ"
ТипЗначенияСтр(Док.ТекущийДокумент()) = "Документ"
Док.Вид() = "СчетФактура"
Док.ТекущийДокумент().Вид() = "СчетФактура"
5. Just 3 17.01.08 07:43 Сейчас в теме
To Abadonna, Альф
В нутри цикла Док точно не пустой при переборе, там как минимум ссылка на документ и почему он показывает пустую я не понимаю,
а насчет Выбрать() и Док.ТекущийДокумент() я и так знаю , но вот только в комплексной
Функция глПредставлениеДокумента(Документ) Экспорт
Если (ТипЗначения(Документ)=12)
и (ПустоеЗначение(Документ)=0)

и как правильно написал maloi_a ТипЗначения(Документ) = 12, а ПустоеЗначение(Документ)=1
6. Just 3 17.01.08 07:50 Сейчас в теме
maloi_a Написал:
-------------------------------------------------------

> 2. Но вот что мы находим в описаннии функции
> "ПустоеЗначение(<Значение>"
>
> - значения следующих типов: ''справочник'',
> ''перечисление'', ''документ'', ''счет'', ''вид
> субконто'', ''план счетов'', ''календарь''
> проверяются как в методах Выбран для
> соответствующего типа объекта.;
>

Вот в этом видимо и есть правда
> Тут бы, конечно, уточнить бы, что значение метода
> Выбран наоборот.
>
7. poppy 17.01.08 11:08 Сейчас в теме
just Написал:
-------------------------------------------------------
> To Abadonna, Альф
> В нутри цикла Док точно не пустой при переборе,
> там как минимум ссылка на документ и почему он
> показывает пустую я не понимаю,

Это невозможно понять = это надо запомнить ;)

Почитай внимательно замечание в главе 12 на станице 239 описания встроенного языка, часть 1. Там есть косвенное объяснение этому.

> а насчет Выбрать() и Док.ТекущийДокумент() я и
> так знаю , но вот только в комплексной
> Функция глПредставлениеДокумента(Документ)
> Экспорт
> Если (ТипЗначения(Документ)=12)
> и (ПустоеЗначение(Документ)=0)
>
> и как правильно написал maloi_a
> ТипЗначения(Документ) = 12, а
> ПустоеЗначение(Документ)=1

При вызове функции будет неправильно глПредставлениеДокумента(Док), надо писать глПредставлениеДокумента(Док.ТекущийДокумент())
8. maloi_a 17.01.08 12:15 Сейчас в теме
При вызове глПредставлениеДокумента(Док) как раз и отслеживается
Если (ТипЗначения(Документ)=12)
и (ПустоеЗначение(Документ)=0)
Просто возвратит пустую строку - без представления.
Я бы просто поправил вместо Возврат "" -
Возврат ?(ТипЗначения(Документ)=12,Возврат глПредставлениеДокумента(Док.ТекущийДокумент()),"");
И всё.
Хоть как вызывай - будет правильнее.
Док <> Док.ТекущийДокумент().
Просто функция "ПустоеЗначение" работает не так, как подразумевается в описании.
Надо не объяснять, а поправить описание.
Я понял just, он изъясняется логично.
Это функция работает нелогично.

9. Just 3 18.01.08 07:37 Сейчас в теме
Спасибо maloi_a, я тоже так подумал, что
> Это функция работает нелогично.
а мне пытаются впарить, что я совсем ламер, немного расстроился
10. maloi_a 18.01.08 08:35 Сейчас в теме
Я тоже расстраиваюсь, но потом успокаиваюсь.
Могу добавить ещё две функции Общего назначения (находятся даже в одной ветке):
Состояние(Док); - невероятно
и
Сообщить(Док); - логично
А также
Состояние(Док.ТекущийДокумент()); - нелогично
и
Сообщить(Док.ТекущийДокумент()); - логично

Остальные все логично:
Состояние(""+Док);
и
Сообщить(""+Док);
Состояние(""+Док.ТекущийДокумент());
и
Сообщить(""+Док.ТекущийДокумент());

Где выводится правильно?

11. CheBurator 3139 18.01.08 14:31 Сейчас в теме
Приходит студент на экзамен, как понимаете - полный 0...
И говорит:
- Товарищ профессор, вот почему всегда все экзамены по одной схеме проводятся, давайте что-нибудь изменим, типа наоборот... т.е. если вы на 3 моих вопроса не ответите- то ставите мне 5, ответите - на ваше усмотрение... Идет?
Профессор думает: "Ну, я - профессор, и что - не отвечу на вопросы студент...?" и говорит: "Идет! Давайте ваши вопросы!"
Студент:
- Вопрос первый: что такое законно, но нелогично?
Профессор задумался, думал так-сяк - не знаю!!!
Студент: вот вы, профессор, вам 60 лет, а у вас молодая жена 25 лет... Законно?
Профессор: законно!
Студент: Но нелогично!
Профессор: согласен... Давайте второй вопрос!
Студент:
- Вопрос второй: что такое логично, но незаконно?
Профессор задумался, думал так-сяк - не знаю!!!
Студент: у вашей молодой жены наверняка есть любовник, вам ведь все-таки 60 лет... Логично?
Профессор: логично!
Студент: Но незаконно!
Профессор: но незаконно! Давайте третий вопрос!
Студент:
- Вопрос третий: что такое и нелогично, и незаконно?
Профессор думал-думал, думал-думал... не выходит! и говорит: не знаю! говори ответ!
Студент:
... продолжи анекдот сам...


Оставьте свое сообщение

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