Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запросы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
alex040269
Здравствуйте.

1)
        Запрос = СоздатьОбъект("Запрос");
        ТЗ =     "//{{ЗАПРОС(Договор)
                |С '01.01.01' По '31.12.2100';
                |ЗФирма = Документ.Договор.Фирма;
                |ЗКонтрагент = Документ.Договор.Контрагент;
                |ДатаНачала = Документ.Договор.ДатаНачала;
                |ДатаОкончания = Документ.Договор.ДатаОкончания;
                |ТекущийДокумент = Документ.Договор.ТекущийДокумент;
                |Группировка ТекущийДокумент;
                |Условие(ЗФирма=Фирма);
                |Условие(ЗКонтрагент=ВыбКонтрагент);
                //|Условие(ДатаНачала<=ДатаДок);
                //|Условие((ПустоеЗначение(ДатаОкончания) = 1) ИЛИ (ДатаОкончания>=ДатаДок));
                |"//}}ЗАПРОС
               ;
        ВыбКонтрагент = Откуда.Владелец;
    Запрос.Выполнить(ТЗ);

2)
        Запрос = СоздатьОбъект("Запрос");
        ТЗ =     "//{{ЗАПРОС(Договор)
                |С '01.01.01' По '31.12.2100';
                |ЗФирма = Документ.Договор.Фирма;
                |ЗКонтрагент = Документ.Договор.Контрагент.Код;
                |ДатаНачала = Документ.Договор.ДатаНачала;
                |ДатаОкончания = Документ.Договор.ДатаОкончания;
                |ТекущийДокумент = Документ.Договор.ТекущийДокумент;
                |Группировка ТекущийДокумент;
                |Условие(ЗФирма=Фирма);
                |Условие(ЗКонтрагент=ВыбКонтрагент);
                //|Условие(ДатаНачала<=ДатаДок);
                //|Условие((ПустоеЗначение(ДатаОкончания) = 1) ИЛИ (ДатаОкончания>=ДатаДок));
                |"//}}ЗАПРОС
               ;
        ВыбКонтрагент = Откуда.Владелец.Код;
    Запрос.Выполнить(ТЗ);


Вот два варианта кода. В Первом случае договор не находится, а во втором находится. Подскажите, пожалуйста, почему?

Спасибо.
Pepe
Отличие только в третьей строке запроса при отборе контрагента. Наверняка ЗКонтрагент - код справочника.
alex040269
Цитата(Pepe @ 31.07.11, 11:46) необходимо зарегистрироваться для просмотра ссылки
Отличие только в третьей строке запроса при отборе контрагента. Наверняка ЗКонтрагент - код справочника.


Во-во. Если ставлю код справочника и в запросе и в определнии переменной (параметра) перед віполнением запроса, то запрос отрабатівает, а если САМ элемент - то нет.
оговорюсь сразу - метод ТекущийЭлемент() - не спасает!!!
Ardi
1. в договоре тип контрагета неопределенный
2. в базе несколько типов контрагентов.

3. владелец не является контрагентом, просто код совпал
alex040269
Цитата(Ardi @ 31.07.11, 12:01) необходимо зарегистрироваться для просмотра ссылки
1. в договоре тип контрагета неопределенный

Справочник.Контрагенты
Цитата(Ardi @ 31.07.11, 12:01) необходимо зарегистрироваться для просмотра ссылки
2. в базе несколько типов контрагентов.

один - Справочник.Контрагенты
Цитата(Ardi @ 31.07.11, 12:01) необходимо зарегистрироваться для просмотра ссылки
3. владелец не является контрагентом, просто код совпал

как это? - подчинен - Контрагенты
-=VJ=-
Цитата(alex040269 @ 31.07.11, 11:21) необходимо зарегистрироваться для просмотра ссылки
Подскажите, пожалуйста, почему?


Откуда мы должны знать "почему"? Вы же о конфигурации не написали ни слова. Типы значения переменных - тоже задача для экстрасенсов.

Налицо обычное несовпадение типа значения переменных - откуда оно возникло по этому коду никак не скажешь.
alex040269
Цитата(-=VJ=- @ 31.07.11, 18:34) необходимо зарегистрироваться для просмотра ссылки
Откуда мы должны знать "почему"? Вы же о конфигурации не написали ни слова. Типы значения переменных - тоже задача для экстрасенсов.

Налицо обычное несовпадение типа значения переменных - откуда оно возникло по этому коду никак не скажешь.


Кинфигурация ТиС 7,70,019

Документ.Договор.Контрагент - Справочник.Контрагенты;
Откуда - Справочник.ТорговыеТочки - подчинен Контрагенты.
Pepe
Цитата(alex040269 @ 31.07.11, 19:42) необходимо зарегистрироваться для просмотра ссылки
Кинфигурация ТиС 7,70,019
Откуда - Справочник.ТорговыеТочки - подчинен Контрагенты.

Конфигурация не типовая. В типовой нет справочника торговые точки. Как вывод - не определяется тип.
alex040269
Цитата(Pepe @ 31.07.11, 21:24) необходимо зарегистрироваться для просмотра ссылки
Конфигурация не типовая. В типовой нет справочника торговые точки. Как вывод - не определяется тип.

Очень интересное замечание!! Типы правильно определяются только в типовых конфигурациях?
5_kopeek
Цитата(alex040269 @ 06.08.11, 12:51) необходимо зарегистрироваться для просмотра ссылки
Очень интересное замечание!! Типы правильно определяются только в типовых конфигурациях?

Вывод сделан из Вашего описания проблемы, а не из утверждения, что Ваша конфигурация не типовая. Вы позволяете себе иронизировать, что крайне неуместно, когда Вам пытаются помочь.
kalyamov
Цитата(5_kopeek @ 06.08.11, 14:20) необходимо зарегистрироваться для просмотра ссылки
Вы позволяете себе иронизировать, что крайне неуместно, когда Вам пытаются помочь.


Вполне уместная ирония.
Может проблема в том, что 1С-ке ссылка - "Откуда.Владелец" кажется несколько туманной и стоит попробовать через СоздатьОбъект и НайтиЭлемент, чтоб уже наверняка показать ей Контрагента ?
alex040269
Цитата(kalyamov @ 06.08.11, 15:10) необходимо зарегистрироваться для просмотра ссылки
Вполне уместная ирония.
Может проблема в том, что 1С-ке ссылка - "Откуда.Владелец" кажется несколько туманной и стоит попробовать через СоздатьОбъект и НайтиЭлемент, чтоб уже наверняка показать ей Контрагента ?


ДА - ТАК РАБОТАЕТ!!!!
    Запрос = СоздатьОбъект("Запрос");
        ТЗ =     "//{{ЗАПРОС(Договор)
                |С '01.01.01' По '31.12.2100';
                |ЗФирма = Документ.Договор.Фирма;
                |ЗКонтрагент = Документ.Договор.Контрагент;
                |ДатаНачала = Документ.Договор.ДатаНачала;
                |ДатаОкончания = Документ.Договор.ДатаОкончания;
                |ТекущийДокумент = Документ.Договор.ТекущийДокумент;
                |Группировка ТекущийДокумент;
                |Условие(ЗФирма=Фирма);
                |Условие(ЗКонтрагент=ВыбКонтрагент);
                |Условие(ДатаНачала<=ДатаДок);
                |Условие((ПустоеЗначение(ДатаОкончания) = 1) ИЛИ (ДатаОкончания>=ДатаДок));
                |"//}}ЗАПРОС
              ;
              
        Спр = СоздатьОбъект("Справочник.Контрагенты");
        Если Спр.НайтиЭлемент(Откуда.Владелец) = 0 Тогда
            Сообщить("нет элемента")
        КонецЕсли;
        ВыбКонтрагент = Спр.ТекущийЭлемент();
        Запрос.Выполнить(ТЗ);
        
        СпЗнач = СоздатьОбъект("СписокЗначений");
        
        
        Пока Запрос.Группировка(1) = 1 Цикл
            СпЗнач.ДобавитьЗначение(Запрос.ТекущийДокумент,Строка(Запрос.ТекущийДокумент));
        КонецЦикла;
Pepe
Цитата(alex040269 @ 06.08.11, 13:51) необходимо зарегистрироваться для просмотра ссылки
Очень интересное замечание!! Типы правильно определяются только в типовых конфигурациях?

Типы определяются везде одинаково, с опытом общения точность определения типа увеличивается. Это к иронии.
Замечание о типовости конфигурации была как ремарка о невозможности дать точный ответ, а окончание моего поста - о месте, куда надо копать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.