7.7 Усложнёный запрос

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Arfey, 18 авг 2008.

  1. TopicStarter Overlay
    Arfey
    Offline

    Arfey

    Регистрация:
    31 июл 2008
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Нада перебрать справочник ТМЦ ... на наличие сходства в "Наименовании" с документом ПоступлениеТМЦ ... и в результате совпадений вывести суммы...


    Код следующий:

    Процедура Сформировать()
    Перем Запрос, ТекстЗапроса;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Сумма = Документ.ПоступлениеТМЦ.Сумма;
    |Партии = Документ.ПоступлениеТМЦ.ТМЦ;
    |Группировка Партии;
    |Группировка СтрокаДокумента;
    |";

    тз = создатьобъект("ТаблицаЗначений");
    спр = создатьобъект("Справочник.ТМЦ");
    Запрос.Выгрузить(тз);

    спр.ВыбратьЭлементы();
    тз.ВыбратьЭлементы(); // {Отчет.НаЗапрос.Форма.Модуль(40)}: Поле агрегатного объекта не обнаружено (ВыбратьЭлементы)
    Пока тз.получитьЭлемент() = 1 Цикл
    Если спр.НайтиЭлемент(тз.партии) = 1 Тогда

    Сообщить ("Чтото нашло!");

    иначе

    Сообщить ("Нефига");

    КонецЕсли;
    КонецЦикла;

    // Вывод заполненной формы

    КонецПроцедуры

    Немогу понять почему выдаёт ошыбку.... :unsure:
  2. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Потому что у ТаблицыЗначений нет метода ВыбратьЭлементы(), но есть метод ВыбратьСтроки()
  3. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    :) читай синтакс-помошник
  4. TopicStarter Overlay
    Arfey
    Offline

    Arfey

    Регистрация:
    31 июл 2008
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Только что сам нашол ... :unsure: ... Теперь тое самое Пока тз.получитьЭлемент() = 1 Цикл
  5. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    ПолучитьСтроку() RTFM
  6. TopicStarter Overlay
    Arfey
    Offline

    Arfey

    Регистрация:
    31 июл 2008
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Всё... сорри работает - просто устал уже ... :unsure: - а только понедельник

    Код:
    Процедура Сформировать()
    Перем Запрос, ТекстЗапроса;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Сумма = Документ.ПоступлениеТМЦ.Сумма;
    |Партии = Документ.ПоступлениеТМЦ.ТМЦ;                                   
    |Группировка Партии; 
    |Группировка СтрокаДокумента;
    |";             
    
    
    если Запрос.Выполнить(ТекстЗапроса) = 0 тогда
    возврат;
    КонецЕсли;
    //******* выборка из 1 документа*******
    //Таб.Очистить();
    //Таб.НоваяКолонка("Прв",,,,"Наименование",);	
    //Таб.НоваяКолонка("Втр","Число",,,"Сумма",);
    //Пока Запрос.Группировка(1) = 1 Цикл
    //	// Заполнение полей Партии
    //	Пока Запрос.Группировка(2) = 1 Цикл
    //		// Заполнение полей СтрокаДокумента  
    //		Таб.НоваяСтрока(); 
    //		Таб.Прв = Запрос.Партии;
    //		Таб.Втр = Запрос.Сумма;
    //		Форма.Таб.Доступность(0); 
    //	КонецЦикла;
    //КонецЦикла;    
    //******************
    
    тз  = создатьобъект("ТаблицаЗначений");
    спр = создатьобъект("Справочник.ТМЦ");
    Запрос.Выгрузить(тз);
    
    спр.ВыбратьЭлементы(); 
    тз.ВыбратьСтроки();
    Пока тз.ПолучитьСтроку() = 1 Цикл
    Если спр.НайтиЭлемент(тз.партии) = 1  Тогда 
    
    Сообщить ("Чтото нашло!");    // вывести ещё норм нада ...
    
    иначе  
    
    Сообщить ("Нефига");
    
    КонецЕсли;
    КонецЦикла;
    
    // Вывод заполненной формы
    
    КонецПроцедуры
    
    
    //*****работает*****

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