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

Закрепление макета договора за кодом организации

Автор FromRome, 12 фев 2015, 11:19

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

FromRome

Здравствуйте есть такой код: нужно закрепить макет договора, если код организации 000000010, в общем мне нужно вписать в программный код третий макет (договор 3) и обозначить его кодом организации 000000010, не судите строго, только учусь.
Процедура ОсновныеДействияФормыПечать(Кнопка)
   Если ЭтоНовый() или модифицированность тогда
      Предупреждение("Перед печатью документ необходимо записать.");
      возврат;
   КонецЕсли;
   ТабДок=Новый ТабличныйДокумент;
   Если Организация.Код = "000000001" Тогда
      Макет=ПолучитьМакет("Договор1");
      Шапка=Макет.ПолучитьОбласть("Шапка");
      Строка=Макет.ПолучитьОбласть("Строка");
      СекцияИтого=Макет.ПолучитьОбласть("Итого");
      СекцияСкидка=Макет.ПолучитьОбласть("Скидка");
      СекцияИтогоСоСкидкой=Макет.ПолучитьОбласть("ИтогоСоСкидкой");
      СекцияКомментарий=Макет.ПолучитьОбласть("Комментарий");
      ТелоДоговора=Макет.ПолучитьОбласть("ТелоДоговора");
      СекцияМРТ=Макет.ПолучитьОбласть("СекцияМРТ");
      Подписи=Макет.ПолучитьОбласть("Подписи");
      
      Шапка.Параметры.НомерДоговора=Номер;
      Шапка.Параметры.фио=Пациент.НаименованиеПолное;
      Шапка.Параметры.ДатаДоговора=формат(Дата,"ДЛФ=ДД");
      ТабДок.Вывести(Шапка);
      
      ЕстьМРТ = Ложь; СуммаКонтраста = 0;
      Для каждого стр из Услуги цикл
         Строка.Параметры.Заполнить(стр);
         Строка.Параметры.Услуга = стр.Услуга.НаименованиеДляДоговора;
         ТабДок.Вывести(Строка);
                                        
         Если стр.Услуга.Родитель.Код = "000000003" Тогда
            ЕстьМРТ = Истина;
         КонецЕсли;   
         
         Если стр.Услуга.Код = "000000454" Тогда
            СуммаКонтраста = стр.Сумма
         КонецЕсли;   
      КонецЦикла;
      
      СекцияИтого.Параметры.ИтогоСумма=СуммаБезСкидки + ?(Скидка=100,0,СуммаКонтраста);
      ТабДок.Вывести(СекцияИтого);
      
      Если СуммаСкидки <> 0 Тогда
         СекцияСкидка.Параметры.Скидка=СуммаСкидки;
         ТабДок.Вывести(СекцияСкидка);
         
         СекцияИтогоСоСкидкой.Параметры.ИтогоСоСкидкой=?(СуммаДокумента=0,"0",СуммаДокумента);
         ТабДок.Вывести(СекцияИтогоСоСкидкой);
         
         Если СокрЛП(Комментарий)<>"" Тогда
            СекцияКомментарий.Параметры.Комментарий=Комментарий;
            ТабДок.Вывести(СекцияКомментарий);
         КонецЕсли;   
      КонецЕсли;
      
      ТелоДоговора.Параметры.ДатаДоговора=формат(Дата,"ДЛФ=ДД");
      ТелоДоговора.Параметры.ДатаВыполнения = "_____ _________________ 2014 г.";
      ТелоДоговора.Параметры.СуммаДокумента = СуммаДокумента;
      
      ТелоДоговора.Параметры.ФИО=Пациент.НаименованиеПолное;   
      Заказчик=Пациент.НаименованиеПолное;
      Если ЗначениеЗаполнено(Пациент.ДокументУдостоверяющийЛичность) Тогда
         Заказчик=Заказчик+"
         |"+Пациент.ДокументУдостоверяющийЛичность;
      КонецЕсли;
      ТабДок.Вывести(ТелоДоговора);
      
      Если ЕстьМРТ Тогда
         ТабДок.Вывести(СекцияМРТ);
      КонецЕсли;   
      
      Запрос = Новый Запрос;
      Запрос.Текст="ВЫБРАТЬ
      |   КонтактнаяИнформация.Представление как адрес
      |ИЗ
      |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
      |ГДЕ
      |   КонтактнаяИнформация.Объект = &Объект
      |   И КонтактнаяИнформация.Вид = &Вид";
      //Параметры запроса
      Запрос.УстановитьПараметр("Вид",справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);//Справочник ссылка: Виды контактной информации
      Запрос.УстановитьПараметр("Объект",Пациент);//Справочник ссылка: Контрагенты
      
      Результат=Запрос.Выполнить().Выбрать();
      Если Результат.Следующий() Тогда
         Заказчик=Заказчик+"
         |Адрес: "+результат.адрес;
      КонецЕсли;

      Запрос = Новый Запрос;
      Запрос.Текст="ВЫБРАТЬ
      |   КонтактнаяИнформация.Представление как телефон
      |ИЗ
      |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
      |ГДЕ
      |   КонтактнаяИнформация.Объект = &Объект
      |   И КонтактнаяИнформация.Вид = &Вид";
      //Параметры запроса
      Запрос.УстановитьПараметр("Вид",справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);//Справочник ссылка: Виды контактной информации
      Запрос.УстановитьПараметр("Объект",Пациент);//Справочник ссылка: Контрагенты
      
      Результат=Запрос.Выполнить().Выбрать();
      Если Результат.Следующий() Тогда
         Заказчик=Заказчик+"
         |Тел.:"+результат.телефон;
      КонецЕсли;

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

vitasw

И? предлагаете за вас написать код? - так это денег стоит...

FromRome

Цитата: vitasw от 12 фев 2015, 11:23
И? предлагаете за вас написать код? - так это денег стоит...
там нужно скопипастить программный код по договору 1 и все, просто я не пойму, выдает постоянно ошибку синтаксиса

vitasw

А, я понял! это тест: угадай текст ошибки  и получи пирожок. К сожалению экстрасенсов среди программистов 1С - ну очень мало.

FromRome

Цитата: vitasw от 12 фев 2015, 11:33
А, я понял! это тест: угадай текст ошибки  и получи пирожок. К сожалению экстрасенсов среди программистов 1С - ну очень мало.
Процедура ОсновныеДействияФормыПечать(Кнопка)
   Если ЭтоНовый() или модифицированность тогда
      Предупреждение("Перед печатью документ необходимо записать.");
      возврат;
   КонецЕсли;
   ТабДок=Новый ТабличныйДокумент;
   Если Организация.Код = "000000001" Тогда
      Макет=ПолучитьМакет("ДоговорТомограф");
      Шапка=Макет.ПолучитьОбласть("Шапка");
      Строка=Макет.ПолучитьОбласть("Строка");
      СекцияИтого=Макет.ПолучитьОбласть("Итого");
      СекцияСкидка=Макет.ПолучитьОбласть("Скидка");
      СекцияИтогоСоСкидкой=Макет.ПолучитьОбласть("ИтогоСоСкидкой");
      СекцияКомментарий=Макет.ПолучитьОбласть("Комментарий");
      ТелоДоговора=Макет.ПолучитьОбласть("ТелоДоговора");
      СекцияМРТ=Макет.ПолучитьОбласть("СекцияМРТ");
      Подписи=Макет.ПолучитьОбласть("Подписи");
      
      Шапка.Параметры.НомерДоговора=Номер;
      Шапка.Параметры.фио=Пациент.НаименованиеПолное;
      Шапка.Параметры.ДатаДоговора=формат(Дата,"ДЛФ=ДД");
      ТабДок.Вывести(Шапка);
      
      ЕстьМРТ = Ложь; СуммаКонтраста = 0;
      Для каждого стр из Услуги цикл
         Строка.Параметры.Заполнить(стр);
         Строка.Параметры.Услуга = стр.Услуга.НаименованиеДляДоговора;
         ТабДок.Вывести(Строка);
                                        
         Если стр.Услуга.Родитель.Код = "000000003" Тогда
            ЕстьМРТ = Истина;
         КонецЕсли;   
         
         Если стр.Услуга.Код = "000000454" Тогда
            СуммаКонтраста = стр.Сумма
         КонецЕсли;   
      КонецЦикла;
      
      ТабДок=Новый ТабличныйДокумент;
   Если Организация.Код = "000000010" Тогда
      Макет=ПолучитьМакет("Договор3");
      Шапка=Макет.ПолучитьОбласть("Шапка");
      Строка=Макет.ПолучитьОбласть("Строка");
      СекцияИтого=Макет.ПолучитьОбласть("Итого");
      СекцияСкидка=Макет.ПолучитьОбласть("Скидка");
      СекцияИтогоСоСкидкой=Макет.ПолучитьОбласть("ИтогоСоСкидкой");
      СекцияКомментарий=Макет.ПолучитьОбласть("Комментарий");
      ТелоДоговора=Макет.ПолучитьОбласть("ТелоДоговора");
      СекцияМРТ=Макет.ПолучитьОбласть("СекцияМРТ");
      Подписи=Макет.ПолучитьОбласть("Подписи");
      
      Шапка.Параметры.НомерДоговора=Номер;
      Шапка.Параметры.фио=Пациент.НаименованиеПолное;
      Шапка.Параметры.ДатаДоговора=формат(Дата,"ДЛФ=ДД");
      ТабДок.Вывести(Шапка);
      
      ЕстьМРТ = Ложь; СуммаКонтраста = 0;
      Для каждого стр из Услуги цикл
         Строка.Параметры.Заполнить(стр);
         Строка.Параметры.Услуга = стр.Услуга.НаименованиеДляДоговора;
         ТабДок.Вывести(Строка);
                                        
         Если стр.Услуга.Родитель.Код = "000000003" Тогда
            ЕстьМРТ = Истина;
         КонецЕсли;   
         
         Если стр.Услуга.Код = "000000454" Тогда
            СуммаКонтраста = стр.Сумма
         КонецЕсли;   
      КонецЦикла;
      
      СекцияИтого.Параметры.ИтогоСумма=СуммаБезСкидки + ?(Скидка=100,0,СуммаКонтраста);
      ТабДок.Вывести(СекцияИтого);
      
      Если СуммаСкидки <> 0 Тогда
         СекцияСкидка.Параметры.Скидка=СуммаСкидки;
         ТабДок.Вывести(СекцияСкидка);
         
         СекцияИтогоСоСкидкой.Параметры.ИтогоСоСкидкой=?(СуммаДокумента=0,"0",СуммаДокумента);
         ТабДок.Вывести(СекцияИтогоСоСкидкой);
         
         Если СокрЛП(Комментарий)<>"" Тогда
            СекцияКомментарий.Параметры.Комментарий=Комментарий;
            ТабДок.Вывести(СекцияКомментарий);
         КонецЕсли;   
      КонецЕсли;
      
      ТелоДоговора.Параметры.ДатаДоговора=формат(Дата,"ДЛФ=ДД");
      ТелоДоговора.Параметры.ДатаВыполнения = "_____ _________________ 2014 г.";
      ТелоДоговора.Параметры.СуммаДокумента = СуммаДокумента;
      
      ТелоДоговора.Параметры.ФИО=Пациент.НаименованиеПолное;   
      Заказчик=Пациент.НаименованиеПолное;
      Если ЗначениеЗаполнено(Пациент.ДокументУдостоверяющийЛичность) Тогда
         Заказчик=Заказчик+"
         |"+Пациент.ДокументУдостоверяющийЛичность;
      КонецЕсли;
      ТабДок.Вывести(ТелоДоговора);
      
      Если ЕстьМРТ Тогда
         ТабДок.Вывести(СекцияМРТ);
      КонецЕсли;   
      
      Запрос = Новый Запрос;
      Запрос.Текст="ВЫБРАТЬ
      |   КонтактнаяИнформация.Представление как адрес
      |ИЗ
      |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
      |ГДЕ
      |   КонтактнаяИнформация.Объект = &Объект
      |   И КонтактнаяИнформация.Вид = &Вид";
      //Параметры запроса
      Запрос.УстановитьПараметр("Вид",справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);//Справочник ссылка: Виды контактной информации
      Запрос.УстановитьПараметр("Объект",Пациент);//Справочник ссылка: Контрагенты
      
      Результат=Запрос.Выполнить().Выбрать();
      Если Результат.Следующий() Тогда
         Заказчик=Заказчик+"
         |Адрес: "+результат.адрес;
      КонецЕсли;

      Запрос = Новый Запрос;
      Запрос.Текст="ВЫБРАТЬ
      |   КонтактнаяИнформация.Представление как телефон
      |ИЗ
      |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
      |ГДЕ
      |   КонтактнаяИнформация.Объект = &Объект
      |   И КонтактнаяИнформация.Вид = &Вид";
      //Параметры запроса
      Запрос.УстановитьПараметр("Вид",справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);//Справочник ссылка: Виды контактной информации
      Запрос.УстановитьПараметр("Объект",Пациент);//Справочник ссылка: Контрагенты
      
      Результат=Запрос.Выполнить().Выбрать();
      Если Результат.Следующий() Тогда
         Заказчик=Заказчик+"
         |Тел.:"+результат.телефон;
      КонецЕсли;

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

Собственно ошибка {Документ.Т_Договор.Форма.ФормаДокумента.Форма(334,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))

vitasw

Н-да... все хуже. Платформа вам вроде бы на русском пишет, что не хватает "конец если". Думаю, что посчитать "Если" и "КонецЕсли" - вы сможете самостоятельно. Как-то считать в вашем неотформатированном тексте мне не очень хочется.

Теги:

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

Рейтинг@Mail.ru

Поиск