7.7 СводныйОстаток()

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем X-Man, 20 ноя 2008.

  1. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    Доброго времени суток. Помогите разобраться со следующей проблемой:
    есть регистр, в нем след. измерения(Наименование-Тип):

    СпецификацияСнабжение-"Документ.СпецификацияСнабжение";
    ЗаказПоставщику-"Документ.ЗаказПоставщику";
    Номенклатура-"Справочник.Номенклатура";
    НомерПредоплаты-"Число".

    Так вот, почему когда я пишу
    Код:
    ВремВзаимТМЦ.СводныйОстаток(ПоСпецификации.ТекущийДокумент(),ПолучитьПустоеЗначение(),,8, "СуммаПредоплат");	
    
    
    возвращается не ноль, а когда пишу
    Код:
    ВремВзаимТМЦ.СводныйОстаток(ПоСпецификации.ТекущийДокумент(),ПолучитьПустоеЗначение("Документ.ЗаказПоставщику"),,8, "СуммаПредоплат");	
    
    получаю ноль? По-моему, в данном контексте эти два метода должны работать одинаково. помогите пожалуйста, я уже запутался. Заранее благодарен за помощь.
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    У 1С много скрытых глюков (особенно когда начнеш делать запросы по компоненте Расчет). Может это один из них?
    Я бы сначала создал документ, например "Док = СоздатьОбъект("Документ.ЗаказПоставщику")", а потом его использовал в подборе остатков. Еще обрати внимание, тебе надо по всем документам (тогда вообще не указывай) или по документам с пустым значением.
  3. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    Если бы мне надо было по всем документам-проблем бы не было. В том-то весь и прикол, что мне надо по документам с пустым значением, но по всей номенклатуре:)
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Что касается вопроса из первого поста: дело тут в том, что для 1с "Пустое значение" и "Пустое значение определенного типа/вида" это разные вещи. Соответственно и результат выполнения запроса меняется.
    А дальше я не понял :) Решена проблема или нет?
  5. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    Ну, не знаю, не знаю. Согласился бы с Вами, если бы не одно обстоятельство:

    Код:
    ВремВзаимТМЦ.Остаток(ПоСпецификации.ТекущийДокумент(),ПолучитьПустоеЗначение(),ТабДокумента.Номенклатура,8, "СуммаПредоплат");
    
    и

    Код:
    ВремВзаимТМЦ.Остаток(ПоСпецификации.ТекущийДокумент(),ПолучитьПустоеЗначение("Документ.ЗаказПоставщику"),ТабДокумента.Номенклатура,8, "СуммаПредоплат");
    
    возвращают один и тот же ненулевой(!) результат. Так что, дело, скорее всего, не в этом. Тем более, что измерение не является измерением неопраделенного типа. Оно имеет вполне определенный тип "Документ.ЗаказПоставщику".
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    В 1с7 нет неопределенного типа и пустые значения - это такие же значения как и другие элементы базы. Убедиться в этом можно даже из 1с. Напишите, например:
    Код:
    Сообщить(ЗначениеВСтрокуВнутр(ПолучитьПустоеЗначение()));
    Сообщить(ЗначениеВСтрокуВнутр(ПолучитьПустоеЗначение("Документ.ЗаказПоставщику")));
    
    
    Я не знаю каким образом 1с производит преобразование типов, и лишь предполагаю, что из-за этого у Вас получаются разные результаты.
    Что касается остатков... Мне кажется логичным предположить, что 1С считает "Остаток" и "СводныйОстаток" по-разному. :unsure: Поэтому и сравнивать результаты работы этих методов не стоит.
  7. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ты мой вариант пробовал? Как только создаешь переменную, то она позиционируется на пустое значение. Вот его и используй...
Похожие темы
  1. audiserg
    Ответов:
    4
    Просмотров:
    1.567
Загрузка...

Поделиться этой страницей