7.7 Как прочитать значения элементов диалога на форме докумета

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем pr12yad, 4 июн 2009.

  1. TopicStarter Overlay
    pr12yad
    Offline

    pr12yad

    Регистрация:
    3 июн 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Нужно полностью выгрузить документ "Расходная накладная", то есть не только значения атрибутов документа но и значения элементов диалога на форме.

    "ДатаОпл" - текстовое поле на форме документа "Расходная накладная".
    Как прочитать значение этого поля.
    Обрашения
    ДокументНакладная.Форма.ДатаОпл
    ДокументНакладная.ДатаОпл;
    не проходят.
    :unsure:

    Часть кода который должен вся это выполня
    Код:
     Процедура Выполнить()
    Перем ДокументНакладная; 
    Перем ИмяКаталога;
    Перем РодительскийФайл;
    Перем РодительскийФайлИмя;
    Перем НачалоНакладной;
    Перем КонецНакладной;
    ВвестиПериод(НачалоНакладной,КонецНакладной,"Укажите интевал поиска накладных");
    ДокументНакладная=СоздатьОбъект("Документ.РасходнаяНакладная");
    РодительскийФайл=СоздатьОбъект("XBase");      
    РодительскийФайл.ДобавитьПоле("Nasvanie_D",2,30,0);
    РодительскийФайл.ДобавитьПоле("NUMBER_WAY",1,5,0);
    РодительскийФайл.ДобавитьПоле("DATE_WAYBI",3,8,0);  
    РодительскийФайл.ДобавитьПоле("DATE_PAUME",3,8,0); //ДатаОпл  
    РодительскийФайл.ДобавитьПоле("Type",2,30,0);//Тип
    РодительскийФайл.ДобавитьПоле("Dogovor",2,30,0);
    РодительскийФайл.ДобавитьПоле("TEXT_GROUN",2,30,0);//ТекстОснования  
    
    ДокументНакладная.ИспользоватьЖурнал("РасходныеНакладные");
    
    Если ДокументНакладная.ВыбратьДокументы(НачалоНакладной,КонецНакладной)=1 Тогда
    ИмяКаталога="C:\";
    Если ФС.ВыбратьКаталог(ИмяКаталога,"Укажите каталог в который будут выгружаться расходные накладные")=1 Тогда
    РодительскийФайлИмя="Р_РасхНа.dbf";      
    РодительскийФайл.СоздатьФайл(ИмяКаталога+"\"+РодительскийФайлИмя,); 
    Пока ДокументНакладная.ПолучитьДокумент()=1  Цикл
    Если ДокументНакладная.ПолучитьАтрибут("Оплата")=1 Тогда
    РодительскийФайл.Добавить();
    РодительскийФайл.Nasvanie_D=ДокументНакладная;
    РодительскийФайл.NUMBER_WAY=ДокументНакладная.НомерДок;
    РодительскийФайл.DATE_WAYBI=ДокументНакладная.ДатаДок; 
    РодительскийФайл.DATE_PAUME=ДокументНакладная.ДатаОпл;  //Неверно
    КонецЕсли;
    КонецЦикла; 
    РодительскийФайл.Записать();
    РодительскийФайл.ЗакрытьФайл();	
    КонецЕсли;
    Иначе
    Предупреждение("За периуд: "+НачалоНакладной+"-"+КонецНакладной+" безналичные накладные не найдены");	
    КонецЕсли;
    КонецПроцедуры
    
  2. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    "ДатаОпл" - текстовое поле на форме документа "Расходная накладная".
    чушь, что в нем показывается?
  3. TopicStarter Overlay
    pr12yad
    Offline

    pr12yad

    Регистрация:
    3 июн 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    ДатаОпл -дата до которой клиент должен олатить заказ, но это не важно
    Форма выглядит вот таким образом
    [​IMG]
    её содержимо нужно выгрузить полностью: атрибуты и текстовае поля и даже названия кнопок.
    Как обратиться к текстовому полю?
  4. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    выложи сюда мд на посмотреть
    думаю
    РодительскийФайл.DATE_PAUME=ДокументНакладная.ДатаОплаты;
  5. TopicStarter Overlay
    pr12yad
    Offline

    pr12yad

    Регистрация:
    3 июн 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    В этом то все и дело: многие из этих полей не являются реквизитами, а вычаслются или берутся как КонтекстФормы из других справочников, однако при открытии журнала документа эти поля сохраняются, а это значит их значения храняться и их как то можно проитать, вот только как
    Я пробывал обращаться и как к реквизиту, и как элементу формы, не получается.

    Модель данных:
    [​IMG]
  6. Natalya
    Offline

    Natalya Опытный в 1С

    Регистрация:
    7 фев 2008
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    А что написано на владке "дополнительно" в поле "формула"?
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Думаю ДатаОпл локальная переменная. Которая вычисляется так: ДатаДок+КредитДней в модуле документа
  8. TopicStarter Overlay
    pr12yad
    Offline

    pr12yad

    Регистрация:
    3 июн 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    В поле формула стоит преременная "ДатаОплаты" (Natalya спасибо что обратили внимание), поэтому в принцыпе значение это переменной мы можем прочитать.
    Однако поле Фирма (ТекстФирмы ) имеет только идентификатор, поэтому к нему напрямую обратиться нельзя.
    Но вопрос не в этом
    Можно ли из структуры:
    Код:
    Если ДокументНакладная.ВыбратьДокументы(НачалоНакладной,КонецНакладной)=1 Тогда
    Пока ДокументНакладная.ПолучитьДокумент()=1  Цикл
    
    КонецЦикла;
    КонецЕсли;
    
    
    прочитать значаения полей на Форме документа ДокументНакладная.
    Обращение вида:
    ДокументНакладная.Форма.ТекстФирмы.Заголовок();
    не проходят.
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    7.7 такого не позволяет. Можно прочитать текст, но не получить вычисляемое значение. Выход один - в указаном выше цикле самому вычислять значения

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