7.7 В запрос попадают нулевые значения функций!

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

  1. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Всем здравствуйте. Есть запрос по регистру остатков:
    Код:
    <div>Запрос = СоздатьОбъект("Запрос");</div><div>ВыбКонПериода=ПолучитьДатуТА();</div><div>ВыбНачПериода=ВыбКонПериода-90; &nbsp; &nbsp; //ПолучитьДатуТА()</div><div>ТекстЗапроса =&nbsp;</div><div>"//{{ЗАПРОС(Запрос)</div><div>|Период с ВыбНачПериода по ВыбКонПериода;</div><div>|Товар &nbsp; &nbsp; &nbsp; &nbsp; = Регистр.ОстаткиТоваров.Товар; &nbsp; &nbsp;</div><div>|НаименованиеТовара = Регистр.ОстаткиТоваров.Товар.Наименование;<span class="Apple-tab-span" style="white-space:pre"> </span></div><div>|МТКодКПК &nbsp; &nbsp; = Регистр.ОстаткиТоваров.Товар.МТКодКПК; &nbsp;</div><div>|Склад &nbsp; &nbsp; &nbsp; &nbsp; = Регистр.ОстаткиТоваров.Склад;</div><div>|Подразделение = Регистр.ОстаткиТоваров.Подразделение;</div><div>|ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара;</div><div>|Функция ОстатокТовараНачОст = НачОст(ОстатокТовара);</div><div>|Функция ОстатокТовараПриход = Приход(ОстатокТовара);</div><div>|Функция ОстатокТовараРасход = Расход(ОстатокТовара);</div><div>|Функция ОстатокТовараКонОст = КонОст(ОстатокТовара);</div><div>//|Группировка Склад без групп;</div><div>|Группировка Товар без групп;</div><div>|Условие (Склад в СписокСкладов);&nbsp;</div><div>|Условие (Подразделение в ВыбПодразделения);&nbsp;</div><div>|"</div><div>;</div><div><br></div><div>УсловиеДляНаименования = "&nbsp;</div><div>|Условие(Найти(НаименованиеТовара, ""ведро"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""справка"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""Картонный"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""лист"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""онтейнер"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""услуги"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""ранспорт"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""Пакет"") = 0);</div><div>|Условие(Найти(НаименованиеТовара, ""майка"") = 0);</div><div>|"</div><div>;</div><div>ТекстЗапроса = ТекстЗапроса + УсловиеДляНаименования;</div><div><br></div><div>// Если ошибка в запросе, то выход из процедуры</div><div>Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда</div><div>Возврат;</div><div>КонецЕсли;</div>
    Далее есть цикл по списку товаров, в котором производится позиционирование на конкретное значение группировки запроса:

    Код:
    Для СчТов = 1 По СписокТоваров.РазмерСписка() Цикл  
    текТовар = СписокТоваров.ПолучитьЗначение(СчТов);
    Запрос.ВНачалоВыборки();
    Если Запрос.Получить(текТовар) = 1 Тогда	
    //Заполняем Таблицу товара
    мТзнТоваров.НоваяСтрока();
    мТзнТоваров.Товар			   = Запрос.Товар;
    мТзнТоваров.ОстатокТовараНачОст = Запрос.ОстатокТовараНачОст;
    мТзнТоваров.ОстатокТовараПриход = Запрос.ОстатокТовараПриход;
    мТзнТоваров.ОстатокТовараРасход = Запрос.ОстатокТовараРасход;
    мТзнТоваров.ОстатокТовараКонОст = Запрос.ОстатокТовараКонОст;
    КонецЦикла;
    Вопрос: Почему метод Получить() возвращает 1 для тех товаров, для которых значение всех четырех функций запроса нулевое?
  2. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Но группировка то есть... Вот и возвращает. Попробуйте выгрузить результаты запроса в ТЗ - убедитесь сами
  3. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Возвращает 1, а куда позиционирует?
    А вообще, да. При отладке работы запроса в первую очередь нужно выгружать результат в таблицу. 80% вопросов это сразу снимает.
    [off]Кстати, нужно покопаться в копилке, я вроде выкладывал обработку - консоль запроса. Там в текстовое поле вводишь запрос и получаешь таблицу значений. Если не найдешь, пиши в личку, попробую у себя найти.[/off]
  4. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Ну и что, что есть группировка? Почему же он тогда не во всём цикле (не для всех элементов списка значений) возвращает 1? В ТЗ выгружал, есть строки с нулевыми значениями в столбцах функций. Я бы все понял, если бы я указал в тексте "Группировка Товар Все[ВошедшиеВЗапрос]" . А так-не понимаю.
  5. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Позиционирует правильно.
  6. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    во-во.... значения функции есть, а условие не выполнено.
    Попробуйте в функцию добавить КОГДА, а условия по наименованиям - убрать.

    З/Ы гараздо удобнее пользоваться СЗ и элементами справочника, а не найти. Тогда можно применть конструкцию
    Код:
    НЕ (товар в СписокИсключаемыхТоваров)
  7. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Я вообще ничего не понял:) Значения функции-нулевые, группировка-есть. Откуда она взялась, если условия не выполнены?
  8. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    а что собственно не понятно?
    попробуйте так:
    Код:
    Функция ОстатокТовараНачОст = НачОст(ОстатокТовара) когда (НЕ (товар в СписокИсключаемыхТоваров))
  9. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Спасибо, попробую. А как лучше эти товары отобрать? Запросом по справочнику(он огромный)?
  10. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    если таких элементов штук 10 или они в отдельной группе - возложите отбор на пользователя.
    Добавьте отдельный список на форму отчета. К тому же так будет универсальнее. Не нужно править код в дальнейшем
  11. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Нет, это обработка автоматической выгрузки остатков и цен на КПК, запускается ночью, пользователи спят:)
  12. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ха.... А что ЗначениеВФайл или СохранитьЗначение применить вера не позволяет?))))))))))
  13. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Этот список не фиксированный. Справочник интенсивно редактируется.
  14. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    я об этом и говорю! Есть форма настройки . В ней пользователь может добавить/удалить элементы. Все Сохраняется в файл. А уж робот "хавает" что ему передали. Намного удобнее.
  15. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Пользователи редактируют справочник, а не список. Заставить их, чтобы они еще отдельно заносили эти элементы в список формы я не могу(да и не хочу свои нервы мотать). Если только в момент записи нового элемента поколдовать?
  16. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Может флаг в элемент справочника добавить? Скажем НеВыгружать.
    Код:
    Функция ОстатокТовараНачОст = НачОст(ОстатокТовара) когда (товар.НеВыгружать=0)
  17. TopicStarter Overlay
    X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Наверное, так и сделаю. Будет кому уши надрать в случае выгрузки "мусора":)
  18. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    правильно....
    сделал, написал инструкцию, а дальше: Судьба индейцев шерифа не волнует......
Похожие темы
  1. NikolaevAV
    Ответов:
    1
    Просмотров:
    2.350
  2. Lok
    Ответов:
    5
    Просмотров:
    661
  3. 4ndr3j
    Ответов:
    5
    Просмотров:
    859
  4. cplusmax
    Ответов:
    1
    Просмотров:
    948
  5. bluntschi
    Ответов:
    3
    Просмотров:
    658
Загрузка...

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