Имя: Пароль:
1C
1С v8
внешняя печатная форма ОС-2
0 itt5082
 
30.07.20
06:42
Уважаемые коллеги, доброе время суток, нужна помощь по внешней печатной форме ОС-2 не могу вывести Комментарий в форму, кто может помочь, век благодарен буду, вот код
Функция ПолучитьНазаначениеОбработки()
    
    Массив = Новый Массив;
    Массив.Добавить("Документ.ПеремещениеОС2_4");
        
    Возврат Массив;
    
КонецФункции

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

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

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазаначениеОбработки());
    ПараметрыРегистрации.Вставить("Наименование", "ПФ: Накладная на внутреннее перемещение объектов основных средств (ОС-2)");
    ПараметрыРегистрации.Вставить("Версия", "17.07.2020");
    ПараметрыРегистрации.Вставить("Информация", "");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    
    Команды = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(Команды,
        "Накладная на внутреннее перемещение объектов основных средств (ОС-2) (Внешняя)",
        "гф_НакладнаяНаВнутреннееПеремещениеОбъектовОсновныхСредств_ОС_2",
        "ВызовСерверногоМетода",
        Ложь,
        "ПечатьXМL");
                            
    ПараметрыРегистрации.Вставить("Команды", Команды);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "гф_НакладнаяНаВнутреннееПеремещениеОбъектовОсновныхСредств_ОС_2") Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм, "гф_НакладнаяНаВнутреннееПеремещениеОбъектовОсновныхСредств_ОС_2",
        НСтр("ru = 'Накладная на внутреннее перемещение объектов основных средств (ОС-2)'"),
        ПечатьОС2(МассивОбъектов, ОбъектыПечати, ПараметрыПечати));
        
    КонецЕсли;
    
    
КонецПроцедуры

Функция ПечатьОС2(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)
    
    Перем ПодразделениеОтветственныхЛиц;
    
    УстановитьПривилегированныйРежим(Истина);
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПеремещениеОС_ОС2";
    
    Макет = ПолучитьМакет("ПФ_MXL_ОС2");
    
    ОбластьШапка1         = Макет.ПолучитьОбласть("Шапка1");
    ОбластьСтрока         = Макет.ПолучитьОбласть("Строка");
    ОбластьПодвалСтраницы = Макет.ПолучитьОбласть("ПодвалСтраницы");
    ОбластьПодвал         = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапка2         = Макет.ПолучитьОбласть("Шапка2");
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПеремещениеОС.Ссылка КАК Ссылка,
    |    ПеремещениеОС.МоментВремени КАК МоментВремени,
    |    ПеремещениеОС.Организация КАК Организация,
    |    ПеремещениеОС.Организация.КодПоОКПО КАК КодПоОКПО,
    |    ПеремещениеОС.Подразделение КАК ПодразделениеОрганизации,
    |    ПеремещениеОС.ПодразделениеПолучатель КАК ПодразделениеПолучатель,
    |    ПеремещениеОС.Подразделение КАК ПодрСдатчик,
    |    ПеремещениеОС.ПодразделениеПолучатель КАК ПодрПолучатель,
    |    ПеремещениеОС.Номер КАК Номер,
    |    ПеремещениеОС.Дата КАК Дата,
    |    ПеремещениеОС.МОЛ КАК МОЛСдатчик,
    |    ПеремещениеОС.МОЛПолучатель КАК МОЛПолучатель,
    |    Константы.ВалютаРегламентированногоУчета.Наименование КАК Валюта,
    |    ПеремещениеОС.Комментарий КАК Комментарий
    |ИЗ
    |    Документ.ПеремещениеОС2_4 КАК ПеремещениеОС,
    |    Константы КАК Константы
    |ГДЕ
    |    ПеремещениеОС.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Дата,
    |    Ссылка";
    
    Запрос.Текст = СтрЗаменить(Запрос.Текст,
        "ПеремещениеОС.ПодразделениеОрганизации.НаименованиеПолное",
        БухгалтерскийУчетПереопределяемый.ТекстЗапросаПолноеНаименованиеПодразделения("ПеремещениеОС.ПодразделениеОрганизации"));

    Запрос.Текст = СтрЗаменить(Запрос.Текст,
        "ПеремещениеОС.ПодразделениеПолучатель.НаименованиеПолное",
        БухгалтерскийУчетПереопределяемый.ТекстЗапросаПолноеНаименованиеПодразделения("ПеремещениеОС.ПодразделениеПолучатель"));

    
    Шапка = Запрос.Выполнить().Выбрать();
    
    Запрос = Новый Запрос();
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ПеремещениеОСОС.ОсновноеСредство КАК ОсновноеСредство
    |ПОМЕСТИТЬ СписокОС
    |ИЗ
    |    Документ.ПеремещениеОС2_4.ОС КАК ПеремещениеОСОС
    |ГДЕ
    |    ПеремещениеОСОС.Ссылка = &Ссылка
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    ОсновноеСредство
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство,
    |    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство.ИнвентарныйНомер КАК ИнвентарныйНомер
    |ПОМЕСТИТЬ ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
    |ИЗ
    |    РегистрСведений.ПорядокУчетаОС.СрезПоследних(
    |            &Период,
    |            ОсновноеСредство В
    |                    (ВЫБРАТЬ
    |                        СписокОС.ОсновноеСредство
    |                    ИЗ
    |                        СписокОС)) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство,
    |    СчетаБухгалтерскогоУчетаОССрезПоследних.ГруппаФинансовогоУчета.СчетУчета КАК СчетУчета
    |ПОМЕСТИТЬ СчетаБухгалтерскогоУчетаОССрезПоследних
    |ИЗ
    |    РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних(
    |            &Период,
    |            Организация = &Организация
    |                И ОсновноеСредство В
    |                    (ВЫБРАТЬ
    |                        СписокОС.ОсновноеСредство
    |                    ИЗ
    |                        СписокОС)) КАК СчетаБухгалтерскогоУчетаОССрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ХозрасчетныйОстатки.Счет,
    |    ХозрасчетныйОстатки.Субконто1,
    |    ХозрасчетныйОстатки.СуммаОстатокДт
    |ПОМЕСТИТЬ ХозрасчетныйОстатки
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(
    |            &Период,
    |            Счет В
    |                (ВЫБРАТЬ РАЗЛИЧНЫЕ
    |                    СчетаБухгалтерскогоУчетаОССрезПоследних.СчетУчета
    |                ИЗ
    |                    СчетаБухгалтерскогоУчетаОССрезПоследних),
    |            ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства),
    |            Организация = &Организация
    |                И Субконто1 В
    |                    (ВЫБРАТЬ
    |                        СписокОС.ОсновноеСредство
    |                    ИЗ
    |                        СписокОС)) КАК ХозрасчетныйОстатки
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ПеремещениеОСОС.НомерСтроки КАК НС,
    |    ПеремещениеОСОС.ОсновноеСредство,
    |    ВЫБОР
    |        КОГДА ПеремещениеОСОС.ОсновноеСредство.НаименованиеПолное ПОДОБНО """"
    |            ТОГДА ПеремещениеОСОС.ОсновноеСредство.Наименование
    |        ИНАЧЕ ПеремещениеОСОС.ОсновноеСредство.НаименованиеПолное
    |    КОНЕЦ КАК НаименованиеОС,
    |    ПеремещениеОСОС.ОсновноеСредство.ДатаВыпуска КАК ГодВыпуска,
    |    ПеремещениеОСОС.ОсновноеСредство.ИнвентарныйНомер КАК ИнвНомер,
    |    ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстатокДт, 0) КАК СуммаПеремещения
    |ИЗ
    |    Документ.ПеремещениеОС2_4.ОС КАК ПеремещениеОСОС
    |        ЛЕВОЕ СОЕДИНЕНИЕ СчетаБухгалтерскогоУчетаОССрезПоследних КАК СчетаБухгалтерскогоУчетаОССрезПоследних
    |            ЛЕВОЕ СОЕДИНЕНИЕ ХозрасчетныйОстатки КАК ХозрасчетныйОстатки
    |            ПО (ХозрасчетныйОстатки.Субконто1 = СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство)
    |                И (ХозрасчетныйОстатки.Счет = СчетаБухгалтерскогоУчетаОССрезПоследних.СчетУчета)
    |        ПО (СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство = ПеремещениеОСОС.ОсновноеСредство)
    |ГДЕ
    |    ПеремещениеОСОС.Ссылка = &Ссылка
    |
    |УПОРЯДОЧИТЬ ПО
    |    НС";
    
    ПервыйДокумент = Истина;
    
    Пока Шапка.Следующий() Цикл
        
        Если НЕ ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ПервыйДокумент = Ложь;
        
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        Запрос.УстановитьПараметр("Ссылка",      Шапка.Ссылка);
        Запрос.УстановитьПараметр("Организация", Шапка.Организация);
        Запрос.УстановитьПараметр("Период",      Новый Граница(Шапка.МоментВремени, ВидГраницы.Исключая));
        
        ВыборкаПоОС = Запрос.Выполнить().Выбрать();
        
        ОбластьШапка1.Параметры.ПодрСдатчик = Строка(Шапка.ПодразделениеОрганизации);
        ОбластьШапка1.Параметры.ПодрПолучатель = Строка(Шапка.ПодразделениеПолучатель);
        ОбластьШапка1.Параметры.Заполнить(Шапка);
        ОбластьШапка1.Параметры.Номер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Шапка.Номер);
        
        СведенияОбОрганизации    = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
        ПредставлениеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм");
        
        ОбластьШапка1.Параметры.Организация = ПредставлениеОрганизации;
        
        ТабличныйДокумент.Вывести(ОбластьШапка1);

        ИтогСумма = 0;
        Пока ВыборкаПоОС.Следующий() Цикл
            
            ОбластьСтрока.Параметры.Заполнить(ВыборкаПоОС);
            
            ОбластьСтрока.Параметры.НаименованиеОС = СокрЛП(ВыборкаПоОС.НаименованиеОС);
            
            СтрокаСПодвалом = Новый Массив;
            СтрокаСПодвалом.Добавить(ОбластьСтрока);
            СтрокаСПодвалом.Добавить(ОбластьПодвал);
            
            Если НЕ ОбщегоНазначенияБПВызовСервера.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, СтрокаСПодвалом) Тогда
                ТабличныйДокумент.Вывести(ОбластьПодвалСтраницы);
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                ТабличныйДокумент.Вывести(ОбластьШапка2);
            КонецЕсли;
            
            ТабличныйДокумент.Вывести(ОбластьСтрока);
            ИтогСумма = ИтогСумма + ВыборкаПоОС.СуммаПеремещения;
            
        КонецЦикла;

        ОбластьПодвал.Параметры.ИтогСумма = ИтогСумма;
         ОбластьПодвал.Параметры.Комментарий = ЭтотОбъект.Комментарий;
        Если ЗначениеЗаполнено(Шапка.МОЛСдатчик) Тогда
            ДанныеМОЛ = УправлениеВнеоборотнымиАктивамиПереопределяемый.ДанныеФизЛиц(Шапка.Организация, Шапка.МОЛСдатчик, Шапка.Дата);
            
            ОбластьПодвал.Параметры.СдатчикРасшифровкаПодписи = ДанныеМОЛ[0].Представление;
            
            ДанныеСотрудника = КадровыйУчет.КадровыеДанныеСотрудников(
                Истина,
                КадровыйУчет.ОсновныеСотрудникиФизическихЛиц(Шапка.МОЛСдатчик, Истина, Шапка.Организация, Шапка.Дата).ВыгрузитьКолонку("Сотрудник"),
                "Должность, ТабельныйНомер",
                Шапка.Дата);
            
            Если ДанныеСотрудника.Количество()>0 Тогда
                ОбластьПодвал.Параметры.СдатчикДолжность          = ДанныеСотрудника[0].Должность;
                ОбластьПодвал.Параметры.СдатчикТабельныйНомер     = ДанныеСотрудника[0].ТабельныйНомер;
            КонецЕсли;
            
        КонецЕсли;
        
        Если ЗначениеЗаполнено(Шапка.МОЛПолучатель) Тогда
            ДанныеМОЛ = УправлениеВнеоборотнымиАктивамиПереопределяемый.ДанныеФизЛиц(Шапка.Организация, Шапка.МОЛПолучатель, Шапка.Дата);
            
            ОбластьПодвал.Параметры.ПолучательРасшифровкаПодписи = ДанныеМОЛ[0].Представление;
            
            ДанныеСотрудника = КадровыйУчет.КадровыеДанныеСотрудников(
                Истина,
                КадровыйУчет.ОсновныеСотрудникиФизическихЛиц(Шапка.МОЛПолучатель, Истина, Шапка.Организация, Шапка.Дата).ВыгрузитьКолонку("Сотрудник"),
                "Должность, ТабельныйНомер",
                Шапка.Дата);
            
            Если ДанныеСотрудника.Количество()>0 Тогда
                ОбластьПодвал.Параметры.ПолучательДолжность          = ДанныеСотрудника[0].Должность;
                ОбластьПодвал.Параметры.ПолучательТабельныйНомер     = ДанныеСотрудника[0].ТабельныйНомер;
            КонецЕсли;
            
        КонецЕсли;
        
        ПодразделениеОтветственныхЛиц = Шапка.ПодразделениеОрганизации;
        
        ОтветственныеЛица = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Организация, Шапка.Дата, ПодразделениеОтветственныхЛиц);
        
        ОбластьПодвал.Параметры.ГлавБух = ОтветственныеЛица.ГлавныйБухгалтерПредставление;
        
        ТабличныйДокумент.Вывести(ОбластьПодвал);
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
        
    КонецЦикла;
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    
    Возврат ТабличныйДокумент;
    
КонецФункции
1 ads55
 
30.07.20
07:09
"ОбластьПодвал.Параметры.Комментарий = ЭтотОбъект.Комментарий;"
замени на "ОбластьПодвал.Параметры.Комментарий = Шапка.Комментарий;"
2 itt5082
 
30.07.20
07:37
(  ads55) Огромное спасибо, помогло