Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

дополнительные реквизиты в печатную форму

дополнительные реквизиты в печатную форму
Я
   HD_DoG
 
04.09.20 - 16:08
Добрый день. Я новичок. Подскажите, как добавить дополнительные реквизиты в печатную форму (от начала и до конца). За основу взял обработку. Имеется Заказ клиента. В него должен попадать Артикул, Наименование, Кол-во и Ячейка хранения. В форму пападает все кроме Ячейки хранение, так как это дополнительный реквизит. Как его вытащить в форму??? Не судите строго, я только учусь. Заранее ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!!!
   HD_DoG
 
1 - 04.09.20 - 16:09
1С УТ 11.4
   FIXXXL
 
2 - 04.09.20 - 16:13
первым делом сделай внешнюю печатную форму
данные для ПФ формируются запросом, в него надо добавить недостающие данные
в макет добавить недостающие ячейки для вывода новых данных
   HD_DoG
 
3 - 04.09.20 - 16:15
внешняя печатная форма есть. В нее уже попадает Артикул, Наименование, Количество и Ед.ИЗМ. А как туды впихнуть Ячейку хранения я не знаю
   FIXXXL
 
4 - 04.09.20 - 16:15
(3) надо отладчик курить, код читать...
   HD_DoG
 
5 - 04.09.20 - 16:19
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ЗаказКлиента"); 
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");  
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "ЗаказКлиентаКоличественный"); 
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0"); 
    ПараметрыРегистрации.Вставить("Информация", "Изготовлено wpg"); 
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Заказ клиента количественный(шаблон)", "ЗаказКлиентаКоличественный", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции

Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); 
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
КонецФункции


Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление; 
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
КонецПроцедуры

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаказКлиентаКоличественный", "Заказ клиента с ячейками хранения", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры// Печать()



Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)

ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказКлиента_ЗаказКлиентаКоличественный";

МакетОбработки = ПолучитьМакет("ПФ_MXL_ЗаказКлиента_Количественный");

ОбластьЗаголовок=МакетОбработки.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок.Параметры.ТекстЗаголовка = "Заказ клиента № "+СсылкаНаДокумент.Номер+" от "+ СсылкаНаДокумент.Дата;
ТабличныйДокумент.Вывести(ОбластьЗаголовок);

ОбластьПоставщик=МакетОбработки.ПолучитьОбласть("Поставщик");
ОбластьПоставщик.Параметры.ПредставлениеОрганизации =  СсылкаНаДокумент.Организация;
ТабличныйДокумент.Вывести(ОбластьПоставщик);

ОбластьПокупатель=МакетОбработки.ПолучитьОбласть("Покупатель");
ОбластьПокупатель.Параметры.ПредставлениеПартнера = СсылкаНаДокумент.Партнер;
        
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ПартнерыКонтактнаяИнформация.Представление КАК Представление
        |ИЗ
        |    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
        |ГДЕ
        |    ПартнерыКонтактнаяИнформация.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаДокумент.Партнер.Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    ВыборкаДетальныеЗаписи.Следующий() ;
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


Адрес = ВыборкаДетальныеЗаписи.Представление;
ОбластьПокупатель.Параметры.Адрес = Адрес;
ТабличныйДокумент.Вывести(ОбластьПокупатель);

ОбластьШапкаТаблицы=МакетОбработки.ПолучитьОбласть("ШапкаТаблицы");
ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);

ОбластьСтрокаТаблицы=МакетОбработки.ПолучитьОбласть("СтрокаТаблицы");

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    // Данный фрагмент построен конструктором.

    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
        |    ЗаказКлиентаТовары.Номенклатура.Артикул КАК НоменклатураАртикул,
        |    ЗаказКлиентаТовары.Номенклатура.ЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения,
        |ВЫБОР
        |    КОГДА ЗаказКлиентаТовары.Номенклатура.ВесЗнаменатель <> 0
        |    ТОГДА ЗаказКлиентаТовары.Номенклатура.ВесЧислитель / ЗаказКлиентаТовары.Номенклатура.ВесЗнаменатель * ЗаказКлиентаТовары.Количество
        |    ИНАЧЕ &Ничего
        |КОНЕЦ КАК Вес,
        |ВЫБОР
        |    КОГДА ЗаказКлиентаТовары.Номенклатура.ВесЗнаменатель <> 0
        |    ТОГДА ЗаказКлиентаТовары.Номенклатура.ВесЕдиницаИзмерения
        |    ИНАЧЕ &Ничего
        |КОНЕЦ КАК ВесЕдИзм,
        |    ЗаказКлиентаТовары.Цена КАК Цена,
        |    ЗаказКлиентаТовары.Количество КАК Количество,
        |    ЗаказКлиентаТовары.Сумма КАК Сумма,
        |    ЗаказКлиентаТовары.НомерСтроки КАК НомерСтроки
        |ИЗ
        |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        |ГДЕ
        |    ЗаказКлиентаТовары.Ссылка = &Ссылка";
           
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаДокумент.Ссылка);
    Запрос.УстановитьПараметр("Ничего", "---");
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    КоличествоСтрок =  ВыборкаДетальныеЗаписи.Количество();
    
    СуммаКоличество = 0;
    СуммаВес = 0;
    СуммаОбъем = 0;
    

    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьСтрокаТаблицы.Параметры.НомерСтроки = ВыборкаДетальныеЗаписи.НомерСтроки;
        ОбластьСтрокаТаблицы.Параметры.Товар = ВыборкаДетальныеЗаписи.Номенклатура;
        ОбластьСтрокаТаблицы.Параметры.Количество = ВыборкаДетальныеЗаписи.Количество;
//        ОбластьСтрокаТаблицы.Параметры.Цена = ВыборкаДетальныеЗаписи.Цена;

//        ОбластьСтрокаТаблицы.Параметры.Сумма = ВыборкаДетальныеЗаписи.Сумма;
        ОбластьСтрокаТаблицы.Параметры.Артикул = ВыборкаДетальныеЗаписи.НоменклатураАртикул;
        ОбластьСтрокаТаблицы.Параметры.ЕдИзм = ВыборкаДетальныеЗаписи.НоменклатураЕдиницаИзмерения;
        ОбластьСтрокаТаблицы.Параметры.ЯчейкаХранения = ;
        Если ВыборкаДетальныеЗаписи.Вес = "---" Тогда
            ОбластьСтрокаТаблицы.Параметры.Вес = ВыборкаДетальныеЗаписи.Вес;
        Иначе
            ОбластьСтрокаТаблицы.Параметры.Вес = Формат(Окр(ВыборкаДетальныеЗаписи.Вес,1),"ЧДЦ=1");
        КонецЕсли;
        
        ОбластьСтрокаТаблицы.Параметры.ВесЕдИзм = ВыборкаДетальныеЗаписи.ВесЕдИзм;
        
        ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы);
        
        ТекущВес=ВыборкаДетальныеЗаписи.Вес;
        Если ТекущВес = "---" Тогда
            ТекущВес = 0;
        КонецЕсли;
        
        
        СуммаКоличество =  СуммаКоличество +  ВыборкаДетальныеЗаписи.Количество;
        СуммаВес = СуммаВес + ТекущВес;
        
    
    
   
    КонецЦикла;
//    

//    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА




ОбластьПодвалТаблицы=МакетОбработки.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьПодвалТаблицы.Параметры.ИтогКоличество = СуммаКоличество;
    ОбластьПодвалТаблицы.Параметры.ИтогВес = Формат(окр(СуммаВес,1),"ЧДЦ=1");
ТабличныйДокумент.Вывести(ОбластьПодвалТаблицы);

ОбластьПодписи=МакетОбработки.ПолучитьОбласть("Подписи");
ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований% на сумму %Сумма% руб.'");
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", КоличествоСтрок);
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%Сумма%", СсылкаНаДокумент.СуммаДокумента);

ОбластьПодписи.Параметры.ИтоговаяСумма =  ТекстИтоговойСтроки;
ОбластьПодписи.Параметры.СуммаПрописью = ЧислоПрописью(СсылкаНаДокумент.СуммаДокумента,"Л = ru_RU; ДП = Истина","рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
ОбластьПодписи.Параметры.Менеджер = СсылкаНаДокумент.Менеджер;
ТабличныйДокумент.Вывести(ОбластьПодписи);


ТабличныйДокумент.АвтоМасштаб = Истина;

Возврат ТабличныйДокумент;

КонецФункции
   FIXXXL
 
6 - 04.09.20 - 16:21
(5) ну вон и запрос прям есть
в него и вытаскивай доп.реквизит
   HD_DoG
 
7 - 04.09.20 - 16:24
Подскажите, куда и что прописать. Заранее благодарен
   FIXXXL
 
8 - 04.09.20 - 16:38
(7) извини, но я убегаю...
   HD_DoG
 
9 - 04.09.20 - 16:44
Блиин. А может как у вас время будет вы посмотрите? Заранее спасибо
   Chameleon1980
 
10 - 05.09.20 - 06:30
(7) левым соединением с таблицей, в которой лежит этот
доп реквизит с условием в соединении
   HD_DoG
 
11 - 05.09.20 - 13:01
Спасибо, но как? Я только учусь. Можете помочь?
   HD_DoG
 
12 - 07.09.20 - 07:49
Люди добрые, помогите с моим вопросом. Все выходные колдовал, ничего путнего не получилось

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.