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


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

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

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