Вход | Регистрация

1С:Предприятие ::

Метки:

Поиск документов содержащих выбранный товар

Я
   lexa
 
09.04.04 - 14:31
Функция ПоискСсылок(ВыбТМЦ)
    Если (ПустоеЗначение(ВыбТМЦ) = 1) или (ВыбТМЦ.ЭтоГруппа()=1) Тогда
        Возврат 0;    
    КонецЕсли;
    Док = СоздатьОбъект("Документ");
      Док.ВыбратьДокументы(); 
      Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица"); 
    Таб.ВывестиСекцию("Товар");    
    КолСтрок = 0;
      Пока Док.ПолучитьДокумент() = 1 Цикл 
          ТекЭлемент = Док.ТекущийДокумент();
         Если глЕстьРеквизитМнЧ("Номенклатура",Док.ТекущийДокумент().Вид()) = 1 Тогда

            Док.ВыбратьСтроки();
            Пока (Док.ПолучитьСтроку()=1) и (Док.Номенклатура = ВыбТМЦ)  Цикл

            
                    КолСтрок = КолСтрок + 1;
                      ПечДок=""+глНазваниеДокументаВЖурнале(Док.ТекущийДокумент())+""
                      + СокрЛП(Док.ТекущийДокумент().НомерДок) +  " от "
                      + СокрЛП(Док.ТекущийДокумент().ДатаДок) ; 
                    Таб.ВывестиСекцию("Документ"); 

            КонецЦикла;        
          КонецЕсли;    
      КонецЦикла;
    Если КолСтрок > 0 Тогда
          Предупреждение("Товар " + ВыбТМЦ.Код+ " "+ ВыбТМЦ.Наименование + РазделительСтрок + " содержится в документах");
        Таб.ТолькоПросмотр(1);
        Таб.Показать("Таблица", "");   
        Возврат 1;
    Иначе 
        Возврат 0;
    КонецЕсли;
     
    
КонецФункции
Сделал так, но тормозит. Посоветуйте как лучше сделать
 
  Рекламное место пустует
   Рупор абсурда
 
1 - 09.04.04 - 14:39
Запросом
   lexa
 
2 - 09.04.04 - 14:47
Запросом это понятно. Что перебрать все документы, где в табличной части присутствует товар или использовать регистр. Но мне надо, чтобы отражались и не проведенные документы
   427
 
3 - 09.04.04 - 14:48
Либо запросом по регистру....
Либо запросом БИ по нужным счетам ...

Будет быстрее ....
   DimG
 
4 - 09.04.04 - 14:54
ОбрабатыватьДокументы <?>;
Синтаксис:
ОбрабатыватьДокументы Проведенные|Непроведенные|Все;
Назначение:
Назначает условие обработки документов в запросе.
 Проведенные - только проведенные документы;
 Непроведенные - только непроведенные документы;
 Все - как проведенные, так и непроведенные документы;
Подробнее см. в документации, глава ''Язык Генерации Запросов''
   GrayT
 
5 - 09.04.04 - 14:55
А приведенный модуль может просто не сработать.
В цикле Получения строки при попадании на номенклатуру не того вида выпадает из документа
Если есть документы у которых реквизит назван не "Номенклатура".
Что будет если в качестве параметра передать не элемент, а просто пустое значение?

Я сперва выбрал бы все документы в которых присутствует нужный реквизит, а потом в цикле выбирал документы нужного вида без оценки необходимости проверять документ данного вида на каждом документе.
   DimG
 
6 - 09.04.04 - 15:01
видимо щас будет вопрос а как перебрать все документы в которых присутствует нужный реквизит
   GrayT
 
7 - 09.04.04 - 15:06
(6) Ну заодно и с метаданными научится работать.
   Flipper
8 - 09.04.04 - 15:17
Возможно, так:

Функция ПоискСсылок(ВыбТМЦ)
  Если ПустоеЗначение(ВыбТМЦ)=1 Тогда
    Возврат(0);
  КонецЕсли;
  Результат = 0;
  Таб=СоздатьОбъект("ТаблицаЗначений");
  НайтиСсылки(ВыбТМЦ,Таб);
  Для й=1 по Таб.КоличествоСтрок() Цикл
    Д = Таб.ПолучитьЗначение(й,2);
    Если ТипЗначенияСтр(Д) = "Документ" Тогда
      Состояние(Д.ПредставлениеВида()+""+Строка(Д.НомерДок)+" от "+Строка(Д.ДатаДок));
      Результат=1;
    КонецЕсли;
  КонецЦикла;
  Возврат(Результат);
КонецФункции
   SnarkHunter
 
9 - 09.04.04 - 15:33
(0)НайтиСсылки() посмотри... Но это тормоза...
   lexa
 
10 - 09.04.04 - 16:44
(8) Спасибо уже сделал через запрос
to DinG ты такой умный, ну и так далее (по гоблину)
 
  Рекламное место пустует
   DimG
 
11 - 09.04.04 - 16:49
(10) хм, а ты думал как. Конечно умный. А как там по гоблину-то?
   lexa
 
12 - 09.04.04 - 16:52
Ты такой умный тебе череп не жмет (с прибалтийским акцентом, ну и еще прицелиться надо из лука - "Две сорванные башни")
   DimG
 
13 - 09.04.04 - 16:54
(12) действительно смешно, спасибо, развеселил. Надо запомнить, блесну где нибудь эрудицией.
   427
 
14 - 09.04.04 - 18:42
Не могу понять... А зачем непроведенные то нужны?
   skunk
 
15 - 09.04.04 - 18:43
черную бухию так ведут... видал такие конторы...
   427
 
16 - 09.04.04 - 19:53
(15) нет движений (доки непроведенные) - нет учета...

Маразматики....
   skunk
 
17 - 09.04.04 - 19:56
такие "советники" были... а дальше по привычке... даже отчеты все переделанные... если не хотят менять, разворачиваюсь и ухожу ((
   Flipper
18 - 11.04.04 - 12:32
(10)  А скорость сравнить через запрос и через НайтиСсылки не пробовал?
Любопытно просто..
   SnarkHunter
 
19 - 11.04.04 - 12:41
(18)Я делал через НайтиСсылки() поиск ссылок на 500 элементов номенклатуры - примерно 26-30 минут... Прямой СКЛ запрос отработал поиск ссылок на 15000 элементов за 2:35 - 3:05...


Список тем форума
Рекламное место пустует  
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует