Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка

Модерирует : ShIvADeSt

ShIvADeSt (29-09-2006 09:19): продолжаем здесь
http://forum.ru-board.com/topic.cgi?forum=33&topic=7403
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

   

batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущая тема доступна здесь.
 
1С Предприятие "Конфигурирование и Администрирование"
 
Тема посвящена вопросам разработки, функционирования и обслуживания конфигураций 1С Предприятие.
 
Обсуждаются все версии, можно задавать любые вопросы, кроме нарушающих авторское право.  
Советы в подборе конфигураций в разделе программы
За  вопросами "где достать?", "откуда скачать?" Специальный сериал в Варезнике
 
Так же вопросы можно задавать и много полезного узнать на:
  • Волшебный форум
  • Территория 1С на кубани
     
    Некоторые из форумов посвященных бухучету:
  • Клерк.Ру (тут в основном Россияне)
  • Дебет-Кредит (тут в основном Украина)
     
    Для тех кто осознал что лучший способ эксплуатации 1С это вариант 1С+SQL:
  • Некоторое количество информации по этому вопросу (1С:Предприятие и SQL Server: практика использования. Решение проблем связки 1С и SQL, оптимизация. Книги по 1С, обработки, отчеты.)
  • Еще один ресурс по 1С+SQL  
     
    Ну и неплохо бы зайти еще вот сюда и сюда

    Некоторые вопросы касательно работы с SQL сервером можно задать здесь, например как установить, почему неработает, как написать SQL запрос для получения остатков склада
    Вопросы о том где взять SQL сервер можно задать здесь

     
    Для начинающих и не только:
  • Учебник по 1с  
  • Первые шаги  

    Коллеги,если вы решили спросить,или посоветоваться по возникшим у Вас вопросам,убедительная просьба придерживаться двух простых правил:
    1.Указывайте версию платформы 1С и ,желательно, конфигурацию.
    2.Постарайтесь сформулировать свой вопрос так,чтобы он был понятен другим участникам конференции.

     
    Желающие получить билеты для сдачи экзамена 1С:Специалист могут обращаться ко мне в ПМ //fol

  • Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 18:41 07-06-2005 | Исправлено: fol, 12:38 28-09-2006
    mrrSmith

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    В отчет выводятся некоторые ЭлементыСправочника.
    Вопрос: Как в печатной форме кликом открыть выбранный элемент? спс
     
    Добавлено:
    В отчет выводятся некоторые ЭлементыСправочника.
    Вопрос: Как в печатной форме кликом открыть выбранный элемент? спс

    Всего записей: 7 | Зарегистр. 27-06-2006 | Отправлено: 15:08 18-09-2006
    Massik



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mrrSmith
    Ищи в документации слово Расшифровка.

    Всего записей: 186 | Зарегистр. 04-11-2002 | Отправлено: 15:17 18-09-2006
    fol



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tswanea я писал обработку в свое время по переносу, код там может не самый оптимальный, но для примера я думаю пойдет. Лови: hxxp://rapidshare.de/files/33546891/OLE.rar.html

    Всего записей: 805 | Зарегистр. 02-11-2002 | Отправлено: 15:25 18-09-2006
    FOLD

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tswanea
    Восьмерка поумнее 77, и никаих особых ухищрений не нужно .Выборка и так иерархически происходит

     НомТута  = Справочники.Номенклатура;
     СпрТоварТам = БазаТам.CreateObject("Справочник.Номенклатура");
     
      СпрТоварТам .ВыбратьЭлементы();
      Пока СпрТоварТам .ПолучитьЭлемент()= 1 Цикл
      ТоварТам =СпрТоварТам.ТекущийЭлемент();  
     
     Если НомТута.НайтиПоКоду(Прав(ТоварТам .Код,5)).Пустая() Тогда
       Если (ТоварТам .ЭтоГруппа()=1)  Тогда    
       НовНом = НомТута .СоздатьГруппу();
       НовНом.Наименование = ВРег(ТоварТам.Наименование);
      Иначе //элемент
       НовНом = НомТута .СоздатьЭлемент();
       НовНом.Наименование = ТоварТам.Наименование;
      КонецЕсли;
     
      Если (ТоварТам.Родитель.Выбран()= 1) тогда
       Род= НомТута.НайтиПоКоду(прав(ТоварТам.Родитель.Код,5));
      Иначе
       Род= НомТута.ПустаяСсылка();
      КонецЕсли;
     
      НовНом.Родитель = Род;
      НовНом.Код = Прав(ТоварТам .Код,5);  
      НовНом.Записать();
    КонецЕсли;

     
    подправил ошибку

    Всего записей: 1238 | Зарегистр. 26-01-2004 | Отправлено: 17:49 18-09-2006 | Исправлено: FOLD, 20:43 18-09-2006
    arov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    народ, я ваще не смыслю в 1с, тока учусь
    ... делаю перенос счет-чактуры с ТиС в Бух
    ... что то не получается у меня это дело  
     
    вот код экспорт в текстовый файл модуль в ТиС
        Если СчетФактураВыданный=1 Тогда      
            Ткст.ДобавитьСтроку("СчетФактураВыданный");    
            Док1=СоздатьОбъект("Документ.СчетФактураВыданный");
            Док1.ВыбратьДокументы(НачДата,КонДата);
            Пока Док1.ПолучитьДокумент()=1 Цикл
                Ткст.ДобавитьСтроку(Строка(Док1.НомерДок));
                Ткст.ДобавитьСтроку(Строка(Док1.ДатаДок));
                Ткст.ДобавитьСтроку(Строка(Док1.Контрагент.Код));
                Ткст.ДобавитьСтроку(Док1.Договор.Наименование);  
                Ткст.ДобавитьСтроку(Док1.ДокОснование);
                Ткст.ДобавитьСтроку(Строка(Док1.УчитыватьНДС));
                Ткст.ДобавитьСтроку(Строка(Док1.СуммаВклНДС));
                Ткст.ДобавитьСтроку(Док1.НомерПП);
                Ткст.ДобавитьСтроку(Строка(Док1.ДатаПП));
                Ткст.ДобавитьСтроку(Док1.Валюта.Наименование);
                Ткст.ДобавитьСтроку(Строка(Док1.Курс));
                Ткст.ДобавитьСтроку("#");
                Док1.ВыбратьСтроки();    
                Пока Док1.ПолучитьСтроку()=1 Цикл
                    Ткст.ДобавитьСтроку(Строка(Док1.Номенклатура.Код));
                    Ткст.ДобавитьСтроку(Строка(Док1.Количество));
                    Ткст.ДобавитьСтроку(Док1.Единица.Наименование);
                    Ткст.ДобавитьСтроку(Строка(Док1.Цена));
                    Ткст.ДобавитьСтроку(Строка(Док1.Сумма));      
                    Ткст.ДобавитьСтроку(Строка(Док1.СуммаНДС));        
                    Ткст.ДобавитьСтроку(Строка(Док1.СтавкаНДС));
                    Ткст.ДобавитьСтроку(Строка(Док1.СтранаПроисхождения));
                    Ткст.ДобавитьСтроку(Строка(Док1.ГТД));
                КонецЦикла;    
                Ткст.ДобавитьСтроку("###");
            КонецЦикла;                    
            Ткст.ДобавитьСтроку("!!!");
        КонецЕсли;
     
    и вот модуль импорта в Бух
     
        если (стр="СчетФактураВыданный") и (стр<>"$$$")  тогда  
            СЧФ.Новый();    
            нум=нум+1;
            стр=т.получитьстроку(нум);
            Пока стр<>"!!!" цикл
                СЧФ.Новый();
                СЧФ.НомерДок=стр;
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СЧФ.ДатаДок=Дата(стр);
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СпрКонт.НайтиПоКоду(стр);
                СЧФ.КОнтрагент=СпрКонт.ТекущийЭлемент();  
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СпрДог.ИспользоватьВладельца(Счет.Контрагент);
                СпрДог.ВыбратьЭлементы();
                СпрДог.НайтиПоНаименованию(стр);
                СЧФ.Договор=СпрДог.ТекущийЭлемент();  
                
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СпрСкл.НайтиПоНаименованию(стр);
                
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СЧФ.ДокументОснование=стр;
                
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СЧФ.ОтключитьНДС=Число(стр);
                
                нум=нум+1;
                стр=т.получитьстроку(нум);
    //            СЧФ.СуммаВклНДС=Число(стр);
                
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СЧФ.НомерПлатРасчДок=стр;
                
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СЧФ.ДатаПлатРасчДок=Дата(стр);
                
                нум=нум+1;
                стр=т.получитьстроку(нум);      
                СВал.ВыбратьЭлементы();
                СВал.НайтиПоНаименованию(стр);
                СЧФ.Валюта=СВал.ТекущийЭлемент();
                
                нум=нум+1;
                стр=т.получитьстроку(нум);
                СЧФ.Курс=Число(стр);
                
                СЧФ.ВыбратьСтроки();
                нум=нум+1;
                стр=т.получитьстроку(нум);  
                нум=нум+1;
                стр=т.получитьстроку(нум);
                пока стр<>"###" цикл
                    СЧФ.НоваяСтрока();
                    СпрНом.НайтиПоКоду(стр);  
                    //      Если ПустоеЗначение(СпрНом.Наименование)=1
                    //        Тогда
                    //      СпрНом.Новый();
                    //      СпрНом.Наименование=стр;
                    //      СпрНом.Записать();
                    //КонецЕсли;
                    СЧФ.Товар=СпрНом.ТекущийЭлемент();
                    нум=нум+1;
                    стр=т.получитьстроку(нум);
                    СЧФ.Количество=Число(стр);
                    нум=нум+1;
                    стр=т.получитьстроку(нум);
                    нум=нум+1;
                    стр=т.получитьстроку(нум);
                    СЧФ.Цена=Число(стр);
                    нум=нум+1;
                    стр=т.получитьстроку(нум);
                    СЧФ.Сумма=Число(стр);
                    нум=нум+1;
                    стр=т.получитьстроку(нум);
                    нум=нум+1;
                    стр=т.получитьстроку(нум);
                    СЧФ.Ндс=Число(стр);  
                    СЧФ.Всего=Расх.Сумма+Расх.НДС;
                    нум=нум+1;
                    стр=т.получитьстроку(нум);
                конеццикла;
                СЧФ.Записать();  
                нум=нум+1;
                стр=т.получитьстроку(нум);
            конеццикла;  
            нум=нум+1;
            стр=т.получитьстроку(нум);
        конецесли;      
     
    ... помогите разобратся где и что делаю не так

    Всего записей: 187 | Зарегистр. 25-03-2005 | Отправлено: 09:33 19-09-2006
    LaCastet



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вообще-то хотелось бы знать, что не проходит.
    А так можно сказать следующее:

    Цитата:
        если (стр="СчетФактураВыданный") и (стр<>"$$$")  тогда  
            СЧФ.Новый();      

    Если стр="СчетФактураВыданный", то он само собой стр<>"$$$", так что второе условие лишнее. СЧФ.Новый() ни к чему не относится, полей никаких не вводится, СЧФ.Записать() после него нет.

    Цитата:
                стр=т.получитьстроку(нум);  
                СпрКонт.НайтиПоКоду(стр);  
                СЧФ.КОнтрагент=СпрКонт.ТекущийЭлемент();  

     
    Наверно правильнее СпрКонт.НайтиПоКоду(Число(стр)). А вообще бы я искал по Наименованию, вдруг коды не совпадают.

    Цитата:
                СпрДог.ИспользоватьВладельца(Счет.Контрагент);  
                СпрДог.ВыбратьЭлементы();  

    Должно быть СпрДог.ИспользоватьВладельца(СЧФ.Контрагент).

    Цитата:
                СЧФ.ВыбратьСтроки();  

     
    Это лишнее: строки здесь не выбираются, а вводятся.

    Всего записей: 4566 | Зарегистр. 27-07-2005 | Отправлено: 12:15 19-09-2006
    arov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    не получается табличную часть

    Всего записей: 187 | Зарегистр. 25-03-2005 | Отправлено: 13:21 19-09-2006
    LaCastet



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    arov
    У тебя при записи:

    Цитата:
                Ткст.ДобавитьСтроку(Строка(Док1.Курс));  
                Ткст.ДобавитьСтроку("#");  

    А при чтении:

    Цитата:
                стр=т.получитьстроку(нум);  
                СЧФ.Курс=Число(стр);  
                 
                СЧФ.ВыбратьСтроки();  
                нум=нум+1;  
                стр=т.получитьстроку(нум);    
                нум=нум+1;  
                стр=т.получитьстроку(нум);  
                пока стр<>"###" цикл  
                    СЧФ.НоваяСтрока();  

    Т.е. после Курса ты записываешь строку "#", а читать пытаешься сразу табличную часть.

    Цитата:
                    СЧФ.НоваяСтрока();  
                    СпрНом.НайтиПоКоду(стр);    

    Опять же наверно правильнее: СпрНом.НайтиПоКоду(Число(стр));
     
    Дальше ты записываешь:

    Цитата:
                    Ткст.ДобавитьСтроку(Строка(Док1.Цена));  
                    Ткст.ДобавитьСтроку(Строка(Док1.Сумма));      
                    Ткст.ДобавитьСтроку(Строка(Док1.СуммаНДС));          
                    Ткст.ДобавитьСтроку(Строка(Док1.СтавкаНДС));  

    А читаешь:

    Цитата:
                    стр=т.получитьстроку(нум);  
                    СЧФ.Цена=Число(стр);  
                    нум=нум+1;  
                    стр=т.получитьстроку(нум);  
                    СЧФ.Сумма=Число(стр);  

     
    далее:

    Цитата:
                    нум=нум+1;  
                    стр=т.получитьстроку(нум);  
                    нум=нум+1;  
                    стр=т.получитьстроку(нум);  
                    СЧФ.Ндс=Число(стр);  

     
    Т.е. пропущена одна строка, которой является СуммаНДС и которая должна быть введена в поле СЧФ.НДС. Вместо этого ты в него пытаешься ввести КОД ставки НДС.

    Цитата:
                    СЧФ.Всего=Расх.Сумма+Расх.НДС;  

    Расх.Сумма и Расх.НДС у тебя вообще нет, наверно должно быть СЧФ.Сумма+СЧФ.НДС.
     
    Добавлено:
    После СтавкиНДС ты записываешь СтрануПроисхождения и ГТД, которые потом не читаешь, а пытаешься сразу после СтавкиНДС прочесть следующее Наименование, а там находится СтранаПроисхождения (это для второй строки, а для следующих всё так сдвигается, что вообще ничего не попадает на свои места).

    ----------
    Пиво — это еще одно доказательство того, что Господь любит нас и хочет, чтоб мы были счастливы!

    Всего записей: 4566 | Зарегистр. 27-07-2005 | Отправлено: 14:04 19-09-2006
    arov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ... не могу добится что б она писала в фал табличную часть
    ...
    т.е. получается вот так
    СчетФактураВыданный
    СФА-00414
    11.04.06
    00007
    Основной договор
          1611       166    
               
      .  .  
    руб.
    1
    #
    ###
    СФА-00440
    13.04.06
    00019
    Основной договор
          1611       128    
               
      .  .  
    руб.
    1
    #
    ###
    !!!
    $$$

    Всего записей: 187 | Зарегистр. 25-03-2005 | Отправлено: 14:14 19-09-2006
    LaCastet



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Тогда получается, что в документах нет строк.
    Поставь остановку в отладчике на эту строку и пройди её в пошаговом режиме.

    Цитата:
                Док1.ВыбратьСтроки();      


    Всего записей: 4566 | Зарегистр. 27-07-2005 | Отправлено: 14:28 19-09-2006
    arov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    в документе есть они (

    Всего записей: 187 | Зарегистр. 25-03-2005 | Отправлено: 14:38 19-09-2006
    LaCastet



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ты делаешь так:

    Цитата:
                Ткст.ДобавитьСтроку("#");  
                Док1.ВыбратьСтроки();      
                Пока Док1.ПолучитьСтроку()=1 Цикл  
                    Ткст.ДобавитьСтроку(Строка(Док1.Номенклатура.Код));  
                    Ткст.ДобавитьСтроку(Строка(Док1.Количество));  
                    Ткст.ДобавитьСтроку(Док1.Единица.Наименование);  
                    Ткст.ДобавитьСтроку(Строка(Док1.Цена));  
                    Ткст.ДобавитьСтроку(Строка(Док1.Сумма));      
                    Ткст.ДобавитьСтроку(Строка(Док1.СуммаНДС));          
                    Ткст.ДобавитьСтроку(Строка(Док1.СтавкаНДС));  
                    Ткст.ДобавитьСтроку(Строка(Док1.СтранаПроисхождения));  
                    Ткст.ДобавитьСтроку(Строка(Док1.ГТД));  
                КонецЦикла;    
                Ткст.ДобавитьСтроку("###");  

    И получаешь:

    Цитата:
    #  
    ###  

    Между строками # и ### ничего не заведётся только, если программа не входит в цикл.
    Поэтому поставь отстановку на строке Док1.ВыбратьСтроки(); и дальше проходи в пошаговом режиме.
     
     
    Добавлено:
    Кстати посмотри в отладчике результать выполнения  Док1.ВыбратьСтроки(): если ноль, значит строки не выбрались и Док1.ПолучитьСтроку() будет равен нулю.

    Всего записей: 4566 | Зарегистр. 27-07-2005 | Отправлено: 14:43 19-09-2006
    arov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ... так и есть, не входит в цикл (((
    ... что надо делать?

    Всего записей: 187 | Зарегистр. 25-03-2005 | Отправлено: 15:32 19-09-2006
    LaCastet



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    arov
    Там не всё так просто. Если Счет-фактура вводится на основании документа, строки берутся из этого документа. Причем этих документов основания много и у каждого своя структура. Я тут тебе набросал для случая, если документом основания является реализация.
        Если СчетФактураВыданный=1 Тогда
            Ткст=СоздатьОбъект("Текст");
            Ткст.ДобавитьСтроку("СчетФактураВыданный");    
            Док1=СоздатьОбъект("Документ.СчетФактураВыданный");  
            Док1.ВыбратьДокументы(НачДата,КонДата);  
            Пока Док1.ПолучитьДокумент()=1 Цикл  
                Ткст.ДобавитьСтроку(Строка(Док1.НомерДок));  
                Ткст.ДобавитьСтроку(Строка(Док1.ДатаДок));  
                Ткст.ДобавитьСтроку(Строка(Док1.Контрагент.Код));  
                Ткст.ДобавитьСтроку(Док1.Договор.Наименование);  
                Ткст.ДобавитьСтроку(Док1.ДокОснование);  
                Ткст.ДобавитьСтроку(Строка(Док1.УчитыватьНДС));  
                Ткст.ДобавитьСтроку(Строка(Док1.СуммаВклНДС));  
                //Ткст.ДобавитьСтроку(Док1.НомерПП);  
                //Ткст.ДобавитьСтроку(Строка(Док1.ДатаПП));  
                Ткст.ДобавитьСтроку(Док1.Валюта.Наименование);  
                Ткст.ДобавитьСтроку(Строка(Док1.Курс));  
                Ткст.ДобавитьСтроку("#");  
                Док2=СоздатьОбъект("Документ");
                Док2=Док1.ДокОснование;
                Док2.ВыбратьСтроки();
                Пока Док2.ПолучитьСтроку()=1 Цикл  
                    Ткст.ДобавитьСтроку(Строка(Док2.Номенклатура.Код));  
                    Ткст.ДобавитьСтроку(Строка(Док2.Количество));  
                    Ткст.ДобавитьСтроку(Док2.Единица.Наименование);  
                    Ткст.ДобавитьСтроку(Строка(Док2.Цена));  
                    Ткст.ДобавитьСтроку(Строка(Док2.Сумма));      
                    Ткст.ДобавитьСтроку(Строка(Док2.СуммаНДС));          
                    Ткст.ДобавитьСтроку(Строка(Док2.СтавкаНДС));  
                    //Ткст.ДобавитьСтроку(Строка(Док1.ДокОснование.СтранаПроисхождения));  
                    //Ткст.ДобавитьСтроку(Строка(Док1.ДокОснование.ГТД));  
                КонецЦикла;    
                Ткст.ДобавитьСтроку("###");  
            КонецЦикла;                      
            Ткст.ДобавитьСтроку("!!!");  
            Ткст.Записать("СчетаФактВыд.Txt");
        КонецЕсли;  
    Результат такой:
    СчетФактураВыданный
    СТ00003    
    02.05.02
    00000085
    Основной
          1611       133    
    1
    1
    USD
    30
    #
    00001899
    5
     
    160
    800
    133.33
    20%
    00001907
    4
     
    170
    680
    113.33
    20%
    00001913
    6
     
    416.67
    2500
    416.67
    20%
    00001928
    2
     
    310
    620
    103.33
    20%
    ###
    !!!
    Т.е. строки нормально записываются. С другими случаями разбирайся.
    Удачи.

    Всего записей: 4566 | Зарегистр. 27-07-2005 | Отправлено: 16:00 19-09-2006
    arov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ... огромнейшее спасибо

    Всего записей: 187 | Зарегистр. 25-03-2005 | Отправлено: 16:50 19-09-2006
    korvin76



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Перем Обл,Таб;
        Запрос1 =  Новый Запрос;
        ТекстЗапроса ="ВЫБРАТЬ
                      |    ЗначенияСвойствОбъектов.Объект КАК Товар,
                      |    ЗначенияСвойствОбъектов.Свойство КАК СвойствоТовара,
                      | ЗначенияСвойствОбъектов.Свойство.Наименование КАК Наименование,
                      |    ЗначенияСвойствОбъектов.Значение КАК ЗначениеСвойства                  
                      |ИЗ
                      |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                      |ГДЕ
                      |    ЗначенияСвойствОбъектов.Объект = &Товар  
                      |ИТОГИ ПО
                      |    ОБЩИЕ";
                      
                      
        Запрос1.УстановитьПараметр("Товар",Номенклатура);
        
        
        Запрос1.Текст=ТекстЗапроса;  
        РезультатЗапроса=Запрос1.Выполнить();  
        Выборка = РезультатЗапроса.Выбрать();
        Выборка1 = РезультатЗапроса.Выгрузить();
        
        
        Для каждого ии из выборка1 цикл
            Если  ии.Наименование="номер 1-ой упаковки" тогда
                     пп=ии.ЗначениеСвойства
            КонецЕсли;            
        КонецЦикла;
     
        //Сообщить(пп);
     
        Если  пп = "1" тогда
                Предупреждение("Необходимо заполнить 'Брутто!'")
        КонецЕсли;
     
     
    Предупреждение не выдается Но закомментированное //Сообщить(пп); сообщает "1" , значит выборка работает  
    Помогите плиз сделать проверку на значение, вообще мне нужно проверить на пустоту (заполненность реквизита)

    Всего записей: 114 | Зарегистр. 19-12-2005 | Отправлено: 07:25 20-09-2006
    fol



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    |ИТОГИ ПО  
    |    ОБЩИЕ

    Этот кусок убери - ты все равно по группировкам не обходишь. А выборку правильнее обходить:
    Пока Выборка.Следующий() Цикл
    ...
    КонецЦикла;

    Всего записей: 805 | Зарегистр. 02-11-2002 | Отправлено: 09:22 20-09-2006
    korvin76



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    fol
    а мою проблему это решит?
     
    Добавлено:
    не решило проблему ((((

    Всего записей: 114 | Зарегистр. 19-12-2005 | Отправлено: 10:40 20-09-2006
    fol



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если ЗначениеНеЗаполнено(Выборка.ЗначениеСвойства) Тогда
           Сообщить("Не заполнен реквизит "+Выборка.ЗначениеСвойства);
    КонецЕсли;
    Должно помочь. Или я чего-то не понимаю?

    Всего записей: 805 | Зарегистр. 02-11-2002 | Отправлено: 12:02 20-09-2006
    FOLD

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    fol прав,только если Свойства не заполнены, вообще в выборку не попадет .  
    Так примерно ,правда не проверял
     
    Запрос1 =  Новый Запрос;  
       Запрос1.Текст ="ВЫБРАТЬ  
         |    ЗначенияСвойствОбъектов.Объект КАК Товар,  
         |    ЗначенияСвойствОбъектов.Свойство КАК СвойствоТовара,  
         |    ЗначенияСвойствОбъектов.Значение КАК ЗначениеСвойства                  
         |ИЗ  
         |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов  
         |ГДЕ  
         |    ЗначенияСвойствОбъектов.Объект = &Товар " ;
     
      Запрос1.УстановитьПараметр("Товар",Номенклатура);
      Выборка = Запрос1.Выполнить().Выбрать();  
      Если выборка.Количество()=0 Тогда
      Сообщить("вообще ничего не заполнено");
       Иначе
      Пока  выборка.Следующий() Цикл  
        Если выборка.СвойствоТовара.Ссылка.Наименование="номер 1-ой упаковки" тогда  
       пп =  выборка.ЗначениеСвойства;
       КонецЕсли;  
        если ЗначениеНеЗаполнено(пп)Тогда    
        Сообщить("Не заполнен реквизит "+Выборка.ЗначениеСвойства);  
            иначе
       Сообщить("========ОК ");
      КонецЕсли;
      КонецЦикла;
     КонецЕсли;
     
     

    Всего записей: 1238 | Зарегистр. 26-01-2004 | Отправлено: 12:27 20-09-2006 | Исправлено: FOLD, 12:31 20-09-2006
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка
    ShIvADeSt (29-09-2006 09:19): продолжаем здесь
    http://forum.ru-board.com/topic.cgi?forum=33&topic=7403


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru