Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: 1c7 Начинающему нужна помощь!  (Прочитано 6465 раз)
0 Пользователей и 1 Гость смотрят эту тему.
bezdna
Гость
« : 23-07-2009 05:04 » 

Здравствуйте!

Необходимо  в цикле запроса получить значение переменной запроса ,  и дальше его использовать
Привожу  код в комментарии указано где именно. Если значение подствляю явно всё рабо//Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Обрабатывать НеПомеченныеНаУдаление;      
   |Код = Справочник.Номенклатура.Код; 
   |ТекущийЭлемент = Справочник.Номенклатура.ТекущийЭлемент;   
   |Артикул = Справочник.Номенклатура.Артикул;
   |КодПоставщика = Справочник.Номенклатура.КодПоставщика;
   |ШтрихКод = Справочник.Номенклатура.БазоваяЕдиница.ШтрихКод;
   |ШтрихКод2 = Справочник.Номенклатура.ОсновнаяЕдиница.ШтрихКод; 
   |Условие (Код<1000);
   |Группировка Код; 
   |Группировка ТекущийЭлемент;
   |Группировка Артикул;
   |Группировка КодПоставщика;
    |Группировка ШтрихКод; 
   |"//}}ЗАПРОС
   ;
    Таб=СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");

    ТОВ=СоздатьОбъект("СписокЗначений");
   Спр=СоздатьОбъект("Справочник.Номенклатура");
   
   Спр.ВыбратьЭлементы();
   Пока Спр.ПолучитьЭлемент()=1 Цикл
      Если Спр.ЭтоГруппа()=1 Тогда
         Продолжить;
      КонецЕсли;
      Если (Спр.ПометкаУдаления()=1) Тогда
         Продолжить;
      КонецЕсли;
      
      ии = 0;
      Для ии = 1 По СписокНом.РазмерСписка() Цикл
         ТС=СписокНом.ПолучитьЗначение(ии);
         Если ТС.ЭтоГруппа()=1 Тогда
            Если Спр.ПринадлежитГруппе(ТС)=1 Тогда
               ТОВ.ДобавитьЗначение(Спр.ТекущийЭлемент());
            КонецЕсли;
         Иначе
            ТОВ.ДобавитьЗначение(ТС);
         КонецЕсли;
      КонецЦикла;
   КонецЦикла; 
   
 
                                 
 
            // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
      Возврат;
   КонецЕсли;
     Ном=0;   
   
   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок"); 
   
   Спр=СоздатьОбъект("Справочник.Номенклатура");
   
      
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   
   Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Код     
         
      Пока Запрос.Группировка(2) = 1 Цикл
         // Заполнение полей ТекущийЭлемент     
      //   Сообщить("ТекущийЭлемент   " + ТекущийЭлемент);   
      Пока Запрос.Группировка(3) = 1 Цикл
            // Заполнение полей Артикул
         Пока Запрос.Группировка(4) = 1 Цикл
               // Заполнение полей КодПоставщика
                Пока Запрос.Группировка("ШтрихКод") = 1 Цикл   
                   
                    
                   Ном=Ном+1;
                  // Заполнение полей ШтрихКод
                  Если ПустоеЗначение(Запрос.ШтрихКод2) = 1 Тогда
                   //   Сообщить("ТЗ Штрихкод "+ПустоеЗначение(ТЗ.Штрихкод)  + " 1  " + ТЗ.ШтрихКод2);
                   ШтрихКод3=Запрос.ШтрихКод
                  Иначе  ШтрихКод3=Запрос.ШтрихКод2
                  КонецЕсли; 
            
               
                Таб.ПолучитьСекцию("ШтрихКод");
               ТекущаяАктивнаяОбласть=Таб.Область("R"+3,"C"+2);
               Код1=ТекущаяАктивнаяОбласть.Текст;
                  Сообщить("Код  "+Код1);
               
               
               
               С1=СоздатьОбъект("Справочник.Номенклатура");
         //      С1.НайтиПоКоду("15769");
         //       Код=Как присвоить значение текущего поля Код  оно находится вторым по счёту в текущей секции?
         //      Впринципе это нужно для того чтобы получить значение розничной цены
         //       С1.НайтиПоНаименованию(Код);
               Ссылка = С1.ТекущийЭлемент(); 
         
             С=СоздатьОбъект("Справочник.Цены");
                С.ИспользоватьВладельца(Ссылка);
                С.ИспользоватьДату(ТекущаяДата());
                С.ТекущийЭлемент();
                Конст=Константа.РозничныйТипЦен;
   
              С.ВыбратьЭлементы();   
                      
                   Пока С.ПолучитьЭлемент()=1 цикл 
                   Сообщить("Есть элементы в цикле!!!");
                   Если С.ТипЦен=Конст Тогда
                       Розница=С.Цена;
                       Сообщить("Розничная цена  "+Розница);
                      Прервать;
                   КонецЕсли;
                КонецЦикла;   
   
               
               
               
               Таб.ВывестиСекцию("ШтрихКод");
         
               
   

                  
               КонецЦикла;
            КонецЦикла;
         КонецЦикла;
      КонецЦикла;
      КонецЦикла;
                     тает.



Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 23-07-2009 08:34 » new

1. Опиши что ты хочешь получить
2. Возьми код в тег [ code][/ code] (без пробелов)
3.
Код:
         //       Код=Как присвоить значение текущего поля Код  оно находится вторым по счёту в текущей секции?
         Код=Запрос.Код;
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines