8.х Получение данных из табличной части документа для вставки в макет

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем andreya81, 27 ноя 2014.

Статус темы:
Закрыта.
  1. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    {Документ.мфоВыдачаЗайма.МодульМенеджера(747)}: Поле объекта не обнаружено (НомерСтроки)
    ОбластьМакета.Параметры.НомерСтроки = ДанныеПечати.ГрафикПлатежей.НомерСтроки;
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    да в запросе так, но при выводе ГрафикПлатежей - это обычная ТаблиуаЗначение
    Код:
    Для каждого стр из ДанныеПечати.ГрафикПлатежей Цикл
    //тут уже перебираете данные вашей тз построчно
    Конеццикла
    --- Объединение сообщений, 27 ноя 2014 ---
    а для начала откройте книгу Радченко по основам конфигурировния и поразбирайте листинги - там все есть - думаю быстро освоите и разберетесь
  3. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Для Каждого Стр из ДанныеПечати.ГрафикПлатежей Цикл;
    ОбластьМакета.Параметры.НомерСтроки = ДанныеПечати.ГрафикПлатежей.НомерСтроки;
    КонецЦикла;
    --- Объединение сообщений, 27 ноя 2014 ---
    {Документ.мфоВыдачаЗайма.МодульМенеджера(747)}: Итератор для значения не определен
    Для Каждого Стр из ДанныеПечати.ГрафикПлатежей Цикл;
  4. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    пардон...
    Код:
    тз = ДанныеПечати.ГрафикПлатежей.Выгрузить();
    для каждого стр из тз цикл
    ОбластьПечати.Параметры.НомерСтроки = стр.НомерСтроки;
    конеццикла;
    
    и все бы ничего, н данный код выведет в вашу область последний номер строки.

    Надоело гадать и предлагать варианты. Хотя бы схематично в екселе представьте итоговый вариант... чтоб понять в какую сторону вас подтолкнуть, сдается мне, что ваш вариант (раз массив доков перебираете), то только работать с табчастью напрямую и группировать по документам, чтоб безболезенно обойти выборку по группировкам.

    Посмотрите все таки книжечку
  5. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Извините но только в таком виде

    Вложения:

  6. KrivosheevEV
    Offline

    KrivosheevEV Новичок в 1С

    Регистрация:
    3 мар 2014
    Сообщения:
    35
    Симпатии:
    2
    Баллы:
    4
    Вот этом примере я получу все номера строк табличной части из указанного документа:
    Код:
    ВЫБРАТЬ
        КассовоеПоступлениеРасшифровкаПлатежа.НомерСтроки,
        КассовоеПоступлениеРасшифровкаПлатежа.Количество
    ИЗ
        Документ.КассовоеПоступление.РасшифровкаПлатежа КАК КассовоеПоступлениеРасшифровкаПлатежа
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.КассовоеПоступление КАК КассовоеПоступление
            ПО КассовоеПоступлениеРасшифровкаПлатежа.Ссылка = КассовоеПоступление.Ссылка
    ГДЕ
        КассовоеПоступление.Ссылка = &Ссылка
  7. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    мдя... ничего не понятно, вы что в екселе схему нарисовать не можете? я же не прошу данный - ячейки обозначьте и для примерчика набацайте чуток данных от балды
  8. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Понял косяк
    --- Объединение сообщений, 27 ноя 2014 ---
    Вот
    --- Объединение сообщений, 27 ноя 2014 ---
    У нас Сформировать.....(МассивОбъектов, ОбъектыПечати), а здесь Ссылка
    --- Объединение сообщений, 27 ноя 2014 ---
    И еще Выбрать не работает с Объектами

    Вложения:

  9. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Ни у кого больше нет предложений?
  10. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Что делать с прикрепленным Excel-файлом ?? Может лучше весь Ваш код сюда выложите
  11. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Код:
    Функция СформироватьПечатнуюФормуГрафикПлатежейСреднесрочный(МассивОбъектов, ОбъектыПечати)
        Запрос       = Новый Запрос;
      
        Запрос.Текст = "ВЫБРАТЬ
        |    мфоВыдачаЗайма.Ссылка,
        |    мфоВыдачаЗайма.Номер,
        |    мфоВыдачаЗайма.ДатаВыдачи,
        |    мфоВыдачаЗайма.ФИОМенеджера,
        |    мфоВыдачаЗайма.Контрагент,
        |    мфоВыдачаЗайма.ПСК,
        |    мфоВыдачаЗайма.СуммаЗайма,
        |   мфоВыдачаЗайма.Организация,
        |   мфоВыдачаЗайма.Организация.ИНН КАК Организация_ИНН,
        |    мфоВыдачаЗайма.Организация.КПП КАК Организация_КПП,
        |   мфоВыдачаЗайма.Ставка,
        |   мфоВыдачаЗайма.СрокЗайма,
        |   мфоВыдачаЗайма.ГрафикПлатежей.(
        |        НомерСтроки,
        |        Период,
        |        СуммаПлатежа,
        |        СуммаПроценты,
        |        СуммаПогашениеДолга,
        |        СуммаОстатокДолга
        |  ),
          |    ЕСТЬNULL(КИ_Организация_Адрес.Представление, """") КАК ЮрАдресОрганизации,
        |    ЕСТЬNULL(КИ_ТочкаПродаж_Адрес.Представление, """") КАК ПодразделениеАдрес,
        |    ЕСТЬNULL(КИ_ТочкаПродаж_Телефон.Представление, """") КАК ПодразделениеТелефон,
        |    ЕСТЬNULL(КИ_ТочкаПродаж_Адрес.Город, """") КАК ПодразделениеГород,
        |    ЕСТЬNULL(КИ_Контрагент_Адрес.Представление, """") КАК ФактАдресКонтрагента,
        |    ЕСТЬNULL(КИ_Контрагент_Телефон.Представление, """") КАК ТелефонКонтрагента,
        |    ЕСТЬNULL(КИ_Контрагент_ЮрАдрес.Представление, """") КАК ЮрАдресКонтрагента,
        |   мфоВыдачаЗайма.БанковскийСчет.КоррСчетБанка КАК КорСчет,
        |   мфоВыдачаЗайма.БанковскийСчет.НомерСчета КАК РасчетныйСчет,
        |   мфоВыдачаЗайма.БанковскийСчет.БИКБанка КАК БИК,
        |   мфоВыдачаЗайма.БанковскийСчет.Банк КАК Банк,
        |   мфоВыдачаЗайма.Организация.РегистрационныйНомерВРеестреМФО КАК РегистрационныйНомер,
        |    мфоВыдачаЗайма.ГрафикПлатежей.НомерСтроки КАК НомерСтроки,
        |    мфоВыдачаЗайма.ГрафикПлатежей.Период КАК Период,
        |    мфоВыдачаЗайма.ГрафикПлатежей.СуммаПлатежа КАК СуммаПлатежа,
        |    мфоВыдачаЗайма.ГрафикПлатежей.СуммаПроценты КАК СуммаПроценты,  
        |    мфоВыдачаЗайма.ГрафикПлатежей.СуммаПогашениеДолга КАК СуммаПогашенияДолга,
        |    мфоВыдачаЗайма.ГрафикПлатежей.СуммаОстатокДолга КАК СуммаОстатокДолга
        |  
        |  
        |     
        |ИЗ
        |    Документ.мфоВыдачаЗайма КАК мфоВыдачаЗайма
        |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК КИ_Организация_Адрес
        |        ПО мфоВыдачаЗайма.Организация = КИ_Организация_Адрес.Ссылка
        |            И (КИ_Организация_Адрес.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресОрганизации))
        |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.мфоКонтрагенты.КонтактнаяИнформация КАК КИ_Контрагент_Адрес
        |        ПО (КИ_Контрагент_Адрес.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента))
        |            И мфоВыдачаЗайма.Контрагент = КИ_Контрагент_Адрес.Ссылка
        |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.мфоКонтрагенты.КонтактнаяИнформация КАК КИ_Контрагент_ЮрАдрес
        |        ПО (КИ_Контрагент_ЮрАдрес.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента))
        |            И мфоВыдачаЗайма.Контрагент = КИ_Контрагент_ЮрАдрес.Ссылка
        |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.мфоКонтрагенты.КонтактнаяИнформация КАК КИ_Контрагент_Телефон
        |        ПО (КИ_Контрагент_Телефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))
        |            И мфоВыдачаЗайма.Контрагент = КИ_Контрагент_Телефон.Ссылка
        |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.мфоПодразделенияОрганизаций.КонтактнаяИнформация КАК КИ_ТочкаПродаж_Адрес
        |        ПО мфоВыдачаЗайма.Подразделение.Ссылка = КИ_ТочкаПродаж_Адрес.Ссылка
        |            И (КИ_ТочкаПродаж_Адрес.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресТочкиПродаж))
        |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.мфоПодразделенияОрганизаций.КонтактнаяИнформация КАК КИ_ТочкаПродаж_Телефон
        |        ПО мфоВыдачаЗайма.Подразделение.Ссылка = КИ_ТочкаПродаж_Телефон.Ссылка
        |            И (КИ_ТочкаПродаж_Телефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонТочкиПродаж))
        |
        |ГДЕ
        |    мфоВыдачаЗайма.Ссылка В(&МассивДокументов)";
      
        Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
      
    
        ТабличныйДокумент = Новый ТабличныйДокумент;
        ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_мфоВыдачаЗайма_ДоговорКратскосрочный";
      
        ТабличныйДокумент = Новый ТабличныйДокумент;
      
        ДанныеПечати            = Запрос.Выполнить().Выбрать();
      
        ПервыйДокумент          = Истина;
      
          
        Пока ДанныеПечати.Следующий() Цикл
      
            // Макет необходимо получать для каждого документа, т.к. размеры колонок изменяются динамически
            Макет           = УправлениеПечатью.ПолучитьМакет("Документ.мфоВыдачаЗайма.ГрафикПлатежейСреднесрочный");
          
            Если Не ПервыйДокумент Тогда
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
          
            ПервыйДокумент    = Ложь;
            НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
            //Шапка
            ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
          
            ОбластьМакета.Параметры.НаселенныйПункт = ?(ЗначениеЗаполнено(ДанныеПечати.ПодразделениеГород),
                                                    СокрЛП(ДанныеПечати.ПодразделениеГород), "_______________");
            ОбластьМакета.Параметры.Контрагент = ДанныеПечати.Контрагент;
            ОбластьМакета.Параметры.Номер = ДанныеПечати.Номер;
            ОбластьМакета.Параметры.ФИОМенеджера = ДанныеПечати.ФИОМенеджера;
            ОбластьМакета.Параметры.ПодразделениеТелефон = ДанныеПечати.ПодразделениеТелефон;
            ОбластьМакета.Параметры.СуммаЗайма = Формат(ДанныеПечати.СуммаЗайма, "ЧЦ=17; ЧДЦ=0; ЧН=; ЧГ=3,0");
            ОбластьМакета.Параметры.ДатаВыдачи    = Формат(ДанныеПечати.ДатаВыдачи,"ДФ= 'дд ММММ гггг'");
            ОбластьМакета.Параметры.ДатаВыдачиДоговор = Формат(ДанныеПечати.ДатаВыдачи,"ДФ='дд ММММ гггг ""года""'");
            ОбластьМакета.Параметры.Ставка = Формат(ДанныеПечати.Ставка,"ЧЦ=15; ЧДЦ=2") + "%";
            ОбластьМакета.Параметры.СрокЗайма = ДанныеПечати.СрокЗайма;
            ОбластьМакета.Параметры.СтавкаГод = Формат(ДанныеПечати.ПСК,"ЧЦ=15; ЧДЦ=2") + "%";
            ОбластьМакета.Параметры.ПСК = Формат(ДанныеПечати.ПСК,"ЧЦ=15; ЧДЦ=3") + "%";
    
            ТабличныйДокумент.Вывести(ОбластьМакета);
          
            //График платежей
            ОбластьМакета = Макет.ПолучитьОбласть("ГрафикПлатежейШапка");
            ТабличныйДокумент.Вывести(ОбластьМакета);
            ОбластьМакета = Макет.ПолучитьОбласть("ГрафикПлатежей");
            Для Каждого Стр из ДанныеПечати.ГрафикПлатежей Цикл;
                ОбластьМакета.Параметры.НомерСтроки = ДанныеПечати.ГрафикПлатежей.НомерСтроки;
                КонецЦикла;
            ТабличныйДокумент.Вывести(ОбластьМакета);
            //Подвал
            ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
          
            ОбластьМакета.Параметры.НаименованиеОрганизации = ДанныеПечати.Организация;
            ОбластьМакета.Параметры.ЮрАдрес = ДанныеПечати.ЮрАдресОрганизации;
            ОбластьМакета.Параметры.ФактАдрес = ДанныеПечати.ПодразделениеАдрес;
            ОбластьМакета.Параметры.ИННОрганизации = ДанныеПечати.Организация_ИНН;
            ОбластьМакета.Параметры.КППОрганизации = ДанныеПечати.Организация_КПП;
            ОбластьМакета.Параметры.РасчетныйСчет = ДанныеПечати.РасчетныйСчет;
            ОбластьМакета.Параметры.Банк = ДанныеПечати.Банк;
            ОбластьМакета.Параметры.КорСчет = ДанныеПечати.КорСчет;
            ОбластьМакета.Параметры.БИК = ДанныеПечати.БИК;
            ОбластьМакета.Параметры.Номер = ДанныеПечати.Номер;
            ОбластьМакета.Параметры.ПодразделениеТелефон = ДанныеПечати.ПодразделениеТелефон;
            ОбластьМакета.Параметры.ДатаВыдачиДоговор = Формат(ДанныеПечати.ДатаВыдачи,"ДФ='дд ММММ гггг ""года""'");  
          
            ТабличныйДокумент.Вывести(ОбластьМакета);
        КонецЦикла;
      
        ТабличныйДокумент.АвтоМасштаб = Истина;
    
        Если ПривилегированныйРежим() Тогда
            УстановитьПривилегированныйРежим(Ложь);
        КонецЕсли;
      
        Возврат ТабличныйДокумент;
    КонецФункции 
    Последнее редактирование модератором: 28 ноя 2014
  12. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Ни у кого нет мыслей?
  13. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    отладчик тут поставь.
    ОбластьМакета.Параметры.НомерСтроки = ДанныеПечати.ГрафикПлатежей.НомерСтроки;


    потом вычисли :
    ОбластьМакета.Параметры.НомерСтроки

    и потом это
    ДанныеПечати.ГрафикПлатежей.НомерСтроки



    и подумай...
  14. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Извините но я не понимаю о чем вы. Что значит поставить отладчик и вычислить?
    Нельзя объяснить по проще новичку в этом деле)?
    --- Объединение сообщений, 28 ноя 2014 ---
    Придется наверное править под (ТабДок, Ссылка). Жаль, думал здесь столько умных людей подскажут выход(
  15. XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Почему вы упорно выбираете из
    Код:
    |ИЗ
    | Документ.мфоВыдачаЗайма КАК мфоВыдачаЗайма
    Выбирайте из
    Код:
    |ИЗ
    | Документ.мфоВыдачаЗайма.ГрафикПлатежей КАК мфоВыдачаЗаймаГрафикиПлатежей
    При этом из ТЧ выборка запроса будет выглядеть примерно так
    Код:
    | мфоВыдачаЗаймаГрафикПлатежей.НомерСтроки КАК НомерСтроки,
    А выборка из шапки документа так
    Код:
    | мфоВыдачаЗаймаГрафикПлатежей.Ссылка.Номер,
    И потом уже обычным перебором обходите результат запроса.
  16. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    2ТС
    1. Пользуйтесь тегами для оформления кода
    2. Вам уже кучу методов решения предложили - пробуйте, обдумывайте
    3. Я вам посоветовала книжечку - вам сразу намного понятнее станет - вы просите азы вам расписать
    4. Пользуйтесь поиском по форуму - примеров решения вашей задачи можно найти тут

    Удачи!
  17. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Тогда теряется ЛЕВОЕ СОЕДИНЕНИЕ
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК КИ_Организация_Адрес
    | ПО <<?>>мфоВыдачаЗайма.Организация = КИ_Организация_Адрес.Ссылка Не найдено поле
    --- Объединение сообщений, 28 ноя 2014 ---
    2. Методов куча да только все ни туда
    3. Я так понимаю Радченко?
    4. По форуму искал да только у людей задачи другие и все через (ТабДок.Ссылка)
  18. XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Читайте матчасть. Я вам привела пример. Если вы выбираете из ТЧ данные, то нужно ВСЁ в запросе менять под новую выборку.
  19. TopicStarter Overlay
    andreya81
    Offline

    andreya81 Опытный в 1С

    Регистрация:
    27 ноя 2014
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Может ссылку подскажете где читать эту самую матчасть. Их много вот только написаны они наверное с уверенностью, что юзер уже сдал на профа. А когда просишь объяснить на пальцах, так все предлагают услуги по написанию, за определенную сумму - рыночная экономика и прихоти монополиста.
  20. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.573
    Симпатии:
    717
    Баллы:
    204
    offtop: на посте №4 можно было бы завершить топик :)
Статус темы:
Закрыта.

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