|   |   | 
| 
 | v7: проблема с поиском в тз | ☑ | ||
|---|---|---|---|---|
| 0
    
        LamerSql 14.07.11✎ 10:13 | 
        ТаблицаНоменклатуры = СоздатьОбъект("ТаблицаЗначений");
  ВыгрузитьТабличнуюЧасть(ТаблицаНоменклатуры,"Номенклатура"); //ТаблицаНоменклатуры.ВыбратьСтроку(); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Номенклатура = Документ.Реализация.Номенклатура; |Количество = Документ.Реализация.Количество; |ТекущийДокумент = Документ.Реализация.ТекущийДокумент; |Функция КоличествоСумма = Сумма(Количество); |Группировка Номенклатура без групп; |Условие(ТекущийДокумент = ДокОснование); |"; // Если ошибка в запросе, то выход из процедуры тзОстатки = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выполнить(ТекстЗапроса); Запрос.Выгрузить(тзОстатки); тзОстатки.ВыбратьСтроку(); ТекстЗапроса = " |ОбрабатыватьДокументы все; |Номенклатура = Документ.ВозвратОтПокупателя.Номенклатура; |Количество = Документ.ВозвратОтПокупателя.Количество; |ДокРеализации = Документ.ВозвратОтПокупателя.ТекущийДокумент.ДокОснование; |Функция КоличествоСумма = Сумма(Количество); |Группировка Номенклатура без групп; |Условие(ДокРеализации = ДокОснование); |"; тзВозврат = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выполнить(ТекстЗапроса); Запрос.Выгрузить(тзВозврат); тзВозврат.ВыбратьСтроку(); тзВозврат.ВыбратьСтроки(); Пока тзВозврат.ПолучитьСтроку() = 1 Цикл Если тзОстатки.НайтиЗначение(тзВозврат.Номенклатура,НомерСтрокиТз,"Номенклатура") = 0 Тогда // значение не найдено Сообщить("Внимание товара: "+тзВозврат.Номенклатура+" нет в реализации: "+ ДокОснование); КонецЕсли; КонецЦикла; Вот это всегда возврашает 0, хотя товар должен находиться, сильно не пинать с 7-кой незнаком почти. Пока тзВозврат.ПолучитьСтроку() = 1 Цикл Если тзОстатки.НайтиЗначение(тзВозврат.Номенклатура,НомерСтрокиТз,"Номенклатура") = 0 Тогда // значение не найдено Сообщить("Внимание товара: "+тзВозврат.Номенклатура+" нет в реализации: "+ ДокОснование); КонецЕсли; КонецЦикла; | |||
| 1
    
        andrewks 14.07.11✎ 10:15 | 
        ока тзВозврат.ПолучитьСтроку() = 1 Цикл
  НомерСтрокиТз=0; Если тзОстатки.НайтиЗначение(тзВозврат.Номенклатура,НомерСтрокиТз,"Номенклатура") = 0 Тогда // значение не найдено Сообщить("Внимание товара: "+тзВозврат.Номенклатура+" нет в реализации: "+ ДокОснование); КонецЕсли; КонецЦикла; | |||
| 2
    
        Vitello 14.07.11✎ 10:15 | 
        НомерСтрокиТз - обнуляешь?     | |||
| 3
    
        1Сергей 14.07.11✎ 10:16 | 
        (2)+ перед каждым поиском     | |||
| 4
    
        vde69 14.07.11✎ 10:16 | 
        вот это не нужно совсем
  тзВозврат.ВыбратьСтроку(); тзВозврат.ВыбратьСтроки(); Пока тзВозврат.ПолучитьСтроку() = 1 Цикл | |||
| 5
    
        LamerSql 14.07.11✎ 10:16 | 
        (2) блин по-моему понял где лошанулся.     | |||
| 6
    
        Ёпрст гуру 14.07.11✎ 10:17 | 
        (0)
  Пока тзВозврат.ПолучитьСтроку() = 1 Цикл НомерСтрокиТз=""; | |||
| 7
    
        LamerSql 14.07.11✎ 10:19 | 
        помнит народ семерку..... молодцы. 2 года не сталкивался, а тогда всего месяц учил. всем спасибо     | |||
| 8
    
        Ёпрст гуру 14.07.11✎ 10:19 | 
        1 запрос не нужен, достаточно
  ДокОснование.ВыгрузитьТабличнуюЧасть + без указания периода, он будет искать в дате = ДатеТА.. т.е может вообще ничего не найти, во втором запросе - аналогично, без указания периода этот запрос коту под хвост. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |