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

Внешняя печатная форма

Автор Мухаметов Марат, 03 окт 2014, 11:28

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

Yura063

В макете уберите "<", ">". Параметр должен указываться только в квадратных скобках. Образец вам предоставлял cska-fanat-kz,
Цитата: cska-fanat-kz от 03 окт 2014, 12:10
В ячейке пишете "Оплатить до: [ДатаОплаты]"
И заполнение ставите "Шаблон"
Добавлено: 07 окт 2014, 10:09


И выложите конечный код.
Помогли, отблагодари!

Мухаметов Марат


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

То что я вставил выделил жирным, сохранил говорит ошибка.
Добавлено: 07 окт 2014, 11:57


И вот скрин.

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

не
ОбластьЗаголовок.Параметры.ДатаОплаты = ДатаОплаты;

а
ОбластьМакета.Параметры.ДатаОплаты = ДатаОплаты;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Мухаметов Марат

Заменил, сохраняю и вот такое сообщение.

cska-fanat-kz

Текст ошибки приведите
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Мухаметов Марат

При проверке модуля обнаружены ошибки.
А где их смотреть?

Yura063

На этой картинке видно, что у вас дата оплаты стоит отдельно от текста. Присвойте заполнению не шаблон а параметр.
Шаблон - используется для подставки в готовый текст параметра и текст ячейки должен выглядеть так: <Дата отгрузки: [ДатаОтгрузки]>
Добавлено: 07 окт 2014, 13:29


Цитата: Мухаметов Марат от 07 окт 2014, 13:12
При проверке модуля обнаружены ошибки.
А где их смотреть?
Служебные сообщения откройте
Помогли, отблагодари!

cska-fanat-kz

Yura063, вы правы, но можно и так. тут в коде че та не так...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

markgenuine

Нужно просмотреть служебные сообщения, чтобы понять какие у вас ошибки.
Есть 2 варианта, даже 3 как их просмотреть.
1. В окне конфигуратора снизу, слева в углу смотрите, есть ли прямоугольное окошечко с надписью "Служебные сообщения", если есть тыкаете его и оно откроется.
2. В верхнем меню найти пункт меню "Окна"-служебные окна -служебные сообщения
3. Нажать горячие клавиши для вызова этого окна: Ctrl+Alt+O и откроется окно "Служебные сообщения".

Теги:

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

Рейтинг@Mail.ru

Поиск