7.7 Выборка документов по отбору не работает...

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем antares, 17 янв 2007.

  1. TopicStarter Overlay
    antares
    Offline

    antares Опытный в 1С

    Регистрация:
    30 ноя 2006
    Сообщения:
    340
    Симпатии:
    7
    Баллы:
    29
    Это пример, при выполнении выдает ошибку "документ - объект определенного типа!" и ссылается на 2-ую строку примера.
    Док=СоздатьОбъект("Документ.ПоступлениеТМЦ");
    Если Док.ВыбратьПоЗначению(НачДат,КонДат,"ЮрЛицо",фрмЮрЛицо)>0 Тогда
    Сообщить("Прорвались!!!");
    КонецЕсли;


    Что здесь не так? В описании ни слова не сказано что метод не применим к объектам определенного типа.
  2. taramaz
    Offline

    taramaz

    Регистрация:
    21 ноя 2006
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Делай так...
    Док=СоздатьОбъект("Документ");
    Если Док.ВыбратьДокументы(НачДат,КонДат)>0 Тогда
    Пока Док.ПолучитьДокумент()=1 Цикл
    ТекДок=Док.ТекущийДокумент();
    Если ТекДок.ЮрЛицо=фрмЮрЛицо И ТекДок.Вид()="ПоступлениеТМЦ" Тогда
    Сообщить("Прорвались!!!");
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
  3. TopicStarter Overlay
    antares
    Offline

    antares Опытный в 1С

    Регистрация:
    30 ноя 2006
    Сообщения:
    340
    Симпатии:
    7
    Баллы:
    29
    Именно так я уже сделал. Но согласись, операторов больше, а значит не оптимально.
  4. alex-79
    Offline

    alex-79 Опытный в 1С

    Регистрация:
    21 сен 2006
    Сообщения:
    643
    Симпатии:
    1
    Баллы:
    29
    Док.ВыбратьПоЗначению(НачДат,КонДат,"ЮрЛицо",фрмЮрЛицо) - при такой конструкции документ должен быть неопределенного типа:

    Док = СоздатьОбъект("Документ");

    Во-вторых ещё нужно убедится, что в конфе заведен общий реквизит "ЮрЛицо", иначе работать выборка не будет. Это в любой документации написано.

    :unsure:

    Это уже опробовано
  5. LalS
    Offline

    LalS

    Регистрация:
    3 июл 2006
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    вот такой уменьшает количество просматриваемых доков и соответственно убыстряет
    пр ибольших выборках

    Док=СоздатьОбъект("Документ.ПоступлениеТМЦ");
    Док.ВыбратьДокументы(НачДат,КонДат)
    Пока Док.ПолучитьДокумент()=1 Цикл
    ТекДок=Док.ТекущийДокумент();
    Если ТекДок.ЮрЛицо = фрмЮрЛицо Тогда
    Сообщить("Прорвались!!!");
    КонецЕсли;
    КонецЦикла;
  6. Хомыч
    Offline

    Хомыч

    Регистрация:
    24 фев 2007
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Заведи графуотбора ЮрЛицо для документа ПоступлениеТМЦ
    и тогда

    Док=СоздатьОбъект("Документ");
    Если Док.ВыбратьПоЗначению(НачДат,КонДат,"ЮрЛицо",фрмЮрЛицо)>0 Тогда
    Сообщить("Прорвались!!!");
    КонецЕсли;


    будет работать оптимально

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