Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 02:02

Счет фактура подписание уполномоченным лицом

Автор Chuchi, 09 апр 2011, 14:43

0 Пользователей и 1 гость просматривают эту тему.

chuevsf

Частным случаем будет добавление в форму данного документа двух полей: Исполнитель и УполномоченныйПредставитель.

Это типа Контрагента на форме. Но надо будет их к чему-то привязывать.
А в общем случае, надо продумывать структуру глубже. Пока не известно, где они у Вас еще могут использоваться. Очень может быть что УполномоченногоПредставителя можно будет привязать к Контрагенту.
Но сначала надо получить больше информации от Вас. А то пока не совсем все ясно.

Chuchi

У меня есть регистр сведений ОтветственныеЛица(Измерения Структурная Единица ресурс Физическое лицо) и ОтветственныеЛицаОрганизации(Измерения Структурная Единица и Ответственное лицо ресурс Физическое лицо и должность) - его из самой 1с я заполняю указывая фио-руководитель-должность
              фио-главныйбухгалтер-бухгалтер
              фио-Уполномоченный представитель -

Думаю что можно их подключать и после выбора организации завязываться с этим регистром и вытаскивать соответствующее уполномоченное лицо но мне по прежнему не ясно почему в типовой конфигурации бухгалтер (уже созданный в макете печатной формы и директор ) выставляются (в зависимости от выбранной организации) БЕЗ! обращения к этому регистру

Chuchi

А вот еще нашла перечисления ОтветственныеЛицаОрганизации
там в значениях как раз пункты:
руководитель
ГлавныйБухгалтер
..
УполномоченныйПредставитель

Только не знаю чем может помочь

Chuchi

Нашла решение проблемы!
у меня шло обращение к общим модулям
ОбщегоНазначения.ОтветственныеЛица
в этой функции не был прописан вариант Ответственного лица УполномоченныйПредставитель
Откопировав там набор строк от Бухгалтера и заменив на УполномоченногоПредставителя все заработало! :zebzdr: СПАСИБО ЗА УЧАСТИЕ!

Chuchi

ой ) точнее все это я сделала для СЧЕТА а вот теперь пошла до счета фактуры но не могу найти макета форму.. ее надо с нуля делать чтобы изменить так же как и счет?

Chuchi

Вот и макет в общих нашла! Спасибо) извините за массу вопросов)

Chuchi

 :trhregerhg:
ну вот опять ступор((
все таки в счете-фактуре не так все просто
если я правильно понимаю то подвал в котором подписи выставляются формируется так

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

но вот такой блок кода как в счете выставить не удается
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
         
         Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Руководители, Шапка.Дата, ПодразделениеОтветственныхЛиц);
         Руководитель = Руководители.РуководительПредставление;
         Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;
         УполномоченныйПредставитель = Руководители.УполномоченныйПредставительПредставление;

         ОбластьМакета.Параметры.ФИОУполномоченногоПредставителя = УполномоченныйПредставитель;
         ОбластьМакета.Параметры.ФИОБухгалтера   = Бухгалтер;



Жалуется на неопределенную переменную ШАПКА.. (((( как мне с ней поступить(

chuevsf

Парамент "Шапка" в этой процедуре не передается.
Там другой параметр, а какой именно скачать сложно, так как неизвестен весь кусок кода данной процедуры.
Ну нельзя выхватывать так куски кода.

Chuchi

Функция ПечатьСчетаФактуры(ДанныеДляПечати) Экспорт

   ТабДокумент = Новый ТабличныйДокумент;

   Если Дата < '20090609' Тогда
      ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетФактураВыданный_СчетФактура283";
      Макет = ПолучитьОбщийМакет("СчетФактура283");
   Иначе
      ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетФактураВыданный_СчетФактура4512";
      Макет = ПолучитьОбщийМакет("СчетФактура4512");
   КонецЕсли;
   
   СведенияОбПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(ДанныеДляПечати.Покупатель, Дата);
   СведенияОПоставщике  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(ДанныеДляПечати.Поставщик, Дата);
   СведенияОГрузоотправителе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(?(ДанныеДляПечати.Грузоотправитель = "он же", Неопределено, ДанныеДляПечати.Грузоотправитель), Дата);
   СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(ДанныеДляПечати.Грузополучатель, Дата);
   
   // Выводим шапку накладной
   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати);
   ЗаголовокДляПечати = ОбщегоНазначения.СформироватьЗаголовокДокумента(ДанныеДляПечати, "Счет-фактура");
   ОбластьМакета.Параметры.Номер = ЗаголовокДляПечати;
   
   Если ДанныеДляПечати.Свойство("АдресДоставки")
      И Не ПустаяСтрока(ДанныеДляПечати.АдресДоставки) Тогда
      ПредставлениеГрузополучателя = "Грузополучатель и его адрес: "
         + ?(Не ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель),
         ДанныеДляПечати.АдресДоставки,
         ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "НаименованиеДляПечатныхФорм") + ", " + ДанныеДляПечати.АдресДоставки);
   Иначе
      ПредставлениеГрузополучателя = "Грузополучатель и его адрес: "
         + ?(Не ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель),
         "",
         ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "НаименованиеДляПечатныхФорм, ФактическийАдрес,"));
   КонецЕсли;

   Если Дата < '20090609'
      Или ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НалоговыйАгент Тогда
      ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: "
         + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НаименованиеДляПечатныхФорм,");
   Иначе
      ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: "
         + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,");
      СокращенноеНаименование = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "СокращенноеНаименование,", Ложь);
      Если Не ПустаяСтрока(СокращенноеНаименование) Тогда
         ОбластьМакета.Параметры.ПредставлениеПоставщика = ОбластьМакета.Параметры.ПредставлениеПоставщика + " (" + СокращенноеНаименование + ")";
      КонецЕсли;
   КонецЕсли;
   
   ОбластьМакета.Параметры.АдресПоставщика = "Адрес: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,");
   
   Если Не (ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НалоговыйАгент
      И ДоговорКонтрагента.ВидАгентскогоДоговора = Перечисления.ВидыАгентскихДоговоров.Нерезидент) Тогда
      
      КПП = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "КПП,", Ложь);
      Если ЗначениеЗаполнено(КПП) Тогда
         КПП = "/" + КПП;
      КонецЕсли;
      ОбластьМакета.Параметры.ИННпоставщика = "ИНН/КПП продавца: "
         + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ИНН,", Ложь) + КПП;
         
   Иначе
      ОбластьМакета.Параметры.ИННпоставщика = "ИНН/КПП продавца: "
   КонецЕсли;
      
   ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = "Грузоотправитель и его адрес: "
      + ?(НЕ ЗначениеЗаполнено(ДанныеДляПечати.Грузоотправитель),
      "",
      ?(ДанныеДляПечати.Грузоотправитель = "он же",
         ДанныеДляПечати.Грузоотправитель,
         ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправителе,  "НаименованиеДляПечатныхФорм,ФактическийАдрес,")));
   
   ОбластьМакета.Параметры.ПредставлениеГрузополучателя  = ПредставлениеГрузополучателя;

   Строка_ПоДокументу = "";
   Для каждого ПараметрыДокументаОплаты Из ДанныеДляПечати.ТаблицаДатОплат Цикл
      Строка_ПоДокументу = Строка_ПоДокументу+ ?(ПустаяСтрока(Строка_ПоДокументу), "К платежно-расчетному документу № ",", ")
         + ПараметрыДокументаОплаты.НомерПлатежноРасчетногоДокумента
         + " от " + Формат(ПараметрыДокументаОплаты.ДатаПлатежноРасчетногоДокумента, "ДФ=dd.MM.yyyy");
   КонецЦикла;
   Если ПустаяСтрока(Строка_ПоДокументу) Тогда
      Строка_ПоДокументу = "К платежно-расчетному документу № -- от --"
   КонецЕсли;
   ОбластьМакета.Параметры.ПоДокументу                   = Строка_ПоДокументу;
   
   ОбластьМакета.Параметры.ПредставлениеПокупателя = "Покупатель: "
      + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбПокупателе, "НаименованиеДляПечатныхФорм,");
   ОбластьМакета.Параметры.АдресПокупателя = "Адрес: "
      + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбПокупателе, "ЮридическийАдрес,");
   КПП = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбПокупателе, "КПП,", Ложь);
   Если ЗначениеЗаполнено(КПП) Тогда
      КПП = "/" + КПП;
   КонецЕсли;
   ОбластьМакета.Параметры.ИННПокупателя = "ИНН/КПП покупателя: "
      + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбПокупателе, "ИНН,", Ложь) + КПП;
      
   ПроставитьПрочеркиВПустыеПоля(ОбластьМакета);
   ТабДокумент.Вывести(ОбластьМакета);

   ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати);
   
//   ОбластьМакета.Параметры.Валюта = "Валюта: " + ДанныеДляПечати.Валюта;
      
   ТабДокумент.Вывести(ОбластьМакета);
   ТабДокумент.ПовторятьПриПечатиСтроки =  ТабДокумент.Область("ЗаголовокТаблицы");

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

   ИтогоСуммаНДС = 0;
   ИтогоВсего    = 0;

   ВыборкаСтрокТовары = ДанныеДляПечати.ТабличнаяЧасть;
   ВыборкаСтрокТовары.Колонки.Добавить("СуммаБезНДС");
   ВыборкаСтрокТовары.Колонки.Добавить("СуммаСНДС");

   Для Каждого Строчка Из ВыборкаСтрокТовары Цикл
      
      Строчка.СуммаСНДС = Строчка.Сумма + ?(Строчка.СуммаВключаетНДС, 0, Строчка.СуммаНДС);

      Если ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаРеализацию
         И ((Строчка.СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120)
       Или (Строчка.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118)
       Или (Строчка.СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110)) Тогда
         Строчка.СуммаБезНДС = Строчка.СуммаСНДС;
         Если Не Строчка.СуммаВключаетНДС тогда
            Строчка.Цена = 0;
         КонецЕсли;
      Иначе
         Строчка.СуммаБезНДС = Строчка.СуммаСНДС - Строчка.СуммаНДС;
         Если Строчка.СуммаВключаетНДС тогда
            Строчка.Цена = 0;
         КонецЕсли;
      КонецЕсли;
      
      Если Строчка.Цена = 0 Тогда
         Строчка.Цена = ?(Строчка.Количество = 0, 0, Окр(Строчка.СуммаБезНДС / Строчка.Количество, 2));
      КонецЕсли;
      
   КонецЦикла;
   
   ВыборкаСтрокТовары.Свернуть("Товар, ТоварНаименование, СтранаПроисхождения, ПредставлениеСтраны, НомерГТД, ПредставлениеГТД, ЕдиницаИзмерения, Цена, СтавкаНДС", "Количество, Сумма, СуммаНДС, СуммаСНДС, СуммаБезНДС");
   
   Для Каждого Строчка Из ВыборкаСтрокТовары Цикл
      
      ОбластьМакета.Параметры.Заполнить(Строчка);

      Если Не ЗначениеЗаполнено(Строчка.ТоварНаименование) Тогда
         ОбластьМакета.Параметры.ТоварНаименование = Строчка.Товар;
      КонецЕсли;
      ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ОбластьМакета.Параметры.ТоварНаименование);
      
      Если Строка(Строчка.ПредставлениеСтраны) = "Россия"
         Или Строка(Строчка.ПредставлениеСтраны) = "Российская Федерация"
         Или Строчка.СтранаПроисхождения = Справочники.КлассификаторСтранМира.РОССИЯ Тогда         
         ОбластьМакета.Параметры.ПредставлениеСтраны  = "--";
      КонецЕсли;
   
      ОчищатьКоличество = Неопределено;
      ОчищатьКоличество = ?(ДанныеДляПечати.Свойство("ОчищатьКоличество", ОчищатьКоличество), ОчищатьКоличество, Истина);
      
      Если ОчищатьКоличество И ТипЗнч(ОбластьМакета.Параметры.Товар) <> Тип("СправочникСсылка.ОсновныеСредства")
         И (ОбластьМакета.Параметры.ЕдиницаИзмерения = "--"
         Или Не ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмерения)) Тогда
         Строчка.Количество = 0;
      КонецЕсли;
      
      Если ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс
         Или ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаСуммовуюРазницу
         Или ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НалоговыйАгент
         Тогда
         Если ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НалоговыйАгент Тогда
            ОбластьМакета.Параметры.Стоимость  = Строчка.СуммаБезНДС;
         Иначе
            // В счетах-фактурах на аванс колонка 5 не выводится
            ОбластьМакета.Параметры.Стоимость  = 0;
         КонецЕсли;
         ОбластьМакета.Параметры.Количество = 0;
         ОбластьМакета.Параметры.Цена       = 0;
      Иначе
         ОбластьМакета.Параметры.Стоимость  = Строчка.СуммаБезНДС;
         ОбластьМакета.Параметры.Цена   = Строчка.Цена;
      КонецЕсли;   
         
      ОбластьМакета.Параметры.Всего      = Строчка.СуммаСНДС;
      ОбластьМакета.Параметры.СтавкаНДС  = Строчка.СтавкаНДС;
      
      // Колонка "Единица измерения" быть заполнена только при заполненной колонке "Количество"
      Если Не ЗначениеЗаполнено(ОбластьМакета.Параметры.Количество)
         И ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмерения) Тогда
         ОбластьМакета.Параметры.ЕдиницаИзмерения = Неопределено;
      КонецЕсли;

      ИтогоСуммаНДС = ИтогоСуммаНДС + Строчка.СуммаНДС;
      ИтогоВсего    = ИтогоВсего    + Строчка.СуммаСНДС;

      ПроставитьПрочеркиВПустыеПоля(ОбластьМакета);
      ТабДокумент.Вывести(ОбластьМакета);

   КонецЦикла;

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

   ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
   ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати);
//|||||||||||||||/
///  МОЕ
///|||||||||||||||
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
         
         Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Руководители, Шапка.Дата, ПодразделениеОтветственныхЛиц);
         Руководитель = Руководители.РуководительПредставление;
         Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;
         УполномоченныйПредставитель = Руководители.УполномоченныйПредставительПредставление;
//         
         //ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
         ОбластьМакета.Параметры.ФИОУполномоченногоПредставителя = УполномоченныйПредставитель;
         ОбластьМакета.Параметры.ФИОБухгалтера   = Бухгалтер;

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

   ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   ТабДокумент.ПолеСверху = 13;
   ТабДокумент.ПолеСлева  = 0;
   ТабДокумент.ПолеСнизу  = 0;
   ТабДокумент.ПолеСправа = 0;

   Если ТипЗнч(Ссылка.ДокументОснование) <> Тип("ДокументСсылка.ОказаниеУслуг") Тогда
      ТабДокумент.ВерхнийКолонтитул.Выводить          = Истина;
      ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 2;
      ТабДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
      ТабДокумент.ВерхнийКолонтитул.ТекстСлева   = ЗаголовокДляПечати;
      ТабДокумент.ВерхнийКолонтитул.ТекстСправа  = "Лист [&НомерСтраницы]";
   КонецЕсли;
   
   Возврат ТабДокумент;

КонецФункции // ПечатьСчетаФактуры()

chuevsf

ДанныеДляПечати ставите вместо Шапка.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск