8.х получить фио руководителя, главного бухгалтера

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Ikatesgi, 22 июн 2017.

  1. TopicStarter Overlay
    Ikatesgi
    Offline

    Ikatesgi

    Регистрация:
    9 апр 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. в Бухгалтерии предприятия 3.0 создаю внешнюю печатную форму. Нужно вывести фио руководителя и главного бухгалтера. Нашел вот такой вариант:

    Код:
    Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(шапка.организация,шапка.ДатаДокумента,);
            Руководитель = Руководители.РуководительПредставление;
        Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;
    
    Но он не срабатывает, подскажите куда еще смотреть?
  2. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.349
    Симпатии:
    87
    Баллы:
    54
    Доброго, проверьте, есть ли записи в соотв. регистре по дате документа
  3. pavl_vs
    Offline

    pavl_vs Профессионал в 1С

    Регистрация:
    18 июн 2011
    Сообщения:
    494
    Симпатии:
    41
    Баллы:
    54
    В карточке Организации посмотрите, заполнены ли в Подписи: Руководитель и Главный бухгалтер.
  4. TopicStarter Overlay
    Ikatesgi
    Offline

    Ikatesgi

    Регистрация:
    9 апр 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Да, все есть. и на печатных формах документа все подписи отображаются
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.128
    Симпатии:
    953
    Баллы:
    204
    что значит не срабатывает? полученные значения куда в макете вставляются?
  6. pavl_vs
    Offline

    pavl_vs Профессионал в 1С

    Регистрация:
    18 июн 2011
    Сообщения:
    494
    Симпатии:
    41
    Баллы:
    54
    Я бы в отладчике посмотрел передается ли Организация в функцию ОтветственныеЛица(Организация, ДатаСреза, Подразделение = Неопределено);
    Кстати, в документе ДатаДокумента корректная? А то ведь встречается, например, dd.mm.0017 !
  7. TopicStarter Overlay
    Ikatesgi
    Offline

    Ikatesgi

    Регистрация:
    9 апр 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Простите если не понятно выразился, это означает что значения передаю в параметр макета,
    Код:
      
        НазваниеМакета = "М2";
      
        Запрос = Новый Запрос();
        Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
        Запрос.Текст =
        "ВЫБРАТЬ
        |    Доверенность.Ссылка,
        |    Доверенность.Номер КАК НомерДокумента,
        |    Доверенность.Дата КАК ДатаДокумента,
        |    Доверенность.Организация КАК Руководители,
        |    Доверенность.Организация,
        |    Доверенность.ФизЛицо,
        |    Доверенность.ФизЛицо.Наименование КАК ФамилияИмяОтчествоДоверенного,
        |    Доверенность.БанковскийСчетОрганизации КАК БанковскийСчет,
        |    Доверенность.Контрагент КАК Поставщик,
        |    Доверенность.НаПолучениеОт КАК ПоставщикПредставление,
        |    Доверенность.ДатаДействия КАК СрокДействия,
        |    Доверенность.ПоДокументу КАК РеквизитыДокументаНаПолучение,
        |    Доверенность.Товары.(
        |        НомерСтроки КАК Номер,
        |        НаименованиеТовара КАК Ценнности,
        |        НаименованиеТовара КАК ЦеннностиПредставление,
        |        ЕдиницаПоКлассификатору КАК ЕдиницаИзмерения,
        |        ЕдиницаПоКлассификатору.Представление КАК ЕдиницаИзмеренияПредставление,
        |        Количество
        |    )
        |ИЗ
        |    Документ.Доверенность КАК Доверенность
        |ГДЕ
        |    Доверенность.Ссылка = &ТекущийДокумент";
        Шапка = Запрос.Выполнить().Выбрать();
        Шапка.Следующий();
        ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
    
        ТабДокумент = Новый ТабличныйДокумент;
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Доверенность_М2";
    
        Макет = ПолучитьМакет(НазваниеМакета);
    
        Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(шапка.Организация,шапка.ДатаДокумента,);
        Руководитель = Руководители.РуководительПредставление;
        Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;
    
    
      
        ДанныеОФизЛице = ОбщегоНазначенияБПВызовСервера.ДанныеФизЛица(Шапка.Организация, Шапка.ФизЛицо,  Шапка.ДатаДокумента);
        ФамилияИмяОтчествоДоверенного = СокрЛП(ДанныеОФизЛице.Фамилия) + " " + СокрЛП(ДанныеОФизЛице.Имя) + " " + СокрЛП(ДанныеОФизЛице.Отчество);
    
         СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента, Шапка.БанковскийСчет);
        
        Должность                    = СокрЛП(ДанныеОФизЛице.Должность);
    
        Если НазваниеМакета = "М2" тогда
            ОбластьМакета = Макет.ПолучитьОбласть("Отрез");
            ОбластьМакета.Параметры.Заполнить(Шапка);
            ОбластьМакета.Параметры.ФИОДоверенного = "" + ?(ПустаяСтрока(Должность), "", Должность + ", " + Символы.ПС) + (ФамилияИмяОтчествоДоверенного);
            ОбластьМакета.Параметры.НомерДокумента = СсылкаНаОбъект.Номер ;
          
            ТабДокумент.Вывести(ОбластьМакета);
            НазваниеФормы = "Типовая межотраслевая форма № М-2";
        Иначе
            НазваниеФормы = "Типовая межотраслевая форма № М-2а";
        КонецЕсли;
    
      
        ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        ОбластьМакета.Параметры.НомерДокумента               = СсылкаНаОбъект.Номер;
        ОбластьМакета.Параметры.НазваниеФормы                = НазваниеФормы;
        ОбластьМакета.Параметры.ОрганизацияПредставление     = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(    СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
        ОбластьМакета.Параметры.РеквизитыСчета               = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(    СведенияОбОрганизации, "НомерСчета,Банк,БИК,КоррСчет,");
    
        ОбластьМакета.Параметры.РеквизитыПотребителя         = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
        ОбластьМакета.Параметры.РеквизитыПлательщика         = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(    СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
        ОбластьМакета.Параметры.ОрганизацияКодПоОКПО         = СведенияОбОрганизации.КодПоОКПО;
        ОбластьМакета.Параметры.ПаспортСерия                 = ДанныеОФизЛице.Серия;
        ОбластьМакета.Параметры.ПаспортНомер                 = ДанныеОФизЛице.Номер;
        ОбластьМакета.Параметры.ПаспортВыдан                 = ДанныеОФизЛице.КемВыдан;
        ОбластьМакета.Параметры.ПаспортДатаВыдачи            = ДанныеОФизЛице.ДатаВыдачи;
        ОбластьМакета.Параметры.ФамилияИмяОтчествоДоверенного = ФамилияИмяОтчествоДоверенного;
        ОбластьМакета.Параметры.ДолжностьДоверенного         = Должность;
        ТабДокумент.Вывести(ОбластьМакета);
    
        ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
        ТабДокумент.Вывести(ОбластьМакета);
    
        ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    
        Пока ВыборкаСтрокТовары.Следующий() Цикл
    
            ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
            ОбластьМакета.Параметры.КоличествоПрописью = ?(ВыборкаСтрокТовары.Количество = 0,
                                                          "",
                                                           Строка(ВыборкаСтрокТовары.Количество) + " (" +
                                                         
                                                            ОбщегоНазначенияБПВызовСервера.КоличествоПрописью(ВыборкаСтрокТовары.Количество) + ")");
    
            ТабДокумент.Вывести(ОбластьМакета);
    
        КонецЦикла;
      
        ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
        ОбластьМакета.Параметры.Заполнить(Шапка);
      
        Если ЗначениеЗаполнено(Руководитель) Тогда
            ОбластьМакетаПодвал.Параметры.ФИОРуководителя       = Руководитель;
            ОбластьМакетаПодвал.Параметры.Руководитель          = Руководитель;
        КонецЕсли;
      
        Если ЗначениеЗаполнено(Бухгалтер) Тогда
            ОбластьМакетаПодвал.Параметры.ФИОГлавногоБухгалтера = Бухгалтер;
            ОбластьМакетаПодвал.Параметры.ГлавныйБухгалтер      = Бухгалтер;
        КонецЕсли;
      
    
    
        ТабДокумент.Вывести(ОбластьМакета);
      
      
          
      
        Возврат ТабДокумент;
        КонецФункции
    
    За основу взял стандартную функцию печати, просто немного подкорректировал сам макет
  8. pavl_vs
    Offline

    pavl_vs Профессионал в 1С

    Регистрация:
    18 июн 2011
    Сообщения:
    494
    Симпатии:
    41
    Баллы:
    54
    В режиме отладки поставьте останов, например, на строке ДанныеОФизЛице = ОбщегоНазначенияБПВызовСервера..., наведите курсор последовательно в трех предшествующих строчках на шапка.Организация, шапка.ДатаДокумента и Руководитель, Бухгалтер.
    Если здесь все в порядке, то по крайней мере запрос отрабатывает - ищите ошибку дальше, либо в коде, либо в макете (наверно изменяли, ведь не зря ВПФ).

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