На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
! Правила раздела:

  • Перед тем, как задать вопрос, желательно почитать документацию и воспользоваться поиском.
  • Когда задаёте вопрос, то обязательно указывайте платформу (7.7, 8.0, 8.1, 8.2, etc), причем желательно в заголовке. Если речь идёт о типовой конфигурации, то указывайте её название и релиз. Текущие версии можно посмотреть здесь.
  • Ещё раз напоминаем о необходимости соблюдать не только правила, но и законы. Уважайте авторские права.

Высказать своё мнение о модераторах раздела можно здесь: evGenius
  
> Поиск в документах
    Необходимо найти значение в документах. Например нужно отыскать значение "КонецПериода" в документах таких как больничный лист и БухучетНачислений. :wacko: Поиск должен быть как в табличной части так и в шапке. Кто нибудь с этим сталкивался? :wall:
      Идея примерно такая
      ExpandedWrap disabled
             StartDate = '01.01.00';
            EndDate = '31.12.04';
            //Обход всех видов документов
            for i = 1 По Метаданные.Документ() Цикл
                AbstractDoc = Метаданные.Документ(i);
                message(Метаданные.Документ(i).Представление());
                ADoc=createObject(Метаданные.Документ(i).ПолныйИдентификатор());
                ADoc.SelectDocuments(StartDate,EndDate);
                //Обход всех документов данного вида
                While ADoc.GetDocument()>0 do
                    message("  "+ADoc);
                    //Обход всех реквизитов шапки документа данного вида
                    for j = 1 to AbstractDoc.РеквизитШапки() do
                        ParameterName = AbstractDoc.РеквизитШапки(j).Представление();
                        message ("   " + ParameterName + " = " +
                        Template("[ADoc."+ParameterName+"]")
                        );
                    enddo;
                    ADoc.SelectLines();
                    //Обход по каждой строке документа
                    While ADoc.getline()>0 do
                        //Обход всех реквизитов ТЧ документа данного вида
                        for j = 1 to AbstractDoc.РеквизитТабличнойЧасти() do
                            ParameterName = AbstractDoc.РеквизитТабличнойЧасти(j).Представление();
                            message ("   " + ParameterName + " = " +
                            Template("[ADoc."+ParameterName+"]")
                            );
                        enddo; //Обход всех реквизитов ТЧ документа данного вида
                    enddo; //Обход по каждой строке документа
                enddo;
            enddo;

      этот кусок кода распечатывае данные всех документов. это жутко медленно и жутко неэффективно, но иногда необходимо
        Спасибо :yes:
        AbstractDoc.РеквизитШапки(j).Представление(); <> AbstractDoc.РеквизитТабличнойЧасти(j).Идентификатор :whistle:
          точнее AbstractDoc.РеквизитШапки(j).Представление() <> AbstractDoc.РеквизитШапки(j).Идентификатор
          ;)
            Ну да это и имелось ввиду ;)
              привет
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0444 ]   [ 15 queries used ]   [ Generated: 12.05.24, 16:10 GMT ]