Имя: Пароль:
1C
1С v8
как при выводе печатной формы поставить проверку
0 Смертник
 
28.01.13
17:14
Если ЗапросПодписанты[0].ВидОбъекта = Строка("Наряд на отгрузку")   Тогда
       ОбластьМакета.Параметры.Должность=ЗапросПодписанты[0].Должность;
       ОбластьМакета.Параметры.ФизЛицо=ЗапросПодписанты[0].ФизЛицо;
   
КонеЦЕсли;
При  этом поле ВидОбъекта - Строка длина 150. Как поставить Иначе чтобы выводилась печатная форма но без подписантов и с Предупреждением?
1 Жан Пердежон
 
28.01.13
17:16
Строка("Наряд на отгрузку")

вам там за каждый символ платят?)
2 pessok
 
28.01.13
17:18
Иначе ТабДок.УдалитьОбласть(ОбластьМакета); Сообщить("Мне платят за симаволы"); КонецЕсли;
3 pumbaEO
 
28.01.13
17:20
И не забыть оставить пользователям, право на "разрешить менять печатную форму "
4 Смертник
 
28.01.13
17:24
Индекс находится за границами массива
5 mikecool
 
28.01.13
17:29
(2) ой не надо так делать, проще очищать ))
6 pessok
 
28.01.13
17:31
(5) о, точно :)
ОбластьМакет.Текст = Строка("");
7 DrShad
 
28.01.13
17:31
(4) ну так у тебя нет ни одного элемента в выборке
8 Смертник
 
28.01.13
17:34
(7) и как правильно от этого уйти?
9 Смертник
 
28.01.13
17:36
точнее обойти
10 pessok
 
28.01.13
17:37
короче сделай отдельную область с подписями
в зависимости от условия либо выводи ее в табдок, либо не выводи
11 Смертник
 
28.01.13
17:41
А то есть сделать две - одну с подписями вторую как бы пустую?
12 samozvanec
 
28.01.13
17:43
(11) да просто не заполняй первую, зачем две то?
13 pessok
 
28.01.13
17:44
(11) просто если подписи есть, то выводи область и заполняй, если подписей нет, то просто не выводи
14 Смертник
 
28.01.13
17:44
Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
   Запрос.УстановитьПараметр("Организация", СсылкаНаОбъект.Организация);
   Запрос.УстановитьПараметр("ВидОбъекта", "Наряд на отгрузку");
   Запрос.Текст ="ВЫБРАТЬ
                 |    РУ_Подписанты.Должность КАК Должность,
                 |    РУ_Подписанты.ФизЛицоКраткоеПредставление КАК ФизЛицо,
                 |    РУ_Подписанты.ВидОбъекта
                 |ИЗ
                 |    Документ.ру_НарядНаОтгрузку КАК ру_НарядНаОтгрузку
                 |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РУ_Подписанты КАК РУ_Подписанты
                 |        ПО ру_НарядНаОтгрузку.Организация = РУ_Подписанты.Организация_Контрагент
                 |ГДЕ
                 |    ру_НарядНаОтгрузку.Ссылка = &ТекущийДокумент
                 |    И РУ_Подписанты.ВидОбъекта ПОДОБНО (&ВидОбъекта)
                 |    И РУ_Подписанты.Организация_Контрагент = &Организация";
                 
   ЗапросПодписанты = Запрос.Выполнить().Выгрузить();
 
   Если ЗапросПодписанты[0].ВидОбъекта = "Наряд на отгрузку"   Тогда
       ОбластьМакета = Макет.ПолучитьОбласть("Подписанты");
       ОбластьМакета.Параметры.Должность=ЗапросПодписанты[0].Должность;
       ОбластьМакета.Параметры.ФизЛицо=ЗапросПодписанты[0].ФизЛицо;
       ТабДокумент.Вывести(ОбластьМакета);
   Иначе
       ОбластьМакета = Макет.ПолучитьОбласть("Подписанты");
       ТабДокумент.Вывести(ОбластьМакета);    
   КонеЦЕсли;
15 pessok
 
28.01.13
17:45
Если ЗапросПодписанты[0].ВидОбъекта = "Наряд на отгрузку"   Тогда
       ОбластьМакета = Макет.ПолучитьОбласть("Подписанты");
       ОбластьМакета.Параметры.Должность=ЗапросПодписанты[0].Должность;
       ОбластьМакета.Параметры.ФизЛицо=ЗапросПодписанты[0].ФизЛицо;
       ТабДокумент.Вывести(ОбластьМакета);
   Иначе
       ОбластьМакета = Макет.ПолучитьОбласть("Подписанты");
  //     ТабДокумент.Вывести(ОбластьМакета);    
   КонеЦЕсли;
16 samozvanec
 
28.01.13
17:45
Если ЗапросПодписанты[0].ВидОбъекта = Строка("Наряд на отгрузку") И СтрДлина(ЗапросПодписанты[0].ВидОбъекта) <= 150   Тогда
17 pessok
 
28.01.13
17:46
это если вообще не выводить область с подписями, а если вывести, но БЕЗ подписей, то да, так
18 pessok
 
28.01.13
17:46
и область получать каждый раз не надо
19 pessok
 
28.01.13
17:46
(16) Сред() забыл
20 samozvanec
 
28.01.13
17:48
(19) какой такой Сред? зачем?

чето я сейчас ваще не понимаю, че автор хочет. у него ж поле тип строка(150)
21 Смертник
 
28.01.13
17:49
мне нужно если в поле содержится надпись - Наряд на отгрузку тогда подписи иначе сообщить и вывести без подписей
22 samozvanec
 
28.01.13
17:49
кажется начинает доходить...

ОбластьМакета = Макет.ПолучитьОбласть("Подписанты");
       
Если ЗапросПодписанты[0].ВидОбъекта = "Наряд на отгрузку"   Тогда
       ОбластьМакета.Параметры.Должность=ЗапросПодписанты[0].Должность;
       ОбластьМакета.Параметры.ФизЛицо=ЗапросПодписанты[0].ФизЛицо;
       
   КонеЦЕсли;

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

так что ли хочешь???
23 pessok
 
28.01.13
17:51
(22) моя телепатия показывает (15), но может и так, как у тебя
24 Смертник
 
28.01.13
17:51
да просто так пишет ошибку выше - Индекс находится за границами массива
25 pessok
 
28.01.13
17:52
(24) млять...
Если ЗапросПодписанты.Количество() > 0 Тогда
Если ЗапросПодписанты[0].ВидОбъекта = "Наряд на отгрузку"   Тогда
       ОбластьМакета = Макет.ПолучитьОбласть("Подписанты");
       ОбластьМакета.Параметры.Должность=ЗапросПодписанты[0].Должность;
       ОбластьМакета.Параметры.ФизЛицо=ЗапросПодписанты[0].ФизЛицо;
       ТабДокумент.Вывести(ОбластьМакета);
 

   КонеЦЕсли;
КонецЕсли
26 samozvanec
 
28.01.13
17:53
(23) в (15) ваще жуть какая-то
(24) пустая выборка. ИНДЕКС НАХОДИТСЯ ЗА ГРАНИЦАМИ МАССИВА
27 pessok
 
28.01.13
17:54
(26) в 15 я просто по смыслу закомментил одну строку :)
28 samozvanec
 
28.01.13
17:55
(27) я так и понял)
29 samozvanec
 
28.01.13
17:57
ну че там, Смертник, удачно телепаты отработали?
30 samozvanec
 
28.01.13
17:57
хм... тест ссылки в сообщении..

Смертник
31 DrShad
 
28.01.13
18:03
проверь на количество выборки, блеать!