7.7 помогите чайнику создать отчёт

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем wertklop, 24 авг 2009.

  1. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    нужна простейшая обработка для создания отчёта.
    в базе есть справочник Контрагенты с реквизитом ЮридическийАдрес. в форме обработки есть поле, в которое вводится юр. адрес. задачи обработки в том, чтобы по этому юр адресу найти всех возможных контрагентов и вывести их в табличный документ.
    просьба предоставить готовую обработку ну или хотя бы исходный код.
  2. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    Procedure Main()
    oRef = CreateObject("Справочник.Контрагенты");
    oRef.SelectItems();
    While oRef.GetItem() = 1 Do
    If oRef.IsGroup() = 0 Then
    If  oRef.ЮрАдрес = fЮрАдрес Then //fЮрАдрес - поле с адресом на форме, условие можно заменить не на точное соответсвие а на примерное равенство..
    FormTable.NewLine();      //FormTable - Таблица на форме, если нужен отчет соответственно заменяешь ее ТЗ
    //потом после этого цикла бежишь по ТЗ, и заполняешь таблицу печ. формы,
    //хотя можно обойтись без ТЗ и сразу заполнять таблицу печ. формы.
    FormTable.Obj = oRef.CurrentItem();
    FormTable.Код = oRef.Code;
    ...
    EndIf;
    EndIf;
    EndDo;
    EndProcedure;              
    
    Procedure OnOpen()
    FormTable.InsertColumn("Obj");
    FormTable.InsertColumn("Код"); //далее вставляешь нужные колонки
    ...
    EndProcedure;              
    
    
    
    
    
  3. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А может стоит начать с прочтения стандартной литературы?
  4. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    было бы здорово :unsure:
  5. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    просто нужно срочно


    а можно ли создать намного проще, с использованием запроса?
    и как обратиться к стандартной таблице, которая находиться в обработке?
  6. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    куда уж проще.. запрос - это для документов вроде как..
    а какая таблица у тебя находится в обработке? Пчатная форма чтоли? ну так я говорю если нужно туда значит FormTable тебе не нужна.. оставляешь только процедуру Main()..
    То что я накалякал - лишь руководство к действиям..
    P.S. если смущает английский язык - Сервис->Параметры->синтакс помошник, галка оба языка, и переводи
  7. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    посмотри пожалста на обработку.можешь ли её доделать?

    Вложения:

    • БД.ert
      Размер файла:
      61 КБ
      Просмотров:
      10
  8. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    Procedure Сформировать()
    Клиент = CreateObject("Справочник.Контрагенты");
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Клиент.SelectItems();
    While Клиент.GetItem() = 1 Do
    If Клиент.IsGroup() = 0 Then
    If  Клиент.ЮрАдрес = Адрес Then //проверь реквизит в справочнике
    Контрагент = Клиент.CurrentItem();
    Таб.PutSection("шапка")
    EndIf;
    EndIf;
    EndDo;
    EndProcedure;              
    
    
    
  9. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    а вывод таблицы?её заполнение?

    если изменить на

    Процедура Сформировать()
    Клиент = CreateObject("Справочник.Контрагенты");
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Клиент.SelectItems();
    While Клиент.GetItem() = 1 Do
    If Клиент.IsGroup() = 0 Then
    If Клиент.ЮридическийАдрес = Адрес Then //проверь реквизит в справочнике
    Контрагент = Клиент.CurrentItem();
    Шапка = Таб.ПолучитьСекцию("Шапка");
    Шапка.Клиент.Текст = Контрагент;
    Шапка = Таб.ВывестиСекцию(Шапка);
    EndIf;
    EndIf;
    EndDo;
    Таб.Показать();
    КонецПроцедуры

    то он ни одной записи не выдаст, хотя должен
  10. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    просто вставляй мою функцию и всё)
    ненадо там никаких получить, шапки.. Putsection - это ВывестиСекцию
  11. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    если вставить просто твою функцию, то вообще никакой таблицы не выводит
  12. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    ну а ты адрес вбивал?
    и там еще воткни

    Таб.Show("Контрагенты","");
  13. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    Процедура Сформировать()
    Клиент = CreateObject("Справочник.Контрагенты");
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Клиент.SelectItems();
    While Клиент.GetItem() = 1 Do
    If Клиент.IsGroup() = 0 Then
    If Клиент.ЮридическийАдрес = Адрес Then //проверь реквизит в справочнике
    Контрагент = Клиент.CurrentItem();
    Таб.PutSection("шапка");
    EndIf;
    EndIf;
    EndDo;
    Таб.Показать();
    КонецПроцедуры

    вот что работает
    как оказалось, контрагент-это ячейка таблицы. да уж....................... то ли я привык к 8ке, то ли это действительно так, но 7ка это просто тихий ужас......)))))))))))
  14. TopicStarter Overlay
    wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    кстати, а как быть с расшифровкой? у меня что то не получается.....

    If Клиент.ЮридическийАдрес = Адрес Then //проверь реквизит в справочнике
    Контрагент = Клиент.CurrentItem();
    ВыбОбласть = Таб.Область("R2C2:R2C2");
    ВыбОбласть.Расшифровка(Клиент);
    Таб.PutSection("шапка");
    EndIf;
  15. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    никогда не пользовался таким методом.. да и зачем она тебе расшифровка?
    попробуй в самой таблице в твоем поле "Контрагент" проставить расшифровку Клиент.ТекущийЭлемент()

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