8.х Печатная форма(акт) для договора

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

  1. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Создаю печатную форму для договора.
    Нужно, чтобы на форме элемента справочника договоры была кнопка(акты), при нажатии на которую выходили все документы выполненных работ, оказанных услуг по этому договору.
    Создала запрос, в котором пытаюсь обратиться(сделать отбор по договору) мало что выходит. Я не знаю, как в запросе обратитьсяименно к этому договору? пониммаю, что неправильно устанавливаю отбор,подскажите как исправить?

    Код:
    Процедура АктНажатие(Элемент)
        ТабДок = ПечатьАкта(ТабДок);
        ТабДок.ТолькоПросмотр = Истина;
    КонецПроцедуры
    Функция ПечатьАкта(ТабДок);
          //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
        // Данный фрагмент построен конструктором.
        // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
        Макет = Справочники.Договоры.ПолучитьМакет("Макет1");
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    УслугиСтороннихОрганизаций.Услуги.(
            |        Ссылка КАК Услуга,
            |        ПРЕДСТАВЛЕНИЕ(УслугиСтороннихОрганизаций.Услуги.Ссылка),
            |        Количество,
            |        Сумма,
            |        ЕдиницаИзмерения,
            |        ПРЕДСТАВЛЕНИЕ(УслугиСтороннихОрганизаций.Услуги.ЕдиницаИзмерения)
            |    ),
            |    ОС_Покупка.Капвложения.(
            |        Ссылка КАК ОсновноеСредство,
            |        ПРЕДСТАВЛЕНИЕ(ОС_Покупка.Капвложения.Ссылка),
            |        Сумма,
            |        Количество
            |    ),
            |    МЗ_Покупка.СубконтоСчетКредита3 КАК МЗ_Договор,
            |    МЗ_Покупка.Материалы.(
            |        Ссылка,
            |        ЕдиницаИзмерения,
            |        Количество,
            |        Сумма
            |    ),
            |    ОС_Покупка.СубконтоСчетКредита3 КАК ОС_Договор,
            |    УслугиСтороннихОрганизаций.Договор
            |ИЗ
            |    Документ.УслугиСтороннихОрганизаций КАК УслугиСтороннихОрганизаций,
            |    Документ.ОС_Покупка КАК ОС_Покупка,
            |    Документ.МЗ_Покупка КАК МЗ_Покупка
            |ГДЕ
            |    МЗ_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3_мз
            |    И ОС_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3
            |    И УслугиСтороннихОрганизаций.Договор = &Договор";
            Запрос.УстановитьПараметр("СубконтоСчетКредита3_мз",СправочникОбъект.Договоры); -->вот здесь выходит ошибка!
        Результат = Запрос.Выполнить();
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
        ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
        ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
        ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
        МатериалыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("МатериалыШапкаТаблицы");
        МатериалыОбластьПодвалТаблицы = Макет.ПолучитьОбласть("МатериалыПодвалТаблицы");
        МатериалыОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("МатериалыДетали");
        КапвложенияОбластьШапкаТаблицы = Макет.ПолучитьОбласть("КапвложенияШапкаТаблицы");
        КапвложенияОбластьПодвалТаблицы = Макет.ПолучитьОбласть("КапвложенияПодвалТаблицы");
        КапвложенияОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("КапвложенияДетали");
        УслугиОбластьШапкаТаблицы = Макет.ПолучитьОбласть("УслугиШапкаТаблицы");
        УслугиОбластьПодвалТаблицы = Макет.ПолучитьОбласть("УслугиПодвалТаблицы");
        УслугиОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("УслугиДетали");
        ТабДок.Очистить();
        ТабДок.Вывести(ОбластьЗаголовок);
        ТабДок.Вывести(ОбластьШапкаТаблицы);
        ТабДок.НачатьАвтогруппировкуСтрок();
        ВыборкаДетальныеЗаписи = Результат.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
            ТабДок.НачатьГруппуСтрок();
            ТабДок.Вывести(МатериалыОбластьШапкаТаблицы);
            ТабДок.НачатьАвтогруппировкуСтрок();
            МатериалыВыборкаДетальныеЗаписи = ВыборкаДетальныеЗаписи.Материалы.Выбрать();
            Пока МатериалыВыборкаДетальныеЗаписи.Следующий() Цикл
                МатериалыОбластьДетальныхЗаписей.Параметры.Заполнить(МатериалыВыборкаДетальныеЗаписи);
                ТабДок.Вывести(МатериалыОбластьДетальныхЗаписей, МатериалыВыборкаДетальныеЗаписи.Уровень());
            КонецЦикла;
            ТабДок.ЗакончитьАвтогруппировкуСтрок();
            ТабДок.Вывести(МатериалыОбластьПодвалТаблицы);
            ТабДок.Вывести(КапвложенияОбластьШапкаТаблицы);
            ТабДок.НачатьАвтогруппировкуСтрок();
            КапвложенияВыборкаДетальныеЗаписи = ВыборкаДетальныеЗаписи.Капвложения.Выбрать();
            Пока КапвложенияВыборкаДетальныеЗаписи.Следующий() Цикл
                КапвложенияОбластьДетальныхЗаписей.Параметры.Заполнить(КапвложенияВыборкаДетальныеЗаписи);
                ТабДок.Вывести(КапвложенияОбластьДетальныхЗаписей, КапвложенияВыборкаДетальныеЗаписи.Уровень());
            КонецЦикла;
            ТабДок.ЗакончитьАвтогруппировкуСтрок();
            ТабДок.Вывести(КапвложенияОбластьПодвалТаблицы);
            ТабДок.Вывести(УслугиОбластьШапкаТаблицы);
            ТабДок.НачатьАвтогруппировкуСтрок();
            УслугиВыборкаДетальныеЗаписи = ВыборкаДетальныеЗаписи.Услуги.Выбрать();
            Пока УслугиВыборкаДетальныеЗаписи.Следующий() Цикл
                УслугиОбластьДетальныхЗаписей.Параметры.Заполнить(УслугиВыборкаДетальныеЗаписи);
                ТабДок.Вывести(УслугиОбластьДетальныхЗаписей, УслугиВыборкаДетальныеЗаписи.Уровень());
            КонецЦикла;
            ТабДок.ЗакончитьАвтогруппировкуСтрок();
            ТабДок.Вывести(УслугиОбластьПодвалТаблицы);
            ТабДок.ЗакончитьГруппуСтрок();
        КонецЦикла;
        ТабДок.ЗакончитьАвтогруппировкуСтрок();
        ТабДок.Вывести(ОбластьПодвалТаблицы);
        ТабДок.Вывести(ОбластьПодвал);
        //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
        Возврат ТабДок;
    КонецФункции

    Вложения:

    Последнее редактирование модератором: 24 ноя 2014
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Вместо СправочникОбъект.Договоры используйте Ссылка.
  3. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Код:
    |ГДЕ
            |    МЗ_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3
            |    И ОС_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3
            |    И УслугиСтороннихОрганизаций.Договор = &Договор";
        Запрос.УстановитьПараметр("СубконтоСчетКредита3",Ссылка);
        Запрос.УстановитьПараметр("Договор",ссылка);
        //Запрос.УстановитьПараметр(""
        Результат = Запрос.Выполнить();
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
        ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
        ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
        ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
        МатериалыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("МатериалыШапкаТаблицы");
        МатериалыОбластьПодвалТаблицы = Макет.ПолучитьОбласть("МатериалыПодвалТаблицы");
        МатериалыОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("МатериалыДетали");
        КапвложенияОбластьШапкаТаблицы = Макет.ПолучитьОбласть("КапвложенияШапкаТаблицы");
        КапвложенияОбластьПодвалТаблицы = Макет.ПолучитьОбласть("КапвложенияПодвалТаблицы");
        КапвложенияОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("КапвложенияДетали");
        УслугиОбластьШапкаТаблицы = Макет.ПолучитьОбласть("УслугиШапкаТаблицы");
        УслугиОбластьПодвалТаблицы = Макет.ПолучитьОбласть("УслугиПодвалТаблицы");
        УслугиОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("УслугиДетали");
        ТабДок.Очистить();
        ТабДок.Вывести(ОбластьЗаголовок);
        ТабДок.Вывести(ОбластьШапкаТаблицы);
        ТабДок.НачатьАвтогруппировкуСтрок();
        ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Ошибка !
    --- Объединение сообщений, 22 ноя 2014 ---
    Но получается я в отборе обращаюсь к договорам в документе покупка, акты, а мне нужно к договору, на форме которого я нахожусь, ?!Как праввильно сделать?!!

    Вложения:

    Последнее редактирование модератором: 24 ноя 2014
  4. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Ошибку исправила, теперь кнопка не работает
    Код:
    Процедура АктНажатие(Элемент)
    ТабДок = Новый ТабличныйДокумент;
    ТабДок = ПечатьАкта(ТабДок);
    ТабДок.ТолькоПросмотр = Истина;
    КонецПроцедуры
    Функция ПечатьАкта(ТабДок) Экспорт
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Макет = Справочники.Договоры.ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | УслугиСтороннихОрганизаций.Услуги.(
    | Ссылка КАК Услуга,
    | ПРЕДСТАВЛЕНИЕ(УслугиСтороннихОрганизаций.Услуги.Ссылка),
    | Количество,
    | Сумма,
    | ЕдиницаИзмерения,
    | ПРЕДСТАВЛЕНИЕ(УслугиСтороннихОрганизаций.Услуги.ЕдиницаИзмерения)
    | ),
    | ОС_Покупка.Капвложения.(
    | Ссылка КАК ОсновноеСредство,
    | ПРЕДСТАВЛЕНИЕ(ОС_Покупка.Капвложения.Ссылка),
    | Сумма,
    | Количество
    | ),
    | МЗ_Покупка.СубконтоСчетКредита3 КАК МЗ_Договор,
    | МЗ_Покупка.Материалы.(
    | Ссылка,
    | ЕдиницаИзмерения,
    | Количество,
    | Сумма
    | ),
    | ОС_Покупка.СубконтоСчетКредита3 КАК ОС_Договор,
    | УслугиСтороннихОрганизаций.Договор
    |ИЗ
    | Документ.УслугиСтороннихОрганизаций КАК УслугиСтороннихОрганизаций,
    | Документ.ОС_Покупка КАК ОС_Покупка,
    | Документ.МЗ_Покупка КАК МЗ_Покупка
    |ГДЕ
    | МЗ_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3
    | И ОС_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3
    | И УслугиСтороннихОрганизаций.Договор = &Договор";
    Запрос.УстановитьПараметр("СубконтоСчетКредита3",Ссылка);
    Запрос.УстановитьПараметр("Договор",ссылка);
    Запрос.УстановитьПараметр("СубконтоСчетКредита3",Ссылка);
    РезультатЗапроса = Запрос.Выполнить();
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ШапкаТаблиц");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
    ТабДок.НачатьГруппуСтрок();
    ТабДок.НачатьАвтогруппировкуСтрок();
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    Возврат ТабДок;
    КонецФункции
    Последнее редактирование модератором: 24 ноя 2014
  5. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    ТабДок.Показать();
    Спасибо!
  6. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Иду потихоньку дальше
    Макет выводится,но без данных(параметры не заполняются). Ни шапка не заполняется, ни табличная часть.

    Я в макете указываю поставщика как параметр .н должен выводится из контрагента, выбранного на форме элемента справрчника договоры. А как привязать его к запросу, ну чтобы в печатной форме выводился контрагент, ну и название самого договора и в табличной части документы покупка Юуслуги только по этому договору?
    Код выше. Помогите, пожалуйста
    --- Объединение сообщений, 23 ноя 2014 ---
    Макет

    Вложения:

  7. Galich
    Offline

    Galich Опытный в 1С

    Регистрация:
    6 июн 2014
    Сообщения:
    276
    Симпатии:
    9
    Баллы:
    29
    Пишите в личку, переделаю Вам запрос
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Оформляйте код тегами code
Похожие темы
  1. 0x0tnik87
    Ответов:
    10
    Просмотров:
    4.771
Загрузка...

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